【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]©2ch.net (407レス)
【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1465969275/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [sage] 2016/06/15(水) 14:41:15.11 ID: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/ http://mevius.5ch.net/test/read.cgi/tech/1465969275/1
308: デフォルトの名無しさん [sage] 2022/10/26(水) 11:45:49.61 ID:Gwv5fEeF cudaは別にコンパイルしてC#から呼べば?このほうが調べやすそう http://mevius.5ch.net/test/read.cgi/tech/1465969275/308
309: デフォルトの名無しさん [sage] 2022/10/26(水) 12:52:17.28 ID:XY9sqarF 趣味でやっているだけなので調べてすぐにできればいいと思ったんですよ。 >>304でGPU側で計算した結果を渡すだけなのにそれを乗せてるウェブサイトが見つからないなんて、そんな手間な作業なの? http://mevius.5ch.net/test/read.cgi/tech/1465969275/309
310: デフォルトの名無しさん [sage] 2022/10/26(水) 13:29:27.83 ID:Gwv5fEeF >>309 cpuとgpuで別々のメモリを見てるんで >>302 のようなことが必要です http://mevius.5ch.net/test/read.cgi/tech/1465969275/310
311: デフォルトの名無しさん [sage] 2022/10/26(水) 16:16:55.85 ID:Gl6HUSuY CUDA本体はC言語かC++言語で使う前提なのでそれらの言語ならサンプルコードや情報がたくさん見つかるんだけど。 C#からCUDA使うとなるとマイナーなライブラリを使うことになって情報を見つけづらいかもしれない。英語の情報までくまなく調べればそうじゃないのかもしれないが。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/311
312: デフォルトの名無しさん [] 2022/10/26(水) 16:57:54.98 ID:2ajidUUz C#から使う場合は上にも書いた通り、cuda でdllを作成して C#からはDllImportで読み込む http://mevius.5ch.net/test/read.cgi/tech/1465969275/312
313: デフォルトの名無しさん [sage] 2022/10/26(水) 17:35:34.36 ID:XY9sqarF そうなんですね。ありがとうございます。 ライブラリが用意されているのでそれでできないのなら何のためのライブラリなのかと素人的には感じてしまいました。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/313
314: デフォルトの名無しさん [] 2022/10/26(水) 21:01:13.64 ID:8mk+cARY 出来ないかどうかはちゃんと調べないとわからないだろう 簡単に出来るかどうかはライブラリは保証しないよ、特にC#とCUDAみたいな組み合わせだったら。 めちゃくちゃ沢山のグルーコードをC++/CLIで書かなきゃいけないのを省略してくれる、ぐらいなもんでCUDAに対する理解なしに使える代物じゃないと思うけどな。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/314
315: デフォルトの名無しさん [sage] 2022/10/26(水) 23:22:43.17 ID:XY9sqarF すいません、↓にテストコードが載っていたのでそれを動かしたところ、GPUの計算結果を取り出せました。 お騒がせしました。 Alea GPUで簡単C# GPUプログラミング - Qiita https://qiita.com/y_miyoshi/items/921903e3499abf18abdd http://mevius.5ch.net/test/read.cgi/tech/1465969275/315
316: デフォルトの名無しさん [] 2022/11/26(土) 11:57:28.57 ID:BVUhPWJi CUDA初心者です。RTX2060 superでCUDA環境構築したいのですが、どうしてもcuda.is_availableの結果がFalseとなってしまいます。(Nvidiaのドライバ、Python・CUDA・Pytorchのバージョンを新しくしたり古くして見たり、CUDNN入れてもダメでした。) python -m torch.utils.collect_envで読み込みした現在の環境は下記の通りとなります。Trueとさせる方法がわからず、もう自分では完全に手詰まりとなっておりますので、ご教授頂けますと大変有難いです。 C:\Users\●●●>python -m torch.utils.collect_env Collecting environment information... PyTorch version: 1.13.0+cu116 Is debug build: False CUDA used to build PyTorch: 11.6 ROCM used to build PyTorch: N/A OS: Microsoft Windows 10 Pro GCC version: Could not collect Clang version: Could not collect CMake version: Could not collect Libc version: N/A Python version: 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] (64-bit runtime) Python platform: Windows-10-10.0.19045-SP0 Is CUDA available: False CUDA runtime version: 11.6.124 CUDA_MODULE_LOADING set to: N/A GPU models and configuration: GPU 0: NVIDIA GeForce RTX 2060 SUPER Nvidia driver version: 511.65 cuDNN version: Could not collect HIP runtime version: N/A MIOpen runtime version: N/A Is XNNPACK available: True Versions of relevant libraries: [pip3] numpy==1.23.5 [pip3] torch==1.13.0+cu116 [pip3] torchaudio==0.13.0+cu116 [pip3] torchvision==0.14.0+cu116 [conda] Could not collect http://mevius.5ch.net/test/read.cgi/tech/1465969275/316
317: デフォルトの名無しさん [] 2022/11/26(土) 12:10:47.07 ID:8YfGLTST pytorchはよく知らんけど toolkit入れた? cuda.is_availableてtorchのメッセージだよね? てな感じで全然情報不足だわな http://mevius.5ch.net/test/read.cgi/tech/1465969275/317
318: デフォルトの名無しさん [] 2022/11/26(土) 12:51:08.87 ID:GN65Kd03 そうです。Torchのメッセージです。 CUDA Toolkitなら入れてますね。 現在は11.6.2をインストールしています。 以下コマンドプロンプトの出力結果。 ■Nvcc -V で表示される内容 nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Tue_Mar__8_18:36:24_Pacific_Standard_Time_2022 Cuda compilation tools, release 11.6, V11.6.124 Build cuda_11.6.r11.6/compiler.31057947_0 ■print(torch.__version__)で表示される内容 1.13.0+cu116 ■torch.cuda.is_available()で表示される内容 False 過去にcuda_11.3.1とか10.2をツールキットからインストールした事もありますが、それでもダメでした。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/318
319: デフォルトの名無しさん [] 2022/11/26(土) 12:53:48.55 ID:8YfGLTST まずcudaは動いてるの? devicequeryとかsampleのプログラムが動くかどうか確認して問題なければ torch周りの問題かと http://mevius.5ch.net/test/read.cgi/tech/1465969275/319
320: デフォルトの名無しさん [] 2022/11/26(土) 22:03:13.46 ID:GN65Kd03 ありがとうございます! サンプル試したことなかったのでやってみました。 https://github.com/NVIDIA/cuda-samples/releases 上記サイトからCUDA Samples v11.6をダウンロードして、VisualStudio2017.slnをビルド ビルド結果:ビルド: 175 正常終了、11 失敗、0 更新不要、0 スキップ(ただしビルド文書の中にいくつか失敗という文字あり) deviceQueryをコマンドプロンプトから実行したところ・・・。 cudaGetDeviceCount returned 100 -> no CUDA-capable device is detected Result = FAIL という結果だったので、CUDA対応デバイスが検出されていないようです・・・。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/320
321: デフォルトの名無しさん [] 2022/11/26(土) 22:06:59.94 ID:GN65Kd03 あっ、ビルド結果、11個失敗しているって意味なんですね・・・。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/321
322: デフォルトの名無しさん [sage] 2022/11/26(土) 23:52:01.01 ID:HQ9nVBdA GPUがちゃんと刺さって無いとか、電源不足とかドライバがちゃんとインストールされてないとか。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/322
323: デフォルトの名無しさん [] 2022/11/28(月) 08:14:28.58 ID:MM544pas ん〜、GPU自体は認識されてるみたいなんですよね。 GPU-Zで調べてみたらCUDAのところチェック外れてたので、やはりCUDAは認識されていないみたいです。 https://gpuz.techpowerup.com/22/11/27/e6p.png 現在の電源は550Wなのですが、もうちょっと大きい容量のに変えてみて、それでダメならやはりドライバが合っていないという事でしょうか・・・。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/323
324: デフォルトの名無しさん [] 2022/11/28(月) 08:33:47.92 ID:D2ZVp0By gpu-zはハードウェア情報なのでcudaのチェックが外れてるって 何かがかなりおかしい 20年前のgeforceなら分からんでもないがRTXなら 偽物をつかまされたか、ハードウェア故障を疑った方が良い気がする http://mevius.5ch.net/test/read.cgi/tech/1465969275/324
325: デフォルトの名無しさん [] 2022/11/28(月) 08:52:47.95 ID:FFe6eh0R まずはsystem32にnvcuda.dll があるかどうか確認するかな http://mevius.5ch.net/test/read.cgi/tech/1465969275/325
326: デフォルトの名無しさん [] 2022/11/28(月) 12:53:30.32 ID:MM544pas 316です。 Sytem32にnvcuda.dll入ってました。 やはりハードウェアの故障でしょうか? (今のGPUは約2年前にドスパラで買いました) とりあえず電源ユニット注文しちゃったんで、電源交換&GPUも付け直してみて、それでダメだったら新しいGPU購入ですかね(T_T) http://mevius.5ch.net/test/read.cgi/tech/1465969275/326
327: デフォルトの名無しさん [] 2022/12/02(金) 20:33:45.27 ID:2cIkFTzc グラボを3060TIに変えてみましたが、それでもGPU-ZでCUDAにチェックが入っていませんでした・・・。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/327
328: デフォルトの名無しさん [] 2022/12/02(金) 20:51:14.24 ID:NwS5Fypu あとはマザボかね~??? http://mevius.5ch.net/test/read.cgi/tech/1465969275/328
329: デフォルトの名無しさん [] 2022/12/02(金) 20:53:44.01 ID:NwS5Fypu 差す穴変えてみた? http://mevius.5ch.net/test/read.cgi/tech/1465969275/329
330: デフォルトの名無しさん [sage] 2022/12/02(金) 21:26:41.40 ID:xlTggD6P 12V繋いでないってことはないよな http://mevius.5ch.net/test/read.cgi/tech/1465969275/330
331: デフォルトの名無しさん [] 2022/12/02(金) 22:03:05.09 ID:2B2OMrFT >>326 Linuxでも入れて確認してみたら? http://mevius.5ch.net/test/read.cgi/tech/1465969275/331
332: デフォルトの名無しさん [] 2022/12/02(金) 22:11:35.41 ID:2cIkFTzc 接続するPCIEスロットも変えてみましたが・・・ダメでした。 グラボ上部にある補助電源?用のケーブルはちゃんと繋いでるはずなのですが、他に必要な接続とかあるんでしょうか? 現状のGPU-Zでの結果 https://gpuz.techpowerup.com/22/12/02/pn6.png http://mevius.5ch.net/test/read.cgi/tech/1465969275/332
333: デフォルトの名無しさん [sage] 2022/12/03(土) 06:08:21.14 ID:9AvqKyUf OpenGL, DirectX, vulkanとかのグラフィッ関係のAPIを使ったプログラムやゲームも動かないの? 本当にハードウェア関係に問題があるんならそういうプログラムも動かないだろうけど。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/333
334: デフォルトの名無しさん [sage] 2022/12/03(土) 12:15:17.56 ID:s9fm/abx 他のGPU全部殺してドライバアンインストール 3060Tiのドライバ入れなおせ http://mevius.5ch.net/test/read.cgi/tech/1465969275/334
335: デフォルトの名無しさん [sage] 2022/12/03(土) 12:19:52.15 ID:Xj+KmoE3 別のドライブにOSクリーンインストールしてみれば http://mevius.5ch.net/test/read.cgi/tech/1465969275/335
336: デフォルトの名無しさん [] 2022/12/04(日) 11:39:28.03 ID:2Pwe8xJ8 >>329 http://mevius.5ch.net/test/read.cgi/tech/1465969275/336
337: デフォルトの名無しさん [] 2022/12/06(火) 21:28:34.09 ID:VA2y8qjn 316です。 思い切ってCドライブ初期化してみたらCUDA認識されました。 皆さんありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/337
338: デフォルトの名無しさん [] 2022/12/06(火) 22:09:54.37 ID:lBiSjHRF 経験上、一番難しいと感じたのはpython listとかタプルとかデータ型が沢山あってこの変換がやたら発生 pandaとnumpyでも型が違うとか torchは経験ないけどtensorflowは理屈が分かればそれほど難しくないと思う http://mevius.5ch.net/test/read.cgi/tech/1465969275/338
339: デフォルトの名無しさん [] 2022/12/07(水) 02:07:47.36 ID:imjH6UhZ >>338 普通にC++の方が難しいと思うけど、どんな言語を試した経験上なの? http://mevius.5ch.net/test/read.cgi/tech/1465969275/339
340: デフォルトの名無しさん [] 2022/12/07(水) 06:20:47.46 ID:YHin935u もしかしてCUDAでC++を覚えようとしてるの? CUDAはCの知識でもできるけどCは? http://mevius.5ch.net/test/read.cgi/tech/1465969275/340
341: デフォルトの名無しさん [] 2022/12/07(水) 13:28:40.27 ID:wqy1K1SQ C++は変態過ぎて 経験豊富ならべつにC++かまわんが 経験無いならCからやった方が良い http://mevius.5ch.net/test/read.cgi/tech/1465969275/341
342: デフォルトの名無しさん [] 2022/12/07(水) 17:47:48.05 ID:4gcyj4i9 >>341 Cは便利じゃないけど、確実だよね。マイコンとかでC++を使うのは、開発時間が十分に取れるなら(慣れてるなら)いいけど、処理系の変な制限にハマりそうで怖くて使えないわ。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/342
343: デフォルトの名無しさん [sage] 2022/12/23(金) 20:34:26.37 ID:ovzWFFv+ 処理系の変な制限て何? http://mevius.5ch.net/test/read.cgi/tech/1465969275/343
344: デフォルトの名無しさん [sage] 2022/12/23(金) 20:38:43.13 ID:ovzWFFv+ 小規模マイコンでもC++は便利だぞ http://mevius.5ch.net/test/read.cgi/tech/1465969275/344
345: デフォルトの名無しさん [] 2022/12/27(火) 00:37:40.45 ID:szDr1TAR >>343 お気持ちC++実装でフル規格満たしてないとか普通にある。調べるのが手間すぎる。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/345
346: デフォルトの名無しさん [sage] 2022/12/27(火) 04:54:17.83 ID:Y8dS0LJm フル規格を満たしてない事が普通にあるのはCも同じ 恐くて使えないのは経験が少ないからだな http://mevius.5ch.net/test/read.cgi/tech/1465969275/346
347: デフォルトの名無しさん [sage] 2022/12/27(火) 13:10:12.33 ID:vQ4ixuph MSVCで作っておけば大体オッケー g++依存は死ぬ http://mevius.5ch.net/test/read.cgi/tech/1465969275/347
348: デフォルトの名無しさん [sage] 2022/12/28(水) 21:30:57.66 ID:VGHawTJO 今時C++で開発してる会社あるのかな? http://mevius.5ch.net/test/read.cgi/tech/1465969275/348
349: デフォルトの名無しさん [] 2022/12/28(水) 21:33:16.19 ID:IIYChppW 当然 高速処理が要求されるようなところはC/C++だよ http://mevius.5ch.net/test/read.cgi/tech/1465969275/349
350: デフォルトの名無しさん [] 2023/01/14(土) 11:12:05.67 ID:hF49Vv2k 質問です。 cudaの9.0バージョンで nvcc -V このようなことをうっても、一切反応しないです。 誰か教えてえらいひとーー! http://mevius.5ch.net/test/read.cgi/tech/1465969275/350
351: デフォルトの名無しさん [] 2023/01/14(土) 11:36:54.44 ID:ITBYYn4q >>一切反応しないです もう少し具体的に http://mevius.5ch.net/test/read.cgi/tech/1465969275/351
352: デフォルトの名無しさん [] 2023/01/14(土) 13:28:49.96 ID:HwrORXYU 無修正を観ても、一切反応しないです。 誰か教えてえろいひとーー! http://mevius.5ch.net/test/read.cgi/tech/1465969275/352
353: デフォルトの名無しさん [sage] 2023/01/23(月) 20:21:43.20 ID:VfNttDi/ NVIDIA HPC SDK使ってる人いる? windows版がないんだけどそのうちサポートされるんかね? http://mevius.5ch.net/test/read.cgi/tech/1465969275/353
354: デフォルトの名無しさん [sage] 2023/01/23(月) 20:47:20.55 ID:1CzktcoW HPC SDKになった2020年にはWindows版は翌年公開予定と言っていたけど, その記載もなくなったし永遠に出ない可能性が高いと思われる 当時とは違ってCUDA on WSL2でHPC SDKも使えるようになったから Windows需要もそこで解消されるし http://mevius.5ch.net/test/read.cgi/tech/1465969275/354
355: デフォルトの名無しさん [sage] 2023/01/25(水) 11:08:54.16 ID:/YL2yMwg >>354 詳しい人降臨キター 旧PGIのユーザはほぼLinuxばっかだったようだしWindowsは見捨てられたのかと思ったけど必ずしもそうじゃないのかな WSLで本当に性能出るの?ってのは気にはなるけど ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1465969275/355
356: デフォルトの名無しさん [sage] 2023/03/05(日) 20:30:51.25 ID:skhIF3To てst http://mevius.5ch.net/test/read.cgi/tech/1465969275/356
357: デフォルトの名無しさん [sage] 2023/03/05(日) 21:06:34.13 ID:skhIF3To 亀レス >>348 あるっしょ いくらでも, このまえいびられて死んだ三菱電機の社員は電気系でも物性系の修士出てるのに 会社に入ってC++まともに書けなくて死んだ 物性選んだ時点でプログラム苦手なのにいきなりC売り物用のC++コード書け, しかも,意地の悪い上司が適当なサンプルコードも見せてくれなきゃ死にたくなるかもな http://mevius.5ch.net/test/read.cgi/tech/1465969275/357
358: デフォルトの名無しさん [sage] 2023/05/14(日) 05:25:29.03 ID:EUIAlyu+ test http://mevius.5ch.net/test/read.cgi/tech/1465969275/358
359: デフォルトの名無しさん [sage] 2023/05/14(日) 06:02:02.90 ID:EUIAlyu+ おまえら教えろください cudaDeviceSynchronizeが将来サポート打ち切りになることが決定し, CUDA 12では既にオプションを指定しないとコンパイルできなくなっています. これの代替APIは何でしょうか? __global__関数内での待ち合わせ処理はどうすればいいのでしょう? 例 グローバルメモリに1M(1kx1k)の数値データがあります.そこから最大値を検索したい. プログラムとしては 1Mデータを1kごとにグループ分割します.合計1k個のグループができます. 1つのグループを1つのスレッドに割り当て最大値を検索します. 当然スレッド数も1k個立ち上げます. 各スレッドは割り当てられたグループの1k個の中から最大値を検索し,見つけた値をシェアードメモリに書き込みます. シェアードメモリもスレッド数と同じ1k個の配列から成リ, 各スレッドIDに紐づけされたアドレスに書き込みます. 例えばシェアードメモリを配列submaxとしたとき, submax[threadIDx.x] = each_group_max; みたいな感じです. このとき各スレッドの書き込み完了を待ち合わせるのにcudaDeviceSynchronizeを使います. 書き込み完了後, 特定スレッドIDをもつスレッド(例えばthreadIDx.x==0)だけが1k個のsubmax中の最大値を検索することで 1M個データの最大値が決まります これですとatomic関数を一切使わず高速処理が可能となります http://mevius.5ch.net/test/read.cgi/tech/1465969275/359
360: デフォルトの名無しさん [sage] 2023/05/14(日) 06:21:14.34 ID:EUIAlyu+ Dynamic parallelismでも使える実行時間測定関数でも キャプチャ直前にcudaDeviceSynchronize();をコールしています __device__ long long int CaptureTimer() noexcept { auto timer = (long long int)0; //コンパイラが文句いうので初期化しました cudaDeviceSynchronize(); asm volatile("mov.u64 %0, %globaltimer;" : "=l"(timer)); return timer; } cudaStreamSynchronize()じゃ__global__でコールできないので駄目なんですよ http://mevius.5ch.net/test/read.cgi/tech/1465969275/360
361: デフォルトの名無しさん [sage] 2023/05/28(日) 07:37:34.81 ID:rAN5cbTU 何もレスないけど cudaDeviceSynchronize なくても困らないコード書いてるの? shared memory使うときどーしても使うと思うんだがこのAPI http://mevius.5ch.net/test/read.cgi/tech/1465969275/361
362: デフォルトの名無しさん [sage] 2023/05/30(火) 17:45:24.83 ID:GWh7Fu6m ふつうは __syncthreads() 使うなあ。 というかカーネル内から全スレッド同期出来たとは知らなかった。 やっぱりいろいろ無理があったから廃止になったんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1465969275/362
363: デフォルトの名無しさん [sage] 2023/06/01(木) 19:34:35.47 ID:woZHz0xe カーネルの実行完了を待つ関数をカーネル内から呼び出せるのはおかしいだろ http://mevius.5ch.net/test/read.cgi/tech/1465969275/363
364: デフォルトの名無しさん [sage] 2023/06/02(金) 21:14:34.84 ID:GpIK8Zp9 >>362 >>363 お前らマジでレベル低いわ シェアードメモリとかまったく使いこなせてないだろ シェアードメモリってのはブロック内スレッドでのみ共通のメモリ カーネル関数内で待ち合わせ処理できずにどうやって使うんだこんなもん http://mevius.5ch.net/test/read.cgi/tech/1465969275/364
365: デフォルトの名無しさん [sage] 2023/06/02(金) 21:16:18.40 ID:GpIK8Zp9 >>363にいたってはCUDA Dynamic Parallelizmすら理解してない http://mevius.5ch.net/test/read.cgi/tech/1465969275/365
366: デフォルトの名無しさん [sage] 2023/06/02(金) 21:29:40.49 ID:GpIK8Zp9 >>362 ふつうは? __syncthreads()自体とっくに廃止されてそのかわりのcudaDeviceSynchronize()だろ http://mevius.5ch.net/test/read.cgi/tech/1465969275/366
367: デフォルトの名無しさん [sage] 2023/06/02(金) 21:32:58.33 ID:GpIK8Zp9 >>362 CUDA Runtime API rev.1 をみても __syncthreadsなんて載ってないんだが, どこに載ってるか教えてくれ http://mevius.5ch.net/test/read.cgi/tech/1465969275/367
368: デフォルトの名無しさん [sage] 2023/06/02(金) 22:14:21.99 ID:GpIK8Zp9 >>362 https://docs.nvidia.com/cuda/pdf/CUDA_Runtime_API.pdf ↑から最新のAPIマニュアルをダウソして検索したが __syncthreadsなんてものは存在しない お前の書いたコードが最新のcuda 12.1.1コンパイラで使えるかどうか確認してみろ とっくにサポートが打ち切られたAPIを使うと嘯吹いてただけじゃねーのか? お前はとんでもなく長い間cudaコードを書いてなかったんじゃないのか? http://mevius.5ch.net/test/read.cgi/tech/1465969275/368
369: デフォルトの名無しさん [sage] 2023/06/02(金) 23:26:41.73 ID:zbQswG7U カーネルからRuntime API使うのがそもそも違和感あるんだがイマドキのCUDAはそういうものなんか? http://mevius.5ch.net/test/read.cgi/tech/1465969275/369
370: デフォルトの名無しさん [] 2023/06/02(金) 23:38:04.08 ID:44SgMOSU >>366 同期する範囲がぜんぜん違ぇだろうが http://mevius.5ch.net/test/read.cgi/tech/1465969275/370
371: デフォルトの名無しさん [sage] 2023/06/03(土) 01:32:33.61 ID:f1mb9frl submit済みカーネルが2並列同じキューで動いていて、両方が完了待ちしたらデッドロック起こすなwww http://mevius.5ch.net/test/read.cgi/tech/1465969275/371
372: デフォルトの名無しさん [] 2023/06/03(土) 10:34:44.84 ID:hgrjzBME プログラムわかってないやつがいきなりの攻撃性を発揮するのガイジっぽくていいね http://mevius.5ch.net/test/read.cgi/tech/1465969275/372
373: デフォルトの名無しさん [sage] 2023/06/03(土) 16:01:42.94 ID:f1mb9frl >>368 ランタイムAPIwwww こっち見とけ https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html http://mevius.5ch.net/test/read.cgi/tech/1465969275/373
374: デフォルトの名無しさん [sage] 2023/06/10(土) 08:16:47.35 ID:gJM3u8Zc cudaDeviceSynchronizeはこんなときに使う. Ki=1024, Mi = Ki*Ki, Gi = Ki*Miとでもして __global__ void cuda_main(){ double *idata = new [Mi]; double *odata1 = new [Mi]; double *odata2 = new [Mi]; body1<<< Ki, Ki >>> ( idata, odata1 ); //マルチスレッド実体 cudaDeviceSynchronize(); body2<<< Ki, Ki >>> ( odata1, odara2 ); //マルチスレッド実体 cudaDeviceSynchronize(); for( int i = 0; i < Mi; i++ ){ cudaDeviceSynchronize(); // *** こいつは毎回要ったと思う printf(" %d %e\n", i, odata2[i]); //計算結果表示 } cudaDeviceSynchronize(); // 上の***だけで こいつはなくても構わなかったと思う delete[] odata2; delete[] odata1; delete[] idata; } main(){ //cuda 内newで確保するメモリが8MBを超える場合は設定要 cudaDeviceSetLimit(cudaLimitMallocHeapSize, size_t(Gi + Gi)); //printf fifoを16Miにしてみた cudaDeviceSetLimit(cudaLimitPrintfFifoSize, 16 * Mi); cuda_main<<<1、1>>>(); } http://mevius.5ch.net/test/read.cgi/tech/1465969275/374
375: デフォルトの名無しさん [sage] 2023/06/10(土) 08:17:55.93 ID:gJM3u8Zc つづき ホスト側からcuda用のエントリポイント cuda_main()を一つ起動して そこで計算に必要なgpuメモリをnew/mallocで確保 delete/freeもしくはデストラクタでメモリ解放してほとんどふつーのC++プログラム作成 エントリポイントとなるcuda_mainスレッドを一つ起動するだけでほぼgpu側だけで閉じたふつーのc++コードになる gpuが計算した結果をどー出力するか?ってのはあるんだが、 __global__関数内のprintfが標準出力にちゃーんと出力してくれる つまり、 リダイレクトでファイルに落とせる コマンドラインから > cuda_program.exe >> file.dat て感じ http://mevius.5ch.net/test/read.cgi/tech/1465969275/375
376: デフォルトの名無しさん [sage] 2023/06/10(土) 08:20:34.56 ID:gJM3u8Zc つづき こういうコードスタイルにすることでcudamallocで確保するgpuメモリはホスト<->gpuのインターフェースに使う最低限のメモリに限定することができて コーディングが格段に楽になる ほぼふつーのC++プログラムと変わらん この書き方で問題なのは__global__内でunique_ptrが使えないことなんだが、 数値計算でunique_ptr使えなくて困る場合ってどんな場合か逆に聞きたいわ. それより ホスト側でgpu内部処理にしか使わないメモリまで確保して、そいつをcuda::unique_ptrなんか作って管理するよりよほど楽だと思うが? こういうのはディレクトリの外からディレクトリ操作するのに似た感覚でとても耐えられんし、 cuda Dynamic Parallelismと__global__関数内でnew/deleteを書けるようになってるお陰でふつーのC++コードが書けるようになってるんだわ. んで肝心の cudaDeviceSynchronize() だが マルチスレッド実態は body1、 body2だがbody2の実行と計算結果odata2の表示はbody1とbody2の計算完了が前提としてる それらの待ち合わせ処理としてを使うんだが、 ここで cudaDeviceSynchronize() がないと dynamic Parallelismがあっても上のようなコードは書けない http://mevius.5ch.net/test/read.cgi/tech/1465969275/376
377: デフォルトの名無しさん [sage] 2023/06/10(土) 10:12:15.01 ID:5lxShvGN >>374 同じstream使ってんのにいちいちそんなところで同期してたら効率悪くね? http://mevius.5ch.net/test/read.cgi/tech/1465969275/377
378: デフォルトの名無しさん [] 2023/06/10(土) 11:53:19.12 ID:Y9DL3tjK まだやってたのかよw>>359 http://mevius.5ch.net/test/read.cgi/tech/1465969275/378
379: デフォルトの名無しさん [sage] 2023/06/16(金) 10:37:03.14 ID:VMczRTMU >>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側に制御戻す必要なく処理速度が落ちるわけじゃない. それどころかはるかにプログラムの見通しもよくなるんだから http://mevius.5ch.net/test/read.cgi/tech/1465969275/379
380: デフォルトの名無しさん [sage] 2023/06/16(金) 20:00:03.41 ID:duxPCvpi 丸々一ヶ月経ってもまだ躓いてるのかw せっかくアドバイス貰っても理解する気がないならしょうがないな。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/380
381: デフォルトの名無しさん [] 2023/06/16(金) 23:41:50.06 ID:T6+41XgS >>379 dynamic parallelismがどうたらイキってた輩が実はstreamすらろくに理解していなかったという http://mevius.5ch.net/test/read.cgi/tech/1465969275/381
382: デフォルトの名無しさん [sage] 2023/06/17(土) 09:32:02.85 ID:6mG7lpSl そもそもShared Memoryが云々の話とこれ全く関係ないし、unique_ptrがどうとか誰も聞いてないし、ただイキってクソコード書いてるnoobにしか見えん http://mevius.5ch.net/test/read.cgi/tech/1465969275/382
383: デフォルトの名無しさん [sage] 2023/06/30(金) 06:45:59.93 ID:HGq0NS3h >>381 streamてCPUとGPUの協調のこと言ってるの? 協調はこの際,まったく関係ないんだが, CPUからGPUに制御を移して完全にCPUとは分離する話をしてんの そのほうが遥かにプログラムが楽に簡潔に書けるからそれを言ってる. GPUのほうが8倍から1桁速度が速いので実験的な計算ならこれで十分な速度が得られる CPUとの協調とか難しいプログラムを書くんじゃなく GPUだけで計算を完結させるためにDynamic Parallelismを使う Dynamicに並列化したいわけじゃなくGPUのプロセスを一つ立ち上げたいためにそれを使う http://mevius.5ch.net/test/read.cgi/tech/1465969275/383
384: デフォルトの名無しさん [sage] 2023/06/30(金) 06:53:13.13 ID:HGq0NS3h >>380 何のアドバイス?ww GPUプロセスの中で全プロセスどうやってwaitするのさw ま, cudaのユーザサイトには代替案とか書いてる人いるよ cudaDeviceSynchronize()と比較して速度は期待できないが一応使える. せめてそれぐらいのアドバイスできるようになってから言いな. 俺のようなコード書いてGPUプロセスの中からcudaDeviceSynchronize()コールしてるユーザは一定数いるってこった どーせ__global__でnew/deleteふつーに使えること知らんかったんだろお前ww http://mevius.5ch.net/test/read.cgi/tech/1465969275/384
385: デフォルトの名無しさん [sage] 2023/06/30(金) 07:16:01.83 ID: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 http://mevius.5ch.net/test/read.cgi/tech/1465969275/385
386: デフォルトの名無しさん [sage] 2023/06/30(金) 08:24:20.23 ID:pBAX8tCp 俺はCUDA使ったこと無いんだけど >__global__でnew/deleteを使ってGPUだけで完結処理 これって思い込みじゃねえかなあ http://mevius.5ch.net/test/read.cgi/tech/1465969275/386
387: デフォルトの名無しさん [sage] 2023/06/30(金) 11:03:40.92 ID: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しか使えないけどな. http://mevius.5ch.net/test/read.cgi/tech/1465969275/387
388: デフォルトの名無しさん [sage] 2023/06/30(金) 11:07:50.35 ID:HGq0NS3h >>386 ウソだと思うなら,>>374のコードを実際cudaでコンパイルして確認してみろや 実際__global__内でnew/malloc使えて__global__から__global__を起動できることだけがポイントなんだから ちなみに, dynamic parallelismサポートしてないような古いグラボは使用禁止な. http://mevius.5ch.net/test/read.cgi/tech/1465969275/388
389: デフォルトの名無しさん [sage] 2023/06/30(金) 11:38:34.15 ID:HGq0NS3h >>386 new/deleteが__global__内でふつーに使えるってことなら cuda c programming guide 最新版の 7.34. Dynamic Global Memory Allocation and Operations どっちが思い込みかね?ww http://mevius.5ch.net/test/read.cgi/tech/1465969275/389
390: デフォルトの名無しさん [sage] 2023/06/30(金) 18:28:44.41 ID:h/tbEWPQ もしかしてNVIDIAのフォーラムでモデレータに I’m confused とか言われてんのコイツ? http://mevius.5ch.net/test/read.cgi/tech/1465969275/390
391: デフォルトの名無しさん [sage] 2023/06/30(金) 22:03:38.67 ID:nvcNe2IT 炎上学習法かとも思ったが全然学習してる素振りもないのよなあ >streamてCPUとGPUの協調のこと言ってるの? ちょっとはググるなりしたらどうかね > body1<<< Ki, Ki >>> ( idata, odata1 ); //マルチスレッド実体 > cudaDeviceSynchronize(); > body2<<< Ki, Ki >>> ( odata1, odara2 ); //マルチスレッド実体 body1とbody2は同じstreamだから基本的にそんなところにsynchronizeはいらんのよ http://mevius.5ch.net/test/read.cgi/tech/1465969275/391
392: デフォルトの名無しさん [sage] 2023/06/30(金) 22:07:49.01 ID:nvcNe2IT >そのときcudamalloc/cudafreeなんか使ってたんじゃメモリ管理が大変で, これも意味不明だなあ malloc/freeと比べてどう大変だと言うんだろう http://mevius.5ch.net/test/read.cgi/tech/1465969275/392
393: デフォルトの名無しさん [sage] 2023/06/30(金) 23:46:28.63 ID:lTu2cFop 病気の人に関わってもいいことないですよ http://mevius.5ch.net/test/read.cgi/tech/1465969275/393
394: デフォルトの名無しさん [sage] 2023/07/02(日) 11:33:55.45 ID:ZzvN3CPt 同期オブジェクトが出てないんだから、そりゃシリアルに動くやろうなあ CUDA知らん http://mevius.5ch.net/test/read.cgi/tech/1465969275/394
395: デフォルトの名無しさん [sage] 2023/07/02(日) 14:47:53.06 ID: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のローカルメモリの解放を手でやらかすよりよほど楽だと言ってるのだよ. http://mevius.5ch.net/test/read.cgi/tech/1465969275/395
396: デフォルトの名無しさん [sage] 2023/07/02(日) 19:20:21.21 ID:nj7sKJew >>395 いや、それストリーム間の同期の話であって同じストリームに投入したカーネルの実行の話とは関係ないんだが。 いろいろ検索したりしたんだろうけどここ勘違いするようなレベルでイキりまくられても。 もともとは cudaDeviceSynchronize がデバイス上で非推奨になるんで代替策をどうするかって話だったと思うけど、 「自分は間違ってない」と強弁するだけならそりゃ2ヶ月近く解決しないわけだわ。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/396
397: デフォルトの名無しさん [] 2023/10/20(金) 12:42:50.23 ID:/M3RKJCH NVIDIA中國から撤退 http://mevius.5ch.net/test/read.cgi/tech/1465969275/397
398: デフォルトの名無しさん [] 2023/12/07(木) 06:26:05.21 ID:R1AO2r8W PCくそど初心者で、オーディオをやっている者です。 現在PC(linux)でHQplayerというソフトで音楽ききてます。 そのPCにグラボ刺したら音質上がるなんてガセネタつかまされたんで、騙されてみようと思うのですが、その際CUDAの設定しないとGPUが使われないということのようなのです。 調べたら、ドライバー、ツールキット、cuDNNの3つをインストールするみたいなのですが、最後のcuDNNの意味がわかりません。 有識者の方、どうかご教授下さい! http://mevius.5ch.net/test/read.cgi/tech/1465969275/398
399: デフォルトの名無しさん [sage] 2023/12/10(日) 12:43:06.09 ID:9z8kD1aM >>398 他人の作った何をやっているかわからないプログラムを使うより 音とプログラミングとCUDAについて勉強して 自分で音質を上げるプログラムを作ったほうがよいと思うよ。 本屋とかアマゾンでそういう専門書も探せば見つかるでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/399
400: デフォルトの名無しさん [] 2023/12/13(水) 06:47:58.97 ID:YKWD9gfa >>399 398です。 なるほど、そういう方法もあるのですね。 自分で勉強してプログラムのことまで理解するなんて大変そうですが、根本を理解していないと使う意味ないですもんね。 大変そうですが、チャレンジしてみます。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/400
401: デフォルトの名無しさん [] 2024/01/13(土) 07:53:38.21 ID:Ce28ohDx RTX4090よりA4000をおすすめしてる所がありますが、これは長期稼働の安定性と低消費電力が理由でしょうか。 lstmで出来るだけ早く学習させたいのですが4090の方が早そうですがいかがですか。 http://mevius.5ch.net/test/read.cgi/tech/1465969275/401
402: デフォルトの名無しさん [] 2024/03/14(木) 19:33:05.60 ID:LpPl9eeZ 自己解決 webページ作成者に聞いた 4090の方が速いが、例えば3時間が4時間になったところでたいした違いはないでしょうとか いくつものパターンを試したいので少しでも早いものをってことで4090を買った http://mevius.5ch.net/test/read.cgi/tech/1465969275/402
403: デフォルトの名無しさん [sage] 2024/10/12(土) 23:57:12.31 ID:g42aTpjG faster_whisperがGTX1660で6.8倍に高速化した 動画のハードエンコードみたいなことしてる訳でもないのに、なんでこんなに効くんだろう http://mevius.5ch.net/test/read.cgi/tech/1465969275/403
404: デフォルトの名無しさん [sage] 2025/05/03(土) 21:22:39.00 ID:GOrfAv9r CUDAを使うにはH100が必要なの? http://mevius.5ch.net/test/read.cgi/tech/1465969275/404
405: デフォルトの名無しさん [sage] 2025/05/03(土) 21:57:53.32 ID:DmXNLEJI >>404 nvidiaのGPUなら多少古くてもcuda使えるよ A100でもA6000 A4000 RTX3060でもいい http://mevius.5ch.net/test/read.cgi/tech/1465969275/405
406: デフォルトの名無しさん [sage] 2025/05/12(月) 20:36:49.62 ID:QasGmRud clvkってなんか普通に記事あるけど魔境なやつ? http://mevius.5ch.net/test/read.cgi/tech/1465969275/406
407: デフォルトの名無しさん [sage] 2025/06/05(木) 17:19:33.94 ID:O3mofczY wayland対応はよう http://mevius.5ch.net/test/read.cgi/tech/1465969275/407
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s