Python numbapro cuda常量全局数组
我将cuda与numbapro一起使用,我希望在向量化函数中使用一个常量全局数组。示例代码如下所示:Python numbapro cuda常量全局数组,python,numba,Python,Numba,我将cuda与numbapro一起使用,我希望在向量化函数中使用一个常量全局数组。示例代码如下所示: import numpy as np from numbapro import cuda, vectorize stream1 = cuda.stream() Pxy = np.ones((5,5), dtype='complex128') Pxy = cuda.to_device(Pxy, stream=stream1) psi = np.ones((5,5), dtype='comple
import numpy as np
from numbapro import cuda, vectorize
stream1 = cuda.stream()
Pxy = np.ones((5,5), dtype='complex128')
Pxy = cuda.to_device(Pxy, stream=stream1)
psi = np.ones((5,5), dtype='complex128')
psi = cuda.to_device(psi, stream=stream1)
@vectorize(['complex128(complex128)'], target='gpu')
def dpsi(psi):
return Pxy*psi
dpsi(psi)
但是,如果出现此错误:
TypingError:带参数的*的用法无效(只读)
数组(complex128,2d,C),complex128)已知签名:*(int64,
int64)->int64*(int64,uint64)->int64*(uint64,int64)->
int64*(uint64,uint64)->uint64*(float32,float32)->float32
*(float64,float64)->float64*(complex64,complex64)->complex64*(complex128,complex128)->complex128*参数化文件“vector.py”,第13行
在nopython(nopython前端)失败使用*时无效
参数(只读数组(complex128,2d,C),complex128)已知
签名:*(int64,int64)->int64*(int64,uint64)->int64*
(uint64,int64)->int64*(uint64,uint64)->uint64*(浮动32,
float32)->float32*(float64,float64)->float64*(complex64,
complex64)->complex64*(complex128,complex128)->complex128*
参数化文件“vector.py”,第13行
我知道我可以将常量数组作为参数传递,但我想知道是否可以使用全局常量数组。Hamid Ohadi,我也对这个问题感兴趣。你找到解决办法了吗?当我使用C语言时,我通常使用纹理内存来存储算法中的不变数据。但似乎numba不支持这种类型的内存(见3.1.4.缺少CUDA功能)Hamid Ohadi,我也对这个问题感兴趣。你找到解决办法了吗?当我使用C语言时,我通常使用纹理内存来存储算法中的不变数据。但numba似乎不支持这种类型的内存(见3.1.4.缺少CUDA功能)