18

我是 CUDA 的新手,我想弄清楚PyCUDA(免费)还是NumbaPro CUDA Python(非免费)对我来说会更好(假设库成本不是问题)。

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

真的是这样吗?会有显着的性能差异吗?

4

2 回答 2

13

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

根据这份报告,pyOpenCL 和 pyCUDA 比 numba 快 5 倍

于 2017-08-30T16:32:47.180 回答
13

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

PyCUDA:

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

PyCUDA 与 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支持编译 Python 以在 CPU 或 GPU 硬件上运行,它基本上是用 Python 编写的。它易于安装和实施。

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

于 2018-05-27T17:09:59.033 回答