昨年、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として
以下のアプリケーションを使用して検証を行う事としました。
コンパイラ
- GCC
- AMD Optimizing C/C++ Compiler ( AOCC )
- Intel Compiler
MPI
- OpenMPI
- IntelMPI
数値演算ライブラリ
- AMD Optimizing CPU Libraries (AOCL)
- Intel MKL
このうち、AOCC、AOCLについては、AMD社がHPで公開しているもので、
ハードウェア製造元が公式に開発しているパッケージとなります。
AOCC、AOCLを使用した際に、高性能が出るのではないかという期待を持ちつつ、
次回のブログから実際に各アプリケーションについて、性能を見ていきたいと思います。