[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 17:28 / Filesize : 215 KB / Number-of Response : 912
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【GPGPU】くだすれCUDAスレ【NVIDIA】



105 名前:102 mailto:sage [2008/07/14(月) 11:56:25 ]
問題は、自宅が規制に巻き込まれていてなかなか書き込めない辺り。
取り敢えず、注意点を列挙しておく。
・共有メモリを確保するのはglobalFunc<<<blocks, threads, sharedMemorySize, streamNo>>>(parameters)の
 三番目のパラメータでサイズが指定されたときだけ。
・共有メモリは一回の<<<>>>の呼び出しの間だけしか有効じゃない。
# つまり、次の回には残っていない。
・共有メモリをハンドリングするには、extern __shared__ anyType * nameで宣言するだけ。
# つまり、コンパイラは型のマッチングやサイズのチェックをしないので自分で管理しないといけない。
・共有メモリはblock間で独立、block内ではthread数に関わらず共有。
# つまり、実際のデバイスにそぐわないthread数を指定した場合はCUDA側で同期処理が入るのか、遅くなってしまう。
・あるthreadが共有メモリに書いた後、別threadが読む前には__syncthreads()で同期を取らないといけない。
# ある意味当然なんだけど、その所為で遅くなるのも事実。

あー、ついでにメモリの違いを簡単に。
※グローバルメモリ
・読み書きできる。coalescedにアクセスできれば結構速い。消えない。広い。
・ホスト側スレッドごとに独立している。ホスト側から見ると、毎回同じアドレスになるのでどのくらい使えるか判りにくい。
※共有メモリ
・読み書きできる。遅くない。
・呼び出しごとに消えてしまう。余り広く取れない。事実上同期を取る必要があって使い難い。
※定数メモリ
・速い。消えない。そこそこ広い。
・例えばfloat2を読み込むインストラクションがないので実はグローバルメモリからfloat2を読むより遅くなる場合もある。
・デバイス側から書き込めない。ホスト側スレッドごとに独立している。複数スレッドからCUDAを使うと毎回転送しなおすのか?
※レジスタ
・読み書きできる。速い。厳密に型チェックされる。つーか、型ごとに違うインストラクションが使われるからptxファイルで追える。
・呼び出しごとに消える。他のメモリに較べれば狭い。
# ローカルな配列は宣言したことないからよく判らん。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<215KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef