我正在使用cumb和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='complex128')
psi = cuda.to_device(psi, stream=stream1)
@vectorize(['complex128(complex128)'], target='gpu')
def dpsi(psi):
return Pxy*psi
dpsi(psi)
但如果有这个错误的尾巴:
TypingError:带参数的*的无效用法(readonly array(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前端)* with的使用无效 参数(只读数组(complex128,2d,C),complex12 8)已知 签名:*(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行
我知道我可以将常量数组作为参数传递,但我想知道是否可以使用全局常量数组。