将OpenCL/CUDA转换为金属

将OpenCL/CUDA转换为金属,opencl,coreml,metalkit,Opencl,Coreml,Metalkit,我将把我项目的一些GPU内核从OpenCL/Cuda转换为Metal,以便在苹果设备上运行我的应用程序。目前,我的项目完全是用C/C++编写的。在做了一些研究之后,我想我需要用Swift或Objective-C来弄脏我的手。但是说实话,我不确定这些东西,因为用于计算和深度学习的金属语言是非常新的 我知道有一个名为“CoreML”的库,但我的应用程序需要一些自定义内核。我的问题是:在我的情况下,处理苹果设备的低级别API的最佳方法是什么? < P>金属着色语言是C++的一个版本。在将OpenCL或

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


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

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

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


我写了一篇关于这一点的博文:

很高兴听到这个消息。谢谢!还有一种语言变体ObjultC++支持完全C++,并添加了SimultTalk语法来处理基础类。如果您使用的是“核心”库,那么API语法类似于C,而不是smalltalk,因此甚至可能不需要学习swift或Objective-C。