对于多平台GPGPU计算,是否有OpenCL + PyOpenCL的替代方案?

Col*_*ark 8 python gpgpu opencl pyopencl vulkan

在Mac上支持OpenCL 将在macOS 10.15中结束,因此人们投资PyOpenCL + OpenCL作为进行通用GPU(+ CPU)计算的手段很快就会开始失去一个关键平台.

所以我的问题是:

  1. 是否有任何可行的多平台GPGPU计算替代PyOpenCL + OpenCL?
  2. 福尔康用Python包装是一种可能性?

And*_*ner 2

(这个答案包含一些带有观点和个人猜测的实用建议。如果其中一些被认为不合适,我很乐意根据收到的评论编辑这个答案。)

我的观点是,macOS 上可用的 CL 实现总是几乎毫无用处,因为它们有很多错误。另一方面,在我看来,CL 作为一种低级计算抽象是很好的——它的概念仍然很好地代表了硬件中发生的情况。即,无论下一个抽象是什么,CL 的子集都可能映射到它。例如,POCL 在 macOS 上已经是比 Apple 更强大的 CPU CL 实现。(请参阅此处的安装说明。)对于 GPU,POCL 有一个 CUDA 后端,目前还不是非常好,但只要有一点帮助,它可能就是所需要的,以便 GPU 计算世界可以不再担心 API 流失并返回到解决实际问题。