「搭載する製品に何をさせたいか」によって、処理モジュールの数や種類を選ぶ。そして、それぞれが必要とする十分に高帯域な共有メモリで束ね、チップ全体が同じメモリ空間にアクセスできるようにする。
この構造の本質は、データを動かさないことにある。CPUとGPUが別々のメモリを持つ構成は多いが、Appleシリコンでは、さまざまな処理モジュールが同じデータを使える。「演算ユニット間でデータを移動させる必要がない」ことが、Appleシリコンの本質だとブルックスは言う。
厳密には、演算処理の中でデータがまったく動かないわけではない。しかし、異なるメモリプール間で余分なデータコピーを行う必要がない。結果として、高速で応答性がよく、電力効率が高いと言われるが、そうした特徴は共有メモリアーキテクチャそのものに源流がある。
「このコンセプトは、デバイスの中にも入り込んできたエージェント型のワークフローでとりわけ生きる」とブルックスは言う。CPUがタスク全体を見渡して計画を立て、複数の異なる特徴を持つAIモデルを指揮して問題解決を行う「オーケストレーション」を担い、GPUが言語モデルを動かす。高帯域の共有メモリならば、こうした連携でも余分なデータ転送のオーバーヘッドを抑えられる。
そしてこのコンセプトは、ポケットに収まるiPhoneから、机上のMac、そしてMac Studioのようなワークステーションまで、一貫して採用されている。フォームファクタが変われば用途も変わり、求められるGPUのコア数とメモリ帯域も変化するが、どのフォームファクタも同じ構造で統一されている。
メモリ帯域とNeural Acceleratorsが支えるもの
ここから先は、デバイス内でのAI処理に特化する形で掘り下げよう。ブルックスは、AI処理におけるAppleシリコンのアプローチを二つの軸で話した。
一つ目はメモリだ。メモリにも容量と帯域という二つの切り口がある。容量は、デバイス上で動かせるモデルの大きさを決める。もう一方の帯域は、冒頭でも紹介したように、トークンを逐次生成する速度に直接影響する。この処理は「デコード(decode)」と呼ばれる。
もう一つ、デコードと対をなすのが、入力されたプロンプトやコンテキストをまとめて処理し、最初の応答を始めるための準備を行う「プリフィル(prefill)」だ。こちらは行列演算性能への依存度が高い。
「競合のシステムの中には、非常に強力なAI向けの演算性能を持つものもあるが、AI処理はそれだけでは完結しない。処理全体を見渡すと、メモリ帯域が不足していることが多い」とブルックスは話す。
「AppleシリコンはAI処理に限らず、必要とする処理の全体を見渡し、バランスを考えて処理モジュールの性能を決め、メモリ帯域に過不足が発生しないよう慎重に設計している。例えばM5ファミリーは、10コアGPUのM5から、最大20コアのM5 Pro、40コアのM5 MaxへとGPUの演算能力が高まるごとに、共有メモリの帯域も段階的にほぼ2倍ずつ増えている。演算性能を高めるだけでは演算ユニットを持て余してしまうので、常に演算性能とメモリ帯域が釣り合うように設計している」


