将 OpenCL/CUDA 转换为金属

Convert OpenCL/CUDA to Metal

我打算将我的项目的一些 GPU 内核从 OpenCL/Cuda 转换为 Metal,以便 运行 我的应用程序在 Apple 设备上运行。目前,我的项目完全是用 C/C++ 编写的。在做了一些研究之后,我认为我需要用 Swift 或 Objective-C 弄脏我的手。但老实说,我不确定这些东西,因为用于计算和深度学习的 Metal 语言是很新的。

我知道有一个名为“CoreML”的库,但我的应用程序需要一些自定义内核。我的问题:在我的情况下,处理低级别 API Apple 设备的最佳方法是什么?

金属着色语言是 C++ 的一个版本。我在将 OpenCL 或 CUDA 内核移植到 Metal 方面没有遇到太多麻烦。

Core ML 仅支持有限的层集。您可以编写自己的自定义层,这涉及编写 CPU 版本和可选的 GPU 版本(使用 Metal 语言)。

我写了一篇关于这个的博客post:http://machinethink.net/blog/coreml-custom-layers/