何时在 Apple macOS 上使用 Metal 而不是 Accelerate API

Posted

技术标签:

【中文标题】何时在 Apple macOS 上使用 Metal 而不是 Accelerate API【英文标题】:When to use Metal instead of Accelerate API on Apple macOs 【发布时间】:2017-01-31 10:01:58 【问题描述】:

我目前正在编写一个桌面音频处理应用程序。它的目的是做大量的信号处理,所以我真的很关心性能和可靠性。

我已经使用了音频工具箱/核心音频 API,但对于自定义音频处理,我想知道 Metal 和 Accelerate 之间最适合什么。有人知道他们的区别吗?还是有基准?我没有发现 Google 有什么真正有用的东西……

【问题讨论】:

【参考方案1】:

金属着色器使用 GPU。加速 API 使用 CPU。所以这真的取决于你使用的系统提供什么样的 GPU,以及你的自定义处理内核是否可以有效地使用 GPU。示例可能包括大规模并行算法,例如大型 2D 数据数组的卷积(远大于 1D 实时音频缓冲区)。

【讨论】:

谢谢@hotpow2。所以如果我理解得很好,我应该看看List of Mac computers that support Metal(我把链接供读者参考),我还应该测试它是否对“小”数据大小有真正的好处。估计是时间转号的原因吧? GPU 处理器内核通常以比计算机的主 CPU 慢得多的时钟频率运行,这意味着并行性很少的任务不会受益。并且将数据分成更小的可并行化块会违反阿姆达尔定律。

以上是关于何时在 Apple macOS 上使用 Metal 而不是 Accelerate API的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow-macos tensorflow-metal 安装方法

tensorflow-macos tensorflow-metal 安装方法

tensorflow-macos tensorflow-metal 安装方法

使用 Metal 绘制位图

如何让 Tensorflow Profiler 在 Tensorflow 2.5 中使用“tensorflow-macos”和“tensorflow-metal”工作

Apple Metal元素矩阵乘法(Hadamard产品)