将OpenCL/CUDA转换为Metal

6
我即将将我的项目中一些使用OpenCL/Cuda编写的GPU内核转换为Metal,以便在苹果设备上运行我的应用程序。目前,我的项目完全是用C/C++编写的。经过一些研究,我认为我需要开始学习Swift或Objective-C。但是老实说,我对这方面的知识不太确定,因为用于计算和深度学习的Metal语言相当新。
我知道有一个名为“CoreML”的库,但我的应用程序需要一些自定义内核。我的问题是:在我的情况下,处理Apple设备的低级API的最佳方法是什么?

还有一种语言变体Objective-C++,它支持完整的C++语法,并添加了Smalltalk语法以处理Foundation类。如果您正在使用“Core”库,则API语法类似于C而不是Smalltalk,因此可能甚至不需要学习Swift或Objective-C。 - silicontrip
1个回答

9

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

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

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


太好听到这个消息了。非常感谢! - dk1111

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接