random モジュールを連続して実行すると、同じ結果が得られます。これを修正する方法はありますか?Alea に関するドキュメントは、いくつかの場所で非常にまばらです。
let cudaRandom = XorShift7.CUDA.DefaultUniformRandomModuleF32.Default.Create(1,1,uint32 DateTime.Now.Millisecond) :> IRandom<float32>
let createRandomUniformMatrix weights_num_rows weights_num_cols (scaling_factor : float32) location =
let weights_total_size = weights_num_rows*weights_num_cols
let cudaBuffer = cudaRandom.AllocCUDAStreamBuffer weights_total_size
cudaRandom.Fill(0,weights_total_size,cudaBuffer,scaling_factor,location*scaling_factor/2.0f)
{num_rows = weights_num_rows; num_cols = weights_num_cols; dArray = cudaBuffer}
let weights = createRandomUniformMatrix 1 4 1.0f 0.0f
let bias = createRandomUniformMatrix 1 4 1.0f 0.0f
let t1 = bias.dArray.Gather()
let t2 = weights.dArray.Gather()
printfn "%A" t1
printfn "%A" t2
//val t1 : float32 [] = [|0.680722952f; 0.597810984f; 0.318799376f; 0.726549625f|]
//val t2 : float32 [] = [|0.680722952f; 0.597810984f; 0.318799376f; 0.726549625f|]