5

十分に単純である必要があります。私は文字通り、C関数がここにあるSourceModuleカーネル宣言にintを送信したいと思います

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

値が宣言されて呼び出されます...

value = 256
...
...
func(value,...)

しかし、間違ったタイプを使用しているというpycudaからさまざまなエラーが発生します。

4

1 に答える 1

9

標準のPyCUDA関数インターフェイスでは、内部で内部的にCタイプへのマッピングを行うため、引数にnumpydtypesが必要です。したがって、値によって渡されるスカラー引数の場合、最初に適切なnumpydtypeに「キャスト」する必要があります。何かのようなもの

value = 256
va = numpy.int32(value)

func(va)

動作するはずです。単精度浮動小数点値または配列を渡す場合は、np.float32のdtypeを明示的に使用してください。これは、numpyがデフォルトで倍精度を使用し、同様のエラーが発生するためです。

于 2011-04-19T05:57:47.007 に答える