錦です。
Apple Siliconが登場して1年半くらい経ちますが、今回はそのメモリについて話していきたいと思います。
メモリ
Apple Siliconはすべてをワンチップで動かすという構想のもと、System on Chipの形が採られておりCPU・GPU・NPUなどと各種コントローラがすべて一つのパッケージ上に実装されています。それに加えてユニファイドメモリアーキテクチャ(UMA)の考えのもと、メモリもオンパッケージです。
このオンパッケージのメモリによって、メモリとSoCは深く結合されており、これもApple Siliconの魅力の一つとなっています。
かつSoCはCPUとGPUが統合されている「統合グラフィック」の形を採っており、他のPCに存在するメインメモリ・ビデオメモリの境目が存在しません。搭載されるRAMがすべてメインメモリ・ビデオメモリとなるのです。こうすることによってCPUとGPUのパススルーをほぼ無くすことができるのです。
そんなApple Siliconのメモリなのですが、統合グラフィック・UMAとともに魅力的なのが帯域です。帯域とはメモリの速度を求めるものであり、1GB/sはそのまま、1秒間に1GBのデータをメモリに読み書きできるという意味です。
メモリ帯域 (GB/s) |
メモリバス幅 (bit) |
メモリ規格 | メモリクロック (GHz) |
|
---|---|---|---|---|
M1 | 68 | 128 | LPDDR4x | 4.266 |
M1 Pro | 204 | 256 | LPDDR5 | 6.4 |
M1 Max | 408 | 512 | LPDDR5 | 6.4 |
M1 Ultra | 816 | 1024 | LPDDR5 | 6.4 |
M2 | 102 | 128 | LPDDR5 | 6.2 |
メモリにおいて帯域はメモリクロック×総メモリバス幅*1となります。つまり、メモリクロックとメモリバスの高さがメモリ帯域に影響するわけです。
Apple Siliconの特徴は、M1でも普通のデスクトップ向けCPUと同じバス幅を持っている上、M1 Pro以上になると、普通のPCでいう4チャネル以上の性能になっていきます(普通のDDR規格では、1チャネルあたり64bitのメモリバス性能となります)。ではApple Siliconのメモリ帯域がどれほどすごいものなのかを見ていきます。
CPU | RAM | MEM クロック (GHz) |
バス幅 (bit) |
計算上の帯域 (GB/s) |
---|---|---|---|---|
DDR4 2ch① | DDR4-3200 | 3.2 | 128 | 51.2 |
M1 | LDR4x-4266 | 4.266 | 128 | 68.3 |
DDR5 2ch② | DDR5-4800 | 4.8 | 128 | 76.8 |
M2 | LDR5-6400 | 6.4 | 128 | 102.4 |
M1 Pro | LDR5-6400 | 6.4 | 256 | 204.8 |
DDR4 8ch③ | DDR4-3200 | 3.2 | 512 | 204.8 |
DDR5 8ch④ | DDR5-4800 | 4.8 | 512 | 307.2 |
M1 Max | LDR5-6400 | 6.4 | 512 | 409.6 |
M1 Ultra | LDR5-6400 | 6.4 | 1024 | 819.2 |
注釈
表中①:第12世代Core「Alder Lake-S」とAMD「Ryzen 5000シリーズ」の仕様を参照
表中②:第12世代Core「Alder Lake-S」の仕様を参照
表中③:Intel「Ice Lake-X」とAMD「Ryzen Threadripper PRO 5000WX」の仕様を参照
表中④:③と②を参考にしたIntel「Sapphire Rapids」の想定仕様
こちらの表は各種Apple Siliconと最近よくあるメモリ仕様をズラッと並べてみました。Alder Lake-SやRyzen 7000シリーズのメモリ帯域が76.8GB/sになるのに対して、Apple M2は102.4GB/sの速度が出る計算となっており、帯域は一般的な"CPU"に比べても高い事がわかります。
高い部分まで行くと、ハイエンドワークステーションに採用されるようなCPU、例えばXeon WやRyzen Threadripperの仕様をもとに考えますと、これらのCPUは8chつまり、512bitのメモリバスを備えていますが、DDRに比べてLPDDRのほうがメモリクロックが高くかつM1 MaxとM1 Ultraはそれぞれ512bit、1024bitのメモリバス幅を有しているので、DDR4からDDR5になったとしても、M1 Ultraはおろか、M1 Maxにも及びません。
メモリが高帯域なことのメリットとしては、メモリにデータをぶっこむ速度が変わるということが挙げられます。これはすなわちロード時間の短縮につながるわけです。CPUからみたメモリ速度は何度も申し上げている通りApple Siliconは非常に早いので、MPUやAPUでゲームをする場合において、Apple Siliconのほうが性能が高くなることが考えられます。
ただ、この高帯域はCPUと比べれば高いですが、GPUと比べても見劣りしません。
M1 Ultraの819.2GB/sという帯域幅は、どのRadeon RX 6000シリーズよりも上。Mac Pro搭載GPUをみても、Radeon Pro W6800X Duoが各GPU 512GB/sで1TB/sの帯域を持っています。そもそも819GB/sを超えるメモリ帯域を持つGPUもそう多くはなく、RTX 3080 12GB版(912GB/s)以上のGPUくらいです。
競合他社と比較すると、M1やM2より下の帯域を持つGPUは流石に存在しなかったものの、M1 Proの200GB/sはMacBook Pro 15"に搭載されたRadeon Pro Vega 20の179GB/sを上回っています高帯域メモリってなんなんだよ。
Apple M2のメモリ
Apple M2のメモリは100GB/sになりました。Appleはマーケティング的な目線からM1からのメモリ帯域の向上を示し1.5倍と表現しました(ちなみに計算してもわりとぴったり1.5倍に帯域が増えてます)。
ただ、M1からM2に変わったの大きな変更点としてメモリ規格がLPDDR4xからLPDDR5になり、メモリクロックが向上したということが挙げられます。M1のメモリクロックは、4266MHzだったのに対してM2は6400MHzに向上。これによって帯域が向上したわけです。
M2の帯域は割ときりがよくてM1 Proの半分となっています。これは偶然ではなくどちらかというと必然で、M2のメモリ帯域はM1の1.5倍というより、M1 Proの半分と表現したほうがいいからですね。
先述の通り、メモリ帯域(GB/s)は
- メモリクロック(GHz) × メモリバス幅(Byte)
で求めることができます。M1の場合、
- 4.266 GHz × 16 Byte(128bit) =68.256 GB/s
となります。
M1 Pro以上のM1とM2は6400MHz(6.4GHz)で駆動するLPDDR5メモリを採用しているようです。ただし、M1 ProとM2ではメモリのバス幅が異なり、M2が128bit、M1 Proが256bit。ちょうど二倍。この部分で差が生まれているわけです。
- 6.4 GHz × 16 Byte = 102.4 GB/s
- 6.4 GHz × 32 Byte = 204.8 GB/s
M1 MaxとM1 Ultraもメモリクロックは変わりませんが、メモリバス幅が2倍4倍になっており、それぞれ512bit、1024bitとなっています。
つまり、M2/M1 Pro/M1 Max/M1 Ultraのメモリ帯域がきれいに倍々になっているのはメモリバスが倍々になっているためです。
Mac Proに対する展望
AppleはまだMac Proを発表していません。ただし、Mac ProにはM1 Ultraを超えるSoCが搭載されることが確実です。そして前述の通り、M1 Pro/Max/Ultraとメモリバス幅を倍にすることによってメモリ帯域を倍々にしていました。おそらく、このメモリバスの増やし方というのは、メモリチャネルを内部で増加させているのでしょう。
この法則で行くなら、Mac Proで採用されるSoCも倍になる、つまり2048bitバス幅を持つということになるかもしれません。
となれば帯域は
- 6.4 GHz × 256 Byte = 1638.4GB/s ≒ 1.6TB/s
となるでしょう。もちろんこれは、M1 MaxやM1 Proの実績や、メモリの特徴から求めた個人的な推測の域を出ないものであり、なにかリークに基づくわけではないのでご留意を。