【GPGPU】くだすれCUDAスレ part8【NVIDIA】 [無断転載禁止]©2ch.net
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
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/ cl.exeだけじゃコンパイルも出来ない。
コンパイラ本体は c1.dll と c1xx.dll と c2.dll。
昔はWindowsSDKにVSのIDEなしでコマンドラインツールだけ入ってたりしたけどな。
よく解らんかったら インストールディレクトリの VC/bin/ をまるごと残しとけ。 超初歩的な質問ですが、
三次元配列をGPUにメモリ確保してCPUからデータコピーってどうやればいいんでしょうか 三次元配列とは?
x,y,z頂点の一次元配列のことを言ってる? そんな感じです、C言語でいうとarray[][][]みたいな
1次元のように簡単にはできないですよね… GPUじゃない普通のプログラムは配列のサイズ計算してmallocするだろ?GPUでも同じだ。 三次元配列で連続したアドレスにしたいんですが、CPUはできるんですけどGPUはそのままだとエラーが出てできませんでした…
エラーはa value of type "cudaError_t" cannot be assigned to an entity of typeです 初歩的な質問かもしれませんが、
.cファイルから.cuファイルの関数を呼び出す際にリンカエラーが
出るのですがどうすればよいのでしょうか DRAMのパーティションはパーティションの数が3こあるとすると
3つおきの連続した256バイトが一つのパティーションになると
いう理解であってますか? gpuを買い替えるか迷ってるんだけどcuda使う上で参考になるベンチマーク的なものを公開してるサイトってありますか?
ちなみに現在使ってるのはgtx970です
10シリーズは機械学習に最適化していると聞いたので気になっています。 >>58
のようなサイトがあればURLを教えてください >>61
>>62
参考になります
compubenchでcudaのスコアを比較してみましたが1060でも970より若干スコアは良いようですね cudaコアはどういう単位なの?
cudaコアがn個あったら、n種類のcudaプログラムを同時実行できますか?
コア内でスレッド数等が足りるとして。 viennacl
実質1年ぐらい更新ない気がするんだが
使って大丈夫なのかな 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"と"と/の間にスペースを入れても出来ました。 色々実験してみたらnmake.exeではメイクできました。
mingwのmake.exeは駄目でした。 ウインドーズなんて書いてる人、この二十数年の間でも聞いたことがない。初めて見たよw
あまりに斬新過ぎてワロタ 空いてるメモリ目一杯floatの配列で埋めたい
メモリ容量足りなくてエラーになると遅くなるので
ちょい余裕あるぐらいでmallocする方法ない? C++に触るの自体がほぼ初めてなのですが、CUDAと併せて勉強できるいい本は有りませんか?
プログラムはFortranしか触ったことがなく、CUDA by exampleだけだと難易度が高く困ってます >>75
内容古いかもしれないが
インプレスの CUDA by Example 汎用GPUプログラミング入門 とかは? >>78
あ ゴメン
c++の文法説明込みだったら 違った カーネル呼び出し含むループをOpenMPで並列化すると遅くなっちゃったんですけど、
心当たりある方居ませんか?
nvvpで見たらcudaLaunchが伸び伸びで200ms近くなってます。並列化前は数ms程度です。
各カーネル呼び出しは別個のストリームを使用してます。
LinuxでCUDA8、GTX1080です。 openmpは並列処理開始前にスレッド生成、終了後に同期して後始末しているらしく、そこでそこそこ時間を食う
並列化する箇所があまり時間がかからない処理だとopenmpで遅くなることもある 多くのスレッドからCUDAを使えばそりゃ遅くなるでしょ
並列化はOpenMPかCUDAかどちらにしなさい レスありがとうございます。
>>81
本番で呼ぶカーネルは結構時間かかる処理になりますが、
今は自前の検証コードから呼ぶ短いカーネルでカーネル呼び出し部分(cudaLaunch)のみの処理時間を見てます。
>>82
Hyper-Q機能?でハードウェア的にキューを複数持てるということで、スレッド毎に別ストリームを生成すれば問題ないと思っていたのですが違うのでしょうか? >>29
hsaみたいなのにやる気ないからなあ
そもそもスケジューラー持ってないから無理 初歩的な質問なんですがcuFFTを複数同時に呼び出して並列の並列みたいなことってできるんでしょうか? Ubuntu Linux のNvccでコンパイルしたのをcentosで動かすことできますか? もし異なるOS で、バイナリ互換があるなら、1つのバイナリで、
すべてのLinux ディストリビューションで動くはず
でも実際には、たいていのアプリは、
Ubuntu か、CentOS 用ぐらいの、バイナリしか用意していない
兼用バイナリというのは、ない
ソースコードを異なるディストリビューションへコピーして、
コンパイルすれば動くかも知れないけど、
修正しないと動かないかも知れない DirectSoundの処理をCUDAで処理するようなライブラリないのかしら 配列の中の1要素だけ排他制御する関数って自分で作るしかない?
稀に同じ要素を読み書きするスレッドがあるんだけどthreadfenceみたいな関数だと関係ないスレッドまで止めそうで 配列要素でもatomic関数は使えるんじゃないかな。
まぁ毎回atomic関数使ってパフォーマンスはどうか知らんけど。 windowsでnvccを使うとclコンパイラが使われますができればgccを使いたいと思ってます
可能でしょうか? 科学技術計算に使うならtitanではなくteslaでしょうか? visual profilerのwindows環境での使い方を解説してるサイトって無いですか? >>99
調べる前に使う方が手っ取り早く覚えられるよ。 >>100
https://qiita.com/Hiroki11x/items/3737e4e267c1035a4b55
ちょっといじったりはしてるんですけどこのページの「nvprofでprofileをとる」の部分でwindowsでのやり方が分からず詰んでます
ちなみにこのソフトって実行中のプログラムの動きを見るのではなくソースコードからどういう風に動くかを表示してくれるものですよね? >>101
宗教的な理由がないならVisualStudioとセットで使った方がいい。
ほぼ悩むことなく使えるから。 >>102
Nsightって奴ですねありがとうございます
やってみます cuda9.1 でコンパイルに成功している人はいませんか?
サンプル simpleTemplates を VisualStudio2017(msvc++19.11) で鬼のようエラーが出てコンパイルできません
http://codepad.org/2kWkUrQ0 >>105
メーカー提供のライブラリがこんなエラーを吐くんですが… >cl : コマンド ライン warning D9002 : 不明なオプション 'Wp64' を無視します。 nvccだけ使えればいいと思ってVirtualBox+Ubuntu16.04にCUDA 9.1 Toolkitをインストールしてみたら
ログイン直後にgnome-sessionが死ぬようになってGUIが使えなくなってしまった。
どこで聞こうか迷ったけど、とりあえず同じような経験の人いないだろうか。
ドライバ周りが原因のような気もするけど、Windows版みたいにディスプレイドライバだけ除いて
インストールするとかできないのかな。 >>108
そもそも一般ユーザーでインストールすれば、ドライバが書き換わってしまうことはない cudaとかの大きなくくりのメタパッケージじゃなくてcuda-compilersとか個別に指定すりゃいいんだな。
ドライバを含まないcuda-toolkit-9-1でも駄目だったから何かGUIツールでも関係していたんだろうか。 NVIDIA GeForce MX150 って使える? 対応GPUがスタートガイドやマニュアルにあるからそれを確認 逝けるよって書けば信用するのか
すばらしき2ちゃん これからCUDAを勉強するなら問題ないでしょ
基本は変わっていないんで 問題なのは、最新のcuda9.1が最新のmsvc++ でコンパイルできないことなんだが… >>117
これかなりいいよ。
最新は網羅できてないが、日本語では最新じゃないかな。
cuda 6世代で検証は7でされてる >>123
Windows 環境で cuda に対応するコードを生成するには、msvc++ しか選択できない、Windows で走るバイナリーを作るのに g++ は使えない >>125
その ubuntu 上で生成したコードは、ubuntu なしの Windows 上で動くのか?
動かないのならば、よいわけがあるまい >>127
クロスコンパイルとはいわないのでは?
Linux 上で gcc を使ったコンパイル成果物は、Windows では動かない
Windows 上で cl を使ったコンパイル成果物は、Linux 上では動かない >>128
Linux上のgccでWindows用バイナリを吐くこともできる。 CUDA ToolkitはまだVS2017 15.4までしか対応してないんだよな。
もう15.6出たのから15.4は入手できなくなるし、どうにかしてほしいなぁ。 え?コンパイルやビルドができないほど深刻な問題でてるっけ? やってみた?nvcc動かんよ。たしかNSIGHTのインストールも失敗するはず。
フォーラムでも公式が「サポートしてるのは15.4まで」と言っている。 フォーラムの中の人も、半年くらい前は「申し訳ない」とかなんとか言ってたのが
最近はもう投げ遣りな感じだね。
修正がそんなに難しいのかね?NVIDIAの中で何が起きているんだろうか。 勘弁してほしい、VS installer を思わず起動してアップデートを開始させてしまっては後悔しているんだ… 15.4までが大丈夫。そのページが15.5になってしまったらおしまいってこと。 CUDA試してみたいんですが、入門としてはGeforce GTX 1060くらいあれば有意にCPU core i7 4Ghz より速くなりますか? 単精度で性能を活かせる処理なら速い
AVXを駆使しても1060の性能は出ない 単精度
1060 2.8TFlops
i7 4GHz 0.5TFlops ほほう、5倍速以上ですか。
ありがとうございます。 ちなみに用途はパイソンのディープラーニング用ライブラリの使用です。 ちなみに主要な製品の>>141みたいな性能比較の一覧ってどこかにあります?