我有一个可以长时间运行的函数(具有多个内部循环)。我以为在GPU而不是CPU上运行它会更快?
是否可以在GPU上运行任意功能?
Apple表示Metal:
Metal 2提供对图形处理单元(GPU)的近乎直接的访问,使您能够最大化应用的... 计算潜力
我看到了使用Metal进行游戏和图形渲染的示例,但是是否有任何示例或链接可以帮助我运行常规功能?
答案 0 :(得分:5)
GPU可以用于某些类型的纯计算。
任务必须高度并行化。
它一定不需要系统库或框架中的任何API。 Metal有其自己的库,仅具有计算功能。没有磁盘访问。除了数组/缓冲区之外,没有数据结构。
系统允许计算着色器运行多长时间有上限(因为它可能是无限循环,没有其他方法可以停止它)。因此,根据您所说的“长时间处理”的意思,它可能不适合,或者只有分解成大块的工作才适合。
如果某个任务适合于GPU,则必须为GPU对其进行显式编程。您不能只是将普通代码透明或自动地迁移到GPU。它必须被重写。