opencl - 将 OpenCL/CUDA 转换为 Metal

标签 opencl coreml metalkit

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

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

最佳答案

Metal Shading Language 是 C++ 的一个版本。我在将 OpenCL 或 CUDA 内核移植到 Metal 方面并没有遇到太多麻烦。

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

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

关于opencl - 将 OpenCL/CUDA 转换为 Metal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52292553/

相关文章:

tensorflow - 如何在iOS应用程序上实现Mask R-CNN?

python - 安装核心 ML 工具时出错

ios - CVMetalTextureCacheCreateTextureFromImage 总是返回 null

OpenCL:如何在上下文中选择 GPU

parallel-processing - 在 OpenCL 中计算部分和

c++ - OpenCL 或 CUDA 走哪条路?

c - 如何在OpenCL中使用并行归约来实现求和?

快速 coreML : prediction function without "options" parameter

ios - MTKView清晰显示

metal - METAL顶点/片段着色器结果 "intercept"的最佳方法