Python numbapro中的cuda代码错误

Python numbapro中的cuda代码错误,python,numpy,cuda,anaconda,numba-pro,Python,Numpy,Cuda,Anaconda,Numba Pro,异常:由输入行11引起: 只能从全局、复数或数组中获取属性 我是numbapro的新手,需要提示 @cuda.autotjit将foo()标记并编译为cuda内核。内存传输操作应该放在内核之外。它应该类似于以下代码: import numpy import numpy as np from numbapro import cuda @cuda.autojit def foo(aryA, aryB,out): d_ary1 = cuda.to_device(aryA) d_ar

异常:由输入行11引起: 只能从全局、复数或数组中获取属性


我是numbapro的新手,需要提示

@cuda.autotjit
foo()
标记并编译为cuda内核。内存传输操作应该放在内核之外。它应该类似于以下代码:

import numpy
import numpy as np
from numbapro import cuda


@cuda.autojit
def foo(aryA, aryB,out):
    d_ary1 = cuda.to_device(aryA)
    d_ary2 = cuda.to_device(aryB)
    #dd = numpy.empty(10, dtype=np.int32)
    d_ary1.copy_to_host(out)


griddim = 1, 2
blockdim = 3, 4
aryA = numpy.arange(10, dtype=np.int32)
aryB = numpy.arange(10, dtype=np.int32)
out = numpy.empty(10, dtype=np.int32)

foo[griddim, blockdim](aryA, aryB,out)

我建议新的NumbaPro用户查看中的示例。

您是否尝试过使用
numpy.zero
来创建
out
?只是好奇,numbapro不是付费产品吗?我想你也可以试着去买。
import numpy
from numbapro import cuda

@cuda.autojit
def foo(aryA, aryB ,out):
    # do something here
    i = cuda.threadIdx.x + cuda.blockIdx.x * cuda.blockDim.x
    out[i] = aryA[i] + aryB[i]

griddim = 1, 2
blockdim = 3, 4
aryA = numpy.arange(10, dtype=numpy.int32)
aryB = numpy.arange(10, dtype=numpy.int32)
out = numpy.empty(10, dtype=numpy.int32)

# transfer memory
d_ary1 = cuda.to_device(aryA)
d_ary2 = cuda.to_device(aryB)
d_out = cuda.device_array_like(aryA) # like numpy.empty_like() but for GPU
# launch kernel
foo[griddim, blockdim](aryA, aryB, d_out)

# transfer memory device to host
d_out.copy_to_host(out)

print out