Python中的OpenCL

15 投票
4 回答
16296 浏览
提问于 2025-04-16 06:21

我在找一个适合Python的OpenCL封装库,最好有详细的文档。我试着搜索了一些,但没找到一个足够好的。

4 个回答

5

pycl 是一个用于 OpenCL 的 ctypes 绑定(托管在 bitbucket 上)

它的主要目标很简单:以一种方式包装 OpenCL,使得尽可能多的 Python 实现都能使用它。目前已经在 CPython 2.{5,6,7}、3.2 和 PyPy 1.5 上进行了测试。它在 Jython 上基本上无法使用,因为 Jython 的 ctypes 库还不成熟。

为了实现这个目标,我们避免使用扩展模块和标准库以外的依赖。理想情况下,像 NumPy 数组和 PIL 图像这样的东西应该可以直接使用,但并不是必须的。

这个库现在还比较新。我最近在玩这个,效果不错。虽然还没有和 PyOpenCL 进行性能对比,但看起来性能是相当合理的。

在 OS X 10.6 的 OpenCL 1.0(和 AMD Radeon 5870 显卡,可以查看这里)上我没有成功,但在 10.7 和 OpenCL 1.1 下运行得很好。

至于文档,它与 C 库的绑定比较直接,所以那些文档都适用。此外,“PyOpenCL 的冒险” 也很不错,几乎适用于所有绑定。

5

我觉得CLytherPyOpenCL的文档写得都很好。

13

最受欢迎、文档也写得最清楚的选择似乎是 PyOpenCL。它声称是一个完整的OpenCL封装,文档看起来也很不错。

撰写回答