Garima Kochhar、Deepthi Cherlopalle、Joshua Weage。HPCおよびAIイノベーション ラボ、2019年10月
-
今日のHPCの世界では、コードネームRomeと呼ばれるAMDの最新世代EPYCプロセッサーについて紹介するまでもありません。 私たちはここ数か月、 HPCおよびAIイノベーション ラボ でRomeベースのシステムを評価してきましたが、デル・テクノロジーズは最近、このプロセッサー アーキテクチャをサポートするサーバー を発表しました
。Romeシリーズの最初のこのブログでは、Romeプロセッサー アーキテクチャについて説明し、HPCパフォーマンスに合わせて調整する方法、および初期のマイクロベンチマーク パフォーマンスを提示します。その後のブログでは、CFD、CAE、分子動力学、気象シミュレーション、その他のアプリケーションのドメインにわたるアプリケーションのパフォーマンスについて説明します。
RomeはAMDの第2世代EPYC CPUで、第1世代の Naplesをリフレッシュしています。昨年の このブログ でナポリについて説明しました。
HPCにメリットをもたらすナポリとローマのアーキテクチャの最大の違いの1つは、ローマの新しいIOダイです。Romeでは、図1に示すように、各プロセッサは最大9個の チップレット で構成されるマルチチップパッケージです。中央の14nm IOダイには、メモリー コントローラー、ソケット内およびソケット間接続内のInfinityファブリック リンク、PCI-eなど、すべてのIOおよびメモリー機能が含まれています。ソケットあたり8個のメモリー コントローラーがあり、3200 MT/sのDDR4を実行する8個のメモリー チャネルをサポートします。シングルソケット サーバーは、最大130のPCIe Gen4レーンをサポートできます。デュアルソケット システムは、最大160のPCIe Gen4レーンをサポートできます。
(図1:1つの中央IOダイと最大8コアのダイを備えた Rome マルチチップ パッケージ)
中央のIOダイの周囲には、最大8個の7nmコアチップレットがあります。コア チップレットは、コア キャッシュ ダイまたはCCDと呼ばれます。各CCDには、Zen2マイクロアーキテクチャに基づくCPUコア、L2キャッシュ、および32MBのL3キャッシュがあります。CCD自体には2つのコア キャッシュ コンプレックス(CCX)があり、各CCXには最大4つのコアと16MBのL3キャッシュがあります。図2にCCXを示します。
(図2 :4つのコアと共有16MB L3キャッシュを搭載したCCX)
Rome CPUモデルによってコア数は異なりますが、
すべてのモデルに1つの中央IOダイがあります。
トップ エンドは、EPYC 7702などの64コアCPUモデルです。lstopo の出力は、このプロセッサにはソケットあたり 16 個の CCX があり、図 3 と 4 に示すように、各 CCX には 4 つのコアがあり、ソケットあたり 64 個のコアがあることを示しています。CCXあたり16MB L3、つまりCCDあたり32MB L3は、このプロセッサーに合計256MBのL3キャッシュを与えます。ただし、RomeのL3キャッシュの合計は、すべてのコアで共有されるわけではありません。図2に示すように、各CCXの16MBのL3キャッシュは独立しており、CCXのコアによってのみ共有されます。
EPYC 7402のような24コアCPUには、128MBのL3キャッシュがあります。図3と図4のlstopo出力は、このモデルがCCXあたり3つのコアを持ち、ソケットあたり8つのCCXを持つことを示しています。
(図3および4 :64コアおよび24コアCPUのlstopo出力)
CCDの数に関係なく、各Romeプロセッサは論理的に4つの 象限 に分割され、CCDは可能な限り均等に分割され、各象限に2つのメモリチャネルがあります。中央のIOダイは、ソケットの4つの象限を論理的に支えていると考えることができます。
ローマの中央IOダイは、ナポリで測定されたものよりも メモリレイテンシ を改善するのに役立ちます。さらに、CPUを単一のNUMAドメインとして構成できるため、ソケット内のすべてのコアに対して均一なメモリー アクセスが可能になります。これについては、以下で説明します。
Romeプロセッサーの4つの論理象限により、CPUを異なるNUMAドメインに区分化できます。この設定は、 ソケットあたりの NUMA または NPS と呼ばれます。
利用可能な場合、NPS4は最適なメモリー帯域幅と最小のメモリー レイテンシーを提供することが期待され、アプリケーションがNUMA対応になる傾向があるため、HPCに推奨されます。NPS4が利用できない場合は、CPUモデルでサポートされている最高のNPS(NPS2、またはNPS1)をお勧めします。
Romeベースのプラットフォームで使用可能な多数のNUMAオプションを考慮すると、PowerEdge BIOSでは、 MADT列挙で2つの異なるコア列挙方法を使用できます。線形列挙では、コアに順番に番号を付け、次のソケットに移動する前に1つのCCX、CCD、ソケットを埋めます。32c CPU では、コア 0 から 31 が最初のソケットに、コア 32 から 63 が 2 番目のソケットにあります。ラウンド ロビン列挙では、NUMA リージョン全体のコアに番号が付けられます。この場合、偶数番号のコアは最初のソケットに、奇数番号のコアは2番目のソケットに配置されます。シンプルにするために、HPC の線形列挙をお勧めします。NPS4で構成されたデュアルソケット64cサーバーでのリニア コア列挙の例については、図5を参照してください。この図では、4つのコアの各ボックスがCCXで、連続した8つのコアの各セットがCCDです。
(図5 :デュアルソケット システムでのリニア コア列挙、ソケットあたり64c、8 CCD CPUモデルでのNPS4構成)
もう1つのRome固有のBIOSオプションは 、優先IOデバイスと呼ばれるものです。これは、InfiniBandの帯域幅とメッセージ レートの重要なチューニング ノブです。これにより、プラットフォームは1つのIOデバイスのトラフィックに優先順位を付けることができます。このオプションは、1ソケットのRomeプラットフォームと2ソケットのRomeプラットフォームで使用可能です。すべてのCPUコアがアクティブなときにフル メッセージ レートを実現するには、プラットフォーム内のInfiniBandデバイスを BIOS メニューで優先デバイスとして選択する必要があります。
ナポリと同様に、Rome もハイパースレッディングまたは論理プロセッサをサポートしています。HPCでは、この機能は無効のままにしますが、一部のアプリケーションでは論理プロセッサーを有効にすることでメリットを得ることができます。分子動力学の応用研究に関するその後のブログをご覧ください。
ナポリと同様に、ローマでも CCXをNUMAドメインとして許可しています。このオプションは、各CCXをNUMAノードとして公開します。CPUあたり16個のCCXを備えたデュアルソケットCPUを搭載したシステムでは、この設定により32のNUMAドメインが公開されます。この例では、各ソケットに8個のCCD(16個のCCX)があります。各CCXは、独自のNUMAドメインとして有効にすることができ、ソケットあたり16、2ソケット システムでは32のNUMAノードを提供します。HPCの場合は、デフォルトのオプションである[無効]を[NUMAドメインとしてのCCX]のままにしておくことをお勧めします。このオプションを有効にすると、仮想化環境に役立つことが期待されます。
ナポリと同様に、Romeではシステムを パフォーマンス決定モード または 電力決定モード に設定できます。パフォーマンスの決定では、システムはCPUモデルに対して予想される頻度で動作し、複数のサーバー間のばらつきを減らします。電源の決定では、システムはCPUモデルの使用可能な最大TDPで動作します。これにより、製造プロセスにおけるパーツ間のばらつきが増幅され、一部のサーバーが他のサーバーよりも高速になります。すべてのサーバーがCPUの最大定格電力を消費する可能性があるため、電力消費は決定論的になりますが、複数のサーバー間でパフォーマンスに多少のばらつきが許容されます。
PowerEdgeプラットフォームに期待されるように、BIOSには システム プロファイルと呼ばれるメタ オプションがあります。[Performance Optimized]システム プロファイルを選択すると、ターボ ブースト モードが有効になり、C-Stateが無効になり、[Determinism]スライダーが[Power Determinism]に設定され、パフォーマンスが最適化されます。
読者の多くはこのセクションに直接ジャンプしたかもしれないので、すぐに飛び込みます。
HPCおよびAIイノベーション ラボでは、ローマを拠点とする64台のサーバーからなるクラスターを構築しました。これは、 Minervaと呼ばれています。均質なMinervaクラスターに加えて、評価できたRome CPUサンプルが他にもいくつかあります。テストベッドを表1と表2に示します。
(表1 :本調査で評価したRome CPUモデル)
CPU | ソケットあたりのコア数 | Config | ベース クロック | TDP |
---|---|---|---|---|
7702 | 64cの | CCXあたり4c | 2.0 GHzの | 200W |
7502 | 32cの | CCXあたり4c | 2.5 GHz | 180W |
7452 | 32cの | CCXあたり4c | 2.35 GHz | 155W |
7402 | 24cの | CCXあたり3c | 2.8 GHz | 180W |
(表2 :テストベッド)
コンポーネント | 詳細 |
---|---|
Server | PowerEdge C6525 |
CPU | 表1に示されているとおり、デュアルソケット |
メモリー | 256 GB、16 x 16GB 3200 MT/s DDR4 |
内部接続 | ConnectX-6 Mellanox Infini帯域HDR100 |
オペレーティングシステム | Red Hat Enterprise Linux 7.6 |
カーネル | 3.10.0.957.27.2.e17.x86_64 |
ディスク | 240 GB SATA SSD M.2モジュール |
Romeでのメモリー帯域幅テストを図6に示します。これらのテストはNPS4モードで実行されました。表1に示す4つのCPUモデルにわたり、サーバーのすべてのコアを使用した場合の、デュアルソケットPowerEdge C6525でのメモリー帯域幅は~270~300 GB/秒でした。CCX ごとに 1 つのコアのみが使用されている場合、システム メモリ帯域幅は、すべてのコアで測定された帯域幅よりも ~9-17% 高くなります。
ほとんどのHPCワークロードは、システム内のすべてのコアを完全にサブスクライブするか、HPCセンターが各サーバー上で複数のジョブを使用して高スループット モードで実行されます。したがって、オールコア メモリー帯域幅は、システムのメモリー帯域幅とコアあたりのメモリー帯域幅機能をより正確に表しています。
図6には、旧世代のEPYC Naplesプラットフォームで測定したメモリー帯域幅も示されています。EPYC Naples プラットフォームもソケットあたり8個のメモリー チャネルをサポートし、2667 MT/sで動作します。Romeプラットフォームは、Naplesよりも5%から19%優れた総メモリ帯域幅を提供します。これは主に、より高速な3200 MT/sメモリによるものです。ソケットあたり64cでも、Romeシステムは2 GB/秒/コア以上を提供できます。
異なるNPS構成を比較すると、図7に示すように、NPS4ではNPS1よりも~13%高いメモリー帯域幅が測定されました。
(図6 :デュアルソケットNPS4 STREAMトライアド メモリー帯域幅)
(図7 :NPS1、NPS2、NPS 4のメモリー帯域幅)
図8は、単方向および双方向テストでのシングルコアInfiniBand帯域幅を示しています。テストベッドでは、100 Gbpsで動作するHDR100を使用し、グラフはこれらのテストで予想されるラインレート性能を示しています。
図8 :InfiniBand帯域幅(シングルコア)
図9 InfiniBandのメッセージ レート(すべてのコア)
次に、テスト対象の2台のサーバーのソケット上のすべてのコアを使用して、メッセージ レートのテストを実施しました。BIOSで優先IOが有効で、ConnectX-6 HDR100アダプターが優先デバイスとして構成されている場合、図9に示すように、オールコア メッセージ レートは優先IOが有効になっていない場合よりも大幅に高くなります。これは、HPCのチューニング、特にマルチノード アプリケーションの拡張性において、このBIOSオプションが重要であることを示しています。
Romeのマイクロアーキテクチャは、16 DP FLOP/サイクルをリタイアすることができ、これはNaplesの8 FLOPS/サイクルの2倍です。これにより、Rome は Naples の理論上のピーク FLOPS の 4 倍、強化された浮動小数点機能で 2 倍、2 倍のコア数 (64c 対 32c) で 2 倍になります。図10は、テストした4つのRome CPUモデルのHPL測定結果と、Naplesベースのシステムでの以前の結果をプロットしたものです。Rome HPL効率性は、グラフのバーの上のパーセント値として示され、TDP CPUが低いモデルほど高くなります。
テストはPower Determinismモードで実行され、64台の同じ構成のサーバーでパフォーマンスの~5%の差異が測定されました。したがって、ここに示す結果はそのパフォーマンス範囲内にあります。
(図10 :NPS4の単一サーバーHPL)
次に、マルチノードHPLテストを実行し、その結果を図11にプロットします。EPYC 7452のHPL効率は、64ノード規模で90%以上を維持していますが、効率が102%から97%に低下し、最大99%まで低下していることは、さらに評価が必要です
(図11 :マルチノードHPL、HDR100 InfiniBand経由のデュアルソケットEPYC 7452)
ローマを拠点とするサーバーの初期パフォーマンス調査では、最初のHPCベンチマークで期待されるパフォーマンスが示されました。BIOSのチューニングは、最適なパフォーマンスを得るために構成する際に重要であり、チューニング オプションは、工場で構成することも、Dell EMCシステム管理ユーティリティーを使用して設定することもできるBIOS HPCワークロード プロファイルで使用できます。
HPCおよびAIイノベーション ラボには、Romeを拠点とする新しい64台のサーバーで構成されるPowerEdgeクラスター、Minervaがあります。新しいMinervaクラスターでのアプリケーションパフォーマンスの調査について説明する今後のブログについては、このスペースをご覧ください。