2日使った印象は...とにかく「速い」

Apple M1搭載のMacBook Airが到着して3日目、ここまでの感想を一言でいうと「速い」。到着直後の時点では、「予想より」とか「エントリーモデルとしては」という前置きありでの感想だったが、しばらくしてそのような言辞が適切でないことを理解した。とにかく「速い」のだ。

Apple M1搭載のMac(以下、M1 Mac)には、「速い」の意味が2つある。搭載されているCPU/GPUやメモリの処理能力をもって速い云々という部分では、他のコンピュータと変わらないが、M1 Macは実行されるバイナリが「ネイティブ(arm64)」か「x86_64」かを考慮しなければならないからだ。後者はバイナリトレンスレータ「Rosetta 2」の処理を経るため、arm64バイナリを直接実行するよりパフォーマンス的にハンディがある。

しかし、そのハンディをものともしないのであれば、"二重の意味で速い"ということになる。M1 Macレビュー2回目となる今回は、ベンチマークツールの結果から"M1 Macが速い理由"を読み解いていこう。

  • 今度のMacBook Airは、とにかく「速い」

定番ベンチマークツール「GeekBench 5」を試す

発売初日にあちこちのWEBサイトやSNSでM1 Macのベンチマークが出回ったようなので、本稿では定番の「GeekBench 5」の結果のみ引用することにした。何がどう速いのか、この結果を見るだけでもおよそのことがわかるはず。なお、M1 Mac(MacBook Air)の比較対象にはMacBook Pro(13-inch Mid 2019/1.4GHz)を利用している。

GeekBench 5の結果
MacBook Pro(Intel) MacBook Air(Apple M1)
シングルコア マルチコア シングルコア マルチコア
TOTAL 918 3924 1726 7678
Crypto Score 990 4666 2434 9909
Integer Score 886 3633 1591 7058
Floating Point Score 975 4431 1899 8649
AES-XTS 990 4666 2434 9909
Text Compression 865 4508 1521 6088
Image Compression 911 4172 1378 7261
Navigation 827 3350 1726 5762
HTML5 800 2985 1674 7690
SQLite 887 3634 1420 6988
PDF Rendering 912 3623 1600 6913
Text Rendering 904 3329 1772 7943
Clang 926 3885 1681 8177
Camera 950 3442 1593 7075
N-Body Physics 866 3943 1830 7814
Rigid Body Physics 1196 6063 1768 9135
Gaussian Blur 293 3588 1427 7933
Face Detection 581 4633 2253 10182
Horizon Detection 939 3978 1975 9686
Image Inpainting 1896 6771 3219 12754
HDR 1831 6840 2492 12705
Ray Tracing 1352 5867 2586 14657
Structure from Motion 902 3094 1420 6846
Speech Recognition 962 3238 1606 4917
Machine Learning 1117 3005 1189 4537

まず、この結果だけ見れば、MacBook AirはほぼダブルスコアでMacBook Proに圧勝ということになる。暗号処理、整数演算・浮動小数点演算いずれもバラつきなくMacBook Airが上回っており、その傾向はシングルコア/マルチコアで大きく変わらない。

GeekBenchというベンチマークソフトは、テキスト表示や画像の描画/塗りつぶしといったそれ自体は意味に乏しい処理だけではなく、顔検出やHDR、音声認識といったエンドユーザにとって身近な処理も検証している。そして今回の結果を見ると、MacBook Airでは全項目にわたりスコアを伸ばしているところに注目したい。つまり、実用的で可視化しやすい機能が満遍なく速くなっているのだ。

特に高速化されている項目が、「Gaussian Blur」と「Face Detection」。前者は画像エフェクトの一種・ガウシアンブラーのフィルタ処理を、後者は画像から人の顔を検出するテストで、特にシングルコアのときMacBook Proを圧倒するスコアを叩き出している。このような処理が必ずマルチコアで実行されるとは限らないことをあわせると、いろいろな場面でM1の高速性を感じることができそうだ。

M1というプロセッサの底力を感じさせる項目のひとつが、コンパイルのパフォーマンスを測る「Clang」(Xcodeにも採用されているコンパイラ)。1,094行のCソースファイルを処理するというテストだが、ファイルの扱いやライブラリのコールといった基礎的な部分にまで高速化の恩恵が届いていることが伺える。

GeekbBenchのWEBサイトで他のMacのスコアを確認してみると、シングルコアのみでいえばMacPro(Intel Core i9-9900K)をも上回るほど。この結果はエビデンスのひとつに過ぎないが、他のベンチマークソフトも軒並み高得点なところを見ると、M1のパフォーマンスが優れているということは断言できる。

  • GeekBench 5でMacBook Pro(Intel)とMacBook Air(Apple M1)のパフォーマンスを測定した

メディア変換はIntel有利なれど「Rosetta 2」に驚愕

ベンチマークソフトだけでは引っ掛かるものがあるため、念のためメディアファイルの変換テストも行った。ひとつはサイズ2.25GB/4分50秒の4K動画(30fps、H.264/AAC)を720pにコンバートするテストで、もうひとつは328MBのWAVファイルをFLACにトランスコードするテスト。前者はQuickTime Playerで、後者はTerminalで「afconvert」コマンドにより実施した。

4K動画の変換テストは、MacBook Proが43.04秒、MacBook Airが56.76秒という結果に。この違いがCPUの性能差によるものか、QuickTime Playerが依存するフレームワーク(AVFoundation)のARMアーキテクチャへの最適化によるものかは不明だが、とにかくMacBook Proのほうが速い。

WAVファイルをFLACへトランスコードするテストは、MacBook Proが5.17秒、MacBook Airが5.31秒。僅差ではあるが、こちらもMacBook Proに軍配が上がった。動画ともども、メディアファイルの扱いに関してはいまだIntelアーキテクチャに分があるということだろうか。

もうひとつ、気になっていたことのテストも行った。同じ処理を「Rosetta 2」経由で実行すると、どれほどの起動時間の差が生じるかということだ。PowerPCからIntelへの移行期に活躍した初代Rosettaとは異なり、二代目Rosettaは初回の起動時に作成したバイナリ(Apple Silicon形式に変換したもの)をキャッシュしておき、2回目以降の起動に利用するしくみを採用しているため、初回と2回目では2回目のほうが起動時間は短く、2回目と3回目以降はほぼ同じになるはずなのだ。

afconvert(Universalバイナリ)をコピーしたものからlipoコマンドでarm64バイナリを除去し、それを利用してWAV→FLACコンバートしたところ、ビンゴ。初回は6.95秒かかったところ、2回目は5.44秒、3回目もほぼ同じ5.46秒。キャッシュの効果がうかがえる。

しかも、変換に要した時間がarm64ネイティブバイナリで実行したとき(5.31秒)とあまり差がない。動画のように長時間/ギガ単位のファイルともなると、有為な差を確認できるのかもしれないが、Rosetta 2を経由してもそれほどパフォーマンスが落ちていないこともまた確かだ。Rosetta 2の威力、おそるべし。

  • 初めてIntelバイナリを実行したときに、Rosetta 2のインストールを促される

  • Universalバイナリからlipoコマンドでarm64バイナリを取り除けば、準備完了

  • 初回と2回目、3回目の所要時間に注目