■ このスレッドは過去ログ倉庫に格納されています
【GPGPU】くだすれCUDAスレ part7【NVIDIA】
- 1 :デフォルトの名無しさん:2014/11/20(木) 23:14:46.66 ID:jr3oZn27.net
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
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/
- 2 :デフォルトの名無しさん:2014/11/20(木) 23:15:41.57 ID:jr3oZn27.net
- 関連サイト
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 : 【東電 69.8 %】 :2014/11/21(金) 00:13:37.04 ID:kFWiXf0I.net
- >>1
ああ、キミ!また会えたね。久しぶりだ。どうだいあの件は?どうなったか説明したまえな。
神戸市の東、芦屋西宮の知的障害者施設で未成年利用者に性的な行為をして淫行条例で逮捕された三田谷学園元職員の堂垣直人(西宮市老松町)は、結局どういう罪になったの?
被害者家族のケアを芦屋市役所と兵庫県警はちゃんとやったのか?
差別や虐待は環境を選べない子供には関係ない。
http://www.youtube.com/watch?v=JxMzW3ZlV4g&sns=em
まあ、こっちに座れよ。ゆっくり話そうじゃないか。
- 4 :デフォルトの名無しさん:2014/11/21(金) 07:36:45.42 ID:JsFj8Vej.net
- http://i.imgur.com/SduT7qR.jpg
http://i.imgur.com/2f8fP3F.jpg
http://i.imgur.com/u0ymg8c.jpg
http://i.imgur.com/LruEssT.png
http://i.imgur.com/AeSQqRT.jpg
http://cisburger.com/up/bnf/6016.jpg
http://up.pangya.tv/src/www_pangya_tv18594.jpg
- 5 :デフォルトの名無しさん:2014/11/21(金) 18:05:42.00 ID:qiUQrZk/.net
- syncthreadsとthreadfence_blockの違いが分かりません
syncthreadsだけで十分な気がしますが、どういう時に使い分けるのでしょうか?
- 6 :デフォルトの名無しさん:2014/11/22(土) 13:34:27.11 ID:Ke1g3qvZ.net
- >>5
http://shobomaru.wordpress.com/2013/09/13/synchronizing-instruction-in-direct-compute-and-cuda/
メモリの書き込み競合防止をするかどうかの違いみたいです。
これってatomic命令より軽いのか知らん?
- 7 :デフォルトの名無しさん:2014/11/22(土) 13:48:05.92 ID:S8C7U0PL.net
- >>6
競合防止なんて書いてる?
複数のスレッドが同じメモリに書き込む時はatomicをsyncthreadsやthreadfenceと同時に使わないといけない気がする(誰か教えてください)
- 8 :デフォルトの名無しさん:2014/11/22(土) 22:18:58.72 ID:Ke1g3qvZ.net
- すみません、誤読しました。
「同じブロック内の全スレッドがこの命令にたどり着く」
まで待つかどうかの違いですね。
- 9 :デフォルトの名無しさん:2014/11/24(月) 04:18:18.83 ID:qPQKDlD6.net
- 今一番コスパ高いカードってなに?
- 10 :デフォルトの名無しさん:2014/11/24(月) 04:21:35.17 ID:qPQKDlD6.net
- 謝罪文みても思い上がりが激しい
- 11 :デフォルトの名無しさん:2014/11/25(火) 19:26:42.72 ID:kFuypilU.net
- プログラムのカーネル部分がどうしても実行されません(サンプルプログラムでは実行されていました)
どなたか原因に心当たりはありませんか?(私はありません)
ブレークポイントで確認したところカーネルの上下にあるクロックは実行されており、
カーネルだけが実行されていませんでした(カーネルの中へ入って行かないという意味です)
以下が呼び出しで、dim3はグローバルで定義してあります
dim3 blocks((num + max - 1) / max, (num + max - 1) / max);
dim3 threads(max, (1024 + max - 1) / max, 1);
void calculation(void)
{
clock_t start, end;
start = clock();
cal<<<blocks, threads>>>(con, num, points, data);
end = clock();
cout << double(end - start) / CLOCKS_PER_SEC << "\n";
}
- 12 :デフォルトの名無しさん:2014/11/25(火) 21:02:59.83 ID:N/U8okyJ.net
- >>11
dim3構造体のメンバ変数をプリントしたらどうなりますか?
- 13 :デフォルトの名無しさん:2014/11/25(火) 21:44:27.45 ID:kFuypilU.net
- >>12
>11のcalculation()の最後の行にプリントの一文を入れてみましたが
ブロックが(128,128)、スレッドが(128,8)と想定通りでした
(スレッドは1ブロック当たり1024個まで配置可能なのでギリギリセーフなはずです)
忘れていましたが、呼び出し先です
この中にブレークポイントを配置してもプログラムが止まらないという魔の領域となっています
(もちろんnsightのcuda debuggingでデバッグしています)
__global__ void cal(double con, int num, a_data *points, b_data *data)
{・・・}
- 14 :デフォルトの名無しさん:2014/11/26(水) 18:34:20.92 ID:cpKKMAIz.net
- >>13
カーネルが実行されているかどうかはどうやって確認していますか?
- 15 :デフォルトの名無しさん:2014/11/26(水) 19:30:35.81 ID:mOjmGjn5.net
- >>14
>>13に書いた通り、ブレークポイントをカーネルの中に入れて実行されているかどうかを確認しています
描画をするプログラムなので図形が動くか動かないかでも判断できます
- 16 :デフォルトの名無しさん:2014/11/26(水) 20:04:14.26 ID:qey6HT7s.net
- おれもカーネルに入らないケース出たわ
原因調査中・・・
- 17 :デフォルトの名無しさん:2014/11/27(木) 08:04:41.88 ID:7alpN+o4.net
- >>15
CUDAのデバッガ使った事がない(ひたすらprintf)ので
一般論的な事しか言えませんが、
怪しそうな処理をコメントアウトしていったらどうでしょう?
変なメモリアクセスで落ちるとか割とありがちな気が。
- 18 :デフォルトの名無しさん:2014/11/28(金) 22:55:16.84 ID:JeOcX4pA.net
- おれもカーネルに入らない
ただなぜかcygwinでコンパイルするとカーネルが起動する
なんでじゃ・・・
例のvisual studio2013もインストールしてみたいな〜
- 19 :デフォルトの名無しさん:2014/11/28(金) 23:06:00.72 ID:JeOcX4pA.net
- >>18だけど
osはwindows8.1
コンパイラはcuda6.5+vs2013 express
カーネルは担当する要素を+1するだけのもの
これをコマンドプロンプトでコンパイルしてもカーネルは動かなかった(?)
動かないと判断したのは結果をmemcpyしてホスト側に返しても+1されてなかったから
もしかしたら正常にmemcpyされてないだけかもしれない
カーネルに入らない人はcygwin使ってみるといいかもね
本質的な解決にはならないけど・・・
- 20 :デフォルトの名無しさん:2014/11/30(日) 20:47:05.05 ID:NdicNENH.net
- ビジュアルプロファイラー使ってみたら。
- 21 :デフォルトの名無しさん:2014/12/03(水) 14:38:19.35 ID:GXBajCbw.net
- kernel実行後にcudaGetLastError()でRCを取得
そうするとkernel実行結果が分かる
RCの数値は自分で調べてね
- 22 :16,21:2014/12/04(木) 22:23:47.78 ID:EZ4odEf+.net
- 21の情報は役だったかな?
自分の場合(LINUX)、RC=7(too many resources requested for launch)だったので
コンパイルオプションに -Xptxas -vを追加して使用レジスタ数を確認。
結果ハードウェアのレジスタ数を超過したためにカーネルの処理が行われなかったことが判明。
スレッドサイズを小さくして問題解決。
因みに使用レジスタはハードウェアによって変わる。
- 23 :デフォルトの名無しさん:2014/12/05(金) 14:06:24.56 ID:+nFWXccn.net
- >>22
ちょっと興味があるんですけれど、
カーネルのサイズは動的に決めてるんですか?
前にソースコードにブロック数とスレッド数をべた書きで
大きいサイズを指定したらコンパイルの段階ではじかれた事があったんで。
- 24 :>>15:2014/12/05(金) 15:37:53.47 ID:fpNGtjbn.net
- >>21
ありがとうすごく役に立ったよ
ここ最近忙しくてpc触れなかったんだ
自分も同じく「error: too many resources requested for launch」だった
原因を調べてみるよ
あと、自動でエラー内容もだせるみたいだね
http://homepage2.nifty.com/takaaki024/tips/programs/gpgpu/cuda.html
>>20
ビジュアルプロファイラーも便利そうだから調べてみるよ
- 25 :デフォルトの名無しさん:2014/12/07(日) 18:17:39.03 ID:g9DGYGEw.net
- x,y,zの3つの変数から成る構造体配列A,B(同じサイズ)があったとして
BからAへそれぞれ対応するデータを転送する場合
Ax,Ay,Az,Bx,By,Bzという同じサイズの構造体でない配列が6つあったとして
BからAへそれぞれ対応するデータを転送する場合(BxからAxなど)
前者と後者では後者の方が転送速度は上がりますか?
- 26 :デフォルトの名無しさん:2014/12/08(月) 12:53:10.47 ID:JbpvX5Qi.net
- >>25
一般論としてデータ量が同じなら一回にまとめてを転送した方が効率はよくなりますね。
- 27 :デフォルトの名無しさん:2014/12/11(木) 11:46:54.75 ID:kV0/O7vj.net
- memcpyって同期とるもんね
- 28 :デフォルトの名無しさん:2014/12/12(金) 21:54:58.15 ID:PdQu+k/h.net
- kernelの中で使えるタイマー関数はありますか?
- 29 :デフォルトの名無しさん:2014/12/12(金) 23:43:18.27 ID:q1FKM2bt.net
- clock()関数が使えるよ。
- 30 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 22:02:15.64 ID:B9P4oQcX.net
- >>29
サンキュー
試してみるよ
- 31 :デフォルトの名無しさん:2014/12/16(火) 21:07:44.74 ID:6hyQD5WD.net
- 自分の持っていないGPUの共有メモリの量などの詳細を知ることはできますか?
- 32 :デフォルトの名無しさん:2014/12/17(水) 08:36:19.04 ID:0flByQKi.net
- http://en.wikipedia.org/wiki/CUDA#Version_features_and_specifications
の
Maximum amount of shared memory per multiprocessor
あたりかな。
- 33 :デフォルトの名無しさん:2014/12/17(水) 20:16:42.59 ID:D/43rANg.net
- >>32
ありがとうございます
嬉しいことに5.0以降から容量が増えてるみたいですね
- 34 :デフォルトの名無しさん:2014/12/17(水) 20:55:04.06 ID:vfaS5qRM.net
- なんでCCのバージョン3.5から5.0に飛んでるの?
SDKのバージョンと合わせたのか?
- 35 :デフォルトの名無しさん:2014/12/19(金) 18:38:15.45 ID:dxBCSCiu.net
- 二つ以上のGPUでVBOを使用する場合、データの流れはどうなっているのでしょう?
やはり一旦ディスプレイに接続側のGPU出力データが集められ出力されるのですか?
- 36 :デフォルトの名無しさん:2014/12/20(土) 13:19:39.58 ID:hlsDA/2G.net
- プロファイラ使えばわかるんじゃない?
- 37 :デフォルトの名無しさん:2014/12/20(土) 13:33:50.56 ID:ARYnLzi0.net
- >>34
ゲフォの800番台がスルーされたからかも?
- 38 :デフォルトの名無しさん:2014/12/20(土) 14:31:13.88 ID:NgIUM6cpA
- メイン関数内でcudaMallocManagedを用いてユニファイドメモリを確保して
その後メイン関数内でデータを代入し、GPU関数へポインタを渡したのですが、
値を利用できません。
だれか詳しく解決方法を教えてください
- 39 :デフォルトの名無しさん:2014/12/20(土) 14:34:48.04 ID:NgIUM6cpA
- 38ですがこんな感じに参照してます
__global__ void check_mem(int *file_top,int *d_test){
int x = blockIdx.x * blockDim.x + threadIdx.x;
d_test[x] = *(file_top + x);
}
file_topに値が入っていることはメインで確認が取れてます
- 40 :35:2014/12/20(土) 22:32:39.87 ID:ovXiOWlC.net
- >>36
少し気になって質問してみただけで今自分は一つしか持っていません!
もう一つGPUを購入した時の為にvisual profilerを使えるようになっておこうと思い
ビルドした実行ファイルでプロファイラを使用してみたところ「Warning: No CUDA application was profiled, exiting」とエラーが出てしまいました
6.5のツールキットを使用して新しいセッションを作成→ビルドした実行ファイルを選択→設定はデフォルト、としたのですが何がダメだったのでしょう?
nvidiaの説明書を見てもさっぱりです。ヒントだけでもいいので教えてください
- 41 :デフォルトの名無しさん:2014/12/21(日) 10:11:52.91 ID:aUL9MF/2V
- cudaDeviceReset() が必要のはず。
Visual Studioで「CUDA X.X Runtime」のプロジェクトを作ったら、
kernel.cu の return 0; の直前のコードに、以下のように書いてある。
// cudaDeviceReset must be called before exiting in order for profiling and
// tracing tools such as Nsight and Visual Profiler to show complete traces.
cudaStatus = cudaDeviceReset();
- 42 :デフォルトの名無しさん:2014/12/21(日) 12:30:22.37 ID:C04pqXsd.net
- >>40
cudaDeviceReset() が必要のはず。
Visual Studioで「CUDA X.X Runtime」のプロジェクトを作ったら、
kernel.cu の return 0; の直前のコードに、以下のように書いてある。
// cudaDeviceReset must be called before exiting in order for profiling and
// tracing tools such as Nsight and Visual Profiler to show complete traces.
cudaStatus = cudaDeviceReset();
- 43 :35:2014/12/21(日) 22:57:23.15 ID:McLr4XTH.net
- >>42
ループしているプログラムなのでエスケープキーを押すと後処理関数をatexit関数で呼び出して終了するようになっています
その後処理関数の中にcudaDeviceReset();を入れているのですがこれではダメなようです
それともcudaError_t cudaStatus = cudaDeviceReset();としてcudaStatusをどこかへ渡すのでしょうか?
- 44 :デフォルトの名無しさん:2014/12/22(月) 00:14:29.09 ID:6pNe5aqW.net
- >>43
とりあえず、>>42を新規プロジェクト作ってプロファイラの
動作を確かめてから、あらためて自分のソースコードに反映すれば?
- 45 :デフォルトの名無しさん:2014/12/23(火) 10:16:58.70 ID:rFJPpcq3i
- 玄人志向のPCI-Express x16→PCI-Express x1変換ケーブルキット
「PCIEX16-X1/KIT」を使ってcudaやってみた人いますか?
- 46 :デフォルトの名無しさん:2014/12/23(火) 15:40:43.82 ID:bsnZ8h6l.net
- >>44
新規プロジェクトでサンプルプログラムが生成されるのを忘れていました
おそらくサンプルのプロファイルに成功したので自分のプログラムに反映させようと思います
ありがとうございました
- 47 :42:2014/12/24(水) 18:51:30.92 ID:/5m6EieY.net
- 一応書いておきます
調べてみた結果、必要なものはcudaDeviceReset();を呼び出すことのみでした
自分のプログラムがプロファイル出来なかった原因は.dllが.exeと同じ場所に無かったからでした
- 48 :デフォルトの名無しさん:2014/12/24(水) 20:32:20.58 ID:6fZpwBGv.net
- 並列化についての質問です
スレッドやブロックを増やしてもあまり計算速度に差が出ないのですがどのような理由が挙げられますか
- 49 :デフォルトの名無しさん:2014/12/24(水) 20:59:33.63 ID:SBHK+d/x.net
- どう変わると思った?計算量自体は変わらんのだぞ。
- 50 :デフォルトの名無しさん:2014/12/24(水) 21:07:44.58 ID:6fZpwBGv.net
- 最初は一つのスレッドにつき4回ほどループさせ計算をしていました
その後、スレッド数を2倍にしてループ数を半分の2回しました
計算速度は2倍になるだろうと予想していましたが、あまり変わりませんでした
- 51 :デフォルトの名無しさん:2014/12/24(水) 21:23:52.28 ID:SBHK+d/x.net
- ハード的に同時に実行できるスレッドは有限なんだから、それ以上スレッドを増やしても
物理的に速くなりようがない。
- 52 :デフォルトの名無しさん:2014/12/24(水) 22:24:43.11 ID:pbZqH+Xm.net
- プログラム上のスレッド数とハード上のスレッド数は違うと言うことですか
- 53 :デフォルトの名無しさん:2014/12/24(水) 22:50:48.00 ID:3hqu78L7.net
- スレッドが多ければ、メモリアクセスでスレッドが止まっている間
cudaコアは別のスレッドを実行できる
- 54 :デフォルトの名無しさん:2014/12/27(土) 01:57:38.03 ID:u9BI3CqV.net
- 基本的にはcudaコアの数だけしか並列計算出来ないのですか
だけしかと言ってもコアは何百もありますが
- 55 :デフォルトの名無しさん:2014/12/27(土) 06:52:06.91 ID:fxVjSbuk.net
- ある瞬間、実際に並列に処理されているということと、理論上並列に扱われるということは別の話ですよ
上のレスにもありますが、計算速度的には実際に処理を行うヤツが足りていなければそこで頭打ちになるのは当然かと
- 56 :デフォルトの名無しさん:2014/12/27(土) 10:09:35.39 ID:W6Y2DM4+.net
- cudaコアの数以上にスレッドを生成する利点は
メモリアクセスの遅延の隠蔽にある
- 57 :デフォルトの名無しさん:2014/12/28(日) 20:39:13.97 ID:52BL0aAq.net
- 550TIで使っていたプログラムを750TIで走らせて見たところ1.5倍ほど遅くなってしまいました
何故でしょうか?
- 58 :デフォルトの名無しさん:2014/12/29(月) 02:19:31.23 ID:YUQudPNs.net
- 腐ってやがる。早すぎたんだ
- 59 :デフォルトの名無しさん:2014/12/29(月) 09:47:06.28 ID:Sx0YYE+e.net
- >>57
一度のカーネル実行で処理するデータ量を増やしたら改善しませんか?
- 60 :デフォルトの名無しさん:2014/12/29(月) 09:51:11.07 ID:Sx0YYE+e.net
- >>57
maxwellは倍精度がそーとーしょぼいので、
cuda-zかなんかで性能をチェックした方がよいかもしれません。
http://sourceforge.jp/projects/sfnet_cuda-z/
- 61 :デフォルトの名無しさん:2014/12/29(月) 12:03:33.25 ID:oV4aoJAy.net
- >>60
本当にしょぼかった。陽子ビームぶち込みたい。
どうやらマクスウェルさんは演算用には向いていないようですね
- 62 :デフォルトの名無しさん:2014/12/29(月) 12:51:57.86 ID:oV4aoJAy.net
- コア数が3倍になっていることを考慮すればそれでも遅い気がしますね
- 63 :デフォルトの名無しさん:2014/12/31(水) 21:08:03.80 ID:3b0Wn462.net
- CUDA初学者です
cudaBindTexture2D()のpitchとoffsetは何を表しているのですか?
手元の書籍のサンプルから推測するに
pitchは一次元の配列を二次元のテクスチャに入れる場合の折り返し地点のようなもの
でしょうか?それならwidthとhighだけでも十分ではないかと言う疑問も出てきます。
そして一番の疑問がテクスチャメモリの存在です。
いくら二次元、三次元配列が使えるとは言え512バイトしか容量のないテクスチャメモリは64キロバイトもあるコンスタントメモリに劣るのではないでしょうか?
長々と失礼いたしましたm(_ _)m
- 64 :デフォルトの名無しさん:2014/12/31(水) 23:07:39.94 ID:WrP28EMy.net
- >>56
それじゃあストリームは何のためにあるのさ?
- 65 :デフォルトの名無しさん:2015/01/01(木) 12:48:51.81 ID:82JnHkZd.net
- >>64
どっちも使えるなら、実験して早い方を採用
同時に並んでいるスレッド数を増やしてcudaコアが遊ばない状況
を作り出すことが重要
ストリームの使い道は異なるカーネルの並列実行だと思ってる
- 66 :デフォルトの名無しさん:2015/01/02(金) 01:42:39.20 ID:aooXGYY5.net
- >>65
なるほどね
- 67 :デフォルトの名無しさん:2015/01/02(金) 10:40:26.85 ID:2fT8SJ1Ez
- >>65
「ストリームの使い道は異なるカーネルの並列実行」というのは
何が言いたいのか良くわからないが、捕捉すると、
ストリームはCPU-GPU間のデータ転送中(非同期のcudaMemcpy)に、GPUで演算(カーネル実行)させる為の仕組みだ。
「あるストリームがデータ転送待ち中に、別のストリームのカーネルを実行する。」
といった事を、賢くやってくれる。
(別のストリームが「異なるカーネル」でなく、「同じ関数のカーネル」でも良い。)
結果、「データ転送待ち」の時間を節約できる。
ストリームの詳細は、書籍に書いてあるが、
データ転送とカーネル実行をストリームに入れる「推奨の順番」が
cc3.5からは違うので、古い本の場合は読み替える必要あり。
- 68 :67:2015/01/02(金) 11:01:01.35 ID:2fT8SJ1Ez
- まとめると、こんな感じ。
(※同じプログラムで、以下の両方を使う事も可能。)
・cudaコアの数以上にスレッドを生成する:「GPU」と「GPU側のDRAM」間のメモリアクセスの遅延の隠蔽が期待できる。
・ストリームを使う:「CPU側のDRAM」と「GPU側のDRAM」間のメモリアクセスの時間の節約が期待できる。
- 69 :デフォルトの名無しさん:2015/01/03(土) 13:07:05.02 ID:yWVdPt25.net
- 970/980は確かにゲームのパフォーマンスは上がってるが帯域減ってるから
GPGPU用途では微妙になってしまったな
- 70 :デフォルトの名無しさん:2015/01/09(金) 00:33:57.02 ID:Iq4Pw+IC.net
- Toolkit 6.0 + VS 2008から
Toolkit 6.5 + VS 2013に移行したら
遅くなっちゃったんだけど、そういう人ほかにいる?
- 71 :デフォルトの名無しさん:2015/01/12(月) 00:15:12.48 ID:crrCnhEj.net
- CUDAの日本語ページって4.0とかの古い情報ばっかりじゃね
6.0/6.5では全然仕様が違ってて全然使えない
- 72 :デフォルトの名無しさん:2015/01/16(金) 07:53:04.52 ID:IHSf0jGJ.net
- CUDA7.0 RC
- 73 :デフォルトの名無しさん:2015/01/16(金) 09:02:56.43 ID:VQ2eHsT0.net
- もうCUDAも成熟してしまった感があるなあ。
- 74 :デフォルトの名無しさん:2015/01/25(日) 10:58:33.86 ID:m2kue9j8.net
- 970の影響でGPUメモリテストが流行っているね。
- 75 :デフォルトの名無しさん:2015/02/06(金) 21:35:53.90 ID:72/Q/UeS.net
- ここ何週間かデバッグを続けているのですが原因を突き止めることが出来ません
初学者がはまりやすいミスやデバッグのこつなんかを教えてもらえませんか?
明らかなバグなら原因を突き止めやすいのですが、かなり微妙なバグなのでなかなか見つけられず困っています
- 76 :デフォルトの名無しさん:2015/02/07(土) 00:48:46.19 ID:OS4q1AxS.net
- printfとかで要素を表示してデバックしてみれば?
- 77 :デフォルトの名無しさん:2015/02/07(土) 13:10:14.61 ID:4cvxubK6.net
- syncthreadとか?
if文の中に書いてたりすると同期ずれが起こったりするなー
他には確保してないメモリへのアクセスとか?
>>76の通り、printfとかで、配列の添字とか値を表示するしかないのかな?
- 78 :デフォルトの名無しさん:2015/02/08(日) 15:23:01.85 ID:E04CIgi2.net
- >>76
>>77
ありがとうございます
1セットの計算量があまりにも多いのでprintfの方法は難しいです
シンクロや範囲外アクセスもありませんでした
原因が分かっちゃったかも知れないので質問です
中間計算結果→atomicAdd
中間計算結果→配列→atomicAdd
こんな風に同じ数値を使った計算でも一度配列を通してしまうとatomicAddによって追加された計算結果に差が出たりしますか?
- 79 :デフォルトの名無しさん:2015/02/08(日) 15:48:00.96 ID:E04CIgi2.net
- 変数に入れると精度は落ちますね
お騒がせしました
- 80 :デフォルトの名無しさん:2015/02/08(日) 21:32:20.44 ID:BpjOkBmf.net
- >>78
ちょっと面倒だけど、要素が多い場合は減らしてやってみるとか、どうだろうか?
何はともあれ、原因判明したみたいで、おめでとう
- 81 :デフォルトの名無しさん:2015/02/08(日) 22:56:08.44 ID:KLuvC02r.net
- >>80
それは意外な盲点でした
数を減らせば良かったのですね
- 82 :デフォルトの名無しさん:2015/02/09(月) 10:20:08.08 ID:pN+UjOmC.net
- >>78
fpが(a+b)+c != a+(b+c)を知らないとかではないよね?
- 83 :デフォルトの名無しさん:2015/02/09(月) 23:18:25.64 ID:QR2S1do8.net
- volatile使うとか?
変数の宣言とか関数の引数の型の前にvolatileをいれると・・・
- 84 :デフォルトの名無しさん:2015/02/17(火) 21:40:32.15 ID:K8c74Rhe.net
- >>57
750TIでGPGPUって考えていたけど、750TIって2世代前の同ランクぐらいの550TIより性能悪いのか。
一般ゲーム用VGAではGPGPU能力ってたいして要らないから落としたのかな
いろいろなゲーム用VGAの単精度、倍精度の能力が載ったホームページ教えてください
- 85 :undefined:2015/02/19(木) 11:23:20.97 ID:aqLRWkl1.net
- 質問☆
cudaってドライバインストして、画像表示をcuda設定にするだけでは
効果ない?
- 86 :デフォルトの名無しさん:2015/02/19(木) 14:30:54.02 ID:iKdaAUCi.net
- >>84
FP32とFP64の一覧表ならこれとか。
ttp://www.geeks3d.com/20140305/amd-radeon-and-nvidia-geforce-fp32-fp64-gflops-table-computing/
ボトルネックになりうる点は他にもあるから、Compute Capability毎の仕様の違いも結構重要だと思う。
- 87 :デフォルトの名無しさん:2015/02/19(木) 23:45:36.57 ID:ngPIgbTR.net
- maxwellさん自体にに倍精度が無いようだから
一世代前のkeplerさんか次世代のpascalさんを選べば良いんじゃないかな
- 88 :デフォルトの名無しさん:2015/02/19(木) 23:54:19.28 ID:Lt8lBsrZ.net
- >>86
有難う。750TiのFP64悪すぎだな。
なんか大衆向け用でGPGPUするならFP32よ、FP64は使わないでだな。
- 89 :デフォルトの名無しさん:2015/02/20(金) 04:05:21.12 ID:fPdGyDpl.net
- >>87
KeplerはMaxwell以上にピーキーだったような。
自分の用途がはっきりしていて、それがKeplerやMaxwellに向いているならありだろうけど。
64bit変数をほとんど使わなくても、不向きな処理ではGTX 680が570に惨敗したりする。
CUDAの開発環境とか情報量に魅力を感じて、あえて今から始めてみるという人に勧めるとすれば、個人的には
投げ売り続行中のGTX 570や580で、余裕があるなら型落ちCPU・マザボ・メモリのセット等と
組み合わせてCUDA専用マシンを用意かな。
>>88
それは差別化とか、グラフィック用途でのワットパフォーマンスとかで仕方がないかと。
- 90 :デフォルトの名無しさん:2015/02/20(金) 08:52:57.87 ID:xG3c1huj.net
- keplerはinteger bit shiftが弱いGK110(tesla)以外は
maxwellはkepler比で2倍のスループットになってる
- 91 :デフォルトの名無しさん:2015/03/04(水) 22:02:58.94 ID:krHDLIbc3
- コアレッシングて、なんでハーフワープじゃないとダメなのでありますか?
フルじゃダメなのでしょうか。
#deviceQuery:
# CUDA Capability Major/Minor version number: 3.2
# Warp size: 32
- 92 :デフォルトの名無しさん:2015/02/22(日) 18:45:23.46 ID:JhGx5uct.net
- 適当なプログラム作ってみても
maxwellの方がはやいね
shared memoryが倍になったのも大きいなぁ
- 93 :名無し:2015/03/07(土) 10:52:38.85 ID:UBzBpgz5.net
- スレチなら申し訳ない
当方、モバイルでCUDAを使用したいけど
安い方法はどれが良いと思います?
(速度はそこそこで良く、外でテストして
パワーがいる場合はデスクトップを使用するつもり)
モバイル用は安く上げたいので
Chromebookかタブレットで探した方が良いですかね?
奇をてらってJetsonのtk1にACアダプタ用のバッテリーを積むとか
(可能かどうかわからないですが)
ちなみにゲームはやるつもりありません。
- 94 :デフォルトの名無しさん:2015/03/07(土) 20:42:36.10 ID:CzdLWIdo.net
- thinkpad w550sのquadro K620mはダメなの?
ノートパソコンだよ
- 95 :デフォルトの名無しさん:2015/03/08(日) 10:25:35.13 ID:TYY6zzsE.net
- レスありがとうございます
安くあげたいので予算的に厳しいかと
最初だけ計算量は多いですけど
要所ごとに定数化すれば、その後は計算量がへるかと思っているので外での使用は少ないデータ量でプログラムチェックができればいいかなと考えています。
K1がのったタブレットも安いのでそこから考えてみようと思います
ありがとうございました
- 96 :デフォルトの名無しさん:2015/03/18(水) 02:36:15.45 ID:jKTvW/7W.net
- うわ、titan xの倍精度、しょぼ過ぎ・・・。
https://twitter.com/search?q=titan%20x&src=typd
- 97 :デフォルトの名無しさん:2015/03/18(水) 09:22:22.19 ID:33RtPIwm.net
- 単精度が7TFLOPS、倍精度が0.2TFLOPSで良いんだよな??
詳しい事は良く分からないんだけど倍精度ってそんなに使わないものなの?
PhysXっていう物理エンジン使ったりするのに
- 98 :デフォルトの名無しさん:2015/03/18(水) 10:23:22.30 ID:C11qPS4w.net
- >>97
ゲームだと単精度で十分だったりするからじゃない?
もともとゲームのために作られたような物だから、倍精度の性能なんかあまりこだわってないと思う
- 99 :デフォルトの名無しさん:2015/03/19(木) 07:37:41.52 ID:M0RYJxHF.net
- https://developer.nvidia.com/cuda-downloads
CUDA 7 Downloads
- 100 :デフォルトの名無しさん:2015/03/19(木) 07:39:40.96 ID:M0RYJxHF.net
- Dear Developer,
The CUDA? 7.0 Production Release is now available to the public. Run your application faster with this latest version of the CUDA Toolkit. It features 64-bit ARM support and the simplified programming model enabled by Unified Memory. Highlights include:
New cuSOLVER library
? Accelerates key LAPACK routines, 12x faster direct sparse solvers
New C++11 language features
? Increases productivity with lambdas, auto, and more
Runtime Compilation
? Enables highly optimized kernels to be generated at runtime
Download the CUDA 7 Production Release at www.nvidia.com/getcuda
Learn more about CUDA 7 by attending these webinars:
CUDA 7 Feature Review
Date/Time: Friday, April 10th at 10:00 AM PDT
Register: https://cc.readytalk.com/r/4b0lwgeqgzrk&eom
CUDA 7 Performance Overview
Date/Time: Wednesday, April 15th at 11:30 AM PDT
Register: https://cc.readytalk.com/r/empyu1qc65l6&eom
Best regards,
Nadeem Mohammad
NVIDIA Developer Relations Team
総レス数 1016
249 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★