PDi*_*lta 12 python cuda pycuda numba numba-pro
我是CUDA的新手,我正在试图弄清楚PyCUDA(免费)或NumbaPro CUDA Python(非免费)对我来说会更好(假设图书馆成本不是问题).
两者似乎都要求您使用各自的Python方言.但是,似乎PyCUDA要求你在C代码中编写一个内核函数,这比使用NumbaPro更麻烦,NumbaPro似乎为你做了所有艰苦的工作.
确实如此吗?会有显着的性能差异吗?
让我们来谈谈这些库中的每一个:
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.赞助的用于Python的开源NumPy感知优化编译器.它使用卓越的LLVM编译器将Python语法编译为机器代码的基础结构.Numba支持在CPU或GPU硬件上运行Python的编译,它完全用Python编写.它易于安装和实施.
正如@Wang所提到的,Pycuda比Numba更快.