この記事は、インテル® デベロッパー・ゾーンに公開されている「Optimizing Applications using Intel Compiler for Intel Xeon Processors」(https://software.intel.com/en-us/articles/optimizing-for-intel-xeon-processors) の日本語参考訳です。
最適化ステップ
パフォーマンス測定の鍵は、測定対象を正確に把握し、ベースライン・データを収集することです。次に、アプリケーションをプロファイルして、プロファイル・データに基づいて具体的かつ現実的なパフォーマンス目標を決定します。そして、次のステップに従って、ソフトウェアを最適化します。
基本的な概念
インテル® コンパイラーは、ベクトル化コードを生成する多くの機能を提供しています。自動ベクトル化は、コード変更を必要とせずに特定のアプリケーションのベクトル化コードを生成するインテル® コンパイラーの機能です。開発者は、ソースコードに簡単な変更を加えてベクトル化の動作を強制することもできます。
インテル® コンパイラーの自動ベクトル化 (C++ | Fortran)
ベクトル化の基本
一般的なベクトル化のヒント
OpenMP* によるベクトル化のパフォーマンスの基本 (https://software.intel.com/en-us/videos/performance-essentials-using-openmp-40-vectorization) (ウェビナー)
中級者向けの手法
以下は、実証されているコードの最適化手法と変更の推奨事項です。これらの推奨事項は、アプリケーションに完全に依存します。
Fortran の配列データおよび引数とベクトル化
Fortran の明示的なベクトル・プログラミング
ベクトル化の可能性を高めるデータ・アライメント
外部ループのベクトル化
乱数関数のベクトル化
最適化レポート
さらなるベクトル化にはコード変更が必要になる場合があります。コードを変更した後、ベクトル化されたかどうか確認するにはどうしたらよいのでしょうか。コンパイラーの最適化レポートを使用して、ソースコードの変更をガイドし、コードがベクトル化されたことを確認できます。
上級者向け手法
高度な制御を提供する手法は、アプリケーションに関する深い知識と適用すべき場所を判断するスキルを必要とします。しかし、組込み関数など、上級者向けの手法は、適切に使用することで大幅なパフォーマンスの向上をもたらします。
インテルの組込み関数ガイド (英語)
関連情報
インテル® Fortran コンパイラーのベクトル化診断
インテル® C++ コンパイラーのベクトル化診断
インテル® Fortran コンパイラー・デベロッパー・ガイドおよびリファレンス
インテル® C++ コンパイラー・デベロッパー・ガイドおよびリファレンス
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。