首页 > 解决方案 > 使用 Numba nopython 模式时出现 TypeError

问题描述

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

TypeError: compile_kernel() got an unexpected keyword argument 'nopython'.

包含所有代码的 colab 笔记本可以在https://colab.research.google.com/drive/1MZje-NTmdltZzYmg1b4WDu1Hd5C_nVzR找到

我在哪里弄错了?请建议。

标签: python-3.xjitnumba

解决方案


我认为您的问题是您numba.jitnumba.cuda.jit. 如果您查看numba.cuda.jit 此处的文档,您会发现 nopython 实际上不是参数。

这里的区别是包内的numba.jit函数,而包的模块内的函数。jitnumbanumba.cuda.jitjitcudanumba

想想看,你不能在 GPU 上运行 python,所以无论如何它都需要是 nopython (因此不需要那个参数)。

我做的一件事你可能会觉得有帮助,那就是numba.jit在尝试编译 nopython 代码时不要使用(尽可能)。而是使用numba.njit,它总是强制使用 nopython 模式(并且可以在大多数情况下使用)。


推荐阅读