私は、並列で複数のスレッドに対して0.0から1.0の間のランダムな浮動小数点数を生成する簡単な方法を探しています。これは私がフォーラムで周りを見て、CURANDマニュアルを読んで、私はまだ何をするかを把握することはできませんされてきたCUDA FORTRANで乱数を生成するにはどうすればよいですか?
attributes(global) subroutine rand_kernel()
implicit none
integer :: tid
real :: r
! Thread ID
tid = threadIdx%x
! Generate random number
call <some random number generator> (r)
! Randomise array
d_array(tid) = r
end subroutine rand_kernel
...これまでのところ、私のカーネルです。 CUDA FORTRAN用の乱数ライブラリがあるかどうかはわかりません。 私はちょうど正しい方向にプッシュする必要がありますし、まともな乱数ジェネレータを書くことができます。ヘルプ
同じテクニックを使用して、CURANDとインターフェースすることができます。 – Tom
確かに、CURANDに埋め込まれたジェネレータは、多くの科学的研究によって悪質なジェネレータとして記述されているため、推奨しません。 – jopasserat