python - PyCUDA 和 NumbaPro CUDA Python 有什么区别?

标签 python cuda numba pycuda numba-pro

我是 CUDA 的新手,我想知道是否 PyCUDA (free)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 略有不同,可用于在各种平台上运行代码,包括 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 更快。

关于python - PyCUDA 和 NumbaPro CUDA Python 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164459/

相关文章:

cuda - 在 "cheap"GPU 上为 CUDA 开发

python - 为什么 Numba 不改进这次迭代......?

python - 在列表中递增列表(封装列表)

python - 从 Cloud Functions 写入 Pub/Sub

c++ - 使用 Thrust 生成均匀分布的随机数

Python:如何分析使用 numba.njit() 装饰器编写的代码

python - 在 Numba 中获取类似结构化数组/数据帧的结构的最佳方法是什么?

python - 将 3D 图的轴放置在图表内

python - python-dev 包是做什么用的

cuda - 使用 CUDA 向量类型有什么好处吗?