HPCメモリ: 高速でも遅い場合
Doug Eadline オリジナル記事「HPC Memory: When Faster Might Be Slower」

HPC関係者なら誰でも「メモリは速ければ速いほど良い」という一般的なルールを知っているが、この経験則を掘り下げると、より良い質問は「どれくらい速く、どれくらい良いのか」ということになる。幸いなことに、この考え方は適切なハードウェアを使えば簡単にテストできる。
最近、Phoronixのサイトで、Linuxベンチマークとテストの権威であるマイケル・ララベル氏が、Xeon Platinum 8592+プロセッサーを使用して、DDR5-4800とDDR5-5600メモリーの違いを評価した。
テストした DDR5-4800 (63 GB/s) モジュールは Samsung M321R8GA0BB0-CQKEG DIMM で、CAS レイテンシは 40 だった。より高速なDDR5-5600(69GB/秒)モジュールは、Kingston KSM56R46BD4PMI-64HAIで、CASレイテンシは46であった。メモリ速度とは、メモリデータがDIMMを出入りする速さを表し(高いほど良い)、レイテンシとは、移動の設定にかかる時間を表す(低いほど良い)。
このサーバーには、16個のDDR5 Registered ECCメモリモジュールと、Ubuntu 23.10が動作する2個の(デュアルソケット)Intel Xeon Platinum 8592+プロセッサーが搭載されている。メモリの種類が異なる以外は、テストに変わりはない。
図 1 の最初の例は、メモリを酷使することで知られる HPCG テストだ。DDR5-5600のDIMMSは、性能を10%向上させた(これはメモリ速度の差に相当する)。この改善は注目に値するものであり、期待される最大値である。
![]() |
図1:HPCGベンチマークのメモリ速度性能差(出典:Phoronix) |
NAS Parallel Benchmarks (V3.4)の別のアプリケーションにチューニングしたBT (Block Tri-diagonal solver, Class C)ベンチマークは、それほど良い結果ではなかった。図2は、わずか2%の増加を示している。
![]() |
図2:NAS Parallel BTベンチマークのメモリ速度性能差(出典:Phoronix) |
もう1つのテストは、ポピュラーなGROMACS分子動力学アプリケーションだ。興味深いことに、図 3 に示す結果では、より高速な DDR5-5600 メモリのパフォーマンスが約 1% 低下している。
![]() |
図 3:GROMACS ベンチマークのメモリ速度性能差 |
メモリを高速化した場合の結果は、大きいものから小さいもの、逆行するものまであるようだ。明らかにメモリ帯域幅以外の何かが結果に影響している。速度のほかに、CASレイテンシもメモリモジュールごとに異なっている(DDR5-4800は40ナノ秒、DDR5-5600は46ナノ秒)。
さらに掘り下げると、CASはColumn Address Strobeの頭字語である。CAS信号はメモリモジュールに送信され、メモリモジュールが対応するデータを利用可能にする時間(ナノ秒単位)がレイテンシである。したがって、メモリを読み出す際には、そのメモリが利用可能になるまで待ち時間が発生する。大差はないものの、GROMACSが遅いメモリで若干うまくいくのは、レイテンシが速いからだろう。
直感的でないGROMACSの結果は、ベンチマークで仮定をテストすることがなぜ重要かを示す良い例である。この場合、最速のメモリを搭載したサーバーをアップグレードしたり購入したりしても、性能向上にはつながらない可能性がある。GROMACS の場合、レイテンシが重要であり、メモリ速度の向上は、CAS タイミングの増加を克服するのに十分ではない。(性能に寄与するメモリとキャッシュのアクセスパターンもあるが、同じアプリケーションを使用することで、これらは一定に保たれる)。
Phoronixの記事には、他のNAS Parallelベンチマークを含む、より多くのテスト結果が掲載されている。結果は多くの非HPCアプリケーションで異なり、多くの場合、改善はほとんど見られない。ベンチマークは真実を伝えるものであることを忘れないで欲しい。