インテル・ハードウェアで最高のパフォーマンスを達成するためインテル・ソフトウェアでアプリケーションを開発する方法

インテル® DPC++/C++ コンパイラーインテル® oneAPI

この記事は、Intel Tech.Decoded で公開されている「How to Build Applications with Intel® Software to Get Best Performance on Intel® Hardware」(https://techdecoded.intel.io/resources/how-to-build-applications-with-intel-software-to-get-best-performance-on-intel-hardware/) の日本語参考訳です。


インテル・プログラミング・ツールは簡単にインストール可能

コンパイラーやライブラリーなどのインテル・ソフトウェア製品は、インテル・ハードウェアで最高のパフォーマンスを実現します。インテル® oneAPI ベース・ツールキットには、アプリケーションと使用するオープンソースのアプリケーションのパフォーマンスを向上する、コンパイラー、ライブラリー、解析ツールが含まれています。

評価版申し込みページで必要事項を入力して送信すると、入力された Email にダウンロード先の情報が送信されます。メールの手順に従って、評価版をダウンロードしてインストールしてください。評価版申し込みページでは、ベース・ツールキットのほかに、HPC、IoT、高度なレンダリング、AI アナリティクス向けのアドオン・ツールキットも入手できます。

インテル・プログラミング・ツールは使い方が簡単

インテル・ソフトウェアはコンピューティング環境に簡単に統合できます。例えば、多くの Linux* ベースのオープンソース・アプリケーションのビルドには、一般的な configure、make、cmake コマンドが使用されます。設定スクリプトと makefiles では、C と C++ コンパイラーをそれぞれ CC と CXX 変数で定義します。configure や make コマンドで、これらの変数を設定するだけでデフォルトのコンパイラーをインテル・コンパイラーに簡単に置き換えることができます。

$ ./configure CC=icx CXX=icpx
$ make CC=icx CXX=icx

同様に、CMake では次のように変数を使用してコンパイラーを変更できます。

$ CC=icx CXX=icpx cmake /path_to_source

GitHub* Actions などのクラウド継続的インテグレーション (CI) を使用しているプロジェクト向けにインテル® oneAPI CI サンプル (英語) も提供されています。

インテル・ソフトウェアはインテル・ハードウェアで優れたパフォーマンスを実現

実際のオープンソース・アプリケーションを使用して、インテル・プログラミング・ツールによりインテル・ハードウェアでパフォーマンスが向上することを示します。ケンブリッジ大学の MRC 分子生物学研究所が開発した計算集約型の RELION (英語) アプリケーションは、COVID-19 ウイルス (英語) などの生体分子構造を、低温電子顕微鏡の画像から解明するのに使用されています。デフォルトの RELION 構成 (GNU* コンパイラーと FFTW ライブラリーを使用) と、インテル® oneAPI HPC ツールキットを使用するインテル・ハードウェア向けの構成を比較します。

RELION の開発者は、標準データセットのベンチマーク (英語) と、各パフォーマンス結果セットのシステム構成とビルドオプションを公開しています。以下の表に示す結果は、デュアルコア・インテル® Xeon® Gold 6148 プロセッサー (@2.40GHz、インテル® ハイパースレッディング・テクノロジー有効) ベースのクラスターで取得されました。

コンパイラー ベクトル化 ノード数 MPI ランク数 実行時間 (時間:分) GNU* コンパイラーと比較した
インテル・コンパイラーの
スピードアップ
GNU* GCC 7.3 インテル® AVX-2 1 8 13:34
ICC 2018.3 インテル® AVX-2 1 8 08:21 1.6
ICC 2018.3 インテル® AVX-512 1 8 04:05 3.3
GNU* GCC 7.3 インテル® AVX-2 4 16 03:36
ICC 2018.3 インテル® AVX-2 4 16 02:10 1.7
ICC 2018.3 インテル® AVX-512 4 16 01:08 3.2

インテル・コンパイラーのほうが GNU* コンパイラーよりもパフォーマンスが優れています。特に、インテル® AVX-512 命令を利用してコンパイルされたアプリケーションでは、大幅な向上が見られますが、インテル・コンパイラーでビルドした RELION は 3 倍以上高速です。

インテル・ハードウェアのパフォーマンスの可能性を引き出すには、インテル・ソフトウェア製品を使用することを推奨します。


製品とパフォーマンス情報

1実際の性能は利用法、構成、その他の要因によって異なります。詳細は、www.Intel.com/PerformanceIndex (英語) を参照してください。

タイトルとURLをコピーしました