Python 3.x 使用Numba nopython模式时出现类型错误

Python 3.x 使用Numba nopython模式时出现类型错误,python-3.x,jit,numba,Python 3.x,Jit,Numba,我是Numba新手,尝试使用nopython模式jit编译代码。但它正在回归 TypeError:compile\u kernel()获得了一个意外的关键字参数“nopython” 包含所有代码的colab笔记本可在 我哪里出错了?请提出建议。我认为您的问题是将numba.jit与numba.cuda.jit混淆了。如果您查看numba.cuda.jit的文档,就会发现nopython实际上不是一个参数 这里的区别是numba.jit是numba包中的函数jit,而numba.cuda.jit是

我是Numba新手,尝试使用nopython模式jit编译代码。但它正在回归

TypeError:compile\u kernel()获得了一个意外的关键字参数“nopython”

包含所有代码的colab笔记本可在


我哪里出错了?请提出建议。

我认为您的问题是将
numba.jit
numba.cuda.jit
混淆了。如果您查看
numba.cuda.jit
的文档,就会发现nopython实际上不是一个参数

这里的区别是
numba.jit
numba
包中的函数
jit
,而
numba.cuda.jit
numba
包的
cuda
模块中的
jit
函数

想想看,你不能在GPU上运行python,所以不管发生什么,它都必须是nopython(因此不需要那个参数)


我所做的一件您可能会觉得有用的事情是,在尝试编译nopython代码时(只要可能),不要使用
numba.jit
。相反,请使用
numba.njit
,它总是强制使用nopython模式(并且可以在大多数情况下使用)。

我不太熟悉numba中的CUDA开发,但是您不需要向decorator添加
nopython=True
参数
@numba.cuda.jit应该足够了。另外,在帖子中包含代码比添加外部链接更好,这样可以让你的问题更容易阅读。