【发布时间】:2011-08-08 07:35:27
【问题描述】:
应该足够简单;我真的想将一个 int 发送到 SourceModule 内核声明,其中 C 函数
__global__......(int value,.....)
声明和调用的值...
value = 256
...
...
func(value,...)
但是我从 pycuda 收到了我使用错误类型的各种错误。
【问题讨论】:
应该足够简单;我真的想将一个 int 发送到 SourceModule 内核声明,其中 C 函数
__global__......(int value,.....)
声明和调用的值...
value = 256
...
...
func(value,...)
但是我从 pycuda 收到了我使用错误类型的各种错误。
【问题讨论】:
标准的 PyCUDA 函数接口要求参数具有 numpy dtypes,因为它在内部确实映射到引擎盖下的 C 类型。因此,对于按值传递的标量参数,您需要先“转换”为合适的 numpy dtype。类似的东西
value = 256
va = numpy.int32(value)
func(va)
应该可以。如果您要传递单精度浮点值或数组,请确保显式使用 np.float32 的 dtype,因为 numpy 默认使用双精度,您会遇到类似的错误。
【讨论】: