AppleM1 Proについて考える
- 2021/10/29 16:16
- カテゴリー:ふと思うこと, マニアックなおはなし
新しいMacBookProが,噂通り発売されました。AppleM1を搭載したMacBookAirを,私もほぼ発売と同時に買ってもうすぐ1年になるのですが,「生活マシン」には十分過ぎるM1も,コンテンツ作成に十分な性能かと言われれば心許ないこともあり,そこはきっとAppleM2なるものがでてくるんだろうと,みんな思っていた訳です。
しかし,出てきものはM1 PROとM1 MAXで,あくまでM1の派生でした。
MacBookAirは,その性能を一気にハイエンドノートの領域に引き上げつつ価格は10万円そこそこと,かなりのお買い得感があったのですが,今回のMacBookProは14インチが24万円から,16インチが30万円からと,随分高くなったなあと言う印象です。
もっとも,M1を搭載した13インチのMacBookProは併売となっていますし,お値段も16万円ということですので,棲み分けという点では問題ないのですが,14インチモデルが13インチの後継ならば値上がり,15インチモデルの後継なら妥当な価格,と言うことになるので,ここはもう考え方次第なのかも知れません。
さて,私の興味はやっぱりプロセッサです。
M1が高速であったことに偽りなく,また消費電力が極端に低いことを昨年12月に私も喜んで書いているのですが,実は1つだけ納得いかないものがありました。
x265のエンコードの速度です。ffmpegからx265を使っているのですが,MacBookProLate2016(Core i7-6700HQ)を1とすると,M1はRosetta2上で0.5,ネイティブだとなんと0.3くらいまで低下します。
M1の高性能コアでありFireStormの1コアの性能は,TigerLakeのコア1つとほぼ同じ程度ですので,この結果はどう考えてもおかしく,x265がM1に最適化されていないせいだろうと思っていました。
あれから1年,しかし未だに速度に変化はありません。そろそろ誰かが指摘してもいいだろうと思うのですが,少なくとも日本語でここを突っ込んだ記事を見かけることはなくて,もしかしたら私だけの話かも知れないと焦っていました。
実はmacOSには,VideoToolBoxというサービスがあり,これを使うとハードウェアアクセラレーションを利用することができます。ffmpegでも利用可能なので,これを試したこともあるのですが,速度は大幅に向上しつつもエンコード品質があまりにひどく,使うことはありませんでした。
そんなこともあってMacBookProを買い換える気も起きず,今回の祭りは静観していたわけですが,先日真面目に調べたところ,ようやく詳しいことがわかりました。
x265は,NEONに対応していなかったのです。
NEONはARMのSIMD命令セットです。それなりに昔からあるものなので,まさかこれにx265が対応していないとは思っていませんでした。AppleはHandBrakeというソフト向けに,M1のNEON対応パッチを出しているのですが,ffmpegで利用することは現時点では出来ていません。
これを使えば速度は品質そのままで3倍になるという事ですので期待出来るのですが,まずは本当かどうかを確かめてみる必要があります。
調べてみると,ffmpegでもNEONに対応したバイナリを配布してくれている奇特な方がいらっしゃって,ビルドが面倒な私はこれで試してみることにしました。
すると確かにエンコード品質に影響なく,3倍の速度になりました。ファンレスのMacBookAirで,ファンが唸るMacBookPro2016と同じ結果が得られるというのは,確かにすごいです。しかし,fdkaacを使えないので,このバイナリを常用することはあきらめざるを得ません。
ならばとHandBrakeを試してみたのですが,こちらも同じ結果です。M1のMacBookAirとMacBookPro2016は,ほぼ同じ速度でした。
うーん,そうなると,新しいMacBookProのM1 PROとM1 MAXが俄然気になってきますよね。どれくらい高速化されるのだろう,この際買い換えちゃうかとか・・・
ということで,M1シリーズについて,少し辻褄が合うように調べてみました。
まずM1から。
M1は高性能コアであるFirestormが4つ,高効率コアであるIcestormが4つの8コアのプロセッサで,TDPは15W,クロック周波数は最大3.2GHzです。
この1年で様々なベンチマークが発表されていますが,シングルコアの性能は,インテルの現行のアーキテクチャであるTigerLakeとFirestormがほぼ互角となっています。(一世代前のIceLakeに比べたらFirestormは圧勝です)
高効率コアのIcestormは,ベンチマークの結果からざっくりForestormの0.3倍と考えてよさそうです。そうすると,M1のパフォーマンスはシングルコアの5.2倍と計算出来そうです。(ちなみにIcestormの電力はFirestormの1/10ということですので,随分電力効率の良いコアなんだなあと思います)
インテルのCPUではノート用では4コアですからこれが4倍となるわけで,M1との差は約1.3倍。これはMacBookAirが登場した時によく見たベンチマークの結果とほぼ一致しています。
で,当時は,インテルだと20万円のマシンがファンをぶん回しているのに,M1だと10万円でファンレスというのがすごいという話だったのですが,今数字を並べてみるとなるほどと思います。
メモリについてはLPDDR4-4266で128ビットで繋がっているということでしたから,4266*128/8=68.2GB/sという帯域幅です。これでCPUからGPUからなにからなにまで面倒を見ます。
次に本題です。M1 Proです。
M1 Proは,FirestormもIcestormもM1と同じと見て良さそうです。だからM1という名前を継承しているんだと思いますが,M1 ProではFirestormを8コア,Icestormを2コアと,高性能コアに割り振っています。
よってTDPは60W台ということらしく,M1に比べて大幅に大きくなっています。
さて,問題のパフォーマンスを考えてみます。M1 ProはFirestormが8コア,Icestormが2コアですので,シングルコアの性能の8.6倍ということになります。M1が5.2倍でしたから,M1に対して65%ほど高速という計算になりますが,これはAppleの公式発表の70%や,各種ベンチマークの結果である60%程度という数字と大体合っています。
インテルですが,8コアのTigerLake-Hが今年の5月に発表になっています。TDPは65Wということですので,M1 Proと性能も電力もほぼ互角なんじゃないでしょうか。
ところで,M1 Proには8コア版もあります。一番安いMacBookProに搭載されるM1 Proがそれなのですが,これは先程の計算だと6.6倍となりますので,10コアのM1 Proとの性能差は約25%となりますが,これも実際のベンチマークの結果によくあっています。
メモリ幅についてはM1 Proは大幅に向上していて,LPDDR5-6400を256ビット接続しているとのことです。ざっと計算すると6400*256/8=204GB/sと,Appleの公式発表の数字に合います。
私はGPUにはあまり関心がなく,それはつまりグラフィック関連で重たいソフトを使わないということなんですが,それにしても200GB/sという数字は強烈だと思いますし,M1 MAXになるとさらにその倍ですから,そりゃ高くもなるわな,と思います。
ということで,名前はM1のままではあるのですが,搭載するコアの能力を選ぶ事でハイパフォーマンス向けのCPUも作る事が出来るということがわかったのですが,これがコアそのものに手が入るM2世代になると,一体どうなることやらと思います。
よく考えてみると,CPUをインテルに委ねていたAppleは,MacBookAirに適したCPUとMacBookProに適したCPUを,今あるラインナップから選ぶしかなかったわけです。
しかし,M1ではFirestormとIcestormの構成比率を変更するだけで,パフォーマンスも電力も調整可能になりました。しかもその調整幅が10万円の生活マシンから,40万円のプロ用ノートまでカバー出来るようになるわけです。
Appleがやりたかったことは,まさにこれなんだろうと思うのです。
これも,Firestormがインテルのシングルコア性能に匹敵するものであるからこそ成り立つ作戦であって,従来Armはインテルのコアにはパフォーマンスでかなわなかったことを知るものとしては,多くの人が言うように,大した設計能力だと感心せざるを得ません。
さて,Appleは2年かけてApple Siliconへの移行を宣言しています。今回のMacBookProはちょうど1年経過して登場したメインストリームでしょう。あと1年でMacProまでサポート出来る強烈なCPUが出てくるのと同時に,もっと安価なモデル用のものも出てくるかも知れません。
私はと言うと,結局MacBookProを買い換えるには高すぎるし,MacMiniにM1 Proが搭載されることを期待しつつ,もうしばらく様子を見ようと思っています。