このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
CUDA使いが優しくコメントを返しますが、
お礼はCUDAの布教と初心者の救済をお願いします。
CUDA・HomePage
ttp://developer.nvidia.com/category/zone/cuda-zone
関連スレ
GPGPU#5
ttp://peace.2ch.net/test/read.cgi/tech/1281876470/l50
前スレ
【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】 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2014/11/20(木) 23:14:46.66ID:jr3oZn27
122デフォルトの名無しさん
2015/05/15(金) 09:39:10.09ID:mDU8aVUi >>121
warp divergenceの話じゃないの?
warp divergenceの話じゃないの?
123デフォルトの名無しさん
2015/05/15(金) 15:58:50.84ID:pyCNH+0F124デフォルトの名無しさん
2015/05/17(日) 10:18:02.33ID:R3tkd0Ad >>121
AとB両方実行されるよ
AとB両方実行されるよ
125デフォルトの名無しさん
2015/05/19(火) 21:33:47.52ID:spimwXxa 今まで一つのソースファイルで書いてきたのですが、いい加減見づらくなってきたのでソースファイルを分けてみたところエラーがでたので質問させてください
extern __constant__ unsigned short v[n]; //nは#defineで定義しています。
メインのソースファイルで
__constant__ unsigned short v[n];
と定義し、ビルドすると「メインの方で再定義されている」というエラーが出てしまいます
他にも、__device__ double atomicAdd の定義をサブのソースファイルに書くと
ptxas fatal : Unresolved extern function '_Z9atomicAddPdd'
とエラーが出てしまいます。どうか解決方法を教えてください。
環境は
NVIDIA Nsight Visual Studio Edition v.4.2
CUDA 7.0 Toolkit
のはずです
extern __constant__ unsigned short v[n]; //nは#defineで定義しています。
メインのソースファイルで
__constant__ unsigned short v[n];
と定義し、ビルドすると「メインの方で再定義されている」というエラーが出てしまいます
他にも、__device__ double atomicAdd の定義をサブのソースファイルに書くと
ptxas fatal : Unresolved extern function '_Z9atomicAddPdd'
とエラーが出てしまいます。どうか解決方法を教えてください。
環境は
NVIDIA Nsight Visual Studio Edition v.4.2
CUDA 7.0 Toolkit
のはずです
126125
2015/05/19(火) 21:42:34.97ID:spimwXxa ×CUDA 7.0
○CUDA 6.5
でした
○CUDA 6.5
でした
127125
2015/05/20(水) 16:28:14.38ID:MP+tATlH CUDA5.0以降ではrdcを「はい」にするとファイルの分割が出来るという情報を得たのでさっそく試してみたところ
>>125のエラーは無くなったのですが
1>sub.cu.obj : error LNK2005: "long __cdecl genrand_int31(void)" (?genrand_int31@@YAJXZ) は既に main.cu.obj で定義されています。
上記のような二重定義エラーがいくつか出てきました
また、ヘッダファイルの拡張子を.cuhとしている方を見かけたのですが、.hとの違いはあるのでしょうか?
>>125のエラーは無くなったのですが
1>sub.cu.obj : error LNK2005: "long __cdecl genrand_int31(void)" (?genrand_int31@@YAJXZ) は既に main.cu.obj で定義されています。
上記のような二重定義エラーがいくつか出てきました
また、ヘッダファイルの拡張子を.cuhとしている方を見かけたのですが、.hとの違いはあるのでしょうか?
128デフォルトの名無しさん
2015/05/20(水) 22:26:00.46ID:tQNdJIhT デバイス関数ってインライン展開されるんじゃなかったっけ。
でもって、他のファイルからは使えなかったのでは?
でもって、他のファイルからは使えなかったのでは?
130デフォルトの名無しさん
2015/05/21(木) 04:25:30.08ID:Dige6mTv とりあえずCUDAの日本語wikiがあるから、そこの分割コンパイルの項目をみたらどうかな?
OSによっては解決できるかも
OSによっては解決できるかも
131デフォルトの名無しさん
2015/05/21(木) 09:09:27.02ID:BxelVpyp cuファイルをcuファイルにインクルードしてみるとか。
133125
2015/05/24(日) 22:10:36.84ID:FupD4mQN >>127の方法で分割コンパイルに一応成功しました!
一応と言ったのはrdcを「はい」にした場合と「いいえ」にした場合とでプログラムの挙動が少し変わってしまうのです
今書いているプログラムは何億回もの計算結果を足し合わせていくものなので、誤差の蓄積による影響を受けていると思います
コンパイルの方法を変えた(?)事で誤差の蓄積が変化(?)し、プログラムの挙動が変わったということなのでしょうか?
コンパイルと誤差がどう関係するのかは分かりませんが
一応と言ったのはrdcを「はい」にした場合と「いいえ」にした場合とでプログラムの挙動が少し変わってしまうのです
今書いているプログラムは何億回もの計算結果を足し合わせていくものなので、誤差の蓄積による影響を受けていると思います
コンパイルの方法を変えた(?)事で誤差の蓄積が変化(?)し、プログラムの挙動が変わったということなのでしょうか?
コンパイルと誤差がどう関係するのかは分かりませんが
134125
2015/05/24(日) 22:19:49.55ID:FupD4mQN >>「はい」にした場合と「いいえ」にした場合
ファイルを分割するともちろん「いいえ」では動かないので、一つのファイルで完結しているプログラムでの話です
ファイルを分割するともちろん「いいえ」では動かないので、一つのファイルで完結しているプログラムでの話です
135デフォルトの名無しさん
2015/05/26(火) 06:54:20.42ID:VVQAbCqm 最適化の仕方が変わるのかもね
誤差が出て困るなら、なるべく誤差が少なくなるような組み方を考えるしかない
誤差が出て困るなら、なるべく誤差が少なくなるような組み方を考えるしかない
136デフォルトの名無しさん
2015/05/26(火) 07:49:49.21ID:3GnQrGbV 誤差にも種類があるが・・・
浮動小数点演算等の誤差なのか
同期ミスによる誤差なのか・・・
浮動小数点演算等の誤差なのか
同期ミスによる誤差なのか・・・
137デフォルトの名無しさん
2015/05/26(火) 22:03:46.38ID:f2qMZr+T138デフォルトの名無しさん
2015/05/26(火) 22:55:29.89ID:sIi3toQP つうか最適化で結果が変わったら
それはバグ以外に無いけどねえ。
それはバグ以外に無いけどねえ。
139デフォルトの名無しさん
2015/06/03(水) 15:26:06.85ID:f+QtTKYD140デフォルトの名無しさん
2015/06/17(水) 22:35:16.09ID:uTokHIG4 今年はGTC Japan開催のリリース出ないな
例年ならもう出ているのに
中止かもしくは時期がずれたのかな
例年ならもう出ているのに
中止かもしくは時期がずれたのかな
141デフォルトの名無しさん
2015/06/18(木) 12:56:34.78ID:0ZPzSsHT >>140
今年は9月18日に虎ノ門ヒルズで開催、だったかと。
今年は9月18日に虎ノ門ヒルズで開催、だったかと。
142デフォルトの名無しさん
2015/06/18(木) 13:04:11.34ID:9mEYqdNq Visual studioでCUDAプログラムを作成しています
Nsightでstart CUDA debuggingからプログラムを走らせた時だけプログラムが動かないんですが
どのような原因が考えられますか?
以下の条件ではすべて正常に動作・終了します
デバッグなしで開始(debug,release共に)
start CUDA debuggingでブレイクポイントを仕掛けて1スレッドずつ動かす
Nsightでstart CUDA debuggingからプログラムを走らせた時だけプログラムが動かないんですが
どのような原因が考えられますか?
以下の条件ではすべて正常に動作・終了します
デバッグなしで開始(debug,release共に)
start CUDA debuggingでブレイクポイントを仕掛けて1スレッドずつ動かす
143142
2015/06/18(木) 13:16:06.49ID:9mEYqdNq 追加です
プログラムの詳細ですが
ある無向グラフに対して,与えられた2点が連結かどうか調べるプログラム
枝重み0と仮定してダイクストラのアルゴリズムを用いて判定しています.
1ブロックにつき16スレッドが同時に走ります.
その判定関数をfoo()とすると
if( blockIdx.x == tmp )
foo();
というように一つのブロックのみで扱うようにすると
tmpがどのような値でも正常に動作するのですが
2ブロック以上でfooに行くようにすると動かなくなります
エラーがでないことと,printfによるチェックですが
配列のアドレスも問題ありません
プログラムの詳細ですが
ある無向グラフに対して,与えられた2点が連結かどうか調べるプログラム
枝重み0と仮定してダイクストラのアルゴリズムを用いて判定しています.
1ブロックにつき16スレッドが同時に走ります.
その判定関数をfoo()とすると
if( blockIdx.x == tmp )
foo();
というように一つのブロックのみで扱うようにすると
tmpがどのような値でも正常に動作するのですが
2ブロック以上でfooに行くようにすると動かなくなります
エラーがでないことと,printfによるチェックですが
配列のアドレスも問題ありません
144デフォルトの名無しさん
2015/06/19(金) 21:29:02.20ID:tQGft1o9 >>143
何かスレッドの実行順序に依存した処理があるか、排他が必要な競合でもあるんじゃね?
何かスレッドの実行順序に依存した処理があるか、排他が必要な競合でもあるんじゃね?
145デフォルトの名無しさん
2015/06/19(金) 22:01:43.75ID:FLqfhWNF >>141情報感謝です
146デフォルトの名無しさん
2015/06/22(月) 21:23:14.11ID:FYteK6ai デバイスメモリの内容を一時的にホスト側からアクセスしたいんですが、OpenCLでいう
clEnqueueMapBufferに相当する機能はCUDAにあるんでしょうか?
ちょっと調べてみたんですが、cudaHostRegisterは方向が逆だし、cudaMallocManagedは
既にあるデバイスメモリにアクセスするものではなさそうなので。
cudaMemcpyで読み出して終わったらまた書き出すという方法しかないんでしょうか。
clEnqueueMapBufferに相当する機能はCUDAにあるんでしょうか?
ちょっと調べてみたんですが、cudaHostRegisterは方向が逆だし、cudaMallocManagedは
既にあるデバイスメモリにアクセスするものではなさそうなので。
cudaMemcpyで読み出して終わったらまた書き出すという方法しかないんでしょうか。
147デフォルトの名無しさん
2015/06/23(火) 13:14:37.10ID:DUXK3D31 OpenCLを知らないので外してるかも知れないけど、
基本的にはcudamemcpyするしかない。
CUDA6.0からUnified Memoryっていう機能が入って、
GPU上のメモリをホストメモリと同じように読めて、
自動的に同期を取ってくれる機能。用途によっては使えるかも。
基本的にはcudamemcpyするしかない。
CUDA6.0からUnified Memoryっていう機能が入って、
GPU上のメモリをホストメモリと同じように読めて、
自動的に同期を取ってくれる機能。用途によっては使えるかも。
148デフォルトの名無しさん
2015/06/24(水) 08:02:13.81ID:wFw+UOzE >>147
ありがとう。やっぱりcudaMemcpyするしかないのか。
ありがとう。やっぱりcudaMemcpyするしかないのか。
149デフォルトの名無しさん
2015/06/25(木) 22:41:21.74ID:t3bjYB8L 今日はじめてCUDAを入れた者ですが、VS2013でサンプルをビルドするとerror MSB3721…\simpleTemplates.cu"" はコード 1 で終了しました
って出るんだが何か設定とか必要ですか?
あとインストールの確認(?)でコマンドプロンプトでnvcc -Vのコマンド入れてもアクセスが拒否されましたと出る…
これが原因ですかね?
いろいろ調べてみましたが、これといった解決方法はなかったので助けて下さい。
よろしくお願いします。
って出るんだが何か設定とか必要ですか?
あとインストールの確認(?)でコマンドプロンプトでnvcc -Vのコマンド入れてもアクセスが拒否されましたと出る…
これが原因ですかね?
いろいろ調べてみましたが、これといった解決方法はなかったので助けて下さい。
よろしくお願いします。
150149
2015/06/25(木) 23:09:29.97ID:t3bjYB8L151デフォルトの名無しさん
2015/06/26(金) 01:26:56.82ID:f2ddT7MK 750Tiってあんまりいけてないのか…
CUDA試したくてあんまり調べずに衝動買いしてしまった
900台にした方が良かったのかなあ
CUDA試したくてあんまり調べずに衝動買いしてしまった
900台にした方が良かったのかなあ
152デフォルトの名無しさん
2015/06/26(金) 08:33:52.91ID:h0LNB3lK ゲームするならかなりいけてるが倍精度はしょぼいな
倍精度が欲しいならfermiかgk110コアのがいいのか?
ゲームしないならamdでopenCLの方がコスパ良さそうなんだがどうなの?
倍精度が欲しいならfermiかgk110コアのがいいのか?
ゲームしないならamdでopenCLの方がコスパ良さそうなんだがどうなの?
153デフォルトの名無しさん
2015/06/26(金) 09:30:43.08ID:gBS6mhz7 >>150
ちゃんとアンチウイルス入れておけよ。
ちゃんとアンチウイルス入れておけよ。
154デフォルトの名無しさん
2015/06/26(金) 11:48:22.16ID:JVzNXP51 CUDA7入れたのですが、
cublas.hが見つからないと出てしまいました。
cublas使うには他に何か必要なのでしょうか?
cublas.hが見つからないと出てしまいました。
cublas使うには他に何か必要なのでしょうか?
155デフォルトの名無しさん
2015/06/26(金) 12:57:38.26ID:1v0mrakI >>154
C:> dir /s /b "%CUDA_PATH%\cublas.h"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include\cublas.h
C:> dir /s /b "%CUDA_PATH%\cublas.h"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include\cublas.h
156デフォルトの名無しさん
2015/06/26(金) 13:07:12.91ID:JVzNXP51 ありがとうございます。
みつかりました
みつかりました
157デフォルトの名無しさん
2015/06/26(金) 23:47:30.95ID:f2ddT7MK >>152
>ゲームするならかなりいけてる
こういうのがイマイチよくわかりません
単純にFLOPSで性能を見ちゃいけないのでしょうか
ゲームやGPUプログラミングに向いてるかどうかってどうやって判断してるんでしょうか
>ゲームするならかなりいけてる
こういうのがイマイチよくわかりません
単純にFLOPSで性能を見ちゃいけないのでしょうか
ゲームやGPUプログラミングに向いてるかどうかってどうやって判断してるんでしょうか
158デフォルトの名無しさん
2015/06/27(土) 03:38:35.85ID:y7j5+l1E >>157
プロはGPGPUするのにゲーム用のGFやRadeonをはあんまり使わない
趣味レベルでOKのGPGPUならGPGPUがオマケであるゲーム用(ゲームドライバ)のVGAでも良いが。
Xeonが一般的な業務サーバーに普通のデスクトップPCをいっぱい使うなことは
しないのと同じ。あと、FLOPSは目的のGPGPUするのに必要なレベルあれあば良い。
低FLOPSでOKなGPGPU処理に超高FLOPSのものを使うって趣味だし
プロはGPGPUするのにゲーム用のGFやRadeonをはあんまり使わない
趣味レベルでOKのGPGPUならGPGPUがオマケであるゲーム用(ゲームドライバ)のVGAでも良いが。
Xeonが一般的な業務サーバーに普通のデスクトップPCをいっぱい使うなことは
しないのと同じ。あと、FLOPSは目的のGPGPUするのに必要なレベルあれあば良い。
低FLOPSでOKなGPGPU処理に超高FLOPSのものを使うって趣味だし
159デフォルトの名無しさん
2015/06/27(土) 09:17:14.69ID:f1QkQQtg プロだってコスパ考えるだろ。
倍精度演算性能と信頼性で妥協できるならゲーム用GPUの方が圧倒的に安いしな。
倍精度演算性能と信頼性で妥協できるならゲーム用GPUの方が圧倒的に安いしな。
2015/06/27(土) 23:23:04.05ID:XHzW5ECE
まあ中国の天河1号はFireStreamですらないRadeonのデュアルGPUカードを大量搭載したが
結局実用にならなくて次の更新で全部Teslaに差し替えたからね
額面のFLOPS数だけで実用性は評価できない
結局実用にならなくて次の更新で全部Teslaに差し替えたからね
額面のFLOPS数だけで実用性は評価できない
161デフォルトの名無しさん
2015/06/28(日) 09:51:05.56ID:MpgQMMEq 中国はスパコンにTESLAとか使えなくなったから、NVIDIAやインテルは大口顧客を失った。
162デフォルトの名無しさん
2015/06/28(日) 16:33:48.10ID:zku7pwa+ >NVIDIAやインテルは大口顧客を失った。
その損失分は米国内の大型スパコンでの便宜をはかることで補填されてるから企業としては差し引きOKとなったはず
その損失分は米国内の大型スパコンでの便宜をはかることで補填されてるから企業としては差し引きOKとなったはず
163デフォルトの名無しさん
2015/06/29(月) 08:06:36.49ID:FIYCVjDt windows7でchainer試そうとすると
pycudaでなんか不具合出る
pycudaでなんか不具合出る
164デフォルトの名無しさん
2015/06/29(月) 08:13:35.83ID:FIYCVjDt165デフォルトの名無しさん
2015/06/29(月) 09:25:13.60ID:uPSGGZxo 並列計算でGTX780Ti使ってるんだけどGTX980Tiにしたら倍精度の計算って遅くなる?
166デフォルトの名無しさん
2015/06/30(火) 16:00:18.94ID:vWTsPJO/ cudaってMFCのcppから呼べますか?
サンプルで.cuから.cppを呼んでるのは見つけたんですが。
サンプルで.cuから.cppを呼んでるのは見つけたんですが。
167デフォルトの名無しさん
2015/06/30(火) 17:26:54.94ID:vWTsPJO/ あーexternで呼べました
168デフォルトの名無しさん
2015/07/02(木) 01:47:05.99ID:cql5ELb9 >>165
単精度演算性能 コア数×クロック数×2
倍精度演算性能 単精度演算性能/24(Kepler), 単精度演算性能/32(Maxwell)
として計算すると、
780Tiが2880×875×2/24=205GFLOPS
980Tiが2816×1000×2/32=172GLOPS
だから、遅くなるんじゃね?
単精度演算性能 コア数×クロック数×2
倍精度演算性能 単精度演算性能/24(Kepler), 単精度演算性能/32(Maxwell)
として計算すると、
780Tiが2880×875×2/24=205GFLOPS
980Tiが2816×1000×2/32=172GLOPS
だから、遅くなるんじゃね?
169デフォルトの名無しさん
2015/07/02(木) 15:34:36.77ID:bfg1NSwR CUDAって仕様上できないこともコンパイルとおるのか〜
170デフォルトの名無しさん
2015/07/02(木) 23:26:03.68ID:Pfy0Io9G Nvはゲームにゲーム用VGAには倍精度演算イラネから省くって流れだから
ゲーム用VGAで倍精度演算性能ほしいならRadeにしたほうがいいよな
ゲーム用VGAで倍精度演算性能ほしいならRadeにしたほうがいいよな
171デフォルトの名無しさん
2015/07/03(金) 14:37:16.26ID:WUZUNux9172デフォルトの名無しさん
2015/07/03(金) 23:30:48.50ID:dkeXuonA TITANヤフオクで探すのはどうでしょ
173デフォルトの名無しさん
2015/07/05(日) 22:31:36.27ID:tW1t1zZP 全く値段見ないでカンで言うけど
中古の無印TITANならウンコに混じったコーン位の値段で売ってんじゃないの?
中古の無印TITANならウンコに混じったコーン位の値段で売ってんじゃないの?
174デフォルトの名無しさん
2015/07/07(火) 16:43:12.64ID:y9jINuhY CULAのエラーでpos 1022ってなんですか?
LAPACKドキュメントを見よとか書いてありますが、見当たりません
LAPACKドキュメントを見よとか書いてありますが、見当たりません
175デフォルトの名無しさん
2015/07/08(水) 10:49:51.33ID:UJb9gmN3 CUDA7.5 RC
176デフォルトの名無しさん
2015/07/08(水) 20:10:01.47ID:h2HOA+i0 最近始めたんだけどversionって無理して最新にする必要無いのかな
7入れるのに結構苦労したんであんまり変えたくない
みなさんはガンガン上げてく感じですか?
7入れるのに結構苦労したんであんまり変えたくない
みなさんはガンガン上げてく感じですか?
177デフォルトの名無しさん
2015/07/08(水) 20:20:41.59ID:QsV0kvB4 共存できるやん
178デフォルトの名無しさん
2015/07/11(土) 13:57:32.12ID:QRzfcgY3 困らなければ基本的に更新とかはしないと思うけど…
179デフォルトの名無しさん
2015/07/13(月) 01:32:34.78ID:BK2wG7MT でも最新のほうが速くなったりするかもしれないし
180デフォルトの名無しさん
2015/07/27(月) 20:50:16.33ID:0YcBUgDv 分割コンパイルができないんだけど、どうしたらいいんだろ?
ビルドどころか1ファイルのコンパイルもエラーになる
vs2013ce, cuda7.0, fermi, debug,x64
D:\cuda_test\cuda_test>
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"
-gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2013
-ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64" -rdc=true
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64"
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include"
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include"
-G --keep-dir x64\Debug -maxrregcount=0 --machine 64
--compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_UNICODE -DUNICODE
-Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd "/wd 4819""
-o x64\Debug\cuda_body.cu.obj "D:\cuda_test\cuda_test\cuda_body.cu"
1> nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
ビルドどころか1ファイルのコンパイルもエラーになる
vs2013ce, cuda7.0, fermi, debug,x64
D:\cuda_test\cuda_test>
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe"
-gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2013
-ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64" -rdc=true
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64"
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include"
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include"
-G --keep-dir x64\Debug -maxrregcount=0 --machine 64
--compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_UNICODE -DUNICODE
-Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd "/wd 4819""
-o x64\Debug\cuda_body.cu.obj "D:\cuda_test\cuda_test\cuda_body.cu"
1> nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
181デフォルトの名無しさん
2015/07/27(月) 20:55:02.52ID:0YcBUgDv nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
コンパイルフェーズで出力ファイル指定するときは1ファイルでやれっていうけど、出力ファイル指定しないと何にも出力されないし、
cuda5.0以降は分割コンパイルは対応してるよね? rdcもdlinkも指定してるし何がいけないんだ
コンパイルフェーズで出力ファイル指定するときは1ファイルでやれっていうけど、出力ファイル指定しないと何にも出力されないし、
cuda5.0以降は分割コンパイルは対応してるよね? rdcもdlinkも指定してるし何がいけないんだ
182デフォルトの名無しさん
2015/08/02(日) 15:01:41.54ID:LFE7g0os 別にCUDAじゃなくても良いんですが、
GPUで直接JPEGを、DirectXのテクスチャに展開して、そのまま表示したいです。
そういったライブラリって無いですか?
かなり需要がありそうなんですが
GPUで直接JPEGを、DirectXのテクスチャに展開して、そのまま表示したいです。
そういったライブラリって無いですか?
かなり需要がありそうなんですが
183デフォルトの名無しさん
2015/09/07(月) 00:27:30.12ID:nK71AIt7 ヘッダファイルで定義した定数は__device__内では使えないのでしょうか?
184183
2015/09/08(火) 02:08:23.68ID:V+WRCKAL 少し分かったことがありました
グローバルで
const int i = 1;
const double d = 1;
と定義すると
__device__内でiは使えてdは使えませんでした
error: identifier "d" is undefined in device code
とエラーが出てしまいます
どうしてdouble型だとエラーになるのでしょうか?
グローバルで
const int i = 1;
const double d = 1;
と定義すると
__device__内でiは使えてdは使えませんでした
error: identifier "d" is undefined in device code
とエラーが出てしまいます
どうしてdouble型だとエラーになるのでしょうか?
185デフォルトの名無しさん
2015/09/11(金) 23:39:48.38ID:myHMFCwl floatやlongは?
186デフォルトの名無しさん
2015/09/14(月) 22:17:35.79ID:2IqUP8/H floatはダメでlong intはOK
だめならだめで引数とすれば良いんですけどね
整数だけというのはcudaの仕様ですかね?
だめならだめで引数とすれば良いんですけどね
整数だけというのはcudaの仕様ですかね?
187デフォルトの名無しさん
2015/09/15(火) 09:01:24.15ID:10B5WSYL なんでだろうな。全く調べていないので100%想像だけど、
GPU上にstatic変数が確保されているとは思えないから、
(無いとは言い切れないが)
コンパイル時に定数展開しているんだろうな。
C++の言語仕様としてconst intは定数展開していいし、
(厳密な言い方だと間違いかもしれん)
クラスのstaticメンバにしても宣言のみで定義が不要ってのがあるから、
それに則った処理なんじゃなかろうか。
GPU上にstatic変数が確保されているとは思えないから、
(無いとは言い切れないが)
コンパイル時に定数展開しているんだろうな。
C++の言語仕様としてconst intは定数展開していいし、
(厳密な言い方だと間違いかもしれん)
クラスのstaticメンバにしても宣言のみで定義が不要ってのがあるから、
それに則った処理なんじゃなかろうか。
188デフォルトの名無しさん
2015/09/15(火) 14:26:04.38ID:8ArN6+Sd Visual Studioでエラーでた
似たような状況の人いたら教えてほしいです
環境
CPU core i5 4570
GPU GTX 980
Visual Studio 2010 Ultimate
CUDA v7.0
NSIGHT v5.0
使用言語はC
エラーが起こる状況↓
__device__ function1(){
int array1[ 1000 ];
function2( array1 );
}
__device__ function2( int *array1 ){
int array2[ 1000 ];
for( int k = 0 ; k < 1000 ; k++ ){
array1[ k ] = rand(); // rand()は何らかの乱数を返す関数
array2[ k ] = rand();
}
}
function1を呼び出したとき,時折だがarray1の値がarray2の値と同じになってしまう
エラーが起きた状況で以下のことは確認済み
・array1,2ともにグローバルメモリに確保されている
・array1とarray2のポインタは異なっている
・rand()が異なる値を返している
また,array2の宣言をfunction1で行い,function2にarray2のポインタを返すことで回避ができる
似たような状況の人いたら教えてほしいです
環境
CPU core i5 4570
GPU GTX 980
Visual Studio 2010 Ultimate
CUDA v7.0
NSIGHT v5.0
使用言語はC
エラーが起こる状況↓
__device__ function1(){
int array1[ 1000 ];
function2( array1 );
}
__device__ function2( int *array1 ){
int array2[ 1000 ];
for( int k = 0 ; k < 1000 ; k++ ){
array1[ k ] = rand(); // rand()は何らかの乱数を返す関数
array2[ k ] = rand();
}
}
function1を呼び出したとき,時折だがarray1の値がarray2の値と同じになってしまう
エラーが起きた状況で以下のことは確認済み
・array1,2ともにグローバルメモリに確保されている
・array1とarray2のポインタは異なっている
・rand()が異なる値を返している
また,array2の宣言をfunction1で行い,function2にarray2のポインタを返すことで回避ができる
189デフォルトの名無しさん
2015/09/15(火) 14:29:46.25ID:JgRUCOJR 全然知らんけど、スタックオーバーフローじゃね?
static int array2[1000];にすれば解決
static int array2[1000];にすれば解決
190デフォルトの名無しさん
2015/09/17(木) 00:01:30.77ID:6wQsOGVx >>184
device修飾してないだけとか馬鹿なおちはないよな?
device修飾してないだけとか馬鹿なおちはないよな?
191デフォルトの名無しさん
2015/09/27(日) 11:58:09.30ID:X6SDQWu/ VS2013 cuda7.0で
intelisenseがcudaの関数やthreadIdxなんかに赤線つけるんだけど
intelisenseを無効化させる方法ではなく、対応させられない?
intelisenseがcudaの関数やthreadIdxなんかに赤線つけるんだけど
intelisenseを無効化させる方法ではなく、対応させられない?
192デフォルトの名無しさん
2015/09/29(火) 16:27:34.89ID:++1fLQj6 CUDAって余計な決まり事が多くてGLSLよりわかりにくくなってると思うんだけど
193デフォルトの名無しさん
2015/09/30(水) 06:44:35.73ID:OmftLuOo194デフォルトの名無しさん
2015/10/01(木) 00:53:18.68ID:44xt2+tf cuda_header.hに以下をまとめて、これを.cuでインクルードしてるんだけど、インテリセンスがエラーとして表示したままなんだ。
また従来のcutil系の代わりのhelper関数のヘッダが開けないともなぜか出る。(プロジェクトの追加のインクルードDirには指定してあるんだが・・)
でもコンパイルはされるんだよ・・・。インテリセンスのキャッシュクリアしようと考えたんだが2013のメニューにはないみたいだし・・。
#include <cuda.h>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
#include <device_functions.h>
#include <math_constants.h>
#include <helper_cuda.h>
#include <helper_math.h>
また従来のcutil系の代わりのhelper関数のヘッダが開けないともなぜか出る。(プロジェクトの追加のインクルードDirには指定してあるんだが・・)
でもコンパイルはされるんだよ・・・。インテリセンスのキャッシュクリアしようと考えたんだが2013のメニューにはないみたいだし・・。
#include <cuda.h>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
#include <device_functions.h>
#include <math_constants.h>
#include <helper_cuda.h>
#include <helper_math.h>
195デフォルトの名無しさん
2015/11/11(水) 20:55:36.03ID:FAkUvGGr 超初歩的な質問ですがよろしければお願いします
環境 windows7 64bit Visual Studio 2013 community CUDA7.5
CUDAインストール時にはVS2013をインストール済みと判定するものの
コマンドプロンプトからnvccでサンプルを実行させると
nvcc fatal : nvcc cannot find a supported version of microsoft visual studio
とエラーが発生します
パスなどの設定の問題なのでしょうか?
環境 windows7 64bit Visual Studio 2013 community CUDA7.5
CUDAインストール時にはVS2013をインストール済みと判定するものの
コマンドプロンプトからnvccでサンプルを実行させると
nvcc fatal : nvcc cannot find a supported version of microsoft visual studio
とエラーが発生します
パスなどの設定の問題なのでしょうか?
196デフォルトの名無しさん
2015/11/11(水) 22:32:08.88ID:kzShUi9X コマンドプロンプトからcl.exe叩くのと同じだろう。
VSの開発者コマンドプロンプトからやってみれば?
VSの開発者コマンドプロンプトからやってみれば?
197デフォルトの名無しさん
2015/11/12(木) 06:18:25.24ID:oFlt1n6m Communityでもいけるんだ?
少し前に断念してProにした記憶がある
少し前に断念してProにした記憶がある
198デフォルトの名無しさん
2015/11/16(月) 00:30:41.16ID:wFEoXPFZ 質問です
OpenGLとCUDAを使って流体のシミュレーションをしようと考えています
OpenGLの描画とCUDAの計算を別スレッドで行ってCUDAの計算の完了を待たずに描画をしようとするとプログラムが落ちてしまいます
そもそもこういう使い方は間違いですか?
GPUを二つ使わないと不可能なのでしょうか?
OpenGLとCUDAを使って流体のシミュレーションをしようと考えています
OpenGLの描画とCUDAの計算を別スレッドで行ってCUDAの計算の完了を待たずに描画をしようとするとプログラムが落ちてしまいます
そもそもこういう使い方は間違いですか?
GPUを二つ使わないと不可能なのでしょうか?
199デフォルトの名無しさん
2015/11/16(月) 04:31:20.12ID:yRzaBdvH CUDAを待たずにどういったデータで描画してるの?
200デフォルトの名無しさん
2015/11/16(月) 11:12:07.65ID:wFEoXPFZ 正確には
CUDAで計算
↓
計算用と描画用として二つのデータをメモリにコピー
↓ ↓
グラフィック描画 CUDAで計算 ←ここを並列化したい
↓
計算用と描画用として二つのデータをメモリにコピー
↓ ↓
グラフィック描画 CUDAで計算
↓
といった処理の流れです
描画と計算の処理の合計が少しでも速くなれば最終的には速くなる見込みなんですが、描画とCUDAは同時にはできないのでしょうか?
CUDAで計算
↓
計算用と描画用として二つのデータをメモリにコピー
↓ ↓
グラフィック描画 CUDAで計算 ←ここを並列化したい
↓
計算用と描画用として二つのデータをメモリにコピー
↓ ↓
グラフィック描画 CUDAで計算
↓
といった処理の流れです
描画と計算の処理の合計が少しでも速くなれば最終的には速くなる見込みなんですが、描画とCUDAは同時にはできないのでしょうか?
201デフォルトの名無しさん
2015/11/16(月) 13:12:47.35ID:tPyDrti9202デフォルトの名無しさん
2015/11/16(月) 18:15:47.96ID:wFEoXPFZ すいません何故か解決しました
OpenGLによる描画をサブスレッドにしていたところメインスレッドにしたら問題なく実行できるようになりました
OpenGLによる描画をサブスレッドにしていたところメインスレッドにしたら問題なく実行できるようになりました
203デフォルトの名無しさん
2015/11/19(木) 10:22:54.59ID:78JlLUmP AMD、GPGPUの向けの取り組み「ボルツマンイニシアチブ」を発表。CUDAとの互換性も提供 | スラド
http://srad.jp/story/15/11/18/0657225/
http://srad.jp/story/15/11/18/0657225/
204デフォルトの名無しさん
2015/11/19(木) 18:31:49.90ID:xKyOvSDo >>203
いまや一般向けプログラムですらGPUを使うことが普通になったから、
これがC++コンパイラーのデファクトになるだろうな。
DX12,VulkanでGPUするならAMDって流れにまってしまったからな
いまや一般向けプログラムですらGPUを使うことが普通になったから、
これがC++コンパイラーのデファクトになるだろうな。
DX12,VulkanでGPUするならAMDって流れにまってしまったからな
205デフォルトの名無しさん
2015/11/19(木) 20:24:21.71ID:FjjW9TL1 え?
GPGPUの世界は圧倒的にNVIDIAなんだけど?
GPGPUの世界は圧倒的にNVIDIAなんだけど?
206デフォルトの名無しさん
2015/11/19(木) 20:26:18.29ID:Zq45eYUV PC用GPUでもAMDはシェア2割切ってるでしょ
207デフォルトの名無しさん
2015/11/19(木) 21:33:26.48ID:ngiRjlY7 産業向けのガチのやつならNvidiaでくだ
カジュアルな一般向けならIntelをOpenCLでってとこかな
カジュアルな一般向けならIntelをOpenCLでってとこかな
208デフォルトの名無しさん
2015/11/19(木) 22:05:05.00ID:btQoS/xZ 開発の手間で言えばCUDAが一番楽。NV限定にできるなら趣味でやるにしてもそれが一番手軽。
OpenCLならせめてAMD。IntelはOpenCLの経験を積んだ苦労と向け。
OpenCLならせめてAMD。IntelはOpenCLの経験を積んだ苦労と向け。
209デフォルトの名無しさん
2015/11/19(木) 22:09:50.57ID:ngiRjlY7 個人向けやオフィスPCでグラボ別にあるのって少数だから仕方ない。
数を優先するならむしろNvidia切ってIntelのみ対応という手もありうる。
数を優先するならむしろNvidia切ってIntelのみ対応という手もありうる。
210デフォルトの名無しさん
2015/11/19(木) 22:10:45.45ID:ngiRjlY7 慣れてるし開発ツール揃ってるからNが一番楽なんだけど。
211デフォルトの名無しさん
2015/11/19(木) 22:48:28.04ID:btQoS/xZ HD GraphicsでOpenCLやってもCPUと大して性能変わらんぞ?
それに、オンボードグラフィックスのPC自体は多いだろうが、OpenCL1.0しか動かんとか
そもそもOpenCLが使えないのも少なくない。間口でいうならSSEでもやるほうがまし。
そうでなければAMDでOpenCL開発してNVとIntelで動作確認ってところだな。
それに、オンボードグラフィックスのPC自体は多いだろうが、OpenCL1.0しか動かんとか
そもそもOpenCLが使えないのも少なくない。間口でいうならSSEでもやるほうがまし。
そうでなければAMDでOpenCL開発してNVとIntelで動作確認ってところだな。
212デフォルトの名無しさん
2015/11/19(木) 23:05:53.48ID:ngiRjlY7 >>211
CPUの代わりというよりは少しでも計算パワーがほしい場合もあってさ。
GPU使ってる間CPU使えるなら2倍になるじゃん?
あるいはBGでうごかしてフロントでは通常のアプリ使えるじゃない?
絶対的なパワーというよりはそういう所に使いでを見出してる。
確かにOpenCLはHWアーキ変更激しいし世代でがらりと変えてくるからやりにくそうなんだけど。
CPUの代わりというよりは少しでも計算パワーがほしい場合もあってさ。
GPU使ってる間CPU使えるなら2倍になるじゃん?
あるいはBGでうごかしてフロントでは通常のアプリ使えるじゃない?
絶対的なパワーというよりはそういう所に使いでを見出してる。
確かにOpenCLはHWアーキ変更激しいし世代でがらりと変えてくるからやりにくそうなんだけど。
213デフォルトの名無しさん
2015/11/19(木) 23:06:47.02ID:ngiRjlY7 間違い。OpenCLではなくてIntelのGPUね
214デフォルトの名無しさん
2015/11/19(木) 23:36:03.63ID:u4ZVkU4H AMD関連使って良かったと思った印象が一度も無いから使いたくねえな
215デフォルトの名無しさん
2015/11/19(木) 23:54:31.95ID:btQoS/xZ >>212
つまり、少しでもパフォーマンスは欲しいけどdGPUほどの性能は必要なくて、
数を優先するけどオンボードグラフィックスでOpenCLが動く環境に限定していいと。
最初の「カジュアル」からは想像つかないピンポイントな要件だなw
つまり、少しでもパフォーマンスは欲しいけどdGPUほどの性能は必要なくて、
数を優先するけどオンボードグラフィックスでOpenCLが動く環境に限定していいと。
最初の「カジュアル」からは想像つかないピンポイントな要件だなw
216デフォルトの名無しさん
2015/11/20(金) 00:37:51.03ID:XYOZ5eLO カジュアルGPGPUなら内蔵GPUでOpenCL2確定
一方、外GPUを使う高性能GPGPUものは昔はNvidiaが圧倒していたけど、いまはAMDが圧倒しているんだろ?
一方、外GPUを使う高性能GPGPUものは昔はNvidiaが圧倒していたけど、いまはAMDが圧倒しているんだろ?
217デフォルトの名無しさん
2015/11/20(金) 00:49:06.07ID:H4wqwi3u >>215
そうなのかなあ?自分の文章の書き方が良くないのかもしれないが
ほとんどは内蔵GPUしか期待できないから、
その範囲で少しでも計算パワー稼ごうと思ったらそれしかないように思うのだけど
dGPUほどの性能はいらないわけじゃなくて、ほとんど期待できないからしかたなくという感じ。
そうなのかなあ?自分の文章の書き方が良くないのかもしれないが
ほとんどは内蔵GPUしか期待できないから、
その範囲で少しでも計算パワー稼ごうと思ったらそれしかないように思うのだけど
dGPUほどの性能はいらないわけじゃなくて、ほとんど期待できないからしかたなくという感じ。
218デフォルトの名無しさん
2015/11/20(金) 01:19:10.06ID:mr/p17yR 組み込みは知らないけど汎用PCでAMDが圧倒した話なんて聞いたことない
219デフォルトの名無しさん
2015/11/20(金) 05:55:05.61ID:M/+Jbdu5 bitcoin マイニングでは AMD 一択だったようだが
220デフォルトの名無しさん
2015/11/20(金) 07:13:28.40ID:08M9JHWM deep learningではNVIDIA圧勝だろ?
221デフォルトの名無しさん
2015/11/20(金) 07:48:52.29ID:kIzUFPbb bitcoinは専用ASICが開発されてとっくにそっちが主流になりました
GPGPUでやったところで、最早電気代のもとを取ることすらできない
GPGPUが最適といわれるのはASIC以前にFPGA化して売り出すほどの人気もない
マイナー暗号通貨くらいでそんなニーズが世界的な需要をけん引することなんて
ありうるわけがないのだ(需要が少ないからこそGPGPUでやってるわけだし)
GPGPUでやったところで、最早電気代のもとを取ることすらできない
GPGPUが最適といわれるのはASIC以前にFPGA化して売り出すほどの人気もない
マイナー暗号通貨くらいでそんなニーズが世界的な需要をけん引することなんて
ありうるわけがないのだ(需要が少ないからこそGPGPUでやってるわけだし)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 【群馬】横断歩道を渡っていたNHKアナウンサーが車にはねられ骨折などの重傷 前橋市 [ぐれ★]
- ガチニートのモーニングがお洒落すぎる件
- 趣味に年50万って多い?
- 【悲報】ドイツ人「なんで日本人って自炊するの?出来合の惣菜や冷食食った方が楽でコスパいいやん。そんなんだから低生産性なんだよ [786648259]
- 底辺テイカー気質Vtuberを破壊する遊びが闇深いと話題に [922647923]
- 【動画】まんさん、アラジンのジーニーみたいな男にボコボコにされる🧞‍♂ [632966346]
- 【時事】立憲民主党、30代の支持率が「ゼロ」😨 [369521721]
