2017-01-18 29 views
3

我使用最小编辑距离算法来确定两个字符串的相关程度。我已经实现了它在CPU上运行,并且当你有数以百计的字符串时它工作得很好,但是当你多次比较数千个字符串时,它会变慢。所以我认为将它卸载到GPU可能会有用,因为它可以一次执行多个比较。我可以使用Metal在GPU上运行算法吗?

这可能吗?我遇到的金属资源主要用于无助于图形的图形。或者他们是?

+0

你可能会对我的新的huffman解码器感兴趣,这些解码器是在Metal的顶部实现的,可以在github上看一下:https://github.com/mdejong/MetalHuffman – MoDJ

回答

6

你想要做什么是可能的,至少对于某些问题大小,但它并不是特别简单。你需要做的是以一种可以在GPU上运行的方式来表达算法,在iOS上,这可能意味着使用Metal。具体来说,您需要使用金属着色语言编写一个或多个实现最小编辑距离算法的计算内核,然后使用金属计算命令编码器调度它们。 Web上有许多关于Metal的计算编程资源。

我不知道MED的现有Metal实现,但至少有one CUDA implementation,并且您可以在GPU here上阅读MED的更长说明。

3

除了@warrenm答案,你需要编写内核函数或其中的几个。有炫酷的金属教程网站:http://metalbyexample.com,也是苹果文档中有一些事情:https://developer.apple.com/library/content/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Compute-Ctx/Compute-Ctx.html

,也有夫妇https://www.raywenderlich.com教程,但他们大多是图形为主。你也可以检查iOS的GPUImage库,这是一个非常酷的包装OpenGL与良好的界面。也许还有一个选项可以编写将使用OpenGL执行的自定义函数?

相关问题