【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]©2ch.net

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/
2デフォルトの名無しさん
垢版 |
2016/06/15(水) 14:45:27.13ID:d2Xou3GL
関連サイト
CUDA
http://www.nvidia.co.jp/object/cuda_home_new_jp.html

CUDAに触れてみる
http://chihara.naist.jp/people/STAFF/imura/computer/OpenGL/cuda1/disp_content

CUDA のインストール
http://blog.goo.ne.jp/sdpaninf/e/9533f75438b670a174af345f4a33bd51

NVIDIAの「GeForce 8800 GT(G92)」と次に控える64-bit GPUアーキテクチャ
http://pc.watch.impress.co.jp/docs/2007/1031/kaigai398.htm

CUDAを使う
http://tech.ckme.co.jp/cuda.shtml

NVIDIA CUDAを弄ってみた その2
http://dvd-r.sblo.jp/article/10422960.html

CUDAベンチ
http://wataco.air-nifty.com/syacho/2008/02/cuda_2044.html

KNOPPIX for CUDA
http://www.yasuoka.mech.keio.ac.jp/cuda/
3デフォルトの名無しさん
垢版 |
2016/06/15(水) 14:54:52.92ID:d2Xou3GL
Linux* 上で CPU と GPU バッファーを共有する
http://www.isus.jp/products/c-compilers/sharing-cpu-and-gpu-buffers-on-linux/

GPUとGPGPUの歴史と特徴
http://www.cc.u-tokyo.ac.jp/support/press/news/VOL12/No1/201001gpgpu.pdf

第1回 GPUコンピューティングおよびCUDAについて
http://www.gdep.jp/page/view/248

GPUコンピューティングの歴史とCUDAの誕生
https://thinkit.co.jp/story/2010/07/02/1645
https://thinkit.co.jp/series/4792
https://thinkit.co.jp/story/2010/07/30/1678
2016/06/15(水) 20:36:38.63ID:42nP9Qvw
CUDAってその分野でかなり使われてるの?
Rx480買って5TFLOPSヒーハーしようと思ってんだけど、OpenCLよりCUDAの方がいいの?
5デフォルトの名無しさん
垢版 |
2016/06/16(木) 11:48:40.77ID:hLUHI1zp
>1 乙
2016/06/17(金) 11:47:34.05ID:WSjlHFjC
ttps://ja.wikipedia.org/wiki/CUDA
デメリット

ハードウェアベンダーに依存しないOpenCLやDirectComputeと比較すると、
CUDAはNVIDIA製のGPUでしか使えないという制約がある。
このため、CUDAの機能に過度に依存したプログラムを書くと、
アプリケーションのポーティング・移植が困難になる可能性がある(ベンダーロックイン)。

また、最初からグラフィックス連携用途を想定して設計されたDirectComputeと比較すると、
(相互運用APIが用意されているとはいえ)
GPU演算結果をグラフィックス用途に直接利用する場合はオーバーヘッドが大きくなる。
2016/06/17(金) 11:49:44.24ID:WSjlHFjC
PyCUDA
ttps://mathema.tician.de/software/pycuda/
CUDA:「超並列コンピューティング」はじめました
ttps://codezine.jp/article/detail/8429
CUDAを使ったGPUプログラミング超入門
ttp://qiita.com/Keech/items/381495ed90e012d69f1a
CUDA で並列コンピューティング
ttp://www.nvidia.co.jp/object/cuda-parallel-computing-platform-jp.html
はじめてのCUDAプログラミング―驚異の開発環境[GPU+CUDA]を使いこなす!
ttps://www.amazon.co.jp/dp/4777514773
2016/06/18(土) 02:19:19.60ID:n11r5HUK
CUDA自体は、ライブラリが結構良くできてるのが多い印象

open clは、まだまだこれからって感じかな
2016/06/19(日) 01:01:03.69ID:XnUiBA3W
amdがcuda採用しろ
2016/06/19(日) 09:14:04.48ID:DqqOdmha

http://gpuopen.com/compute-product/hip-convert-cuda-to-portable-c-code/
2016/06/19(日) 12:33:23.96ID:5KvSKdL/
っアー
2016/06/19(日) 14:56:12.95ID:El4TUkYC
>>10
前にニュースみたけど
いつ、出来るんだろうか…?
13デフォルトの名無しさん
垢版 |
2016/07/05(火) 13:31:36.76ID:3gyxqmIo
FPGAの替わりになる?
2016/07/08(金) 05:05:10.58ID:P2kfD6nb
ならないでしょ
15デフォルトの名無しさん
垢版 |
2016/07/09(土) 06:25:21.68ID:nQIO88Hn
CUDAを使ってみたくて7.5をインストールしたんだけどSDKってどこにインストールされてるの?
2016/07/09(土) 09:35:03.17ID:IOGAHNuj
2ch書いたりググったりしなくても、そのPC内で即分かる簡単なこと聞いてる時点でCUDAやらんほうがいいよw
17デフォルトの名無しさん
垢版 |
2016/07/09(土) 15:13:36.10ID:Hn4IPJSk
gpu computing SDK が無いってことならcode samplesがそれだよ
18デフォルトの名無しさん
垢版 |
2016/07/09(土) 17:31:11.95ID:J471aLuE
>>16
一応2ちゃんで発表するのが礼儀
19デフォルトの名無しさん
垢版 |
2016/07/10(日) 02:23:44.63ID:G+ItxlLL
久々に来たがLink切れが多いな。
Ubuntuで勝手にデバドラがUpdateされて(CUDA非対応の最新版)しまうのを
止める呪文は何だっけ? 毎回忘れて、最初は調子良く動いてたマシンが
Updateの度に動かなくなって、Fxxk nVidia!って思う。
20デフォルトの名無しさん
垢版 |
2016/07/15(金) 20:50:26.63ID:SzJpTVx0
CUDA5かなんかからメモリ空間が結合されてcudaMemcpyが必要なくなったとか言う文献をみたんだが、Memcpyいらないのマジ?
2016/07/19(火) 20:55:44.92ID:+q6IbwI6
もちろん
最近ミミズ見てて考えたんだが
我々って結局、管なんじゃないか?
管に管を維持するための色々な機能がついている、ような気がする
2016/07/19(火) 21:50:33.95ID:NVpJdz2s
>>21
単細胞時代に管はなかった
2016/07/19(火) 23:32:31.17ID:xOeMaPSt
イソギンチャクあたりまで管はないけどねぇ
24デフォルトの名無しさん
垢版 |
2016/08/30(火) 22:26:06.76ID:gaPBgn5H
ゲームやめて()
AIしようと思ったがcaffe インスコできへんのやけど( ;´Д`)
error : identifier
25デフォルトの名無しさん
垢版 |
2016/08/30(火) 22:37:15.39ID:gaPBgn5H
error : identifier "cudnnActivationDescriptor_t" is undefined
2016/08/31(水) 13:32:53.23ID:L/EIfshW
エラーをまずは調べてみよう
2016/09/02(金) 13:09:45.69ID:FbVLNmm2
GPUでwebサーバー動かせる?
2016/09/02(金) 14:43:03.39ID:+SW1ObrQ
完全にCPUの置き換えとして用いるのは無理だろうな。
2016/09/02(金) 14:48:38.48ID:2cG65SkE
GPUの中で処理が完結しないから意味がないか
2016/09/03(土) 21:47:53.62ID:Ha0BK37z
webサーバは動かせないけど
お湯なら沸かせそう
2016/09/06(火) 14:13:22.82ID:wXLGIf/+
銭湯でも経営するか
2016/10/21(金) 12:10:30.81ID:Yng3kb3N
GPUは銭湯能力で優劣つけるべき
2016/11/06(日) 14:38:40.07ID:Mt65DAFZ
>>21
生き物は円柱形 で検索
34デフォルトの名無しさん
垢版 |
2016/11/26(土) 13:36:47.19ID:jHyXikRe
http://www.newsweekjapan.jp/yukawa/2016/11/ai-4_2.php
「Universal Probability Language」って言う技術を使うと「東大君」が最近断念した
自然言語処理が出来るようになるらしいね

日本と英米だとこの分野は天地の差がある
2016/11/26(土) 15:41:52.96ID:e21MHUPR
>その結果、われわれが達した結論は、「完成」の定義が人によって異なるのではないか、ということだった。
36デフォルトの名無しさん
垢版 |
2016/11/26(土) 18:56:34.99ID:F5v+97Am
>>35
なんでも完璧を目指すのではなく、ADSLやD-WAVE量子コンピューターのような
「現実解」を目指すと言う事
2016/11/26(土) 19:26:09.59ID:Ry2z2nBI
>日本と英米だとこの分野は天地の差がある
「この分野」ってのが何を指してるのかはっきりしないけど
AI分野って意味では現状、天地の差と言えるのは予算で規定される研究規模くらいやで
まあそれが決定的な違いを産んでるって言えなくもないけど
金銭的バックアップのもとで色んな種を蒔く余裕は日本の科学技術界にないからね


あとその件の技術は記事の本文でも疑ってるけど、
所謂「中国語の部屋」の完成を目指しているものなんじゃない?

×「東大君」○「東ロボ君」の新井さんの講演聴いて懇親会で話もできたんだけど
東ロボ君プロジェクトはそもそも現状のAI技術の限界をある程度認識してて、
その上で入試問題への挑戦っていうベンチマーク的な実践実験で証拠を提示するってことをやってたよ
そもそも東ロボ君は技術的に新しいことをやるというより現状の技術の可能性と課題を洗い出すためのプロジェクトだし
その成果の一つが自然言語の意味的理解の困難さを示したってことだよ
つまり今回「断念」って報道のされ方をしたお話ね
繰り返すけど自然言語処理(中国語の部屋)とは違うお話だよ
2016/11/29(火) 13:13:11.65ID:qCrQS1UU
今CUDA by Example 汎用GPUプログラミング入門を読んで勉強しているんですけど
この本のサンプルコードってもう手に入らないんでしょうか?
2016/11/30(水) 00:29:37.97ID:TC5Bjkv3
>>38
https://developer.nvidia.com/cuda-example
ここのzipじゃいかんの?
2016/12/09(金) 03:45:46.66ID:fw3DcJe0
>>39 ちゃんと探せてませんでしたありがとうございます。
2017/01/06(金) 07:11:43.14ID:8Ia4s/0Q
windowsでcudaやってるんだけど
visual studio commutity消してcl.exeだけ残しておけば
コンパイル通る?
2017/01/06(金) 14:44:04.26ID:XtKi9eaG
リンクしなくていいのか
2017/01/07(土) 11:30:33.70ID:8pTxT9Y7
>>42
シャンプーの後にはちゃんとリンスはしてる
2017/01/07(土) 17:06:51.33ID:aP/UyWiv
cl.exeだけじゃコンパイルも出来ない。
コンパイラ本体は c1.dll と c1xx.dll と c2.dll。
昔はWindowsSDKにVSのIDEなしでコマンドラインツールだけ入ってたりしたけどな。
よく解らんかったら インストールディレクトリの VC/bin/ をまるごと残しとけ。
2017/01/07(土) 17:12:36.97ID:4jt/Q9EM
リンカだけならSDKにも入ってる
46デフォルトの名無しさん
垢版 |
2017/01/09(月) 18:23:46.66ID:jHsLLpyz
超初歩的な質問ですが、
三次元配列をGPUにメモリ確保してCPUからデータコピーってどうやればいいんでしょうか
2017/01/09(月) 18:25:23.28ID:4OeNzyzM
三次元配列とは?
x,y,z頂点の一次元配列のことを言ってる?
48デフォルトの名無しさん
垢版 |
2017/01/09(月) 18:47:08.26ID:jHsLLpyz
そんな感じです、C言語でいうとarray[][][]みたいな

1次元のように簡単にはできないですよね…
2017/01/09(月) 20:17:49.87ID:qK/ZEr7s
キラッ☆
2017/01/09(月) 20:36:08.40ID:EVa/TTkG
GPUじゃない普通のプログラムは配列のサイズ計算してmallocするだろ?GPUでも同じだ。
51デフォルトの名無しさん
垢版 |
2017/01/09(月) 21:12:30.61ID:jHsLLpyz
三次元配列で連続したアドレスにしたいんですが、CPUはできるんですけどGPUはそのままだとエラーが出てできませんでした…
エラーはa value of type "cudaError_t" cannot be assigned to an entity of typeです
2017/01/10(火) 08:26:07.18ID:WdYb5nlV
そりゃ関数の使い方間違えてるんだろ
53デフォルトの名無しさん
垢版 |
2017/01/10(火) 14:21:30.09ID:s989ZmsY
>>51
alignmentかな
2017/01/10(火) 17:18:06.48ID:oQDfLvCT
初歩的な質問かもしれませんが、
.cファイルから.cuファイルの関数を呼び出す際にリンカエラーが
出るのですがどうすればよいのでしょうか
2017/01/10(火) 18:10:08.05ID:UBJKCQag
export
56デフォルトの名無しさん
垢版 |
2017/01/10(火) 20:12:19.14ID:saSw9C20
>>51
四次元にしてみたら
2017/01/12(木) 13:45:58.21ID:E2IxQoCs
DRAMのパーティションはパーティションの数が3こあるとすると
3つおきの連続した256バイトが一つのパティーションになると
いう理解であってますか?
58デフォルトの名無しさん
垢版 |
2017/01/20(金) 22:13:42.62ID:8IF0nMvZ
gpuを買い替えるか迷ってるんだけどcuda使う上で参考になるベンチマーク的なものを公開してるサイトってありますか?

ちなみに現在使ってるのはgtx970です
10シリーズは機械学習に最適化していると聞いたので気になっています。
2017/01/20(金) 23:20:57.30ID:2XlTkpSB
うん
60デフォルトの名無しさん
垢版 |
2017/01/20(金) 23:30:22.94ID:GGUqy8t5
>>58
のようなサイトがあればURLを教えてください
2017/01/21(土) 07:48:29.10ID:CO+HRz8i
>>58
目的から若干ずれるかもしれんが
http://qiita.com/jiny2001/items/7af1f5dbfaa6c5e4a9f2
2017/01/21(土) 09:11:33.99ID:ij3ZsOnR
CompuBenchが定番。
63デフォルトの名無しさん
垢版 |
2017/01/21(土) 13:43:41.18ID:2F79DqM2
>>61
>>62

参考になります
compubenchでcudaのスコアを比較してみましたが1060でも970より若干スコアは良いようですね
64デフォルトの名無しさん
垢版 |
2017/02/02(木) 13:38:03.58ID:OYwNsjcS
cudaコアはどういう単位なの?
cudaコアがn個あったら、n種類のcudaプログラムを同時実行できますか?
コア内でスレッド数等が足りるとして。
2017/02/02(木) 17:08:50.92ID:j/3vYI1G
cudaコア1個でスレッドが1個動く
2017/02/10(金) 05:08:21.15ID:o/o/Ki2Y
viennacl
実質1年ぐらい更新ない気がするんだが
使って大丈夫なのかな
67デフォルトの名無しさん
垢版 |
2017/02/10(金) 08:22:35.29ID:s5e3qUT1
シンギュラリティしてるぅ?
68デフォルトの名無しさん
垢版 |
2017/02/15(水) 12:32:42.97ID:6MEGowR3
Alea GPUでええな
69デフォルトの名無しさん
垢版 |
2017/05/07(日) 11:41:59.26ID:ehHyxLGM
a.exe: a.cu
nvcc -Xcompiler "/wd 4819" a.cu -o a.exe

ウインドーズでメイクファイルで上みたいにやってクダーCコンパイラーでコンパイルしたんですけど
コマンドラインにちゃんと
nvcc -Xcompiler "/wd 4819" a.cu -o a.exe
と表示されたあと
wd
4819
c1xx: fatal error C1083: ソース ファイルを開けません。'略':No such file or directory
a.cu
c1xx: fatal error C1083: ソース ファイルを開けません。'4819':No such file or directory
と出ます。たぶん"に囲まれた中の/がメタ文字じゃないのになぜか消されているとおもうんですけど
なぜエラーになるのか教えてください。
/を//あるいは-に置き換えたらちゃんとコンパイルできました
よろしくお願いします。
" /wd 4819"と"と/の間にスペースを入れても出来ました。
2017/05/07(日) 15:33:02.73ID:ehHyxLGM
色々実験してみたらnmake.exeではメイクできました。
mingwのmake.exeは駄目でした。
2017/05/10(水) 23:13:56.55ID:ecawysuy
ウインドーズなんて書いてる人、この二十数年の間でも聞いたことがない。初めて見たよw
あまりに斬新過ぎてワロタ
2017/05/10(水) 23:18:39.73ID:wBX7tx0w
そんなことで笑えるならすごい人生楽しそう
2017/05/11(木) 00:41:43.46ID:s9cCeBkh
みたことあるな
新聞だったかな
2017/05/30(火) 01:31:23.24ID:Dd0ZuLcv
空いてるメモリ目一杯floatの配列で埋めたい
メモリ容量足りなくてエラーになると遅くなるので
ちょい余裕あるぐらいでmallocする方法ない?
2017/05/31(水) 23:20:29.74ID:R/fqZ1ir
C++に触るの自体がほぼ初めてなのですが、CUDAと併せて勉強できるいい本は有りませんか?
プログラムはFortranしか触ったことがなく、CUDA by exampleだけだと難易度が高く困ってます
76デフォルトの名無しさん
垢版 |
2017/06/01(木) 11:43:59.76ID:o/dQD8LP
詳しくはwebで検索
77デフォルトの名無しさん
垢版 |
2017/06/20(火) 11:52:28.52ID:IZ7YVmtC
cuspが疎行列だけじゃなくて密行列も便利だった
2017/07/03(月) 14:29:28.07ID:0WiPHc69
>>75
内容古いかもしれないが
インプレスの CUDA by Example 汎用GPUプログラミング入門 とかは?
2017/07/03(月) 14:32:00.95ID:0WiPHc69
>>78
あ ゴメン
c++の文法説明込みだったら 違った
80デフォルトの名無しさん
垢版 |
2017/08/06(日) 16:23:07.09ID:XG7YRxUk
カーネル呼び出し含むループをOpenMPで並列化すると遅くなっちゃったんですけど、
心当たりある方居ませんか?
nvvpで見たらcudaLaunchが伸び伸びで200ms近くなってます。並列化前は数ms程度です。
各カーネル呼び出しは別個のストリームを使用してます。

LinuxでCUDA8、GTX1080です。
2017/08/10(木) 06:57:43.66ID:YyeIUrZv
openmpは並列処理開始前にスレッド生成、終了後に同期して後始末しているらしく、そこでそこそこ時間を食う
並列化する箇所があまり時間がかからない処理だとopenmpで遅くなることもある
2017/08/10(木) 07:55:32.26ID:OxRJE4uH
多くのスレッドからCUDAを使えばそりゃ遅くなるでしょ
並列化はOpenMPかCUDAかどちらにしなさい
8380
垢版 |
2017/08/11(金) 09:30:37.96ID:TMX2lDFt
レスありがとうございます。

>>81
本番で呼ぶカーネルは結構時間かかる処理になりますが、
今は自前の検証コードから呼ぶ短いカーネルでカーネル呼び出し部分(cudaLaunch)のみの処理時間を見てます。

>>82
Hyper-Q機能?でハードウェア的にキューを複数持てるということで、スレッド毎に別ストリームを生成すれば問題ないと思っていたのですが違うのでしょうか?
84デフォルトの名無しさん
垢版 |
2017/08/15(火) 16:51:41.09ID:3/BBM8NB
>>29
hsaみたいなのにやる気ないからなあ
そもそもスケジューラー持ってないから無理
2017/08/21(月) 21:00:28.62ID:Q24iB0o5
vs2017で使えん
86デフォルトの名無しさん
垢版 |
2017/08/31(木) 18:49:59.24ID:MFovTTnL
初歩的な質問なんですがcuFFTを複数同時に呼び出して並列の並列みたいなことってできるんでしょうか?
2017/08/31(木) 18:58:29.12ID:Ce9FMcgb
何のために?
2017/08/31(木) 19:58:21.56ID:oZkhTD7w
モンテカルロ内でやりたいんだろ
89デフォルトの名無しさん
垢版 |
2017/09/26(火) 05:36:17.39ID:/zEF5028
Ubuntu Linux のNvccでコンパイルしたのをcentosで動かすことできますか?
2017/09/26(火) 06:32:45.58ID:mvSUAuA/
もし異なるOS で、バイナリ互換があるなら、1つのバイナリで、
すべてのLinux ディストリビューションで動くはず

でも実際には、たいていのアプリは、
Ubuntu か、CentOS 用ぐらいの、バイナリしか用意していない

兼用バイナリというのは、ない

ソースコードを異なるディストリビューションへコピーして、
コンパイルすれば動くかも知れないけど、
修正しないと動かないかも知れない
2017/10/19(木) 22:15:29.66ID:O7DpKIC1
DirectSoundの処理をCUDAで処理するようなライブラリないのかしら
2017/12/04(月) 23:59:10.12ID:2+MXhE1C
配列の中の1要素だけ排他制御する関数って自分で作るしかない?
稀に同じ要素を読み書きするスレッドがあるんだけどthreadfenceみたいな関数だと関係ないスレッドまで止めそうで
2017/12/05(火) 08:13:25.32ID:lkNfeWcr
配列要素でもatomic関数は使えるんじゃないかな。
まぁ毎回atomic関数使ってパフォーマンスはどうか知らんけど。
94デフォルトの名無しさん
垢版 |
2017/12/20(水) 04:47:46.09ID:tW5VNkV2
windowsでnvccを使うとclコンパイラが使われますができればgccを使いたいと思ってます
可能でしょうか?
95デフォルトの名無しさん
垢版 |
2017/12/21(木) 13:14:18.72ID:PbmhXIq3
おk
96デフォルトの名無しさん
垢版 |
2017/12/31(日) 05:34:34.69ID:vNK2XdUl
科学技術計算に使うならtitanではなくteslaでしょうか?
97デフォルトの名無しさん
垢版 |
2017/12/31(日) 10:17:54.45ID:KA+WHx0L
scipy
2017/12/31(日) 12:13:16.21ID:7AfK40Dq
>>96
買えればな
2018/01/03(水) 03:49:56.24ID:t6kCNeZE
visual profilerのwindows環境での使い方を解説してるサイトって無いですか?
2018/01/03(水) 04:21:39.75ID:beBP1q3i
>>99
調べる前に使う方が手っ取り早く覚えられるよ。
101デフォルトの名無しさん
垢版 |
2018/01/04(木) 03:47:25.18ID:TAoyqhSr
>>100
https://qiita.com/Hiroki11x/items/3737e4e267c1035a4b55
ちょっといじったりはしてるんですけどこのページの「nvprofでprofileをとる」の部分でwindowsでのやり方が分からず詰んでます

ちなみにこのソフトって実行中のプログラムの動きを見るのではなくソースコードからどういう風に動くかを表示してくれるものですよね?
2018/01/04(木) 07:08:13.82ID:SKENGrTB
>>101
宗教的な理由がないならVisualStudioとセットで使った方がいい。
ほぼ悩むことなく使えるから。
2018/01/04(木) 14:37:10.89ID:TAoyqhSr
>>102
Nsightって奴ですねありがとうございます
やってみます
2018/02/01(木) 16:47:45.03ID:Oiw/v1s8
cuda9.1 でコンパイルに成功している人はいませんか?
サンプル simpleTemplates を VisualStudio2017(msvc++19.11) で鬼のようエラーが出てコンパイルできません
http://codepad.org/2kWkUrQ0
105デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:32:53.45ID:sggyuymU
エラー無視すんな
2018/02/02(金) 14:42:34.94ID:NNrLuZbI
>>105
メーカー提供のライブラリがこんなエラーを吐くんですが…
107デフォルトの名無しさん
垢版 |
2018/02/02(金) 16:24:33.04ID:UHwa6yjc
>cl : コマンド ライン warning D9002 : 不明なオプション 'Wp64' を無視します。
2018/02/12(月) 10:28:57.39ID:0YWRNu0p
nvccだけ使えればいいと思ってVirtualBox+Ubuntu16.04にCUDA 9.1 Toolkitをインストールしてみたら
ログイン直後にgnome-sessionが死ぬようになってGUIが使えなくなってしまった。
どこで聞こうか迷ったけど、とりあえず同じような経験の人いないだろうか。

ドライバ周りが原因のような気もするけど、Windows版みたいにディスプレイドライバだけ除いて
インストールするとかできないのかな。
2018/02/12(月) 14:52:40.91ID:e1PHkpUL
>>108
そもそも一般ユーザーでインストールすれば、ドライバが書き換わってしまうことはない
2018/02/12(月) 16:57:29.11ID:0YWRNu0p
cudaとかの大きなくくりのメタパッケージじゃなくてcuda-compilersとか個別に指定すりゃいいんだな。
ドライバを含まないcuda-toolkit-9-1でも駄目だったから何かGUIツールでも関係していたんだろうか。
2018/02/16(金) 14:06:42.48ID:dBpGhFbZ
NVIDIA GeForce MX150 って使える?
2018/02/16(金) 21:00:32.13ID:6Qg41lNJ
対応GPUがスタートガイドやマニュアルにあるからそれを確認
2018/02/17(土) 02:17:22.97ID:ub0BBZWD
逝けるよって書けば信用するのか
すばらしき2ちゃん
2018/02/17(土) 02:31:09.51ID:/cKWkF1j
ほれ
https://www.geforce.com/hardware/notebook-gpus/geforce-mx150/specifications
2018/02/17(土) 02:36:13.64ID:/cKWkF1j
こっちか
https://www.geforce.com/hardware/technology/cuda/supported-gpus?field_gpu_type_value=All&;page=3
2018/02/18(日) 02:05:22.31ID:xYXxBey2
>>111
これな
https://devtalk.nvidia.com/default/topic/1023574/cuda-toolkit-9-is-not-available-in-geforce-mx150/
2018/02/18(日) 11:07:01.37ID:6C73cEwr
これ古過ぎますか?まだ役に立つ?

CUDA C
https://www.amazon.co.jp/dp/4844338919
118デフォルトの名無しさん
垢版 |
2018/02/18(日) 11:32:49.61ID:+kz6+qRG
これからCUDAを勉強するなら問題ないでしょ
基本は変わっていないんで
2018/02/18(日) 13:03:27.13ID:AAhzNgFK
問題なのは、最新のcuda9.1が最新のmsvc++ でコンパイルできないことなんだが…
2018/02/19(月) 23:00:57.77ID:sfd5KCmN
>>117
これかなりいいよ。
最新は網羅できてないが、日本語では最新じゃないかな。
cuda 6世代で検証は7でされてる
121デフォルトの名無しさん
垢版 |
2018/02/21(水) 14:09:43.32ID:fC+mQq8B
>>119
gcc使おう!
2018/02/21(水) 14:23:56.10ID:jU0tYaxw
>>121
Windows バイナリーは microsoft VC++ にしか対応していない、とのこと
http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
123デフォルトの名無しさん
垢版 |
2018/02/21(水) 15:49:25.59ID:zwuXHePG
そりゃバイナリならそうだがそういう話じゃなくて
2018/02/21(水) 16:30:30.19ID:jU0tYaxw
>>123
Windows 環境で cuda に対応するコードを生成するには、msvc++ しか選択できない、Windows で走るバイナリーを作るのに g++ は使えない
125デフォルトの名無しさん
垢版 |
2018/02/22(木) 17:44:56.30ID:j8QCdBbM
>>122
WSLでubuntu動かせばよくね?
2018/02/22(木) 18:06:40.02ID:Ee7revq9
>>125
その ubuntu 上で生成したコードは、ubuntu なしの Windows 上で動くのか?
動かないのならば、よいわけがあるまい
2018/02/23(金) 16:52:21.65ID:0tA6Y4q1
最新のはクロスコンパイル不可能なん?
2018/02/23(金) 17:00:07.99ID:mpvgXBL2
>>127
クロスコンパイルとはいわないのでは?
Linux 上で gcc を使ったコンパイル成果物は、Windows では動かない
Windows 上で cl を使ったコンパイル成果物は、Linux 上では動かない
2018/02/23(金) 22:59:05.62ID:+N3Z3Usd
>>128
Linux上のgccでWindows用バイナリを吐くこともできる。
130デフォルトの名無しさん
垢版 |
2018/02/28(水) 14:29:08.26ID:S610+cRR
(棒)すげー
2018/03/11(日) 12:38:36.83ID:YI7oymp5
CUDA ToolkitはまだVS2017 15.4までしか対応してないんだよな。
もう15.6出たのから15.4は入手できなくなるし、どうにかしてほしいなぁ。
2018/03/14(水) 22:02:39.83ID:KBR3xAs9
え?コンパイルやビルドができないほど深刻な問題でてるっけ?
2018/03/14(水) 23:17:19.01ID:0fdBf/WL
やってみた?nvcc動かんよ。たしかNSIGHTのインストールも失敗するはず。
フォーラムでも公式が「サポートしてるのは15.4まで」と言っている。
2018/03/15(木) 21:42:37.30ID:9ujU8BdG
フォーラムの中の人も、半年くらい前は「申し訳ない」とかなんとか言ってたのが
最近はもう投げ遣りな感じだね。
修正がそんなに難しいのかね?NVIDIAの中で何が起きているんだろうか。
135デフォルトの名無しさん
垢版 |
2018/03/16(金) 14:20:39.88ID:3ma6aQHv
公務員体質
2018/03/16(金) 15:23:49.95ID:GsmhGHn7
勘弁してほしい、VS installer を思わず起動してアップデートを開始させてしまっては後悔しているんだ…
2018/03/17(土) 01:16:13.43ID:x+YiOp0G
15.4.5 でも無理?
https://docs.microsoft.com/ja-jp/visualstudio/productinfo/installing-an-earlier-release-of-vs2017#installing-the-earlier-release
2018/03/17(土) 07:59:31.00ID:hl7Y0kGo
15.4までが大丈夫。そのページが15.5になってしまったらおしまいってこと。
2018/03/24(土) 20:53:51.41ID:6+fQqcMh
CUDA試してみたいんですが、入門としてはGeforce GTX 1060くらいあれば有意にCPU core i7 4Ghz より速くなりますか?
2018/03/25(日) 00:11:04.74ID:nZih/wjn
単精度で性能を活かせる処理なら速い
AVXを駆使しても1060の性能は出ない
2018/03/25(日) 00:16:26.55ID:nZih/wjn
単精度
1060 2.8TFlops
i7 4GHz 0.5TFlops
142139
垢版 |
2018/03/25(日) 00:29:09.29ID:zxeoFdzJ
ほほう、5倍速以上ですか。
ありがとうございます。
143139
垢版 |
2018/03/25(日) 00:38:35.35ID:zxeoFdzJ
ちなみに用途はパイソンのディープラーニング用ライブラリの使用です。
144139
垢版 |
2018/03/25(日) 00:59:31.33ID:zxeoFdzJ
ちなみに主要な製品の>>141みたいな性能比較の一覧ってどこかにあります?
2018/03/25(日) 02:40:05.71ID:5uyFYwe4
Keras/TensorflowでCUDA9.0とCuDNN7.0.5を使ってるけど、
980でCPUの4〜5倍ぐらい、1060・1070だと7〜8倍ぐらい速くなった

あとは、GPUの性能よりもマザボやメモリとの相性が大きかったりする
ECCメモリ積んだサーバ機だと足を引っ張られるし、
1070のデスクトップ機よりも1060のゲーミング用ノートPCの方が速かったりする

あと、スペックの違うグラボを2枚挿しすると、単体運用よりも演算が遅くなることがあるから注意
2018/03/25(日) 08:15:49.40ID:iml51cux
複数枚刺しでCUDA使うならSLI-offがデフォ。
147デフォルトの名無しさん
垢版 |
2018/03/25(日) 11:36:30.54ID:WaYZZq21
>143-144
https://ja.wikipedia.org/wiki/GPGPU
2018/03/25(日) 11:53:57.75ID:23VTYDhm
>>144
自分で計算すれば良いんですよ
クロック、コア数、ベクタ長さ、同時計算数 から
149139
垢版 |
2018/03/25(日) 19:52:41.28ID:zxeoFdzJ
Geforce GTX 1060買ってきました。
早速試そうと思ったが、電源ユニットに6pinケーブルがないT△T

電源も買い替えかなぁorz
2018/03/25(日) 20:17:14.43ID:23VTYDhm
おめでとう
まずは2.8TFlopsで動くテストコードの記述から
単精度でひたすら積和
2018/03/25(日) 20:51:30.02ID:zxeoFdzJ
スリムタワーなんか買うんじゃなかったorz
電源もそうだがグラボがケースに収まらないしorz orz
蓋外せば済むことだけど orz orz orz
2018/03/26(月) 01:19:57.55ID:y2ZIO+Gj
電源容量気をつけてな
300wとかだと足りないかもしれない
153デフォルトの名無しさん
垢版 |
2018/03/26(月) 04:49:23.49ID:OxsjGzhh
>>151
わろた

蓋開けたままだと空冷効率却って悪くなるんじゃなかったかな
蓋開けるなら扇風機も当てた方がいい
154デフォルトの名無しさん
垢版 |
2018/03/26(月) 04:57:26.52ID:OxsjGzhh
めも
http://chimolog.co/2017/08/bto-pc-airflow.html
https://akiba-pc.watch.impress.co.jp/docs/dosv/662237.html
https://akiba-pc.watch.impress.co.jp/docs/dosv/747742.html
http://ascii.jp/elem/000/001/215/1215731/
155139
垢版 |
2018/03/27(火) 22:47:39.83ID:1N1BEpYm
一応電源買ったが平日はまとまった時間が取れないので土日で作業しよう。
保証期間とかあるけど平気だよね?

ちな750W
2018/03/28(水) 06:47:45.49ID:fYzIlbdt
また無駄にデカイ電源を
2018/03/31(土) 00:00:36.28ID:NrUsiMB7
いっそzen+で一台組もうか?w
158デフォルトの名無しさん
垢版 |
2018/03/31(土) 04:23:03.69ID:2Z4gCLvW
極地に引っ越せ
159139
垢版 |
2018/04/01(日) 00:23:36.11ID:C5bt+EHA
1060設置完了しました。
とりあえず、core i7 のiGPUから解像度が上がっていい感じ。
いままでディスプレイのMAX解像度出てなかったからね。
あとはpytorchが動いてくれれば…
160139
垢版 |
2018/04/02(月) 22:02:29.92ID:gbB6Aon1
動いたっぽいけど消費時間の測り方が分からんw
まあパイソンの勉強するしかないか
161デフォルトの名無しさん
垢版 |
2018/04/03(火) 00:26:12.77ID:cU9BUIMs
最近pythonスレで速度計測コード貼ってる人がいた
162139
垢版 |
2018/04/03(火) 22:11:12.18ID:uBm1Z43v
kwsk
163デフォルトの名無しさん
垢版 |
2018/04/03(火) 23:12:19.70ID:RICRRaNn
1060安くなったね
164デフォルトの名無しさん
垢版 |
2018/04/10(火) 14:29:01.82ID:JIHFaEMv
Nvidiaは今月で32ビットオペレーティングシステムのパフォーマンスの向上、新機能、バグ修正などのサポートを終了する
重要なセキュリティアップデートは、2019年1月まで32ビット用に提供されます。
これには、以下のオペレーティングシステムが含まれます。
- Microsoft Windows 7 8 / 8.1 10
- Linux FreeBSD
165デフォルトの名無しさん
垢版 |
2018/04/12(木) 21:45:56.77ID:YSG95pib
すいません、自分のグラボがcudaのどのバージョンで使えるのか
どこを見たらわかるか教えていただけないでしょうか?

windows 10で
GeForceGT610という弱めのグラボを使っています。
↓グラボのHPを見るとCUDAは対応しているようなのですが
ttp://www.nvidia.co.jp/object/geforce-gt-610-jp.html#pdpContent=1

cudaのHPでは対応グラボにのってませんでした(例だから?)
ttp://www.nvidia.co.jp/object/cuda_learn_products_jp_old.html
2018/04/13(金) 00:51:21.10ID:OIii2v2C
>>165
https://www.geforce.com/hardware/technology/cuda/supported-gpus
こっちはどう?全部見てないけど。
2018/04/13(金) 02:54:37.02ID:4E3ZJNs7
610Mは演算能力2.1で最低スペックだけど、一応対応しているみたいだよ
https://developer.nvidia.com/cuda-gpus
2018/04/13(金) 02:56:52.47ID:4E3ZJNs7
↑610Mだけじゃなくて、610の方でも同じ
2018/04/13(金) 11:00:08.69ID:/4JAUyBc
大昔のcuda コア数4個とかのグラボでも対応しているといえば対応してること になるけど
おもちゃのつもりで買って結局ゴミにした思い出

悪いこと言わないので最低限でもgtx1070tiとかにしておけ
170デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:53:26.22ID:QDi0ylkU
>>165
例だからじゃなくて古いページの情報観てるからじゃね?
171165
垢版 |
2018/04/13(金) 22:53:22.51ID:bpFwwSEy
>>166
>>167
ありがとうございます
自分のグラボでもcuda対応してるんですね
ほっとしました。
頑張って動かしてみます。

>>169
いままでグラボが必要になることがそんなになかったもので・・・
これでcuda動かせるようになったら買い替えも検討したいです
2018/04/14(土) 09:03:48.32ID:SSnO0vA6
gtx960利用でx265nvencエンコードしてるけどGPU可動が何時も30%くらいで少ないけど
もっとGPU使用率を増やすにはどうしたら良いですか?
2018/04/14(土) 11:20:07.58ID:C8Da/aR0
>>172
エンコって並列化できるん?
ならばプロセスを3つ同時に走らせるとか
2018/04/14(土) 15:36:05.57ID:Oo4/Wx3V
Occupancyが上がらない状態かバスが支配的なことが考えられるが、
とりあえずVisualProfilerかなんかでどこが原因か見てみれば?
175デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:49:54.06ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

Q45FH
2018/05/23(水) 21:24:03.57ID:uiVT0ZzW
Q45FH
177デフォルトの名無しさん
垢版 |
2018/07/05(木) 00:33:41.64ID:RfoszcD2
T85
178デフォルトの名無しさん
垢版 |
2018/10/08(月) 11:29:19.78ID:+5qyKWRv
朗報
https://www.anaconda.com/blog/developer-blog/tensorflow-in-anaconda/
2018/10/22(月) 20:29:13.91ID:w4+wf4gQ
RTXのtensorコアってどうなの?
2019/01/03(木) 14:15:50.59ID:pSmmWchb
1080Ti買ってきてドライバインストールしたんだけど、GPU-Zで見たときOpen-CLだけチェック入ってなくて
困ってるんだけど、コレって別にドライバー持ってくる必要があるの?
181デフォルトの名無しさん
垢版 |
2019/01/03(木) 14:29:58.49ID:ek3slq0P
https://www.techpowerup.com/forums/threads/open-cl-disappeared.233623/
https://forums.guru3d.com/threads/not-showing-open-cl-support-in-gpu-z.319926/
2019/07/23(火) 17:02:22.82ID:/TcX3lBx
quadro p600のWSにcuda入れようとしてるのだけど
10.1がパスカル世代の面倒見るのはteslaだけって認識でいいの?
390系のドライバしか入らなくて困ってる。
cuda9.1だとこんどはgcc 6以上はあかんとサンプルプログラムのヘッダがコンパイル時にハネてくる。
なんか詰んでる
2019/07/23(火) 17:03:06.53ID:/TcX3lBx
>>179
倍精度ゲロ遅なんでしょ
2019/08/04(日) 08:51:33.67ID:1yK6graO
でかいjpegファイルを手頃なサイズに縮小することがよくあって、
数が多いので結構な時間(数時間)がかかる

これを何とかGPUのパワーで短縮できないものか
185デフォルトの名無しさん
垢版 |
2019/08/04(日) 10:17:38.13ID:Ae1Ff/1h
スレチ
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で、やっと動いた

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

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

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

一長一短
ところで16xx系列ではどうなるんだろう
2020/04/08(水) 11:14:16.32ID:kpKMKUpB
PyTorch使いたかったら2000番台がいいか

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

そしてGPU上のメモりが8gb以上ないと動かないモジュールも多くて2060無印があかん事に
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くらい
192デフォルトの名無しさん
垢版 |
2020/09/29(火) 22:45:56.87ID:8OEjGTOk
GTX 1660 SUPERはCUDAに対応してますか?
2020/09/30(水) 01:11:13.65ID:XQsVzQWu
>>192
https://www.nvidia.com/ja-jp/geforce/graphics-cards/gtx-1660-super/

GPU エンジンの仕様:
1408 NVIDIA CUDA® コア
6GB GDDR6標準メモリ構成
192-ビット
2020/10/04(日) 03:16:42.67ID:tvE5z3VX
CUDAのバージョンを不問とするならGeforce 200シリーズ(Tesla世代)から対応はしてる


って書こうとしたら8シリーズ(2007年)からあったんかよCUDA
2020/10/13(火) 20:53:42.89ID:6GL96WuY
CPUでの画像処理で速度が上がらずCudaを使いたいです。(windows)
@画像をGPUメモリに読み込み
A領域分割、パラレルで画像処理
 (分割部エッジにオフセット?をつけたい)
BGPUメモリの処理結果をCPUメモリに返してファイルにおとす。
こういったサンプルプログラムでいいのないでしょうか?
画像処理部だけしたい処理に書き換えればいいような。
よろしくお願いします。
2020/10/14(水) 13:17:48.94ID:qfzj9xUm
numpyをcupyに替えて
ただしcupyはGPUを使うと宣言して

みたいな奴かなあ
197195
垢版 |
2020/10/14(水) 15:54:49.86ID:4Zn1G8Lw
すみません。言語を書いていませんでした。使いたいのはPythonじゃないです。
WindowsでC++で実現したいです。
198デフォルトの名無しさん
垢版 |
2020/10/14(水) 16:32:24.96ID:ZV1nncqg
ttps://qiita.com/Keech/items/381495ed90e012d69f1a
ttps://www.kkaneko.jp/tools/win/cuda10.html
199デフォルトの名無しさん
垢版 |
2020/10/14(水) 16:34:20.05ID:ZV1nncqg
ttps://ameblo.jp/naginosen/entry-12443269443.html
2020/11/19(木) 09:55:49.41ID:RIzKHKet
RTX3080などで、cuda11が使えるようになってる
だがtensorflowは現時点でまだ使えない

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

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

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

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

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

ノートPC用のRTX3080って16GBなんだなあ
是非欲しいけど当面は総額40万円くらいだろうな
2021/01/18(月) 12:33:28.51ID:LEwyyQvF
ゲームやらんし
3060でいいかな
2021/02/25(木) 09:17:50.75ID:evheNpFl
3060発売日か
214デフォルトの名無しさん
垢版 |
2021/03/01(月) 12:17:15.83ID:8GQloKKK
機械学習しようとrtx3090を2枚買ったんだが中古でも25万円で売れるから売ってrtx A6000に買い替えるメリットある?
gpgpu的な観点から
2021/03/01(月) 15:53:37.93ID:ahGFzuGs
電力は少なくて済むな
2021/06/02(水) 02:14:34.84ID:TuNemlZF
3080tiと3070tiが販売されるか
しかし3080tiでもVRAM12GB
2022/03/11(金) 11:03:09.15ID:vTxyPKiv
ようやく
CPUマルチスレッドをCUDAプログラミングに乗り換えようと来てみたけど
ほんと人少ないな。
ompオフロードじゃなくCUDAでやろうとしてる

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


__device__
void
SubThread()
{
...
}

__gloval__
void
SubThread()
{

}
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はまだ手探り状態
2022/03/11(金) 18:41:56.87ID:yfypcQRg
細かく見てないけどSubThread をグローバルにしたら呼べる
220デフォルトの名無しさん
垢版 |
2022/03/12(土) 01:12:58.32ID:2Ys6LOmP
>>218
CUDA Dynamic Parallelism
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>>>();をコメントアウトするとコンパイルもとおるし、正しく実行できる
2022/03/12(土) 10:16:20.60ID:GhWebJZd
>>220
ありがと
調べてみます
2022/03/12(土) 18:11:29.89ID:GhWebJZd
ようやくわかりました
Relocatable Deice Code をenableでコンパイルが通りました
あちがとうございました
2022/03/23(水) 16:55:21.73ID:4ldsbCNM
今のGeForceは倍精度遅すぎてなんとかならんか?とおもてたら
Kelper世代のTeslaが8万円ぐらいで売ってるのな 1.8TFlps
c.f.
R3090 FP64 0.556TFPS ww なんそれッ
2022/03/23(水) 19:49:40.61ID:4ldsbCNM
k80とか外付けGPUBOXで正常動作すんのかな?
動作報告探してみたけど見つからないんでよくわからん
消費電力大きいし、使いたいときだけつないぎたい
2022/03/23(水) 21:39:42.99ID:L/8Jb0Ma
8万円分AWSのGPUインスタンス借りたほうがよくね?
2022/03/24(木) 04:46:34.26ID:A9GFlV37
課金がアクセス時間なのか正味のGPU駆動時間かわからんけど
8万だとほぼほぼ1ケ月やね。k80本体は6.7万ってのを見つけたわ
機材レンタルじゃないのでもっと上衣スペックのGPUサービスとか期待してチェックしたけど
目ん玉飛び出るぐらい高いね。もっと安くしてくれ
2022/03/24(木) 05:17:57.72ID:A9GFlV37
A100ならAWSよりGPUSOROBANが半額以下やね
22万/月なんて個人じゃ出せないけど
2022/03/25(金) 15:16:22.97ID:K6Ygc++J
仮面ライダー GPGPU
https://pc.watch.impress.co.jp/docs/news/1396728.html
700Wて
10年たってジャンクで入手しても個人で稼動して遊べるシロモノじゃなくなったな
2022/03/25(金) 15:57:54.09ID:9D1V2Tj7
電力はまだしも排熱が難しいな。
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行列越えたら一挙にメンドクサイ
2022/04/15(金) 22:42:02.88ID:+O2sB4yV
3DCG処理やる場合、最初から3次元のID貰った方が楽じゃん?
2022/04/15(金) 23:30:24.49ID:ySHkHnZ8
>>232
3DCGの次元とは全然別物だが
2022/04/16(土) 07:46:19.05ID:njc5gQYC
block,grid へのスレッドの割当て方とかでパフォーマンス変わりますか?
1000個のスレッドを起動したいとき、
block内だけで起動する方が速いのかいのか?
それとも
10個/grid, 100個/blockと分ける方が速いのか?
OpenCLでNVidiaがAMDほどパフォーマンスが上がらないのはスレッドの立ち上げかたで
癖のようなものがあるからってのはないですか?
block,gridってパーティションは単にソフトの問題なのかハード上の制約でこうしてるのかが知りたい
2022/04/16(土) 09:18:24.96ID:lq6dfVd7
変わるけど、今のGPUそんなん意識しなくても速いからいいだろ
Keplerまでは色々考えないと速くならんかったけど、Maxwell以降はそんな考えなくてもよくなったからおけ
2022/04/16(土) 10:42:24.69ID:njc5gQYC
なるほど
じゃblockとかgridとかのパーティションはその時々作成するアプリ側の都合で
作りやすいように自由に設定していいってことですね?
OpwnCL使うとCUDAより大分速度低下する理由は何ですかね?
AMDはOpenCLしかないけどNVidiaでCUDAで書いたのと遜色ないぐらいのベンチマーク出してるサイトがあったんですが。
単にNvidiaがOpenCLやる気ないだけ?
2022/04/16(土) 10:53:55.11ID:MoK8GTpb
昔ウチで試したときは同じGPUでCUDAとOpenCLはそんなに差は無かったがなぁ。
ものによってはOpenCLの方が速い場合もあったり。

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

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

組込用途とかでこれまでFPGA起こしたりASIC起こしたりしてた部分で
ワンボードマイコンのGPUが代わることもあるだろう.
実際、産業機械にRasPiをまんま組込む用途も増えてる
しかし、どーかんがえてもそっち系じゃない>>264にワンボードマイコンすすめてどーすんだって話
269デフォルトの名無しさん
垢版 |
2022/08/14(日) 11:31:10.95ID:VI2zLni0
M5StickV 薦めてる香具師がいた
270264
垢版 |
2022/08/14(日) 13:40:06.95ID:p/YIGTAI
コードを手元で書いて、実際に計算する際は実機を用意するかAWSを借りるつもりでいます
ただコードを書くだけの段階でAWSを借りると負担なので、何かいい方法があればいいなと思った次第です
2022/08/16(火) 22:23:45.49ID:dhgyOuoD
>>270
https://www.%61mazon.co.jp/dp/B085TH77RT

カードに安いやつかっても10万円コース
AWSなくてもいけるが電気代要るわな
それとThunderboltがボトルネックになることはほぼ確定
2022/08/16(火) 22:44:07.06ID:dhgyOuoD
sharedメモリは
https://zukaaax.com/archives/530
ここの最後に書いてる

>シェアードメモリを使用しなくても高速にできるようにする方針

これホント?
2022/08/17(水) 01:02:58.66ID:V/z4ESnc
Dynamic Parallelism で親スレッドと子スレッドの属するブロックを
同一ブロックに属するような指定はできますか?
同一ブロックにして親スレッドが確保したShared Memory を子スレッドからアクセスしたいんだですが.
2022/08/17(水) 01:38:27.72ID:V/z4ESnc
訂正です
○同一ブロックにして親スレッドが確保したShared Memory を親スレッドからアクセスしたいんですが.

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

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

C++でUser I/Fを使いやすく仕上げたいと思ってたけど
そーゆーおしゃれなことは
いろんな制限が頭に入っるまでは素直にゴリゴリCで書いてたほうがよさそう
2022/08/27(土) 12:49:33.14ID:shuaF+y6
__global__のなかでnew,delete使えるので
もしやと思ってmake_unique使おうとしたらだめだった
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で正しく使えるのかな?
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使えてもあんま有り難みは少ないな
279デフォルトの名無しさん
垢版 |
2022/09/01(木) 19:39:29.54ID:Tzt57hSP
質問です。
cpuは64コア、gpuは年末のvram48ギガ2つ、メモリはddr5 256g
これ以上は経済的事情により無理ですw
vram48ギガ二つで深層学習したいんですけど
どの規模でどのくらいのデータ処理ができますか?
マルチcudaで処理速度はどれくらい高速化できますか?
CUDA Python (Numba) を使用して気象分析の分野で 200,000 倍高速化する
こういう記事がありました。
このようなデータがありましたが20万倍以上の高速化ってできますか?
きになります。もしグラボがvram48一つと二つで差がなければ
vram一つにしたいと思います。
280デフォルトの名無しさん
垢版 |
2022/09/01(木) 20:36:24.07ID:IftgsB+t
NVIDIA HGX H100 はどうでしょう?
281デフォルトの名無しさん
垢版 |
2022/09/01(木) 20:37:55.19ID:Tzt57hSP
予算オーバーですw
282デフォルトの名無しさん
垢版 |
2022/09/01(木) 23:54:48.88ID:xm6voT2o
>>279
VRAM48Gもあれば、相当の大きさのモデルでも、バッチサイズある程度取れると思う。
2枚にするなら、NVLINKやったかのボード間通信できるやつやらないと、
同時に使ってバッチサイズ倍にするぜってやつが遅い。
一枚でもいいんでない?って気はする。
何と比較して速くしたいのか分からんけど、3090ti(24GBメモリ)1枚でも普通のモデルなら
ちゃんと学習できる。長いと数日学習に時間がかかるけど。
爆速学習したいなら、クラウドで大富豪するしかないぞ。
具体的に動かしたいモデルとかあるの?
283デフォルトの名無しさん
垢版 |
2022/09/02(金) 05:25:23.36ID:gNiGWU4j
>>282
返信サンキュー!情報ありがとさん!!
気象予測がしたくて(とある記事に20万倍の高速化と書いてあった)
クラウドいいですね〜!
どうしてもpythonのnumbaがやりたくて!
ちなみにpycharmかgoogle coalb pro plusはどちらが良いのでしょうか?
284デフォルトの名無しさん
垢版 |
2022/09/04(日) 06:32:34.26ID:Z3ORh9R5
>>254
cudaつかっても1週間もかかるんですか?
2022/09/04(日) 22:01:18.62ID:z+JpWVLU
気象予測て流体力学だろ
学習とかの前に基礎方程式がわかってるものは
粒子フィルタで検討したほうがいいんじゃないの?
もっぱら線形微分方程式に使われるカルマンフィルタを拡張した
アンサンブルカルマンフィルタで見たことあるけど
今だと線形非線形にかかわらず利用可能な粒子フィルタに頼るほうが簡単だと思うけど
286デフォルトの名無しさん
垢版 |
2022/09/05(月) 05:17:33.36ID:xy0LK1q6
>>285
おすすめのサイトとかありますか?
2022/09/06(火) 12:58:14.35ID:c2oYpxoe
https://www.sice.jp/
https://www.nagare.or.jp/
https://www.saiensu.co.jp/magazine/
288デフォルトの名無しさん
垢版 |
2022/09/06(火) 18:55:48.97ID:iU1ybZ8L
https://www.cradle.co.jp/media/column/a188
289デフォルトの名無しさん
垢版 |
2022/09/16(金) 13:59:03.50ID:cImVlNrb
RTX 4090 Ti
48GB
GDDR6X
これ買う人いますか?
290デフォルトの名無しさん
垢版 |
2022/09/16(金) 20:06:35.06ID:fjE4y/uE
消費電力によります。
2022/09/22(木) 11:24:00.63ID:RnuCJ+18
>>289
その辺のが一般化してきたら
albertを使った実装例とかがもっと増えるか
ま、もっと高性能なのがクラウドに多数デプロイされそうだけど
292デフォルトの名無しさん
垢版 |
2022/09/23(金) 21:15:50.98ID:Qf6uDb81
RTX 4090 Tiを複数差せばおもしろそうやん?
293デフォルトの名無しさん
垢版 |
2022/09/23(金) 21:24:28.27ID:Qf6uDb81
600WのTBPで動作すると予想されます。
だそう。つまり3枚差せば1800wですね。
つまり電源ユニットを2枚で4000ワット以上必要ですね。
電源ユニットが3000wとか4000wとかでないのかな?
困るよね。
2022/10/08(土) 13:36:18.12ID:d409kTqm
.cuファイルで何とか普通のメモリと
GPUのVRAMを同居させて使えるなら
容量の大き過ぎる計算でもスピードは落ちるが
普通のCPUだけの時より速く計算できる、

とか出来たらいいんだけど、まず無理なんだろうなあ
(沖電気はそういうのを上手くやったらしいが詳細が分からない)
2022/10/08(土) 13:53:17.87ID:XEAL3BhY
何を問題視してるのかよくわからんけど
例えばmkl入れるとかじゃ駄目なのか?
2022/10/08(土) 14:37:57.21ID:TKlSmRLn
>>294
LinuxならUnifiedMemoryでできるな。
2022/10/08(土) 16:09:18.26ID:j9nJcF5K
>>296
それは凄い!!!
2022/10/09(日) 00:49:49.72ID:KNQys/Sq
ホスト側のメモリをピンして使うことはできるけど多分そういう用途ではないよなあ
2022/10/09(日) 08:33:30.58ID:DpFtFESu
>>294が言ってるのはOversubscriptionだろ。
300デフォルトの名無しさん
垢版 |
2022/10/26(水) 02:06:11.16ID:XY9sqarF
C#でCUDAを使おうとして悪戦苦闘してようやくこのスレにたどり着いたのだが・・・
GPUで計算した結果をCPUに取り出すには結局どうやったらいいんだ?
検索してもサンプルプログラムはほとんど出てこないし、GPU動かして終わりでその結果を使うやり方が示されてない。
教えろくださいお願いしますだ
301デフォルトの名無しさん
垢版 |
2022/10/26(水) 05:14:53.09ID:2ajidUUz
CUDAでdll作成してC#に読み込ませる
こんだけ
2022/10/26(水) 10:08:16.86ID:Gl6HUSuY
>>268
C言語で普通にCuda使うときだったら、GPU側にメモリ確保してGPUで計算した結果をそこに書き込む。
GPUでの計算が終わったらGPU側のメモリをCPU側のメモリにコピーするみたいな感じだ。
後unified memoryとかいうのでGPUから直接CPU側のメモリに書き込めるらしい。
C言語だったらCUDA sdkにサンプルコードがたくさん入ってるだけどね。
どういう関数使えばいいかはCUDAのドキュメントをちゃんと読めば見つけられるでしょう。
2022/10/26(水) 10:09:44.08ID:Gl6HUSuY
↑のは>>300への返信です。
304デフォルトの名無しさん
垢版 |
2022/10/26(水) 10:49:12.85ID:XY9sqarF
ありがとうございます。
昨日はとりあえず↓を参考にして以下のように書き換えてみたんですが、これじゃダメってことですよね?
(textBox1の結果は0のままです)

double temp = 0;
var gpu = Gpu.Default; // GPUインスタンス取得
gpu.For(0, 10, i =>
{
temp = 10;
});
gpu.Synchronize(); // ここで同期する
textBox1.Text = temp.ToString();

Alea GPUライブラリを使ってC#で簡単GPU並列プログラミング ? Crow's eye
https://kzmmtmt.pgw.jp/?p=1170

Alea GPUで簡単C# GPUプログラミング - Qiita
https://qiita.com/y_miyoshi/items/921903e3499abf18abdd
305デフォルトの名無しさん
垢版 |
2022/10/26(水) 11:05:33.68ID:2ajidUUz
Alea GPUなんて知らなかったな
で、もう使われてなくね?
それでやる必要ある?
2022/10/26(水) 11:15:01.82ID:XY9sqarF
GPU使って並列計算できるってのを昨日知った初心者なんで、すいません。
「gpu 並列計算 C#」で検索してもこれしか出てこないんです。
307デフォルトの名無しさん
垢版 |
2022/10/26(水) 11:21:28.43ID:2ajidUUz
で、あればGPUの使い方、CUDAの使い方を、まず勉強した方が良いのでは?
まだGPUとホストのメモリ間のデータ転送とか、さっぱりわからないよね
2022/10/26(水) 11:45:49.61ID:Gwv5fEeF
cudaは別にコンパイルしてC#から呼べば?このほうが調べやすそう
2022/10/26(水) 12:52:17.28ID:XY9sqarF
趣味でやっているだけなので調べてすぐにできればいいと思ったんですよ。
>>304でGPU側で計算した結果を渡すだけなのにそれを乗せてるウェブサイトが見つからないなんて、そんな手間な作業なの?
2022/10/26(水) 13:29:27.83ID:Gwv5fEeF
>>309
cpuとgpuで別々のメモリを見てるんで >>302 のようなことが必要です
2022/10/26(水) 16:16:55.85ID:Gl6HUSuY
CUDA本体はC言語かC++言語で使う前提なのでそれらの言語ならサンプルコードや情報がたくさん見つかるんだけど。
C#からCUDA使うとなるとマイナーなライブラリを使うことになって情報を見つけづらいかもしれない。英語の情報までくまなく調べればそうじゃないのかもしれないが。
312デフォルトの名無しさん
垢版 |
2022/10/26(水) 16:57:54.98ID:2ajidUUz
C#から使う場合は上にも書いた通り、cuda でdllを作成して
C#からはDllImportで読み込む
2022/10/26(水) 17:35:34.36ID:XY9sqarF
そうなんですね。ありがとうございます。
ライブラリが用意されているのでそれでできないのなら何のためのライブラリなのかと素人的には感じてしまいました。
314デフォルトの名無しさん
垢版 |
2022/10/26(水) 21:01:13.64ID:8mk+cARY
出来ないかどうかはちゃんと調べないとわからないだろう
簡単に出来るかどうかはライブラリは保証しないよ、特にC#とCUDAみたいな組み合わせだったら。
めちゃくちゃ沢山のグルーコードをC++/CLIで書かなきゃいけないのを省略してくれる、ぐらいなもんでCUDAに対する理解なしに使える代物じゃないと思うけどな。
2022/10/26(水) 23:22:43.17ID:XY9sqarF
すいません、↓にテストコードが載っていたのでそれを動かしたところ、GPUの計算結果を取り出せました。
お騒がせしました。


Alea GPUで簡単C# GPUプログラミング - Qiita
https://qiita.com/y_miyoshi/items/921903e3499abf18abdd
316デフォルトの名無しさん
垢版 |
2022/11/26(土) 11:57:28.57ID: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
317デフォルトの名無しさん
垢版 |
2022/11/26(土) 12:10:47.07ID:8YfGLTST
pytorchはよく知らんけど
toolkit入れた?
cuda.is_availableてtorchのメッセージだよね?

てな感じで全然情報不足だわな
318デフォルトの名無しさん
垢版 |
2022/11/26(土) 12:51:08.87ID: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をツールキットからインストールした事もありますが、それでもダメでした。
319デフォルトの名無しさん
垢版 |
2022/11/26(土) 12:53:48.55ID:8YfGLTST
まずcudaは動いてるの?
devicequeryとかsampleのプログラムが動くかどうか確認して問題なければ
torch周りの問題かと
320デフォルトの名無しさん
垢版 |
2022/11/26(土) 22:03:13.46ID: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対応デバイスが検出されていないようです・・・。
321デフォルトの名無しさん
垢版 |
2022/11/26(土) 22:06:59.94ID:GN65Kd03
あっ、ビルド結果、11個失敗しているって意味なんですね・・・。
2022/11/26(土) 23:52:01.01ID:HQ9nVBdA
GPUがちゃんと刺さって無いとか、電源不足とかドライバがちゃんとインストールされてないとか。
323デフォルトの名無しさん
垢版 |
2022/11/28(月) 08:14:28.58ID:MM544pas
ん〜、GPU自体は認識されてるみたいなんですよね。
GPU-Zで調べてみたらCUDAのところチェック外れてたので、やはりCUDAは認識されていないみたいです。
https://gpuz.techpowerup.com/22/11/27/e6p.png

現在の電源は550Wなのですが、もうちょっと大きい容量のに変えてみて、それでダメならやはりドライバが合っていないという事でしょうか・・・。
324デフォルトの名無しさん
垢版 |
2022/11/28(月) 08:33:47.92ID:D2ZVp0By
gpu-zはハードウェア情報なのでcudaのチェックが外れてるって
何かがかなりおかしい

20年前のgeforceなら分からんでもないがRTXなら
偽物をつかまされたか、ハードウェア故障を疑った方が良い気がする
325デフォルトの名無しさん
垢版 |
2022/11/28(月) 08:52:47.95ID:FFe6eh0R
まずはsystem32にnvcuda.dll があるかどうか確認するかな
326デフォルトの名無しさん
垢版 |
2022/11/28(月) 12:53:30.32ID:MM544pas
316です。
Sytem32にnvcuda.dll入ってました。

やはりハードウェアの故障でしょうか? (今のGPUは約2年前にドスパラで買いました)
とりあえず電源ユニット注文しちゃったんで、電源交換&GPUも付け直してみて、それでダメだったら新しいGPU購入ですかね(T_T)
327デフォルトの名無しさん
垢版 |
2022/12/02(金) 20:33:45.27ID:2cIkFTzc
グラボを3060TIに変えてみましたが、それでもGPU-ZでCUDAにチェックが入っていませんでした・・・。
328デフォルトの名無しさん
垢版 |
2022/12/02(金) 20:51:14.24ID:NwS5Fypu
あとはマザボかね~???
329デフォルトの名無しさん
垢版 |
2022/12/02(金) 20:53:44.01ID:NwS5Fypu
差す穴変えてみた?
2022/12/02(金) 21:26:41.40ID:xlTggD6P
12V繋いでないってことはないよな
331デフォルトの名無しさん
垢版 |
2022/12/02(金) 22:03:05.09ID:2B2OMrFT
>>326
Linuxでも入れて確認してみたら?
332デフォルトの名無しさん
垢版 |
2022/12/02(金) 22:11:35.41ID:2cIkFTzc
接続するPCIEスロットも変えてみましたが・・・ダメでした。
グラボ上部にある補助電源?用のケーブルはちゃんと繋いでるはずなのですが、他に必要な接続とかあるんでしょうか?

現状のGPU-Zでの結果
https://gpuz.techpowerup.com/22/12/02/pn6.png
2022/12/03(土) 06:08:21.14ID:9AvqKyUf
OpenGL, DirectX, vulkanとかのグラフィッ関係のAPIを使ったプログラムやゲームも動かないの?
本当にハードウェア関係に問題があるんならそういうプログラムも動かないだろうけど。
2022/12/03(土) 12:15:17.56ID:s9fm/abx
他のGPU全部殺してドライバアンインストール
3060Tiのドライバ入れなおせ
2022/12/03(土) 12:19:52.15ID:Xj+KmoE3
別のドライブにOSクリーンインストールしてみれば
336デフォルトの名無しさん
垢版 |
2022/12/04(日) 11:39:28.03ID:2Pwe8xJ8
>>329
337デフォルトの名無しさん
垢版 |
2022/12/06(火) 21:28:34.09ID:VA2y8qjn
316です。
思い切ってCドライブ初期化してみたらCUDA認識されました。
皆さんありがとうございました。
338デフォルトの名無しさん
垢版 |
2022/12/06(火) 22:09:54.37ID:lBiSjHRF
経験上、一番難しいと感じたのはpython
listとかタプルとかデータ型が沢山あってこの変換がやたら発生
pandaとnumpyでも型が違うとか

torchは経験ないけどtensorflowは理屈が分かればそれほど難しくないと思う
339デフォルトの名無しさん
垢版 |
2022/12/07(水) 02:07:47.36ID:imjH6UhZ
>>338
普通にC++の方が難しいと思うけど、どんな言語を試した経験上なの?
340デフォルトの名無しさん
垢版 |
2022/12/07(水) 06:20:47.46ID:YHin935u
もしかしてCUDAでC++を覚えようとしてるの?
CUDAはCの知識でもできるけどCは?
341デフォルトの名無しさん
垢版 |
2022/12/07(水) 13:28:40.27ID:wqy1K1SQ
C++は変態過ぎて
経験豊富ならべつにC++かまわんが
経験無いならCからやった方が良い
342デフォルトの名無しさん
垢版 |
2022/12/07(水) 17:47:48.05ID:4gcyj4i9
>>341
Cは便利じゃないけど、確実だよね。マイコンとかでC++を使うのは、開発時間が十分に取れるなら(慣れてるなら)いいけど、処理系の変な制限にハマりそうで怖くて使えないわ。
2022/12/23(金) 20:34:26.37ID:ovzWFFv+
処理系の変な制限て何?
2022/12/23(金) 20:38:43.13ID:ovzWFFv+
小規模マイコンでもC++は便利だぞ
345デフォルトの名無しさん
垢版 |
2022/12/27(火) 00:37:40.45ID:szDr1TAR
>>343
お気持ちC++実装でフル規格満たしてないとか普通にある。調べるのが手間すぎる。
2022/12/27(火) 04:54:17.83ID:Y8dS0LJm
フル規格を満たしてない事が普通にあるのはCも同じ
恐くて使えないのは経験が少ないからだな
2022/12/27(火) 13:10:12.33ID:vQ4ixuph
MSVCで作っておけば大体オッケー
g++依存は死ぬ
2022/12/28(水) 21:30:57.66ID:VGHawTJO
今時C++で開発してる会社あるのかな?
349デフォルトの名無しさん
垢版 |
2022/12/28(水) 21:33:16.19ID:IIYChppW
当然
高速処理が要求されるようなところはC/C++だよ
350デフォルトの名無しさん
垢版 |
2023/01/14(土) 11:12:05.67ID:hF49Vv2k
質問です。
cudaの9.0バージョンで
nvcc -V
このようなことをうっても、一切反応しないです。
誰か教えてえらいひとーー!
351デフォルトの名無しさん
垢版 |
2023/01/14(土) 11:36:54.44ID:ITBYYn4q
>>一切反応しないです

もう少し具体的に
352デフォルトの名無しさん
垢版 |
2023/01/14(土) 13:28:49.96ID:HwrORXYU
無修正を観ても、一切反応しないです。
誰か教えてえろいひとーー!
2023/01/23(月) 20:21:43.20ID:VfNttDi/
NVIDIA HPC SDK使ってる人いる?
windows版がないんだけどそのうちサポートされるんかね?
2023/01/23(月) 20:47:20.55ID:1CzktcoW
HPC SDKになった2020年にはWindows版は翌年公開予定と言っていたけど,
その記載もなくなったし永遠に出ない可能性が高いと思われる

当時とは違ってCUDA on WSL2でHPC SDKも使えるようになったから
Windows需要もそこで解消されるし
2023/01/25(水) 11:08:54.16ID:/YL2yMwg
>>354
詳しい人降臨キター
旧PGIのユーザはほぼLinuxばっかだったようだしWindowsは見捨てられたのかと思ったけど必ずしもそうじゃないのかな
WSLで本当に性能出るの?ってのは気にはなるけど
ありがとうございました
2023/03/05(日) 20:30:51.25ID:skhIF3To
てst
2023/03/05(日) 21:06:34.13ID:skhIF3To
亀レス
>>348
あるっしょ
いくらでも,
このまえいびられて死んだ三菱電機の社員は電気系でも物性系の修士出てるのに
会社に入ってC++まともに書けなくて死んだ
物性選んだ時点でプログラム苦手なのにいきなりC売り物用のC++コード書け,
しかも,意地の悪い上司が適当なサンプルコードも見せてくれなきゃ死にたくなるかもな
2023/05/14(日) 05:25:29.03ID:EUIAlyu+
test
2023/05/14(日) 06:02:02.90ID: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関数を一切使わず高速処理が可能となります
2023/05/14(日) 06:21:14.34ID: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__でコールできないので駄目なんですよ
2023/05/28(日) 07:37:34.81ID:rAN5cbTU
何もレスないけど
cudaDeviceSynchronize なくても困らないコード書いてるの?
shared memory使うときどーしても使うと思うんだがこのAPI
2023/05/30(火) 17:45:24.83ID:GWh7Fu6m
ふつうは __syncthreads() 使うなあ。
というかカーネル内から全スレッド同期出来たとは知らなかった。
やっぱりいろいろ無理があったから廃止になったんじゃね?
2023/06/01(木) 19:34:35.47ID:woZHz0xe
カーネルの実行完了を待つ関数をカーネル内から呼び出せるのはおかしいだろ
2023/06/02(金) 21:14:34.84ID:GpIK8Zp9
>>362
>>363
お前らマジでレベル低いわ
シェアードメモリとかまったく使いこなせてないだろ
シェアードメモリってのはブロック内スレッドでのみ共通のメモリ
カーネル関数内で待ち合わせ処理できずにどうやって使うんだこんなもん
2023/06/02(金) 21:16:18.40ID:GpIK8Zp9
>>363にいたってはCUDA Dynamic Parallelizmすら理解してない
2023/06/02(金) 21:29:40.49ID:GpIK8Zp9
>>362
ふつうは?
__syncthreads()自体とっくに廃止されてそのかわりのcudaDeviceSynchronize()だろ
2023/06/02(金) 21:32:58.33ID:GpIK8Zp9
>>362
CUDA Runtime API rev.1 をみても __syncthreadsなんて載ってないんだが,
どこに載ってるか教えてくれ
2023/06/02(金) 22:14:21.99ID:GpIK8Zp9
>>362
https://docs.nvidia.com/cuda/pdf/CUDA_Runtime_API.pdf
↑から最新のAPIマニュアルをダウソして検索したが __syncthreadsなんてものは存在しない
お前の書いたコードが最新のcuda 12.1.1コンパイラで使えるかどうか確認してみろ
とっくにサポートが打ち切られたAPIを使うと嘯吹いてただけじゃねーのか?
お前はとんでもなく長い間cudaコードを書いてなかったんじゃないのか?
2023/06/02(金) 23:26:41.73ID:zbQswG7U
カーネルからRuntime API使うのがそもそも違和感あるんだがイマドキのCUDAはそういうものなんか?
370デフォルトの名無しさん
垢版 |
2023/06/02(金) 23:38:04.08ID:44SgMOSU
>>366
同期する範囲がぜんぜん違ぇだろうが
2023/06/03(土) 01:32:33.61ID:f1mb9frl
submit済みカーネルが2並列同じキューで動いていて、両方が完了待ちしたらデッドロック起こすなwww
372デフォルトの名無しさん
垢版 |
2023/06/03(土) 10:34:44.84ID:hgrjzBME
プログラムわかってないやつがいきなりの攻撃性を発揮するのガイジっぽくていいね
2023/06/03(土) 16:01:42.94ID:f1mb9frl
>>368
ランタイムAPIwwww
こっち見とけ
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
2023/06/10(土) 08:16:47.35ID: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>>>();
}
2023/06/10(土) 08:17:55.93ID:gJM3u8Zc
つづき
ホスト側からcuda用のエントリポイント cuda_main()を一つ起動して
そこで計算に必要なgpuメモリをnew/mallocで確保
delete/freeもしくはデストラクタでメモリ解放してほとんどふつーのC++プログラム作成
エントリポイントとなるcuda_mainスレッドを一つ起動するだけでほぼgpu側だけで閉じたふつーのc++コードになる

gpuが計算した結果をどー出力するか?ってのはあるんだが、
__global__関数内のprintfが標準出力にちゃーんと出力してくれる
つまり、 リダイレクトでファイルに落とせる
コマンドラインから
> cuda_program.exe >> file.dat
て感じ
2023/06/10(土) 08:20:34.56ID: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があっても上のようなコードは書けない
2023/06/10(土) 10:12:15.01ID:5lxShvGN
>>374
同じstream使ってんのにいちいちそんなところで同期してたら効率悪くね?
378デフォルトの名無しさん
垢版 |
2023/06/10(土) 11:53:19.12ID:Y9DL3tjK
まだやってたのかよw>>359
2023/06/16(金) 10:37:03.14ID: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側に制御戻す必要なく処理速度が落ちるわけじゃない.
それどころかはるかにプログラムの見通しもよくなるんだから
2023/06/16(金) 20:00:03.41ID:duxPCvpi
丸々一ヶ月経ってもまだ躓いてるのかw
せっかくアドバイス貰っても理解する気がないならしょうがないな。
381デフォルトの名無しさん
垢版 |
2023/06/16(金) 23:41:50.06ID:T6+41XgS
>>379
dynamic parallelismがどうたらイキってた輩が実はstreamすらろくに理解していなかったという
2023/06/17(土) 09:32:02.85ID:6mG7lpSl
そもそもShared Memoryが云々の話とこれ全く関係ないし、unique_ptrがどうとか誰も聞いてないし、ただイキってクソコード書いてるnoobにしか見えん
2023/06/30(金) 06:45:59.93ID:HGq0NS3h
>>381
streamてCPUとGPUの協調のこと言ってるの?
協調はこの際,まったく関係ないんだが,
CPUからGPUに制御を移して完全にCPUとは分離する話をしてんの
そのほうが遥かにプログラムが楽に簡潔に書けるからそれを言ってる.
GPUのほうが8倍から1桁速度が速いので実験的な計算ならこれで十分な速度が得られる
CPUとの協調とか難しいプログラムを書くんじゃなく
GPUだけで計算を完結させるためにDynamic Parallelismを使う
Dynamicに並列化したいわけじゃなくGPUのプロセスを一つ立ち上げたいためにそれを使う
2023/06/30(金) 06:53:13.13ID:HGq0NS3h
>>380
何のアドバイス?ww
GPUプロセスの中で全プロセスどうやってwaitするのさw
ま, cudaのユーザサイトには代替案とか書いてる人いるよ
cudaDeviceSynchronize()と比較して速度は期待できないが一応使える.
せめてそれぐらいのアドバイスできるようになってから言いな.
俺のようなコード書いてGPUプロセスの中からcudaDeviceSynchronize()コールしてるユーザは一定数いるってこった
どーせ__global__でnew/deleteふつーに使えること知らんかったんだろお前ww
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
2023/06/30(金) 08:24:20.23ID:pBAX8tCp
俺はCUDA使ったこと無いんだけど

>__global__でnew/deleteを使ってGPUだけで完結処理

これって思い込みじゃねえかなあ
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しか使えないけどな.
2023/06/30(金) 11:07:50.35ID:HGq0NS3h
>>386
ウソだと思うなら,>>374のコードを実際cudaでコンパイルして確認してみろや
実際__global__内でnew/malloc使えて__global__から__global__を起動できることだけがポイントなんだから
ちなみに, dynamic parallelismサポートしてないような古いグラボは使用禁止な.
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
2023/06/30(金) 18:28:44.41ID:h/tbEWPQ
もしかしてNVIDIAのフォーラムでモデレータに I’m confused とか言われてんのコイツ?
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はいらんのよ
2023/06/30(金) 22:07:49.01ID:nvcNe2IT
>そのときcudamalloc/cudafreeなんか使ってたんじゃメモリ管理が大変で,

これも意味不明だなあ
malloc/freeと比べてどう大変だと言うんだろう
2023/06/30(金) 23:46:28.63ID:lTu2cFop
病気の人に関わってもいいことないですよ
2023/07/02(日) 11:33:55.45ID:ZzvN3CPt
同期オブジェクトが出てないんだから、そりゃシリアルに動くやろうなあ
CUDA知らん
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のローカルメモリの解放を手でやらかすよりよほど楽だと言ってるのだよ.
2023/07/02(日) 19:20:21.21ID:nj7sKJew
>>395
いや、それストリーム間の同期の話であって同じストリームに投入したカーネルの実行の話とは関係ないんだが。
いろいろ検索したりしたんだろうけどここ勘違いするようなレベルでイキりまくられても。

もともとは 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の意味がわかりません。

有識者の方、どうかご教授下さい!
2023/12/10(日) 12:43:06.09ID:9z8kD1aM
>>398
他人の作った何をやっているかわからないプログラムを使うより
音とプログラミングとCUDAについて勉強して
自分で音質を上げるプログラムを作ったほうがよいと思うよ。
本屋とかアマゾンでそういう専門書も探せば見つかるでしょ。
400デフォルトの名無しさん
垢版 |
2023/12/13(水) 06:47:58.97ID:YKWD9gfa
>>399

398です。
なるほど、そういう方法もあるのですね。
自分で勉強してプログラムのことまで理解するなんて大変そうですが、根本を理解していないと使う意味ないですもんね。

大変そうですが、チャレンジしてみます。

ありがとうございました。
401デフォルトの名無しさん
垢版 |
2024/01/13(土) 07:53:38.21ID:Ce28ohDx
RTX4090よりA4000をおすすめしてる所がありますが、これは長期稼働の安定性と低消費電力が理由でしょうか。

lstmで出来るだけ早く学習させたいのですが4090の方が早そうですがいかがですか。
402デフォルトの名無しさん
垢版 |
2024/03/14(木) 19:33:05.60ID:LpPl9eeZ
自己解決
webページ作成者に聞いた

4090の方が速いが、例えば3時間が4時間になったところでたいした違いはないでしょうとか

いくつものパターンを試したいので少しでも早いものをってことで4090を買った
2024/10/12(土) 23:57:12.31ID:g42aTpjG
faster_whisperがGTX1660で6.8倍に高速化した
動画のハードエンコードみたいなことしてる訳でもないのに、なんでこんなに効くんだろう
2025/05/03(土) 21:22:39.00ID:GOrfAv9r
CUDAを使うにはH100が必要なの?
2025/05/03(土) 21:57:53.32ID:DmXNLEJI
>>404
nvidiaのGPUなら多少古くてもcuda使えるよ
A100でもA6000 A4000 RTX3060でもいい
2025/05/12(月) 20:36:49.62ID:QasGmRud
clvkってなんか普通に記事あるけど魔境なやつ?
2025/06/05(木) 17:19:33.94ID:O3mofczY
wayland対応はよう
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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