| インテルアドバイザー | |
|---|---|
| 開発者 | インテル開発者向け製品 |
| 安定放出 | |
| オペレーティング·システム | WindowsおよびLinux(macOSではUIのみ) |
| タイプ | プロファイラ |
| ライセンス | 無料および商用サポート |
| Webサイト | software |
Intel Advisor (別名「Advisor XE」、「Vectorization Advisor」、「Threading Advisor 」) は、 SIMDベクトル化、スレッド処理、メモリ使用、および GPU オフロード最適化のための設計支援および分析ツールです。このツールは、C、C++、Data Parallel C++ (DPC++)、Fortran、および Python 言語をサポートしています。スタンドアロン GUI ツール、 Microsoft Visual Studioプラグイン、またはコマンドライン インターフェイスの形式で、WindowsおよびLinuxオペレーティングシステムで使用できます。 [ 2 ] OpenMP (およびMPIでの使用) をサポートしています。Intel Advisor ユーザー インターフェイスはmacOSでも使用できます。
Intel Advisorは、スタンドアロンツールとして、またはIntel oneAPI Base Toolkitの一部として無料で利用できます。oneAPI Base Toolkitには、オプションで有料の商用サポートも用意されています。
ベクトル化とは、単一のCPUコア内で、複数のオブジェクトに対してSIMD(Single Instruction Multiple Data)命令(Intel Advanced Vector ExtensionsやIntel Advanced Vector Extensions 512など)を並列に実行する処理のことです。これにより、ループのオーバーヘッドを削減し、各コアに搭載された複数の演算ユニットをより効率的に活用することで、パフォーマンスを大幅に向上させることができます。
Intel Advisor は、より優れたベクトル化によってメリットが得られるループを見つけ、コンパイラのベクトル化を強制しても安全な場所を特定するのに役立ちます。[ 3 ] Intel、GNU、Microsoftコンパイラの自動ベクトル化によって生成されたスカラー、SSE、AVX、AVX2、AVX-512対応コードの分析をサポートします。また、 OpenMP 4.x 以降を使用する「明示的に」ベクトル化されたコード、C ベクトル組み込み関数またはアセンブリ言語を使用して記述されたコードの分析もサポートします。[ 4 ] [ 5 ]
Intel Advisorは、バークレーで最初に提案され[ 6 ]、リスボン大学で拡張されたRoofline Performance Modelを自動化します[ 7 ] 。

アドバイザー「ルーフライン分析」は、指定されたループ/関数がメモリバウンドかCPUバウンドかを特定するのに役立ちます。また、最適化すればパフォーマンスに大きな影響を与える可能性のある最適化されていないループも特定します。[ 8 ] [ 9 ] [ 10 ] [ 11 ]
Intel Advisor は、従来の Roofline モデルに近い、自動化されたメモリ レベルの Roofline 実装も提供しています。従来の Roofline は、DRAM に依存する高性能コンピューティング アプリケーションに特に有効です。Advisor のメモリ レベルの Roofline は、キャッシュ データを分析し、異なるメモリ レイヤー間のデータ トランザクションを評価して、改善のためのガイダンスを提供します。[ 12 ]
Intel Advisor のルーフライン分析は、CPU または GPU で実行されるコードをサポートします。[ 13 ] [ 14 ]また、機械学習、ビッグデータ領域、データベースアプリケーション、仮想通貨などの金融アプリケーションで多用される整数ベースのアプリケーションもサポートしています。[ 15 ]
ソフトウェアアーキテクトは、Advisor が理解するもののコンパイラが無視するスレッド処理を記述するコード注釈を追加します。Advisor は、スレッド処理のスケーラビリティを予測し、同期エラーをチェックします。Advisorスレッド処理の「適合性」機能は、さまざまなスレッド処理設計における並列 SMP のスケーラビリティとパフォーマンス損失を予測および比較するのに役立ちます。典型的な適合性レポートは、右側の適合性 CPU スクリーンショットに表示されます。Advisor 適合性は、データセットサイズ (反復空間) モデリング機能とパフォーマンスペナルティの内訳 (負荷不均衡、並列ランタイムのオーバーヘッド、ロック競合によって引き起こされる悪影響を明らかに) を提供します。[ 16 ]

Advisorは2021年リリースでGPUオフロード性能モデリング機能を追加しました。この機能は、ベースラインプラットフォーム上でアプリケーションのパフォーマンス特性を収集し、ターゲット(モデル化対象)プラットフォーム向けの分析性能モデルを構築します。
これにより、ターゲットGPUでのパフォーマンス高速化の推定値と、オフロード、データ転送、スケジューリング領域の実行のオーバーヘッドの推定値が提供され、パフォーマンスのボトルネックが特定されます。[ 17 ] [ 18 ] [ 19 ]この情報は、オフロード戦略の選択、つまりオフロードする領域の選択と、GPU対応にするために必要な潜在的なコード再構築の予測に役立ちます。
Intel Advisor は、Schlumberger [ 20 ]、Sandia 国立研究所、その他 [ 21 ] によって設計および並列アルゴリズムの研究に使用されており、Vectorization Advisor機能はLRZおよびICHEC [ 22 ] 、 Daresbury Lab [ 23 ] 、Pexip [ 24 ]によって使用されていることが知られています。
段階的なワークフローは、教育目的で学術界で使用されています。[ 25 ]