在使用opencl添加数组时,我得到了错误的输出

在使用opencl添加数组时,我得到了错误的输出,opencl,pyopencl,cl,Opencl,Pyopencl,Cl,我试图用pyopencl对2个数组求和,但我在输出中得到了奇怪的数字 代码: a=[1适用于范围(10)内的假人] b=[i代表范围(10)内的i] 打印带有cl(a,b)的和数组 输出: [0, 0, 0, 0, 0, 5, 6, 7, 8, 9] 我做错了什么?您需要明确说明阵列的类型,否则在主机上创建的阵列将与设备预期的不匹配。由于内核需要32位浮点数据,因此可以按如下方式创建数组: a_array = numpy.array(array1).astype(numpy.float32)

我试图用pyopencl对2个数组求和,但我在输出中得到了奇怪的数字

代码:

a=[1适用于范围(10)内的假人] b=[i代表范围(10)内的i]

打印带有cl(a,b)的和数组

输出:

[0, 0, 0, 0, 0, 5, 6, 7, 8, 9]

我做错了什么?

您需要明确说明阵列的类型,否则在主机上创建的阵列将与设备预期的不匹配。由于内核需要32位浮点数据,因此可以按如下方式创建数组:

a_array = numpy.array(array1).astype(numpy.float32)
b_array = numpy.array(array2).astype(numpy.float32)

您需要明确阵列的类型,否则在主机上创建的阵列将与设备期望的不匹配。由于内核需要32位浮点数据,因此可以按如下方式创建数组:

a_array = numpy.array(array1).astype(numpy.float32)
b_array = numpy.array(array2).astype(numpy.float32)