インテル® Xeon® プロセッサーとインテル® Xeon Phi™ コプロセッサー上で分子動力学 (MD) に SIMD 命令を実装する
この記事は、インテル® デベロッパー・ゾーンに公開されている「Exploring SIMD for Molecular Dynamics, Using Intel® Xeon® Processors and Intel® Xeon Phi™ Coprocessors」の日本語参考訳です。
概要
この論文では、分子動力学 (MD) コードのギャザー/スキャッター・パフォーマンスのボトルネックを解析し、SIMD 命令の実行の利点が得られるように取り組みます。解析結果を基に、Sandia の miniMD ベンチマークに対して、3 つの SIMD 幅 (128、256、512 ビット) を用いていくつかの新たなコードレベルおよびアルゴリズムの最適化を行います。また、よりワイドな SIMD 命令へのこれらの最適化の適用について述べ、従来のアプローチである冗長な計算による並列化が必ずしも最適ではないことを示します。
単精度では、最適化した実装はオリジナルのスカラーコードよりも、インテル® Xeon® プロセッサー上の 256 ビット SIMD 拡張であるインテル® AVX/インテル® AVX2 を利用した場合には 5 倍高速となり、インテル® Xeon Phi™ コプロセッサー 1 基を追加した場合にはさらに 2 倍高速になります。これらの結果から、次のことが分かります: (i) 現在および将来のハードウェアで分子動力学 (MD) コードで効率良く SIMD 命令を利用することの重要性、(ii) 高度な並列性を備えたワークロードにインテル® Xeon Phi™ コプロセッサーを利用することで得られる大幅なパフォーマンスの向上。
論文を読む: https://software.intel.com/sites/default/files/article/478279/mxhmd.final.pdf
この記事は、体系的なステップ・バイ・ステップの最適化フレームワーク手法に従ってコードのパフォーマンスを引き出せるように開発者を支持する、インテル® Modern Code Developer Community の資料の 1 つです。この記事では、ベクトルレベルの並列化を取り上げています。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください