今天我偶然发现了stackoverflow中的一篇文章(另请参见此处):
我们正在开发opencl4py,更高级别的绑定。这个项目使用 CFFI,所以它适用于 Pypy。
我们在使用 pyopencl 时遇到的主要问题是“import pyopencl”会执行 OpenCL 初始化,并在 NVIDIA 驱动程序的情况下占用整个虚拟内存,从而阻止正确的分叉并有效地禁用多处理(是的,我们声称使用 pyopencl 至少在 NVIDIA 上会禁用多处理)。opencl4py 使用惰性 OpenCL 初始化,解决了这个“导入地狱”。
后来,它获得了一些不错的功能,例如超级简单的二进制程序缓存等。不幸的是,文档有点简短。了解其工作原理的最佳方法是通过测试。
由于还有 pyOpenCL,我很想知道这两个包之间的区别是什么。有人知道我在哪里可以找到这两个软件包的优缺点概述吗?
编辑:包括 benshope 的评论,因为我也会感兴趣:“禁用 [s] 多处理”是什么意思?就像,它不能一次在多台设备上运行内核?