2019年12月に発表された、Amazon独自設計のARMプロセッサ「Graviton 2」は、すでにAWS EC2のM6gインスタンスなどで利用することができます。そのGraviton 2について、オンラインストレージサービス「MinIO」のエンジニアであるFrank Wessels氏がIntelやAMDのCPUとの性能を比較してみたところ、その結果に衝撃を受けたと語っています。

Intel + ARM Performance Characteristics for S3 Compatible Object Storage

https://blog.min.io/intel_vs_gravitron/

MinIOはApacheライセンスに準拠したAWS S3互換のオンラインストレージです。高いパフォーマンスを維持するため、MinIOはGoによって開発されているとのこと。MinIOが使用する計算量が多いアルゴリズムは、消失訂正とハッシュ、暗号化だとWessels氏は語っています。

今回Wessels氏がベンチマークを行ったのは、AWS EC2のインスタンスのうちSkylake世代のCPUを採用するc5.18xlargeインスタンスと、Graviton 2を採用するm6g.16largeインスタンスで、詳細なスペックは以下となっています。

インスタンス名c5.18xlargem6g.16largeArchitecturex86_64aarch64CPU(s)7264Thread(s) per core21Core(s) per socket1864Socket(s)21NUMA node(s)21L1d cache32K64KL1i cache32K64KL2 cache1024K1024KL3 cache25344K32768K

まずは消失訂正の性能を比較するため、リード・ソロモン符号の消失訂正を1MBから25MBまでのデータサイズで実行してみると、左側グラフで表されるシングルコア性能では緑色のSkylakeがリード。しかし、Skylakeではデータサイズ増大につれて性能の低下が見られるのに対し、青色のGraviton 2ではほぼ横ばいとなっています。また、マルチコア性能では物理的に64コアを搭載するGraviton 2が優位であり、その差はデータサイズ増大に従って開いていくという結果に。



ハッシュ計算においても、シングルコアではSkylakeが、マルチコアではGraviton 2が勝るという結果になっています。



同様の傾向がAESによる暗号化のベンチマークでも見て取れます。



コアのスケールによって消失訂正の性能がどのように推移していくかをSkylake、Cascade lake、Graviton 2でテストした結果を表したのが以下のグラフ。緑色のSkylakeはコア数が22あたりまではGraviton 2に勝っていますが、その後はコア数を増やしても性能の向上は頭打ちになっているのに対し、青色のGraviton 2は32コアあたりまで完全な線形に従って性能が向上しています。紫色のCascade lakeもSkylakeと同様、少ないコア数ではGraviton 2よりも高速ですが、ある程度コア数が多いとGraviton 2にはかなわないという結果になっています。



Wessels氏は比較対象の条件をさらに一致させるため、使用するソケットをひとつに絞って消失訂正のパフォーマンスを測定することに。このベンチマークではc5aインスタンスで提供されるAMDの「EPYC 7R32」も測定対象に加わっています。結果としては先ほどのグラフとあまり変わりありませんが、より「滑らか」なグラフになっているとWessels氏。1ソケットの物理コア数の少ないIntelのCPUが早々とピークを迎えているのに対し、64コアを利用できるGraviton 2に性能の下落は見られません。



また、EPYCはIntelのCPUよりも優れたスケールアップを実現していますが、ハイエンド領域ではGraviton 2に一歩届かないという結果に。直上のグラフは、「デュアルソケットサーバーではメモリアクセスが競合するため、パフォーマンスに大きな影響が出ることを示している」とWessels氏は語っています。

それぞれのインスタンスの利用料金と消費電力をまとめた表が以下。Graviton 2を採用するインスタンスであるm6g.16largeが利用料金、消費電力ともに他のインスタンスよりも優れていることがわかります。



また、単位あたりの消費電力と利用料金について、vCPUの数と物理的なコア数を単位として計算するとこんな感じ。Wessels氏はこの表を示した理由として「利用するケースによってはハイパースレッディングの有効性が大きく変わるため」とコメントしています。



AWSがGraviton 2を導入したことにより、ARMプロセッサはIntelのCPUとの差を縮めるどころか、マルチコアに至ってはIntelを超えているとWessels氏は指摘。また、Wessels氏はAmazonと同じくサーバー用ARMプロセッサを開発しているAmpereも話題に取り上げ、ARMに注目しているのはAmazonだけではないとコメントしています。