【问题标题】:Running Python on GPU using numba使用 numba 在 GPU 上运行 Python
【发布时间】:2017-05-16 13:51:08
【问题描述】:

我试图在我的 NVIDIA GPU 中运行 python 代码,谷歌搜索似乎告诉我 numbapro 是我正在寻找的模块。但是,根据this 的说法,numbapro 不再继续,而是已移至 numba 库。我尝试了 numba,它的 @jit 装饰器似乎确实加快了我的一些代码的速度。然而,当我更多地阅读它时,在我看来jit 只是在运行时编译你的代码,并且这样做,它做了一些重度优化,因此加速了。

jit 似乎并没有加速已经优化的 numpy 操作,例如 numpy.dot 等,这一事实进一步强化了这一点。

我在这里是否感到困惑并偏离了轨道? jit 到底是做什么的?如果它不能让我的代码在 GPU 上运行,我还能怎么做呢?

【问题讨论】:

  • 你真的应该阅读文档,这个主题在那里解释得很好。剧透:您实际上可以在 GPU 上运行代码,请继续阅读。

标签: python numpy numba numba-pro


【解决方案1】:

您必须通过 ufunc 明确告诉 Numba 以 GPU 为目标:

http://numba.pydata.org/numba-doc/latest/cuda/ufunc.html

或以明确考虑 GPU 的方式对函数进行编程:

http://numba.pydata.org/numba-doc/latest/cuda/examples.html http://numba.pydata.org/numba-doc/latest/cuda/index.html

普通的jit 函数不针对GPU,通常不会加速对np.dot 之类的调用。通常 Numba 擅长于避免创建中间临时 numpy 数组,或者如果您正在编写的代码很难以矢量化方式开始编写。

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 2022-11-24
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2019-01-08
    • 2018-04-06
    相关资源
    最近更新 更多