メモリの帯域幅によって実行するアプリケーションのパフォーマンスが低下している場合には、チップを賢く選ぶことでより高性能なPCを構築することができます。海外メディアのThe Next Platformが、高価で高性能なメモリの帯域幅がアプリケーションのパフォーマンスにどのような影響を与えるかについて推測しています。

Building The Perfect Memory Bandwidth Beast

https://www.nextplatform.com/2023/01/24/building-the-perfect-memory-bandwidth-beast/

2020年にIBMが発表したクラウド向け次世代プロセッサ「POWER10」は大きいメモリ帯域幅を実現しています。IBMは2019年に高速インターフェースとして、マルチプロトコルに対応する「Open Memory Interface(OMI)」と、POWER10を搭載したマシンで構築したサーバーを発表しました。Intelは、IBMのPOWER10プロセッサによってさまざまな技術に対応できることを明らかにしています。

POWER10は1コアあたり約320GB/sの帯域幅で、256GBから4TBのメモリ容量を実現しています。また、メモリモジュール数を4分の1に減らし、1コアあたり128GBから512GBのDDR4容量を実現する最適化されたプロセッサでは、DDR5メモリに変更することで帯域幅を800GB/sにまで押し上げることが可能です。また、「Cirrus(巻雲)」と呼ばれるPOWER10プロセッサは、最大メモリ帯域幅が1コアあたり256GB/s、持続メモリ帯域幅は1コアあたり120GB/sとされています。



以下の画像は、POWER9プロセッサとPOWER10プロセッサの汎用(はんよう)ソケットにおけるパフォーマンス向上を示したグラフです。「POWER10 Memory Streaming」はデュアルチップのモジュールであるため、その他のシングルチップのソケットと異なり、クロックスピードを調整することでさらに高速にすることが可能です。



IBMが発売しているラック型サーバーのIBM Power E1050は最大で4つのPOWER10 デュアルチップのモジュールと合計96コアを搭載することで、動作周波数3.2GHzで動作するDDR4メモリで最大64回のディファレンシャル方式のDIMMをサポートし、最大1.6TB/sの帯域幅を実現することができるとのこと。

また、コア数を削減することで帯域幅を倍増することができるだけでなく、DDR5メモリやCompute Express Link(CXL)メモリに切り替えることでさらにメモリ帯域幅を拡大することができるそうです。

高価なIBM Power E1050を導入することは決して安い買い物ではありませんが、AMDのInstinct MI300やNVIDIAのGrace HopperのようなCPUとGPUを一体化したデータセンター向け高性能チップの発売を待つよりも良い選択だとされています。これらのチップは1コアあたりのメモリ帯域幅は高いものの、メモリ容量に制限があり、POWER10を搭載したIBM Power E1050やIntelが発表した「Sapphire Rapids」よりも小規模なプログラムしかできないとのこと。

また、AMDやNVIDIAの高性能チップは発熱しやすく、その結果DRAMやHBMの速度を下げざるを得ないため、想定されるメモリ帯域幅に達しない可能性が指摘されています。

The Next Platformは完璧なメモリ帯域幅を構築するために最も適したCPUプロセッサとして、IntelのSapphire Rapidsを挙げています。



Sapphire Rapidsは帯域幅の広いHBM2eメモリとDDR5メモリを同時にサポートすることができるプロセッサです。Sapphire Rapidsの一部の製品ではHBM2eメモリを複数サポートし、他の製品では8つのNUMAに対応しています。

通常モデルのSapphire Rapids Xeon SPは8つのDDR5メモリチャネルを持ち、1チャネルあたり1枚のDIMMを動作周波数4.8GHzで使用する場合、最大容量は2TBです。また、1チャネルあたり2つのDIMMを使用する場合は、最大容量は4TBに拡大しますが、動作周波数は4.4GHzになるとされています。

60コアのSapphire Rapids Xeon SP-8490Hは動作周波数が1.9GHzで動作するため1コアあたりの帯域幅が5.1GB/sと狭くなります。一方で16コアのSapphire Rapids Xeon SP-8444Hは2.9GHzという高い周波数で動作するため、1コアあたりの帯域幅は19.2GB/sになります。

さらにコアあたりのメモリ帯域幅を増やしたい場合にはSapphire Rapids Xeon SP-6434に変更することで、動作周波数が3.7GHzに向上し、1コアあたりの帯域は38.4GB/sに拡大します。

Sapphire RapidsのMaxシリーズCPUは56コアで、4つのHBM2eスタックが64GBのメモリ容量と1.23TB/sの帯域幅を持つことで、1コアあたり22GB/sのメモリ帯域幅を実現するとのこと。別のモデルは、帯域幅1.23TB/sの32コアで動作することで1コアあたり38GB/sのメモリ帯域幅になるそうです。

加えてSapphire RapidsのMaxシリーズCPUでは、DDR5メモリやCXLメモリを追加することで合計で13.912TB/s、1コアあたり217.4GB/sという高いメモリ帯域幅を実現することが可能です。また、NUMAを相互接続することで、より高いパフォーマンスを実現することもできるとされています。

Sapphire Rapidsは高いメモリ帯域幅が必要なサーバーを構築するために適しているだけでなく、高性能計算やAIの機械学習の高速化に適している一方で、膨大なコストが必要になります。そのため、Sapphire Rapidsを用いたアプローチは、AIの学習には適当ではないと考えられています。



また、AMDのInstinct MI300やNVIDIAのGrace Hopperのようなチップにおいても、適切な使用にはGPUのコアとHBMメモリの帯域幅のバランスが重要であるとされています。

「計算やメモリ帯域幅、メモリ容量のバランスを取ることは、超高性能なCPUプロセッサのメモリを細かく切り刻んで多数のCPUに分散する作業よりも重要になるかもしれません」とThe Next Platformは述べています。