让我们考虑一下位于CUDA's Mersenne Twister for an arbitrary number of threads的CUDA代码,并假设我想将其转换为pyCUDA
应用程序。你知道吗
我知道我可以使用ctypes
和CDLL
,即
cudart = CDLL("/usr/local/cuda/lib64/libcudart.so")
使用cudart
例程。你知道吗
但是,我还需要分配一个curandStateMtgp32
数组,其定义在curand_mtgp32.h
中,或者调用
curandMakeMTGP32Constants(mtgp32dc_params_fast_11213, devKernelParams);
并使用定义在curand_mtgp32_host.h
中的mtgp32dc_params_fast_11213
。你知道吗
如何处理CUDA
中的pyCUDA
类型定义和值?你知道吗
我参考设备端API解决了这个问题,如下所示:
.dll
包含两个函数:MTGP32Setup()
用于设置Mersenne Twister生成器,MTGP32Generation()
用于生成随机数ctypes
调用了上述函数。你知道吗源代码
.dll
调用方
PyCUDA
的源代码主机端api的处理方式类似于Calling host functions in PyCUDA。你知道吗
相关问题 更多 >
编程相关推荐