何时在 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 安装方法
如何让 Tensorflow Profiler 在 Tensorflow 2.5 中使用“tensorflow-macos”和“tensorflow-metal”工作