MacBook Air early 2020はturbo boostの設定がおかしい。どう考えても正常な設定ではない。CPU温度がすぐ100℃に到達してしまい、定格以下の速度でしか動作できないタイミングが多発になってしまう。1.1GHzと謳っているのに0.7GHzから1.6GHzを行き来するような状態になる。これはほぼ詐欺のようなものだ。
どうにかもうちょっと安定して動作させることはできないかといろいろ調べていたがまず最初に出会ったのはTurbo Boost Switcherというもので、これを使うとTurbo Boostを無効化できずっと1.1GHz未満で動作するようになるというものだ。
Turbo Boost Switcher for Intel Mac
これを使うことによりデフォルトの状態よりも快適に長時間安定して使うことができるようになる。しかしもうちょっと丁寧に制御してくれてもいいんじゃないか。ファンをぶん回せば1.1GHzよりももうちょっと高いクロックを一瞬出す分には問題ないはずで、でもCPU温度が80℃を超えているのに電力を爆食いして100℃になってしまうような挙動を抑えてほしいだけなんだ。
そんなわけでTurbo Boost Switcherを使ってTurbo Boostをonにしたりoffにしたりする生活を1ヶ月くらい続けていたのだけど、昨晩VoltageShiftというMacBookのCPUの電圧を下げることができるソフトの存在を知り、調べたところ、CPUのPL1・PL2の設定*1 を変更することもできるようで、これこそ自分が望んでいたものではないかという気がした(しかもGPLでソースコードが公開されており頑張れば自分で改造することもできそうだ)。
github.com
使えるようになるまでは少し難しいところもあって悩んだりしたが、無事動くようになり、まずはなにもしていない状態での現在設定を確認したところ、下記のような出力だった。
$ ./voltageshift info
------------------------------------------------------
VoltageShift Info Tool
------------------------------------------------------
CPU voltage offset: 0mv
GPU voltage offset: 0mv
CPU Cache voltage offset: 0mv
OC mailbox cmd failed
System Agency offset: 0mv
Analogy I/O: 0mv
OC mailbox cmd failed
Digital I/O: 0mv
CPU BaseFreq: 1100, CPU MaxFreq(1/2/4/6/8): 3500/3300/3200/3200/3200 (mhz)
OC_Locked PL1: 100W PL2: 125W
CPU Freq: 2.3ghz, Voltage: 0.8224v, Power:pkg 11.65w /core 7.32w,Temp: 100 c
1分間ほど目を疑ってしまったがPL1=100W, PL2=125Wという、これが設定されているのか、それともこれはCPUのMAX値なのかどちらかよくわからない値が表示された。変更してみると、下記のような表示が出たので、このPL1=100W はやはりそういう設定で動作していたということのようだった。どこのデスクトップPCだよ。
$ ./voltageshift power 7 10
Password:
Current Setting: PL1(Long term): 100W, PL2(Short term) 125W
Modified Setting: PL1(Long term): 7W, PL2(Short term) 10W
そんなわけでこのいい意味でも悪い意味でも頭がおかしいデフォルト設定を脱出し、上記のようにPL1=7W, PL2=10Wのように設定してやることで80℃くらいで安定して動作させることができるようになった気がした。
いや、でも、このearly 2020に載っているCPU(i5-1030NG7)のTDPは10Wだったはず*2。いくらなんでも定格以下のTDPでの動作を強いられるのは納得行かないので、PL1=PL2=10Wに設定してやると90℃で安定して10W動作できるようだった。ファンがうるさすぎるので納得は行かないが、完全に不良品だろとは言えないくらいには排熱できていた(でもPL1=10W, PL2=15Wに設定したところ高負荷が継続したときに発熱が処理できずにクロックがしばらくの間低下してしまうようだった)。