代码之家  ›  专栏  ›  技术社区  ›  obenjiro

用于python的opencl

  •  13
  • obenjiro  · 技术社区  · 14 年前

    我正在为python寻找一个好的opencl wrapper\library,并提供好的文档。我想找一些…但找不到足够好的。

    4 回复  |  直到 11 年前
        1
  •  12
  •   Rafe Kettler    14 年前

    最受欢迎和记录最好的选择似乎是 PyOpenCL . 它声称是OpenCL的一个完整包装,文档看起来很好。

        2
  •  4
  •   Frédéric Hamidi    14 年前

    两个 CLyther PyOpenCL 我觉得很好。

        3
  •  4
  •   dbr    13 年前

    pycl 是绑定到OpenCL的CTypes(托管 on bitbucket )

    它的主要目标很简单:以尽可能多的Python实现可以使用的方式包装OpenCL。目前在CPython 2.5、6、7、3.2和Pypy 1.5上测试。众所周知,Jython的ctypes库还不成熟,它在很大程度上不起作用。

    为了实现这一点,我们避开了标准库之外的扩展模块和依赖项。理想情况下,像numpy数组和pil图像这样的东西应该可以工作,但不应该需要它们。

    它现在很新。我最近一直在玩它,它工作得很好。与pyopencl相比,未完成的时间安排,但性能似乎完全合理。

    我没有在OSX 10.6的Opencl 1.0(和AMD Radeon 5870)上工作。 see here ,但在10.7和Opencl 1.1下工作得很好

    至于文档,它是对C库的一个相当直接的绑定,因此这些文档都适用。阿尔索 "Adventures in PyOpenCL" 很好,几乎适用于所有绑定

        4
  •  2
  •   markhor    11 年前

    我们正在发展 opencl4py ,更高级别的绑定。这个项目使用cffi,所以它在pypy上工作。

    我们在pyopencl中遇到的主要问题是“import pyopencl”执行opencl初始化,并在Nvidia驱动程序的情况下占用整个虚拟内存,防止正确的分叉并有效地禁用多处理(是的,我们声称使用pyopencl至少禁用Nvidia的多处理)。opencl4py使用惰性的opencl初始化,解决了这个“导入地狱”。

    后来,它获得了一些很好的特性,比如超简单的二进制程序缓存等。不幸的是,文档有点简短。学习它如何工作的最好方法是通过测试。