PyCUDA将变量按值传递给kern

2024-03-29 12:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

应该很简单;我实际上想向a SourceModule内核声明发送一个int,其中C函数

__global__......(int value,.....)

在声明和调用值时。。。在

^{pr2}$

但是我从pycuda那里得到了很多错误,我使用了错误的类型。在


Tags: 函数pycuda声明类型value错误内核global
1条回答
网友
1楼 · 发布于 2024-03-29 12:37:47

标准的PyCUDA函数接口要求参数有numpy的数据类型,因为它在内部暗中映射到C类型。因此,对于按值传递的标量参数,您需要首先“强制转换”为合适的numpy数据类型。有点像

value = 256
va = numpy.int32(value)

func(va)

应该行得通。如果要传递单精度浮点值或数组,请确保显式使用np.浮动32,因为numpy在默认情况下使用双精度,因此您将出现类似的错误。在

相关问题 更多 >