Apple Silicon 神迹降临还是踩到地雷:更小的音频缓冲区却占用更少的 CPU 资源?

Apple Silicon 神迹降临还是踩到地雷:更小的音频缓冲区却占用更少的 CPU 资源?

在昨天的近万字长文《新 M3 系列 MacBook Pro 骨灰级对比评测:不加钱上 M3 Max 还不如买 M2 Pro?》文章之上,我还想再补充一个我在写文章的时候看起来非常诡异的现象,而我可能也终于弄明白了这个现象到底是Apple Silicon的「神迹」降临,还是它的「踩雷」操作。

在使用DAW的时候有一个对电脑性能十分重要的参数,就是缓冲区大小,Apple Silicon电脑全新的CPU架构会你的传统认知。

我们通常的旧认知:

在我们无数年使用DAW的经历中,不管是什么DAW,也不管是Windows还是macOS系统,我们对音频缓冲区的认知都已经根深蒂固:

  • 为了获得更低的延迟,应该选择更低的缓冲区大小
  • 但更低的缓冲区会大幅提升DAW软件对CPU的占用,很可能会爆音甚至系统过载停止工作
  • 为了防止爆音或系统过载,我们应该选择适当的缓冲区大小,而不能一味追求低延迟而选择小缓冲区

但这个根深蒂固的经验现在要被改写了,改写它的就是Apple Silicon芯片的全新架构。

Apple Silicon的新形势:

我以最新的Ableton Live 12 beta作为测试DAW。新建10个音频音轨,每个音轨都挂上只吃CPU几乎不吃内存的音频效果器插件,来自Neural DSP的箱模插件Archetype: Nolly。

可以看到在同时跑10个插件的情况下,512缓冲区大小会占用百分之22的CPU资源:

同样的10个插件的情况下,128缓冲区大小却只占用了百分之19的CPU资源:

但如果将缓冲区继续降低,降低到最低的32,CPU资源又升高回了跟512缓冲区差不多的百分之23:

如果将缓冲区提升到最高的2048,CPU资源又可以降低到极限的百分之14(但此时将近100毫秒的输入输出总延迟几乎谈不上任何实时性):

下面我们将挂了Archetype: Nolly插件的音轨增加到20个,让它们循环跑起来,结果更有意思了。

在512缓冲区的时候CPU占用为百分之34:

同样的20个插件的情况下,128缓冲区大小跟512缓冲区的情况几乎一样,是百分之35:

极限低的32缓冲区此时的CPU占用大幅来到了百分之43:

Apple Silicon新形势下的老认知:

既然如此大缓冲区还有存在的必要嘛?我们直接选择很低的128缓冲区就好啦?

并不尽然,如果我们加载更多的插件,加大DAW对系统的压力,那么我们的老认知又会回来了。

这次我们将插件音轨数量增加到30来康康。

极限低的32缓冲区已经快绷不住了,占用了百分之65的CPU资源,从CPU每个核心的占用图来看,6个能效核心已经几乎跑满了,随时处于爆音的边缘:

128缓冲区也占用到了百分之49的CPU资源,到了一半了:

此时再来看512缓冲区,只占了百分之40的CPU资源:

如果继续增加音轨数量,那么512缓冲区相对32和128的领先优势会更大,而且32缓冲区几乎已经无顺利跑下来了。

如何权衡最合适的缓冲区大小?

以上试验总结成图表就很明显了(CPU占用率数值越低越好):

CPU占比和缓冲区大小在老的In CPU的苹果电脑和Windows电脑上,一直都完全是成反比例排布的。缓冲区越小,CPU占比就越大。

而来到了Apple Silicon的年代,时代变了,CPU占比和缓冲区大小存在一个阙值(DAW消耗的资源大小)。在这个阙值之上,依然是缓冲区越小,CPU占比就越大。而在阙值之下,变成了反直觉的缓冲区越小,CPU占比也就越小。

当然这个阙值完全是不固定的,不同的电脑配置,在跑不同的工程的时候,就会有不同的阙值。

在某个配置下,跑某个工程,就是缓冲区越小,CPU占比就越大;而在某个配置下,另外一个工程,就可能变成了缓冲区越小,CPU占比也就越小。

找到自己的「舒适区」(阈值):

显然如果我们能让自己的DAW处于缓冲区越小,CPU占比也就越小这个阈值内,一定是非常惬意的。我觉得可以将其称之为「舒适区」。

在这个「舒适区」内你不仅可以获得尽量小的延迟时间,而且CPU占用也更小。如果你明明在「舒适区」里,但却选择了并不匹配的更大的缓冲区大小,则不仅丢了芝麻(延迟时间更大),而且没有捡到西瓜(CPU占用更大)。

根据Ableton Live官方的建议,所有使用Apple Silicon的电脑在运行Live 11以上版本(11开始才原生支持Apple Silicon芯片的电脑)的时候,都推荐先从128 samples缓冲区开始。以当前Apple Silicon电脑的最低配置,运行比较标准的Live工程的时候,128缓冲区可以大概率保证你处于舒适区内。

当你从零开始做的工程逐渐庞大起来,插件越来越多,资源占用越来越大,达到可能快爆音的时候,此时你就已经肯定离开了「舒适区」了,这个时候再去增加缓冲区到256,让更大的缓冲区降低系统的占用。

为什么Apple Silicon会有「舒适区」这个反直觉的情况?

我不是啥操作系统、DAW编程和芯片专家,我无百分百准确的解释这个神奇的现象。但目前我认为最靠谱的假说来自于「大小核心切换」机制:

苹果的M系列自诞生之初就有大小核之分:

  • 「性能核心」俗称「大核」,是满血的负责在重度运算的场景下拉满性能的核心;
  • 「能效核心」俗称「小核」,一般来说其频率只有「大核」的一半,主打一个低耗,负责在一般轻度运算的场景下工作,降低整机耗,提升电池使用时间。

当DAW对CPU的负载不是非常强的时候,Apple Silicon会倾向于让小核更多的参与运算,大核辅助。负载逐渐增强之后则变成大核主导运算,小核辅助。

当我们正好位于「舒适区」里并使用更大的缓冲区的时候,更少的资源消耗会让Apple Silicon认为系统不应该用大核心运算,太浪费了,于是不断的将资源送到小核心运算(以节省能耗!这是Apple Silicon芯片的设计初衷,不管你是不是连接了电源它总倾向于刚你省电),而这就导致了总CPU消耗的增长,因为小核心的运算频率只有大核心的一半(所以它更省电)。

所以并非是位于「舒适区」的我们获得了某种神迹降临的奇迹,其实是Apple Silicon倾向于省电的大逻辑导致更大的缓冲区没有得到更低的CPU占用,反而增加了(但能耗降低了哈)。

反观在「舒适区」里,使用更低的缓冲区因为要消耗更多的CPU资源,所以Apple Silicon不会将更多的工作交给小核心,而必须让更快的大核心参与,所以相对来说总CPU占用低了一些。

但这也表明,「舒适区」其实并非是Apple Silicon电脑的一个神奇的优势,反而其实是大小核心机制导致大缓冲区时跑资源占用不大的工程时候导致的性能下降,小缓冲区跑同样的源占用不大的工程性能没有下降(或下降不明显),所以看似小缓冲区反而赢了,其实是小缓冲区还是那个小缓冲区,只是大缓冲下输了。

舒适区?不!明明应该是踩雷区!

所以研究到这里,我觉得「舒适区」这个名字显然是不合理的,应该叫「踩雷区」才符合现实。

让我们来重新绘制一下上面的表格,其实它可能本来应该是这样的(CPU占用率数值越低越好):

当我们把缓冲区设置在256和512采样数,且工程不会消耗非常多资源的时候,我们很大概率就会掉落到Apple Silicon的「踩雷区」,导致CPU总占比更大。

如果这个理论成立,那么小核心数更多的M3 Pro芯片(6大+6小)应该比小核心数更少的M1 Pro(8大+2小)的「舒适区」效应更明显,在我使用M3 Pro和M1 Pro芯片的对比中似乎确实如此。这又再一次证明了M3 Pro(6大+6小)芯片设计的不合理性。

然鹅并非所有DAW都会有「踩雷区」

上面对「踩雷区」的讨论,在某些设计非常「聪明」的DAW里是不存在的。我在昨天的近万字长文《新 M3 系列 MacBook Pro 骨灰级对比评测:不加钱上 M3 Max 还不如买 M2 Pro?》文章里已经详细测试了各个主流DAW,会「踩雷」的都是无跑满小核心的DAW,它们是:

  • Apple家的Logic Pro 10.8.1
  • PreSonus家的Studio One 6.5.1.96553
  • Ableton家的Live 12 beta (12.0b22)
  • id家的Pro Tools 2023.12
  • Reason Studio家的Reason 12 (12.7d3 build 15,282 Stable channel)
  • Bitwig家的Bitwig Studio 5.1 (build 2023-12-06)

而那些可以跑满小核心的DAW是绝对不会「踩雷」的:

  • Steinberg家的Cubase Pro 13 (13.0.10)
  • Steinberg家的Nuendo 13 (13.0.1)
  • Cockos家的Reaper 7 (7.07)
  • Image-Line家的FL Studio 21.2.2 (build 3470)

这里我们用Reaper 7来测试,因为它可以平均的同时使用全部大小核心进行运算,所以它的缓冲区大小和CPU消耗是跟我们的历史经验保持一致的:

10个带插件音轨测试三种缓冲区下的CPU消耗(从上到下依次为32、128、512):

20个带插件音轨测试三种缓冲区下的CPU消耗(从上到下依次为32、128、512):

30个带插件音轨测试三种缓冲区下的CPU消耗(从上到下依次为32、128、512):

将Reaper 7的测试结果总结成清晰的图标就一目了然了,它依然符合我们原有的认知(CPU占用率数值越低越好):

但我们其实不必担心某些DAW「踩雷」:

也许看到这里你已经对Apple Silicon芯片绝望了?大可不必。它的整体性能已经可以秒杀同级别PC电脑的芯片,虽然会因为大小核的设计会导致有些DAW「踩雷」,但我认为着点问题不足挂齿:

  • 相信将来Apple Silicon芯片和macOS系统的迭代会逐渐处理好大小核心协同问题
  • 相信将来会有越来越多的DAW像Cubase、Nuendo、Reaper和FL Studio那样可以跑满大小核心,躲过「雷区」
  • 即便苹果和你常用的DAW都没解决这个问题,这也只是个「甜蜜的烦恼」,因为它只出现在系统资源非常充足且选择更大缓冲区的情况下,只会多消耗一点点CPU资源,不会对你的音乐创作和对DAW的使用流程产生任何问题,在跑需要更多CPU资源的大工程的时候,「雷区」就不存在了,Apple Silicon的芯片将全力以赴用「性能核心」(大核心)为你提供最强劲的能量

最终结论:

跟昨天的近万字长文《新 M3 系列 MacBook Pro 骨灰级对比评测:不加钱上 M3 Max 还不如买 M2 Pro?》文章最后总结的一样:

  • 要尽量购买拥有更多大核心数量芯片的苹果电脑,比如性价比最高的8大+4小的M2 Pro「满血版」和8大+2小的M1 Pro「满血版」,以及性能最高的M2 Ultra或M3 Max芯片的电脑
  • 要尽量忽略小核心过多的芯片的电脑,比如坑爹的M3 Pro芯片
  • 要获得极致的DAW性能,目前(截止2023年12月底)请选择Cubase、Nuendo、Reaper和FL Studio,并时刻关注其它DAW的升级更新情况

*注:以上全部结论全部针对音乐人使用Apple Silicon电脑制作音乐的需求得出,不一定适合其它需求和使用人群

音频应用编曲资源网-Audioba-音频吧编曲混音资源网访问主页
THE END