問題タブ [curand]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
random - 任意の数のスレッドに対する CUDA の Mersenne Twister
Mersenne Twister
( MT
) 乱数ジェネレーターの CUDA の実装は、スレッド/ブロック256
および200
ブロック/グリッドの最大数に制限されています。つまり、スレッドの最大数は です51200
。
そのため、MT を使用するカーネルを で起動することはできません。
どこ
およびn
はスレッドの総数です。
MT
forを使用する最良の方法は何threads > 51200
ですか?
blocksPerGrid
とに定数値を使用する場合の私のアプローチthreadsPerBlock
、たとえば<<<128,128>>>
、カーネルコードで次を使用します。
これが正しい方法なのか、MT のステータスに望ましくない影響を与える可能性があるのか、よくわかりません。
ありがとうございました。
cuda - cuRAND カーネルの乱数ジェネレーターのタイプ
CUDA または pyCUDA での乱数生成の典型的な例は、質問How to generate random number inside pyCUDA kernel?で報告されています。、すなわち
この古典的な例を使用すると、起動される乱数発生器 ( XORWOW
、MTGP32
、その他) は何ですか?
カーネル内から乱数ジェネレーターを変更するにはどうすればよいですか?
cuda - 「thrust::system::system_error」のインスタンスをスローした後に呼び出された終了 what(): parallel_for が失敗しました: cudaErrorInvalidValue: 無効な引数
curand_uniform() が 1.0 を返す回数を数えようとしています。ただし、次のコードが機能するようには見えません。
端末エラーが発生します (Linux の場合):
そして、私はこのようにコンパイルしています:
このエラー メッセージがわかりません。