PyCUDA和NumbaPro CUDA Python有什么区别?

时间:2017-07-18 10:41:29

标签: python cuda numba pycuda numba-pro

我是CUDA的新手,我正在试图弄清楚PyCUDA (free)NumbaPro CUDA Python(不是免费)对我来说会更好(假设图书馆费用不是问题)。

两者似乎都要求您使用各自的Python方言。但是,似乎PyCUDA要求你在C代码中编写一个内核函数,这比使用NumbaPro更麻烦,NumbaPro似乎为你做了所有艰苦的工作。

确实如此吗?会有显着的性能差异吗?

2 个答案:

答案 0 :(得分:11)

numbapro现在是numba BSD许可证,也是免费的。

根据this报告pyOpenCL和pyCUDA比numba快5倍

答案 1 :(得分:6)

让我们谈谈这些库中的每一个:

<强> PyCUDA:

PyCUDA是CUDA的Python编程环境,它允许您从Python访问Nvidia的CUDA并行计算API。 PyCUDA是用C ++(基础层)和Python编写的,C ++代码将在NVIDIA芯片上执行,而Python代码用于编译,执行和获取C ++代码的结果并自动管理生成的资源它是功能强大的库CUDA之一。

PyCUDA与PyOpenCl略有不同,PyOpenCl可用于在各种平台上运行代码,包括Intel,AMD,NVIDIA和ATI芯片。与PyCUDA不同,它只能在NVIDIA芯片上运行:

  

Python + CUDA = PyCUDA

     

Python + OpenCL = PyOpenCL

<强> NUMBA / NumbaPro:

NUMBA:NumbaPro或最近Numba(NumbaPro已被弃用,其代码生成功能已转移到开源Numba。)是由Anaconda,Inc赞助的开源NumPy感知优化Python编译器它使用卓越的LLVM编译器基础结构将Python语法编译为机器代码。 Numba支持在CPU或GPU硬件上运行的Python编译,它基本上是用Python编写的。它易于安装和实施。

正如@Wang提到的,Pycuda比Numba更快。