快速在GPU上运行功能

时间:2018-06-27 14:50:49

标签: swift metal

我有一个可以长时间运行的函数(具有多个内部循环)。我以为在GPU而不是CPU上运行它会更快?

是否可以在GPU上运行任意功能?

Apple表示Metal:

  

Metal 2提供对图形处理单元(GPU)的近乎直接的访问,使您能够最大化应用的... 计算潜力

我看到了使用Metal进行游戏和图形渲染的示例,但是是否有任何示例或链接可以帮助我运行常规功能?

1 个答案:

答案 0 :(得分:5)

GPU可以用于某些类型的纯计算。

任务必须高度并行化。

它一定不需要系统库或框架中的任何API。 Metal有其自己的库,仅具有计算功能。没有磁盘访问。除了数组/缓冲区之外,没有数据结构。

系统允许计算着色器运行多长时间有上限(因为它可能是无限循环,没有其他方法可以停止它)。因此,根据您所说的“长时间处理”的意思,它可能不适合,或者只有分解成大块的工作才适合。

如果某个任务适合于GPU,则必须为GPU对其进行显式编程。您不能只是将普通代码透明或自动地迁移到GPU。它必须被重写。