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

问题描述

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

所以我的问题是:

  1. PyOpenCL+OpenCL 是否有任何可行的多平台 GPGPU 计算替代方案?
  2. 带有 Python 包装器的Vulkan有可能吗?

标签: pythonopenclgpgpuvulkanpyopencl

解决方案


(此答案包含一些带有意见和个人猜测的实用建议。如果此处认为其中某些内容不正确,我很乐意根据收到的评论编辑此答案。)

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


推荐阅读