当前位置: 代码迷 >> 综合 >> Python-Numba:During: typing of intrinsic-call报错
  详细解决方案

Python-Numba:During: typing of intrinsic-call报错

热度:8   发布时间:2024-01-04 03:44:30.0

一个常见的编译失败原因(尤其是nopython模式)就是类型推导失败,numba不能确定代码中所有变量的类型。
如果传入一个元组和一个数字,numba不能得到数字和元组求和的结果,就会触发编译报错:
在这里插入图片描述

原因:变量类型不统一
举例:

c = 10
d_c = cuda.to_device(c) #尝试将一个int常数传入GPU中,d_c的类型类似于矩阵
·····
@cuda.jit
def func_gpu(d_c,·····):····if row % d_c == 0:#尝试将一个常数与一个矩阵比较,类型不对

后来自己将需要传输的int型变量定义成(1,1)型的矩阵

c=10
c_arr = np.zeros(1, dtype=np.uint8) #常数转矩阵
c_arr[0] = c #赋值
d_c = cuda.to_device(c_arr) #传矩阵
·····
@cuda.jit
def func_gpu(d_c,·····):····if row % d_c[0] == 0:#类型匹配,不会报错
  相关解决方案