PyCUDA 和 NumbaPro CUDA Python 有什么区别?

问题描述 投票:0回答:2

我是 CUDA 新手,正在尝试弄清楚 PyCUDA(免费)NumbaPro CUDA Python(非免费)对我来说更好(假设库成本不是问题)。

两者似乎都要求您使用各自的 Python 方言。但是,PyCUDA 似乎要求您用

C
代码编写内核函数,这比使用 NumbaPro 更麻烦,而 NumbaPro 似乎为您完成了所有艰苦的工作。

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

python cuda numba pycuda numba-pro
2个回答
15
投票

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

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


14
投票

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

PyCUDA:

PyCUDA 是 CUDA 的 Python 编程环境,它使您可以从 Python 访问 Nvidia 的 CUDA 并行计算 API。 PyCUDA是用C++(基础层)和Python编写的,C++代码将在NVIDIA芯片上执行,Python代码编译、执行并获取C++代码的结果并自动管理资源,使其成为一体强大的 CUDA 库。

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

Python + CUDA = PyCUDA

Python + OpenCL = PyOpenCL

NUMBA/NumbaPro:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.