【问题标题】:TypeError while working with Numba nopython mode使用 Numba nopython 模式时出现 TypeError
【发布时间】:2020-06-15 12:45:43
【问题描述】:

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

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

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

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

【问题讨论】:

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

标签: python-3.x jit numba


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 2017-08-08
    • 2020-09-15
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2016-12-10
    相关资源
    最近更新 更多