-1

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

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

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

4

1 回答 1

3

您必须通过 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 数组,或者如果您正在编写的代码很难以矢量化方式开始编写。

于 2017-05-16T13:57:49.027 回答