X



【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]©2ch.net
0001デフォルトの名無しさん
垢版 |
2016/06/15(水) 14:41:15.11ID:d2Xou3GL
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
CUDA使いが優しくコメントを返しますが、
お礼はCUDAの布教と初心者の救済をお願いします。

CUDA・HomePage
ttp://developer.nvidia.com/category/zone/cuda-zone

関連スレ
GPGPU#5
http://peace.2ch.net/test/read.cgi/tech/1281876470/

前スレ
【GPGPU】くだすれCUDAスレ【NVIDIA】
ttp://pc12.2ch.net/test/read.cgi/tech/1206152032/
【GPGPU】くだすれCUDAスレ pert2【NVIDIA】
ttp://pc12.2ch.net/test/read.cgi/tech/1254997777/
【GPGPU】くだすれCUDAスレ pert3【NVIDIA】
ttp://hibari.2ch.net/test/read.cgi/tech/1271587710/
【GPGPU】くだすれCUDAスレ pert4【NVIDIA】
ttp://hibari.2ch.net/test/read.cgi/tech/1291467433/
【GPGPU】くだすれCUDAスレ part5【NVIDIA】
http://toro.2ch.net/test/read.cgi/tech/1314104886/
【GPGPU】くだすれCUDAスレ part6【NVIDIA】
ttp://peace.2ch.net/test/read.cgi/tech/1348409867/
【GPGPU】くだすれCUDAスレ part7【NVIDIA】
http://echo.2ch.net/test/read.cgi/tech/1416492886/
0180デフォルトの名無しさん
垢版 |
2019/01/03(木) 14:15:50.59ID:pSmmWchb
1080Ti買ってきてドライバインストールしたんだけど、GPU-Zで見たときOpen-CLだけチェック入ってなくて
困ってるんだけど、コレって別にドライバー持ってくる必要があるの?
0182デフォルトの名無しさん
垢版 |
2019/07/23(火) 17:02:22.82ID:/TcX3lBx
quadro p600のWSにcuda入れようとしてるのだけど
10.1がパスカル世代の面倒見るのはteslaだけって認識でいいの?
390系のドライバしか入らなくて困ってる。
cuda9.1だとこんどはgcc 6以上はあかんとサンプルプログラムのヘッダがコンパイル時にハネてくる。
なんか詰んでる
0184デフォルトの名無しさん
垢版 |
2019/08/04(日) 08:51:33.67ID:1yK6graO
でかいjpegファイルを手頃なサイズに縮小することがよくあって、
数が多いので結構な時間(数時間)がかかる

これを何とかGPUのパワーで短縮できないものか
0185デフォルトの名無しさん
垢版 |
2019/08/04(日) 10:17:38.13ID:Ae1Ff/1h
スレチ
0186デフォルトの名無しさん
垢版 |
2019/11/27(水) 13:29:04.23ID:JvyecW3n
GTX1080のあるPCでcudaとcuDNNとAnacondaとTensorflowをインストール

GTX1080には9.0が合うのかと調べて、VS2015をインストールしてからcudaもバージョン合わせて入れる

Anaconda入れて早速仮想環境作ったが何故かその時はPython3.7しか選べなかった
そしたらconda install tensorflow-gpuで勝手に2.0を選び、型が合わないとエラー

conda install tensorflow-gpu==1.15でもcuda runtimeと合わない
cudaが10じゃないとダメという

1.12にしたら、今度はPythonが3.6でないとダメという
つまりこの仮想環境丸ごとダメ

捨てたあとで、もう一回作ろうとしたらPython3.6選べた
だからconda install tensorflow-gpu==1.12で、やっと動いた

ちょっとでも古い機器だともう合わないとか、敏感だよなあ
0187デフォルトの名無しさん
垢版 |
2019/12/04(水) 13:02:39.14ID:tCRQbFTx
ところがRTX2000番台は事前にVSもCUDAもcuDNNも入れずにAnacondaだけで
tensorflowがインストールできてしまった

この数日で色々変わったらしい
0188デフォルトの名無しさん
垢版 |
2019/12/04(水) 13:24:12.88ID:sb3P/SSe
おめおめ
0189デフォルトの名無しさん
垢版 |
2020/02/14(金) 11:55:27.53ID:ApdIcKC6
RTX2000番台はAnacondaからPyTorchでGPUを使う設定に出来たがChainerでcupyからGPU呼ぶのは失敗

GTX1000番台はAnacondaからChainerでGPU使えるように苦労して設定したら、PyTorchは
「これ古すぎてGPU使えない」と表示された

一長一短
ところで16xx系列ではどうなるんだろう
0190デフォルトの名無しさん
垢版 |
2020/04/08(水) 11:14:16.32ID:kpKMKUpB
PyTorch使いたかったら2000番台がいいか

2070以上、せめて2060superがいいか
でも中古でもそれなりの値段

そしてGPU上のメモりが8gb以上ないと動かないモジュールも多くて2060無印があかん事に
0191デフォルトの名無しさん
垢版 |
2020/06/25(木) 09:14:06.05ID:MmNin/8J
wddm2.7対応ドライバで
bandwidthTestにおいてpagedメモリの転送速度向上を確認した

pinedだとhtod、dtohともに13GB/sec
pageableだとwddm2.6は8GB/sec、2.7だと12GB/secくらい
0192デフォルトの名無しさん
垢版 |
2020/09/29(火) 22:45:56.87ID:8OEjGTOk
GTX 1660 SUPERはCUDAに対応してますか?
0194デフォルトの名無しさん
垢版 |
2020/10/04(日) 03:16:42.67ID:tvE5z3VX
CUDAのバージョンを不問とするならGeforce 200シリーズ(Tesla世代)から対応はしてる


って書こうとしたら8シリーズ(2007年)からあったんかよCUDA
0195デフォルトの名無しさん
垢版 |
2020/10/13(火) 20:53:42.89ID:6GL96WuY
CPUでの画像処理で速度が上がらずCudaを使いたいです。(windows)
@画像をGPUメモリに読み込み
A領域分割、パラレルで画像処理
 (分割部エッジにオフセット?をつけたい)
BGPUメモリの処理結果をCPUメモリに返してファイルにおとす。
こういったサンプルプログラムでいいのないでしょうか?
画像処理部だけしたい処理に書き換えればいいような。
よろしくお願いします。
0197195
垢版 |
2020/10/14(水) 15:54:49.86ID:4Zn1G8Lw
すみません。言語を書いていませんでした。使いたいのはPythonじゃないです。
WindowsでC++で実現したいです。
0198デフォルトの名無しさん
垢版 |
2020/10/14(水) 16:32:24.96ID:ZV1nncqg
ttps://qiita.com/Keech/items/381495ed90e012d69f1a
ttps://www.kkaneko.jp/tools/win/cuda10.html
0199デフォルトの名無しさん
垢版 |
2020/10/14(水) 16:34:20.05ID:ZV1nncqg
ttps://ameblo.jp/naginosen/entry-12443269443.html
0200デフォルトの名無しさん
垢版 |
2020/11/19(木) 09:55:49.41ID:RIzKHKet
RTX3080などで、cuda11が使えるようになってる
だがtensorflowは現時点でまだ使えない

だがPyTorchが動くとのこと!
0201デフォルトの名無しさん
垢版 |
2020/12/01(火) 20:58:05.41ID:nBZth83f
cudaええな。
2万3千円の GF 1660 SUPER で tensorflow が
2x Xeon E5 2697A v4 の10倍速くなった
0202デフォルトの名無しさん
垢版 |
2020/12/07(月) 14:54:49.93ID:sgdo/0mF
1660sでも天下のXEON様の10倍も速いのか

cudaコア数に速度が比例するからなあ
3090だと更に7倍?
0203デフォルトの名無しさん
垢版 |
2020/12/07(月) 21:54:00.27ID:UxKk8T9A
intelのコンパイラ買えばCPUももうちょっとマシなんだろうけどケチってやってない。

GPUのメモリの量で、やれることとやれないことが変わってくるので
コア数クロック低くてもメモリ多いみたいなのがあればいいのにね
0204デフォルトの名無しさん
垢版 |
2020/12/08(火) 15:17:27.13ID:enlXKoHl
パソコン工房のブログ記事に
RTX2060superを2枚使って、しかしSLIとかVLLinkとか使わずに性能1.8倍って例が出ている
34308番の記事か
0206デフォルトの名無しさん
垢版 |
2021/01/12(火) 01:54:13.37ID:QwUx+qJl
1050で戦ってるが、ぐぐるこらぼの半分の速度しか出ねえ
今買い換えるならおすすめどれ?
3万くらいなら払えそう
0208デフォルトの名無しさん
垢版 |
2021/01/14(木) 10:18:01.38ID:khWOsAy5
RTX3060デスクトップ版のコスパが
これまでのNVIDIAの一般ユーザー向けGPUでは深層学習に最適かな

3584cudaコアとVRAM12GBでアメリカ価格329ドルは有難い
教師データが巨大でも助かる
なおノート向けはcudaコアはちょっと多いがVRAM6GBなので注意

またRTX30xx番台はcuda11を使えばTensorflowを動かせるとのこと
0209195
垢版 |
2021/01/14(木) 13:43:39.46ID:RlCOioEo
caffeが異様にメモリ食うんだが。
困った。
0210デフォルトの名無しさん
垢版 |
2021/01/14(木) 21:42:12.40ID:qplKalHw
RTX3060良さそうだよな。
Google colab は無料なのは助かるけど、毎回環境構築しなきゃいけないし、やっぱりローカルで動かせると捗る。
0211デフォルトの名無しさん
垢版 |
2021/01/18(月) 09:07:06.27ID:svUqu+sR
3000番台はまだSLI出来るんだっけ
2060superでただ2枚挿しただけでとりあえず深層学習用途なら性能上がったというのが気になる

ノートPC用のRTX3080って16GBなんだなあ
是非欲しいけど当面は総額40万円くらいだろうな
0214デフォルトの名無しさん
垢版 |
2021/03/01(月) 12:17:15.83ID:8GQloKKK
機械学習しようとrtx3090を2枚買ったんだが中古でも25万円で売れるから売ってrtx A6000に買い替えるメリットある?
gpgpu的な観点から
0217デフォルトの名無しさん
垢版 |
2022/03/11(金) 11:03:09.15ID:vTxyPKiv
ようやく
CPUマルチスレッドをCUDAプログラミングに乗り換えようと来てみたけど
ほんと人少ないな。
ompオフロードじゃなくCUDAでやろうとしてる

ちょっと思ったのはデバイス側のスレッドから、複数のデバイス側のスレッドを起動できれば
ホストデバイス間のメモリ転送をぐっと少なく出切るんだけど
こういうことって出来ないのかな?


__device__
void
SubThread()
{
...
}

__gloval__
void
SubThread()
{

}
0218デフォルトの名無しさん
垢版 |
2022/03/11(金) 15:20:37.94ID:vTxyPKiv
途中で送信してしもた

__device__
void
SubThread(){
...
}

__gloval__
void
Thread(){
SubThread<<<1,1024>>>();
}

int
main(){
Thread<<<1,1>>>Thread();
}

みたいな。
これができないとCPUマルチコアプログラムからGPUプログラムに簡単に移行できんわ。
CPUもC#やインテルコンパイラから入ったんで、大体様子がわかって、
ompでは用意されてなかったPartitionerを先ず作ってめちゃ楽にコーディングできるようになった。
GPUはまだ手探り状態
0220デフォルトの名無しさん
垢版 |
2022/03/12(土) 01:12:58.32ID:2Ys6LOmP
>>218
CUDA Dynamic Parallelism
0221デフォルトの名無しさん
垢版 |
2022/03/12(土) 10:13:53.90ID:GhWebJZd
__device__を__global__に置換してみたけど
__global__内でスレッドを立ち上げるコードを書くと
THread内のSubThread<<<1,1024>>>(); 行と
main関数のThread<<<1,1>>>Thread(); 行の2箇所で"式が必要です"とコンパイルがエラーがでる
もちろん
Thread内のSubThread<<<1,1024>>>();をコメントアウトするとコンパイルもとおるし、正しく実行できる
0223デフォルトの名無しさん
垢版 |
2022/03/12(土) 18:11:29.89ID:GhWebJZd
ようやくわかりました
Relocatable Deice Code をenableでコンパイルが通りました
あちがとうございました
0224デフォルトの名無しさん
垢版 |
2022/03/23(水) 16:55:21.73ID:4ldsbCNM
今のGeForceは倍精度遅すぎてなんとかならんか?とおもてたら
Kelper世代のTeslaが8万円ぐらいで売ってるのな 1.8TFlps
c.f.
R3090 FP64 0.556TFPS ww なんそれッ
0225デフォルトの名無しさん
垢版 |
2022/03/23(水) 19:49:40.61ID:4ldsbCNM
k80とか外付けGPUBOXで正常動作すんのかな?
動作報告探してみたけど見つからないんでよくわからん
消費電力大きいし、使いたいときだけつないぎたい
0227デフォルトの名無しさん
垢版 |
2022/03/24(木) 04:46:34.26ID:A9GFlV37
課金がアクセス時間なのか正味のGPU駆動時間かわからんけど
8万だとほぼほぼ1ケ月やね。k80本体は6.7万ってのを見つけたわ
機材レンタルじゃないのでもっと上衣スペックのGPUサービスとか期待してチェックしたけど
目ん玉飛び出るぐらい高いね。もっと安くしてくれ
0231デフォルトの名無しさん
垢版 |
2022/04/15(金) 16:37:56.16ID:sD2CwuNi
CUDAてなんで3次元でスレッド管理するの?
DRAMが実装構造としては2次元でもアドレスでコーダがrow. columnは吸収して1次元で管理するように
スレッドもそうしちゃ駄目な理由を知りたい。
そもそも、3次元ってのとgrid, blockがなんの関係もないんじゃないの?
2次元を block として管理して
3次元の奥行が必要になった時点でgridが登場するならまだ理解できるんだけど。
しかも
threads/block = 1024 と少ない。こんなんじゃ32x32行列越えたら一挙にメンドクサイ
0234デフォルトの名無しさん
垢版 |
2022/04/16(土) 07:46:19.05ID:njc5gQYC
block,grid へのスレッドの割当て方とかでパフォーマンス変わりますか?
1000個のスレッドを起動したいとき、
block内だけで起動する方が速いのかいのか?
それとも
10個/grid, 100個/blockと分ける方が速いのか?
OpenCLでNVidiaがAMDほどパフォーマンスが上がらないのはスレッドの立ち上げかたで
癖のようなものがあるからってのはないですか?
block,gridってパーティションは単にソフトの問題なのかハード上の制約でこうしてるのかが知りたい
0235デフォルトの名無しさん
垢版 |
2022/04/16(土) 09:18:24.96ID:lq6dfVd7
変わるけど、今のGPUそんなん意識しなくても速いからいいだろ
Keplerまでは色々考えないと速くならんかったけど、Maxwell以降はそんな考えなくてもよくなったからおけ
0236デフォルトの名無しさん
垢版 |
2022/04/16(土) 10:42:24.69ID:njc5gQYC
なるほど
じゃblockとかgridとかのパーティションはその時々作成するアプリ側の都合で
作りやすいように自由に設定していいってことですね?
OpwnCL使うとCUDAより大分速度低下する理由は何ですかね?
AMDはOpenCLしかないけどNVidiaでCUDAで書いたのと遜色ないぐらいのベンチマーク出してるサイトがあったんですが。
単にNvidiaがOpenCLやる気ないだけ?
0237デフォルトの名無しさん
垢版 |
2022/04/16(土) 10:53:55.11ID:MoK8GTpb
昔ウチで試したときは同じGPUでCUDAとOpenCLはそんなに差は無かったがなぁ。
ものによってはOpenCLの方が速い場合もあったり。

そんなに差が出るのはバリバリにチューニングしたCUDAカーネルをOpenCLにベタ移植したとかかねぇ?
0238デフォルトの名無しさん
垢版 |
2022/04/16(土) 11:06:17.75ID:lq6dfVd7
厳密には、ハードウェアを意識するならちゃんと考えたほうがいい
あと適当に言ったけどさすがに今の世代でも1スレッドブロックしか立ち上げないとかだとめっちゃ遅いと思う
GPUの並列性を埋めるなら、1SMに対して複数のスレッドブロックを当てられるぐらいであり、全SMに対してそれができるぐらい、つまり数万スレッドを立ち上げた方がいい
とはいえレジスタ数との兼ね合いもあるからそこはバランスを見て
0239デフォルトの名無しさん
垢版 |
2022/04/16(土) 11:11:10.82ID:lq6dfVd7
OpenCLとCUDAに本質的な速度の差はないよ。最適化がどれぐらいかかるかの違いじゃない?
一般的な使い方をするならOpenCLはオンラインコンパイルだからあんま最適化かからんけど、CUDAなら最適化がかかるとかそういう感じ
0241デフォルトの名無しさん
垢版 |
2022/04/16(土) 11:52:05.37ID:MoK8GTpb
一般にはオンラインコンパイラの方がその環境に合わせた最適化ができると思うがな。
NVIDIAがどこまでやってくれているかは知らないがIntel OpenCLは頑張っていた印象。
0245デフォルトの名無しさん
垢版 |
2022/06/29(水) 06:55:54.64ID:hJJv21MU
今月のIF誌GPUプログラム特集ですなー
AMDも含むけど
最近のIF誌Pythonとラスパイばっかでうんざりしてた
0246デフォルトの名無しさん
垢版 |
2022/07/03(日) 16:32:19.91ID:ZA7I4EsQ
IF誌読んだけど、
中級以上のCUSAプログラマ諸氏にはなんの価値もないです
意識してコーディングするとたちまち複雑化するシェアードメモリになんらかの言及があると思ったのですが、
サンプルプログラムはシェアードメモリで速度かせいでます。
だけでした
そんな解説なら俺でも出来るわ
0247246
垢版 |
2022/07/03(日) 16:32:51.51ID:ZA7I4EsQ
CUSA
じゃなく
CUDAです
0249デフォルトの名無しさん
垢版 |
2022/07/04(月) 13:18:06.68ID:/6oW4Zmu
と思うなら読んでみればいいよ
Nvidiaのプログラミングガイド以上の情報あったら教えて
0250デフォルトの名無しさん
垢版 |
2022/07/04(月) 14:20:47.70ID:QcH7dMjb
>>246
読んでねえしCUDA知らんけど、書くにしても
チャネルコンフリクトを避けるように書きましょう!
たとえばこうやってずれるように・・・
って程度じゃねえかなあ
0252デフォルトの名無しさん
垢版 |
2022/07/05(火) 12:33:18.52ID:hRE3by/z
cudaはグラボ2枚差し使えますか?
コンシューマ向きのグラボだとvramが24Gですが
48Gになれば購入したいです。
そもそもvram24Gもってる人でどんな処理をしてるのか
知りたいです。例えば深層学習で〇時間を▽というグラボで
こんだけ時間がかかるとか。
そういうデータがほしいです!
よろしく!
0253デフォルトの名無しさん
垢版 |
2022/07/05(火) 15:28:47.86ID:CUrAgxNd
とりあえず立ち読みしてくるわ
0254デフォルトの名無しさん
垢版 |
2022/07/05(火) 23:08:08.38ID:r9k68Dlj
>>252
A6000 (48GB) 使ってるけど pix2pix とかやったら画像1000枚でも数日かかるよ。
vgg16 とか mobilenet で数時間の学習が多いけど、画像集めるのに一週間かかる。
0255デフォルトの名無しさん
垢版 |
2022/08/08(月) 11:00:53.55ID:sinjC4yw
積分する関数をCUDAで書こうと思っています
リストのIntegrateのように関数テンプレートにすることで,
通常のC++であれば
呼び出し時に
被積分関数(ここではSinc)として
関数へのポインタでも,
ラムダ式でも
直接関数名を書いてもうまく動作させることができるのですが,
CUDAではうまくいかないようです.
もちろんIntegrateの中で被積分関数を直接記述すれば問題なく動作するのですが,
これだと毎回エディタでIntegrateの修正が必要になってきます.
呼び出し時の引数として被積分関数を与えるにはどーすればいいんでしょうか?
0256255
垢版 |
2022/08/08(月) 11:01:35.81ID:sinjC4yw
プログラム リストです
__global__
void
//__device__
//float
Sinc() {
printf("Ahyahya\n");
//return start;
}


template< typename Functor>
__global__
void
Integrate(Functor func){
func <<<1, 1024>>> ();
//Sinc << <1, 1024 >> > ();
__syncthreads();
}

int
main() {
Integrate <<<1, 1>>> (0, 10, Sinc);
//Sinc << <1, 1024 >> > ();
}
0257255
垢版 |
2022/08/08(月) 11:59:44.42ID:sinjC4yw
main 中
誤 Integrate <<<1, 1>>> (0, 10, Sinc);
正 Integrate <<<1, 1>>> ( Sinc );

プログラムリストのコピペ時 0,10, を消すの忘れてました
0258デフォルトの名無しさん
垢版 |
2022/08/08(月) 14:22:43.82ID:6PldGrDe
すまんが、MacやdGPUのないWindowsノートでコード書けたらいいなと思うんだけどさ
CUDAを扱えるオンラインIDEとかエミュレーターとかなんかないもんなのかな?
0259デフォルトの名無しさん
垢版 |
2022/08/08(月) 16:23:48.54ID:XhYLtnJ4
>>256
最近CUDA使ってないから間違ってるかもしれんが、__global__がついた関数からは__device__しか呼べなかったきがする。__global__関数から__global__が呼べるかちゃんとマニュアルで確認しよう。
0260デフォルトの名無しさん
垢版 |
2022/08/08(月) 16:31:00.99ID:XhYLtnJ4
>>258
google colaboratoryのGPUインスタンスで昔ちょっとしたCudaのコードを動かしたことはある。
基本はpythonで動かすことが前提なのでちょっと面倒なことしないとCのコードは動かせなかった。
後有料アカウントしないとGPUインスタンスに制限時間がつくかも。
0261デフォルトの名無しさん
垢版 |
2022/08/09(火) 09:01:04.67ID:NQSwSFSX
>>259
いや__global__から__global__を呼ぶことは何も問題ない
>>256のリストにある関数Integrateの中でコメントアウトしてる部分がそれ,
直接呼ぶのは何も問題ないのに, ファンクタとして間接的に呼べないんで困ってる
0264デフォルトの名無しさん
垢版 |
2022/08/09(火) 13:15:46.68ID:FuYE0Ba9
せんきゅー!
Colaboratoryは怪しいことをしてると警告が出てビビっちゃうし、AWSは高いし、コードを書く時点で契約するには勇気がいるな・・・・
0266デフォルトの名無しさん
垢版 |
2022/08/12(金) 22:53:57.30ID:m8p3x/l6
んなもん使うぐらいならふつーにx64でコード書いたほうがよっぽどいい
エンベ用途でもないのに何を好んでわざわざワンボードマイコンで計算せにゃならんのだ
0267デフォルトの名無しさん
垢版 |
2022/08/13(土) 00:14:35.60ID:13DWsM+a
>>266
小さいものを愛でる気持ちがないのかな?
お金が掛からないしGPIO使えるし。
GPUの性能が今売ってるGPUよりかだいぶ低いけど。
普通のPCからクロスコンパイルもできるらしいよ。
0268デフォルトの名無しさん
垢版 |
2022/08/13(土) 22:01:46.34ID:h81CLsAE
文脈から想像するに>>264はCPUよりGPU計算が速いことを期待して
ノートからGPUを使ってみたいんだろうよ
それを単にCUDAが乗ってるだけでx64のマルチコアに遠く及ばないワンボードマイコンごときのGPUを何のためにわざわざ使う必要があるんだ?

組込用途とかでこれまでFPGA起こしたりASIC起こしたりしてた部分で
ワンボードマイコンのGPUが代わることもあるだろう.
実際、産業機械にRasPiをまんま組込む用途も増えてる
しかし、どーかんがえてもそっち系じゃない>>264にワンボードマイコンすすめてどーすんだって話
0269デフォルトの名無しさん
垢版 |
2022/08/14(日) 11:31:10.95ID:VI2zLni0
M5StickV 薦めてる香具師がいた
0270264
垢版 |
2022/08/14(日) 13:40:06.95ID:p/YIGTAI
コードを手元で書いて、実際に計算する際は実機を用意するかAWSを借りるつもりでいます
ただコードを書くだけの段階でAWSを借りると負担なので、何かいい方法があればいいなと思った次第です
0273デフォルトの名無しさん
垢版 |
2022/08/17(水) 01:02:58.66ID:V/z4ESnc
Dynamic Parallelism で親スレッドと子スレッドの属するブロックを
同一ブロックに属するような指定はできますか?
同一ブロックにして親スレッドが確保したShared Memory を子スレッドからアクセスしたいんだですが.
0274デフォルトの名無しさん
垢版 |
2022/08/17(水) 01:38:27.72ID:V/z4ESnc
訂正です
○同一ブロックにして親スレッドが確保したShared Memory を親スレッドからアクセスしたいんですが.

myKernel<<<gridSize, blockSize, nI*sizeof(int))>>>(...);

親スレッドで確保して子スレッドに引き渡すnI*sizeof(int)サイズのshared memoryですが
この領域を親スレッドからアクセスできないんでしょーか?
0275273,274
垢版 |
2022/08/17(水) 08:15:14.36ID:GVtrukEl
事故レスです
そもそも親子スレッド間でグローバルメモリのローカル変数の参照渡しが無理らしい
ローカル変数なんかやめにして、大域変数にして__device__つけろとorz
当然のごとくshared memoryもだめっぽい

C++でUser I/Fを使いやすく仕上げたいと思ってたけど
そーゆーおしゃれなことは
いろんな制限が頭に入っるまでは素直にゴリゴリCで書いてたほうがよさそう
0276デフォルトの名無しさん
垢版 |
2022/08/27(土) 12:49:33.14ID:shuaF+y6
__global__のなかでnew,delete使えるので
もしやと思ってmake_unique使おうとしたらだめだった
0277デフォルトの名無しさん
垢版 |
2022/08/27(土) 13:08:06.52ID:shuaF+y6
make_unique以前にstd::unique_ptrの時点でだめだったわ
cudaMalloc使ったunique_ptrバージョンはネットで公開してる人いるのめっけた
https://proc-cpuinfo.fixstars.com/2019/02/cuda_smart_pointer/

host側からgpuメモリ確保したいならコレでいいけど
__global__の中で使うmalloc,freeはGPUメモリを使うバージョンが正しくリンクされるので
malloc, free使って各関数は__device__指定すれば,
cuda::unique_ptrで正しく使えるのかな?
0278デフォルトの名無しさん
垢版 |
2022/08/30(火) 17:35:41.58ID:BUcEB6jI
cudaMallocやcudaFreeってのはホスト側からGPUとのインターフェース用として
プログラムの中で1度呼ぶだけなんだよね
GPUへの初期設定メモリ inmem
GPUの計算結果 outmem
として
ホスト側で
kernel<<<1,1>>>(inmem, outmem);
を立ち上げる際 この前後でcudaMalloc, cudaMemcpy, cudaFreeを使うだけ
kernel関数で一旦制御をGP側に移したあと
おもむろにDynamic Parallelism を使ってkernel関数の中からマルチスレッドを起動する方がよっぽど書きやすい
new/deleteは__global__関数のなかで自由に使えるので
cudaMalloc/cudaFreeにuniqu_ptr使えてもあんま有り難みは少ないな
レスを投稿する


ニューススポーツなんでも実況