【问题标题】:Can I run an algorithm on the GPU using Metal?我可以使用 Metal 在 GPU 上运行算法吗?
【发布时间】:2017-01-18 17:25:07
【问题描述】:

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

这可能吗?我遇到的 Metal 资源主要用于没有帮助的图形。或者他们可能是?

【问题讨论】:

标签: ios swift metal


【解决方案1】:

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

我不知道MED 的现有Metal 实现,但至少有one CUDA implementation,您可以阅读GPU 上MED 的详细说明here

【讨论】:

    【解决方案2】:

    除了@warrenm 答案之外,您还需要编写内核函数或其中的几个。有酷金属教程网站:http://metalbyexample.com,Apple 文档也有相关内容:https://developer.apple.com/library/content/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Compute-Ctx/Compute-Ctx.html

    还有一些关于https://www.raywenderlich.com 的教程,但它们大多是面向图形的。您还可以查看适用于 iOS 的 GPUImage 库,它是一个很酷的 OpenGL 包装器,具有漂亮的界面。也许还有一个选项可以编写将使用 OpenGL 执行的自定义函数?

    【讨论】:

    • 您如何将 GPUIimage 库与 Metal 进行比较?您认为哪一个可能更快?
    猜你喜欢
    • 1970-01-01
    • 2018-01-21
    • 2021-05-04
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2015-07-16
    相关资源
    最近更新 更多