Bol*_*ter 4 python cuda gpgpu pycuda
应该够简单; 我真的想把一个int发送到一个SourceModule内核声明,其中有C函数
__global__......(int value,.....)
Run Code Online (Sandbox Code Playgroud)
声明并调用值...
value = 256
...
...
func(value,...)
Run Code Online (Sandbox Code Playgroud)
但我从pycuda得到了各种各样的错误,我使用了错误的类型.
标准的PyCUDA函数接口要求参数有numpy dtypes,因为它在内部映射到引擎盖下的C类型.因此,对于通过值传递的标量参数,您需要首先"转换"为合适的numpy dtype.就像是
value = 256
va = numpy.int32(value)
func(va)
Run Code Online (Sandbox Code Playgroud)
应该管用.如果要传递单精度浮点值或数组,请确保显式使用np.float32的dtype,因为numpy默认使用双精度,并且最终会出现类似的错误.