python - 对于多平台 GPGPU 计算,是否有 OpenCL+PyOpenCL 的替代方案?
问题描述
Mac 上对 OpenCL 的支持将在 macOS 10.15 中结束,因此人们投资 PyOpenCL+OpenCL 作为通用 GPU(+CPU)计算的一种手段很快就会开始失去一个关键平台。
所以我的问题是:
- PyOpenCL+OpenCL 是否有任何可行的多平台 GPGPU 计算替代方案?
- 带有 Python 包装器的Vulkan有可能吗?
解决方案
(此答案包含一些带有意见和个人猜测的实用建议。如果此处认为其中某些内容不正确,我很乐意根据收到的评论编辑此答案。)
我的观点是 macOS 上可用的 CL 实现几乎没有用,因为它们有多么错误。另一方面,CL 作为低级计算抽象是很好的 IMO——它的概念仍然很好地代表了硬件中发生的事情。即无论出现什么下一个抽象,CL 的一个子集都可能映射到它。例如,POCL 已经是 macOS 上比 Apple 更胜任的 CPU CL 实现。(有关安装说明,请参见此处。)对于 GPU,POCL 有一个 CUDA 后端,它目前还不是非常好,但在一些帮助下,它可能是需要的,这样 GPU 计算世界就可以不再担心 API 流失并回到解决实际问题。
推荐阅读
- java - 什么可能导致此 Java 未捕获错误
- pandas - 删除 Python Pandas 系列中带有特殊字符的前缀
- bluetooth - 通过蓝牙 a2dp 源 esp32 发送音频
- javascript - React js:更改项目列表中特定项目的背景颜色
- javascript - 交换键值的两个对象的数组
- android - 如何在 Android Room 中进行错误处理?
- python - 刷新浏览器会产生一个 WSGI "/null" 作为最后一个 GET 请求。为什么 URL 中有“null”字符串?
- c++ - 绘制旋转矩形
- bash - grep 通过“查找”命令的结果
- c# - ASP.NET Core:验证单个动态字符串输入字段