HPCシステムズのエンジニア達による技術ブログ

Tech Blog

AMD EPYC Rome の性能検証その1

昨年、AMD社製サーバ向けCPUブランド EPYCシリーズの第2世代、AMD EPYC™ 7002シリーズ・プロセッサー が販売されました。
このシリーズは x86-64互換(Intel社製Xeon互換)で、Rome(ローマ)というコードネームで開発されていたものです。

この第2世代EPYCプロセッサは、科学技術計算分野において非常に注目されており、弊社でも Gaussian についてベンチマークを実行して性能測定を行っております
それ以外のアプリケーション、特にソースコード配布でビルド作業が必要なもの、について、本ブログにおいて複数回検証を行っていきたいと思います。

さて、実際のアプリケーションのベンチマークに入る前に、
アプリケーションのビルド環境をどうするのか、という点を考える必要があります。
アプリケーションを高精度、高性能でビルドするには、

  • ソースコードをコンパイルするコンパイラ
  • 並列計算を実行するためのMPIライブラリ
  • ソースコードから行列演算を参照するための数値演算ライブラリ

を適切に選択することがポイントとなるためです。
従来弊社で検証を行ってきた Intel社製Xeon環境では、
同じくIntel社が作成した IntelCompiler(商品名 IntelParallel Studio XE)、IntelMKL、IntelMPI を使用すると、
ハードウェア環境のCPUに合わせた最適化が可能でした。
しかし、今回の第2世代EPYCプロセッサは、x86-64互換があるとはいえ、
別会社のAMDが作成しているCPUであるため、最適なチューニングが可能かどうか疑問が残ります。

開発環境について調べた所、AMD社が HPC Tuning Guide for AMD EPYC™Processors 
というドキュメントを作成している事が判明しました。
このドキュメントを参考として、コンパイラ、数値演算ライブラリ、MPIとして
以下のアプリケーションを使用して検証を行う事としました。

コンパイラ

MPI

  • OpenMPI
  • IntelMPI

数値演算ライブラリ

このうち、AOCC、AOCLについては、AMD社がHPで公開しているもので、
ハードウェア製造元が公式に開発しているパッケージとなります。
AOCC、AOCLを使用した際に、高性能が出るのではないかという期待を持ちつつ、
次回のブログから実際に各アプリケーションについて、性能を見ていきたいと思います。