このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第642回

メモリーアクセスの性能が向上したMilan-Xこと第3世代EPYC AMD CPUロードマップ

2021年11月22日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

マイクロソフトがMilan-Xのベンチマーク結果を公開

 さて、これに絡んでもう少し性能の話をしたい。AMDのイベントに合わせ、マイクロソフトはAzureCompute Blogでこんな記事を掲載した。すでにマイクロソフトもこのMilan-Xを受け取っており、それどころかこのMilan-Xを利用するAzureのインスタンスをプレビュー扱いで利用可能としている。

 それだけでなく、実際にそのMilan-Xをベースにしたインスタンスと、すでに提供中のMilanベースのインスタンスとの間で性能を比較している。ちなみにこのMilan-X、製品名称はEPYC 7V73Xと説明されているが、64コア製品という以外の詳細スペックは公開されていない(いずれAMDから説明があると思われるが)。

 まず下の画像がNUMAノード同士での通信のレイテンシーを測定したMicro Benchmarkである。おそらく同一ダイ上であってもNUMAのレイテンシーは半分に、ダイを挟む場合でも42%のレイテンシー削減とされる。

どういうNUMAノードの切り方をしているのかがわからないが、どうもNUMA 0/1と2/3はそれぞれ同一のダイ上にあり、ただしNUMA 0/1と2/3は別々のダイになっている感じだ。おそらくはIntel Memory Latency Checkerが自動認識しているものと思われる

 要するに、通信量が多くてMilanのL3キャッシュだけではあふれる(=メモリーアクセスも発生する)ような場合でも、Milan-XならL3増量によりメモリー利用量が減り、結果としてレイテンシーが削減できるということだろう。

 下の画像はMilan-XでStreamベンチマークを実施した場合の結果である。

実効帯域が1.8倍に増えた計算になり、2 Socketのノードではおおむね630GB/秒の帯域が利用できるという試算もなされている

 ちなみに実行コマンドは以下のとおり。

./stream_instrumented 400000000 0 $(seq 0 4 29) $(seq 30 4 59) $(seq 60 4 89) $(seq 90 4 119)

 バッファサイズとして約400MB(正確に言えば381.47MB)を指定しており、これは従来なら1つのダイに収まるL3の容量をはるかに超えている。

 したがって、本来であればDDR4-3200 DIMM 8ch分の帯域である200GB/秒に収束するはずなのだが、Milan-XではStreamのTriadで358GB/秒と、ほぼ1.8倍の帯域に達しているのはL3容量が大幅に増えた効果とされている。

 ここからは実アプリケーションの結果だ。まずANSYS Fluent 2021 R1という流体解析のツールを、VM1個で実施した場合の性能で、HBv3(Milan)とHBv3(Milan-X)を比較すると、5割前後の性能向上になる。

2M個の要素を持つ飛行機、それと4M個の要素を持つ自動車(セダン)での解析速度を、SkylakeベースのHCv1を基準として示したもの。ちなみにsedan_4mのHBv2は1.92倍ほどになる

 ではもっと要素数が増えた場合は? というのが下の画像で、しかも同時に動かすVMの数を1から16まで順次増やしていくと、8VMあたりが最高性能になり、16VMではむしろ性能差が縮まる結果になった。

これはMilan vs Milan-Xでの比較。要素数が14M個に増えるので、利用するメモリー量も当然増える

 さらに要素数とVMを増やすとどうなるか? というのが下の画像だ。おもしろいのは、VMの数が少ないと性能差はそれほど大きくない。差が大きくなるのは32~64VMあたりだが、128VMになるとまた差が縮まる方向にある。

F1のレーシングカーのモデリングでの例。要素数は140M個

 このグラフがわかりづらいのは、トータルの処理性能ではなく、それぞれのVM数における性能差になっていることだ。つまり絶対的な性能で言えば、2VMよりも4VM、8VMとVMの数を増やした方が性能が上がる。ただその上がり方が、Milan-Xが一番高いという話である。

 最後は、さらに要素数の多いケースである。こちらではMilanとMilan-Xでの性能差はそれほど大きくないが、それでも128VMでは15%ほどの改善がみられる。

こちらはガスタービンの燃焼器(Combuster)での例。要素数は830M個に達する

カテゴリートップへ

この連載の記事