>>377
いちいちも何も
body1<<< Ki, Ki >>> ( idata, odata1 ); //マルチスレッド実体
cudaDeviceSynchronize();
body2<<< Ki, Ki >>> ( odata1, odara2 ); //マルチスレッド実体
cudaDeviceSynchronize();
body2の処理開始はbody1の計算終了が前提としたプログラムのつもりで書いてるのでこの場合は必ず必要なわけで
この2つのの同期は
マルチスレッド起動箇所がホスト側ならホストで
マルチスレッド起動箇所がgpu側ならgpuでやることが必須なんだが
gpuの側でやる意味はふつーに_global__関数の中で, ローカルメモリの管理にnew/delete使えること
cpuのアクセラレータとしてGPUを使うんじゃなくGPUだけで完結するならこう書くでしょーよ
わざわざcpu側に制御戻す必要なく処理速度が落ちるわけじゃない.
それどころかはるかにプログラムの見通しもよくなるんだから
探検
【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]©2ch.net
379デフォルトの名無しさん
2023/06/16(金) 10:37:03.14ID:VMczRTMU380デフォルトの名無しさん
2023/06/16(金) 20:00:03.41ID:duxPCvpi 丸々一ヶ月経ってもまだ躓いてるのかw
せっかくアドバイス貰っても理解する気がないならしょうがないな。
せっかくアドバイス貰っても理解する気がないならしょうがないな。
381デフォルトの名無しさん
2023/06/16(金) 23:41:50.06ID:T6+41XgS >>379
dynamic parallelismがどうたらイキってた輩が実はstreamすらろくに理解していなかったという
dynamic parallelismがどうたらイキってた輩が実はstreamすらろくに理解していなかったという
382デフォルトの名無しさん
2023/06/17(土) 09:32:02.85ID:6mG7lpSl そもそもShared Memoryが云々の話とこれ全く関係ないし、unique_ptrがどうとか誰も聞いてないし、ただイキってクソコード書いてるnoobにしか見えん
383デフォルトの名無しさん
2023/06/30(金) 06:45:59.93ID:HGq0NS3h >>381
streamてCPUとGPUの協調のこと言ってるの?
協調はこの際,まったく関係ないんだが,
CPUからGPUに制御を移して完全にCPUとは分離する話をしてんの
そのほうが遥かにプログラムが楽に簡潔に書けるからそれを言ってる.
GPUのほうが8倍から1桁速度が速いので実験的な計算ならこれで十分な速度が得られる
CPUとの協調とか難しいプログラムを書くんじゃなく
GPUだけで計算を完結させるためにDynamic Parallelismを使う
Dynamicに並列化したいわけじゃなくGPUのプロセスを一つ立ち上げたいためにそれを使う
streamてCPUとGPUの協調のこと言ってるの?
協調はこの際,まったく関係ないんだが,
CPUからGPUに制御を移して完全にCPUとは分離する話をしてんの
そのほうが遥かにプログラムが楽に簡潔に書けるからそれを言ってる.
GPUのほうが8倍から1桁速度が速いので実験的な計算ならこれで十分な速度が得られる
CPUとの協調とか難しいプログラムを書くんじゃなく
GPUだけで計算を完結させるためにDynamic Parallelismを使う
Dynamicに並列化したいわけじゃなくGPUのプロセスを一つ立ち上げたいためにそれを使う
384デフォルトの名無しさん
2023/06/30(金) 06:53:13.13ID:HGq0NS3h >>380
何のアドバイス?ww
GPUプロセスの中で全プロセスどうやってwaitするのさw
ま, cudaのユーザサイトには代替案とか書いてる人いるよ
cudaDeviceSynchronize()と比較して速度は期待できないが一応使える.
せめてそれぐらいのアドバイスできるようになってから言いな.
俺のようなコード書いてGPUプロセスの中からcudaDeviceSynchronize()コールしてるユーザは一定数いるってこった
どーせ__global__でnew/deleteふつーに使えること知らんかったんだろお前ww
何のアドバイス?ww
GPUプロセスの中で全プロセスどうやってwaitするのさw
ま, cudaのユーザサイトには代替案とか書いてる人いるよ
cudaDeviceSynchronize()と比較して速度は期待できないが一応使える.
せめてそれぐらいのアドバイスできるようになってから言いな.
俺のようなコード書いてGPUプロセスの中からcudaDeviceSynchronize()コールしてるユーザは一定数いるってこった
どーせ__global__でnew/deleteふつーに使えること知らんかったんだろお前ww
385デフォルトの名無しさん
2023/06/30(金) 07:16:01.83ID:HGq0NS3h >>382
誰も聞いてないunique_ptrて
CPU側でGPUのマルチスレッド実体を起動しようとすると,
GPU内部でしか利用しないローカルメモリまでCPUから管理する羽目になる
そのときcudamalloc/cudafreeなんか使ってたんじゃメモリ管理が大変で,
gpu::unique_ptrでも作らないとCコード書いてるのと変わらんことになるから言ってる
そんなことせずとも__global__でnew/deleteがデフォで使えるんだからメモリ管理はC++03並には書ける
__global__でnew/deleteを使ってGPUだけで完結処理するには
親スレッドの__global__内で子スレッドの待ち合わせ処理がどうしても必要になる場合があるから言ってる
できるもんなら>>374のcudaDeviceSynchronize(); を同等処理に置き換えてみ
あ, すでに cudaのユーザーサイトに投稿してる人が居るんで探せばしまいだけどねww
誰も聞いてないunique_ptrて
CPU側でGPUのマルチスレッド実体を起動しようとすると,
GPU内部でしか利用しないローカルメモリまでCPUから管理する羽目になる
そのときcudamalloc/cudafreeなんか使ってたんじゃメモリ管理が大変で,
gpu::unique_ptrでも作らないとCコード書いてるのと変わらんことになるから言ってる
そんなことせずとも__global__でnew/deleteがデフォで使えるんだからメモリ管理はC++03並には書ける
__global__でnew/deleteを使ってGPUだけで完結処理するには
親スレッドの__global__内で子スレッドの待ち合わせ処理がどうしても必要になる場合があるから言ってる
できるもんなら>>374のcudaDeviceSynchronize(); を同等処理に置き換えてみ
あ, すでに cudaのユーザーサイトに投稿してる人が居るんで探せばしまいだけどねww
386デフォルトの名無しさん
2023/06/30(金) 08:24:20.23ID:pBAX8tCp 俺はCUDA使ったこと無いんだけど
>__global__でnew/deleteを使ってGPUだけで完結処理
これって思い込みじゃねえかなあ
>__global__でnew/deleteを使ってGPUだけで完結処理
これって思い込みじゃねえかなあ
387デフォルトの名無しさん
2023/06/30(金) 11:03:40.92ID:HGq0NS3h >>386
作ったことないんだろww
こっちは書いてるから言ってる.
>>374を見ろ
この構成の場合がそれに該当する
CPUはgpu内でnew/deleteに使う最大値のみ設定する.デフォルトは小さいんでな
例えば
1.GPUで用意してる数学関数だけでできる数値計算
2.信号もノイズも乱数から作るモンテカルロ・シミュレーション
要はファイルやなんらかのデバイス,ネットから読み込んでその処理をGPUに転送する場合は
CPUは無関係じゃいられないが, 上のような場合はGPUだけで計算可能だ.
具体例として
1. f(x) = ∫_0^x sin(t)/t dt 0<= x <= 10 を計算して計算結果をファイルにセーブする
2. ある変調方式のエラーレートをシミュレーションで計算し. ファイルにセーブする.
これらならCPUとほぼ無関係に計算できる ファイルや外部デバイスからデータを読み込んでくる必要がないんでね.
あと__global__でのprintfはふつーにリダイレクトが有効. GPU内でファイルオープンとかの必要もなくファイルに落とせる
ま,これらは極端な例だが, 最低限, 初期値とか処理データ, GPUで計算終了後の
GPU-CPU間のインターフェース用メモリのみcudamalloc/dudafreeで管理してやればよくて
GPU内部だけで使うようなメモリはCPU側で一切管理する必要がなくなる.
gpu内ではC++03レベルのnew/deleteしか使えないけどな.
作ったことないんだろww
こっちは書いてるから言ってる.
>>374を見ろ
この構成の場合がそれに該当する
CPUはgpu内でnew/deleteに使う最大値のみ設定する.デフォルトは小さいんでな
例えば
1.GPUで用意してる数学関数だけでできる数値計算
2.信号もノイズも乱数から作るモンテカルロ・シミュレーション
要はファイルやなんらかのデバイス,ネットから読み込んでその処理をGPUに転送する場合は
CPUは無関係じゃいられないが, 上のような場合はGPUだけで計算可能だ.
具体例として
1. f(x) = ∫_0^x sin(t)/t dt 0<= x <= 10 を計算して計算結果をファイルにセーブする
2. ある変調方式のエラーレートをシミュレーションで計算し. ファイルにセーブする.
これらならCPUとほぼ無関係に計算できる ファイルや外部デバイスからデータを読み込んでくる必要がないんでね.
あと__global__でのprintfはふつーにリダイレクトが有効. GPU内でファイルオープンとかの必要もなくファイルに落とせる
ま,これらは極端な例だが, 最低限, 初期値とか処理データ, GPUで計算終了後の
GPU-CPU間のインターフェース用メモリのみcudamalloc/dudafreeで管理してやればよくて
GPU内部だけで使うようなメモリはCPU側で一切管理する必要がなくなる.
gpu内ではC++03レベルのnew/deleteしか使えないけどな.
388デフォルトの名無しさん
2023/06/30(金) 11:07:50.35ID:HGq0NS3h389デフォルトの名無しさん
2023/06/30(金) 11:38:34.15ID:HGq0NS3h >>386
new/deleteが__global__内でふつーに使えるってことなら
cuda c programming guide 最新版の
7.34. Dynamic Global Memory Allocation and Operations
どっちが思い込みかね?ww
new/deleteが__global__内でふつーに使えるってことなら
cuda c programming guide 最新版の
7.34. Dynamic Global Memory Allocation and Operations
どっちが思い込みかね?ww
390デフォルトの名無しさん
2023/06/30(金) 18:28:44.41ID:h/tbEWPQ もしかしてNVIDIAのフォーラムでモデレータに I’m confused とか言われてんのコイツ?
391デフォルトの名無しさん
2023/06/30(金) 22:03:38.67ID:nvcNe2IT 炎上学習法かとも思ったが全然学習してる素振りもないのよなあ
>streamてCPUとGPUの協調のこと言ってるの?
ちょっとはググるなりしたらどうかね
> body1<<< Ki, Ki >>> ( idata, odata1 ); //マルチスレッド実体
> cudaDeviceSynchronize();
> body2<<< Ki, Ki >>> ( odata1, odara2 ); //マルチスレッド実体
body1とbody2は同じstreamだから基本的にそんなところにsynchronizeはいらんのよ
>streamてCPUとGPUの協調のこと言ってるの?
ちょっとはググるなりしたらどうかね
> body1<<< Ki, Ki >>> ( idata, odata1 ); //マルチスレッド実体
> cudaDeviceSynchronize();
> body2<<< Ki, Ki >>> ( odata1, odara2 ); //マルチスレッド実体
body1とbody2は同じstreamだから基本的にそんなところにsynchronizeはいらんのよ
392デフォルトの名無しさん
2023/06/30(金) 22:07:49.01ID:nvcNe2IT >そのときcudamalloc/cudafreeなんか使ってたんじゃメモリ管理が大変で,
これも意味不明だなあ
malloc/freeと比べてどう大変だと言うんだろう
これも意味不明だなあ
malloc/freeと比べてどう大変だと言うんだろう
393デフォルトの名無しさん
2023/06/30(金) 23:46:28.63ID:lTu2cFop 病気の人に関わってもいいことないですよ
394デフォルトの名無しさん
2023/07/02(日) 11:33:55.45ID:ZzvN3CPt 同期オブジェクトが出てないんだから、そりゃシリアルに動くやろうなあ
CUDA知らん
CUDA知らん
395デフォルトの名無しさん
2023/07/02(日) 14:47:53.06ID:tUgy2gS2 >>390
ゲラゲラ
それどこだよww
お前のプロファイル推定正しいかどうか見てから発表してやるよ
さらせよソコをよww
>>391
12.2 プログラムガイド pp47
For code that is compiled using the --default-stream legacy compilation flag, the default stream
is a special stream called the NULL stream and each device has a single NULL stream used for all
host threads. The NULL stream is special as it causes implicit synchronization as described in Implicit
Synchronization.
For code that is compiled without specifying a --default-stream compilation flag,
--default-stream legacy is assumed as the default.
11.4以降 --default-streamは非推奨. 当然このオプションはデフォルトでなくなり,
暗黙の同期ストリームであるNull streamはデフォルトではなくなった.
つまり, ストリームは何も指定しなければ非同期ストリームとなった
同期ストリームとなることを保証したい場合, 当然cudaStreamSynchronize()で挟むだろうが
そのすぐ下の6.2.8.5.3 Explicit Synchronizationも読んどけよ
コロコロ変わるデフォのコンパイルオプションに頼るお前
>>392
freeが毎回書いてられないといってるわけ. それとcudafreeが同じなのは当たり前な
だからホスト側ではgpu用のgpu::unique_ptrとかユーザ側でこさえてるんだろが.
これを書いてるサイトはいくらでもある.
__global__内ではこういうmake_uniqueは動かないのでc++11レベルでは書けないが,
普通にnew/deleteやC++03レベルのデストラクタが動作するので,
ホスト側でgpuのローカルメモリの解放を手でやらかすよりよほど楽だと言ってるのだよ.
ゲラゲラ
それどこだよww
お前のプロファイル推定正しいかどうか見てから発表してやるよ
さらせよソコをよww
>>391
12.2 プログラムガイド pp47
For code that is compiled using the --default-stream legacy compilation flag, the default stream
is a special stream called the NULL stream and each device has a single NULL stream used for all
host threads. The NULL stream is special as it causes implicit synchronization as described in Implicit
Synchronization.
For code that is compiled without specifying a --default-stream compilation flag,
--default-stream legacy is assumed as the default.
11.4以降 --default-streamは非推奨. 当然このオプションはデフォルトでなくなり,
暗黙の同期ストリームであるNull streamはデフォルトではなくなった.
つまり, ストリームは何も指定しなければ非同期ストリームとなった
同期ストリームとなることを保証したい場合, 当然cudaStreamSynchronize()で挟むだろうが
そのすぐ下の6.2.8.5.3 Explicit Synchronizationも読んどけよ
コロコロ変わるデフォのコンパイルオプションに頼るお前
>>392
freeが毎回書いてられないといってるわけ. それとcudafreeが同じなのは当たり前な
だからホスト側ではgpu用のgpu::unique_ptrとかユーザ側でこさえてるんだろが.
これを書いてるサイトはいくらでもある.
__global__内ではこういうmake_uniqueは動かないのでc++11レベルでは書けないが,
普通にnew/deleteやC++03レベルのデストラクタが動作するので,
ホスト側でgpuのローカルメモリの解放を手でやらかすよりよほど楽だと言ってるのだよ.
396デフォルトの名無しさん
2023/07/02(日) 19:20:21.21ID:nj7sKJew >>395
いや、それストリーム間の同期の話であって同じストリームに投入したカーネルの実行の話とは関係ないんだが。
いろいろ検索したりしたんだろうけどここ勘違いするようなレベルでイキりまくられても。
もともとは cudaDeviceSynchronize がデバイス上で非推奨になるんで代替策をどうするかって話だったと思うけど、
「自分は間違ってない」と強弁するだけならそりゃ2ヶ月近く解決しないわけだわ。
いや、それストリーム間の同期の話であって同じストリームに投入したカーネルの実行の話とは関係ないんだが。
いろいろ検索したりしたんだろうけどここ勘違いするようなレベルでイキりまくられても。
もともとは cudaDeviceSynchronize がデバイス上で非推奨になるんで代替策をどうするかって話だったと思うけど、
「自分は間違ってない」と強弁するだけならそりゃ2ヶ月近く解決しないわけだわ。
397デフォルトの名無しさん
2023/10/20(金) 12:42:50.23ID:/M3RKJCH NVIDIA中國から撤退
398デフォルトの名無しさん
2023/12/07(木) 06:26:05.21ID:R1AO2r8W PCくそど初心者で、オーディオをやっている者です。
現在PC(linux)でHQplayerというソフトで音楽ききてます。
そのPCにグラボ刺したら音質上がるなんてガセネタつかまされたんで、騙されてみようと思うのですが、その際CUDAの設定しないとGPUが使われないということのようなのです。
調べたら、ドライバー、ツールキット、cuDNNの3つをインストールするみたいなのですが、最後のcuDNNの意味がわかりません。
有識者の方、どうかご教授下さい!
現在PC(linux)でHQplayerというソフトで音楽ききてます。
そのPCにグラボ刺したら音質上がるなんてガセネタつかまされたんで、騙されてみようと思うのですが、その際CUDAの設定しないとGPUが使われないということのようなのです。
調べたら、ドライバー、ツールキット、cuDNNの3つをインストールするみたいなのですが、最後のcuDNNの意味がわかりません。
有識者の方、どうかご教授下さい!
399デフォルトの名無しさん
2023/12/10(日) 12:43:06.09ID:9z8kD1aM >>398
他人の作った何をやっているかわからないプログラムを使うより
音とプログラミングとCUDAについて勉強して
自分で音質を上げるプログラムを作ったほうがよいと思うよ。
本屋とかアマゾンでそういう専門書も探せば見つかるでしょ。
他人の作った何をやっているかわからないプログラムを使うより
音とプログラミングとCUDAについて勉強して
自分で音質を上げるプログラムを作ったほうがよいと思うよ。
本屋とかアマゾンでそういう専門書も探せば見つかるでしょ。
400デフォルトの名無しさん
2023/12/13(水) 06:47:58.97ID:YKWD9gfa >>399
398です。
なるほど、そういう方法もあるのですね。
自分で勉強してプログラムのことまで理解するなんて大変そうですが、根本を理解していないと使う意味ないですもんね。
大変そうですが、チャレンジしてみます。
ありがとうございました。
398です。
なるほど、そういう方法もあるのですね。
自分で勉強してプログラムのことまで理解するなんて大変そうですが、根本を理解していないと使う意味ないですもんね。
大変そうですが、チャレンジしてみます。
ありがとうございました。
401デフォルトの名無しさん
2024/01/13(土) 07:53:38.21ID:Ce28ohDx RTX4090よりA4000をおすすめしてる所がありますが、これは長期稼働の安定性と低消費電力が理由でしょうか。
lstmで出来るだけ早く学習させたいのですが4090の方が早そうですがいかがですか。
lstmで出来るだけ早く学習させたいのですが4090の方が早そうですがいかがですか。
402デフォルトの名無しさん
2024/03/14(木) 19:33:05.60ID:LpPl9eeZ 自己解決
webページ作成者に聞いた
4090の方が速いが、例えば3時間が4時間になったところでたいした違いはないでしょうとか
いくつものパターンを試したいので少しでも早いものをってことで4090を買った
webページ作成者に聞いた
4090の方が速いが、例えば3時間が4時間になったところでたいした違いはないでしょうとか
いくつものパターンを試したいので少しでも早いものをってことで4090を買った
403デフォルトの名無しさん
2024/10/12(土) 23:57:12.31ID:g42aTpjG faster_whisperがGTX1660で6.8倍に高速化した
動画のハードエンコードみたいなことしてる訳でもないのに、なんでこんなに効くんだろう
動画のハードエンコードみたいなことしてる訳でもないのに、なんでこんなに効くんだろう
404デフォルトの名無しさん
2025/05/03(土) 21:22:39.00ID:GOrfAv9r CUDAを使うにはH100が必要なの?
405デフォルトの名無しさん
2025/05/03(土) 21:57:53.32ID:DmXNLEJI406デフォルトの名無しさん
2025/05/12(月) 20:36:49.62ID:QasGmRud clvkってなんか普通に記事あるけど魔境なやつ?
407デフォルトの名無しさん
2025/06/05(木) 17:19:33.94ID:O3mofczY wayland対応はよう
レスを投稿する
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国側が首相答弁の撤回要求、日本側拒否★3 [夜のけいちゃん★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★7 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★6 [ぐれ★]
- ネトウヨ「中国のものは何もいらない!」 中国人「だったら漢字を使わないでください」 [314039747]
- 【速報】春節の飛行機も欠航ラッシュ 高市早苗終了か [695089791]
- 【悲報】中国から輸入した物を食べ、輸入した服を着て、輸入したスマホ弄ってる日本人「中国と戦争するぞ!」 [616817505]
- リアルで下ネタ言える人すごい 恥ずかしさが勝って言えない
- 【悲報】高市さん、消える [535650357]
- 喉と頭が痛くて高熱が出て関節痛もひどいんだけど
