在ManagedCuda中使用CuRand

时间:2016-02-18 20:30:14

标签: cuda managed-cuda

我目前正在使用ManagedCuda,并希望在设备上生成随机数。但是,我似乎无法找到一个简单的示例如何执行此操作(浏览ManagedCuda.CudaRand命名空间中的对象并与C ++等效项进行比较不会让我更进一步。)

实际问题:在使用managedCuda而不是常规C ++ API时,如何在内核中生成随机数?

1 个答案:

答案 0 :(得分:2)

看起来,你只想使用CURAND的设备端API,然后你将完全独立于managedCuda:你需要在managedCuda中做的就是分配足够大的内存块来保存当前的curandStates。您甚至不需要引用managedCuda的CudaRand.dll。

然后创建一个调用每个线程curand_init()的init内核,然后在实际内核中使用curand_normal()或任何其他rand函数。第3.6章的curand手册中给出了一个分步示例。