この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® Advisor 2018 Release Notes – What’s New」(https://software.intel.com/en-us/intel-advisor-2018-update-3-release-notes-what-s-new) の日本語参考訳です。日本語参考訳では一部加筆しています。
インテル® Advisor 2018 Update 3
- メモリーと依存関係解析
- 収集のオーバーヘッドを軽減するため、条件によって MAP 解析を停止する機能。
- 便利な機能
- バッチモードで上位のホットな最内ループの数を指定する機能。
- ルーフライン
- プレビュー機能: 整数 OP/秒ベースのルーフライン – 整数データ型と浮動小数点/整数データ型が混在するコード向けのルーフライン・グラフ。この機能を有効にするには、環境変数 ADVIXE_EXPERIMENTAL=int_roofline を設定します。
- アプリケーションの実用パフォーマンスの限界を確認するため、カスタムスレッド数にルーフラインを調整する機能。
- クラスター環境でグラフィカル・ユーザー・インターフェイスを構成することなく、コマンドラインから HTML にルーフライン・グラフをエクスポートする機能。
- 新しい OS サポート
- Microsoft* Windows* 10 build 17134 をサポート。
- Ubuntu* 18.04 をサポート。
- SUSE* Linux* Enterprise Server 12 SP3 をサポート。
このアップデートでは、ルーフラインでいくつかの改善が行われています。ルーフライン・グラフは、グラフィカル・ユーザー・インターフェイスを構成することなく、コマンドラインから HTML 形式でエクスポートすることができます (クラスター環境などでの使い方を簡素化できます)。エクスポートされたグラフは、ほかのマシンに移動して Web ブラウザーで開くことができます。グラフ上のルーフがスレッド数に合わせて調整できるようになりました。これまでは、マシン上のすべてのリソースを使用し自動的に構成されるルーフか、シングルスレッドを使用したルーフのみが提供されていたため、それ以外のスレッド数を使用するアプリケーションのルーフは、手動で計算して入力する必要がありました。
実験的な整数ベースのルーフラインが追加されました。インテル® Advisor を起動する前に、環境変数 ADVIXE_EXPERIMENTAL=int_roofline を設定することで有効にできます。この機能には、整数と浮動小数点操作を同じグラフに表示する総合ルーフラインも含まれます。これまでは、ルーフラインは浮動小数点操作をベースとして、整数操作はグラフに記録および表示することができませんでした。
インテル® Advisor 2018 Update 2
- メモリーと依存関係解析
- プロジェクトのプロパティーでループ呼び出し数を制限し、解析時間を設定することで、メモリー・アクセス・パターンと依存関係解析のオーバーヘッドを軽減。
- 新しいメトリック、ループの最初のインスタンスのメモリー容量 (バイト単位)。
- コマンドラインから、ソースファイルと行レベルでループを選択する機能: advixe-cl –mark-up-loops –select main.cpp:12,other.cpp:198。
- 推奨事項
- 新しいスタイルの [推奨事項] ペインとパラメーター、特定のユーザーコードに固有のピール/リマインダー向けの推奨事項。
- メモリー依存のアプリケーションのパフォーマンスを改善する、非テンポラルストア (NTS) 命令の使用を促す新しい推奨事項。
- 便利な機能
- フォントサイズをカスタマイズする [オプション] メニューを追加。これは、SSH の X フォワーディング・セッションで GUI の外観を調整するのに役立ちます。
- 結果を再度開いたときにフィルター状態を維持。
- ルーフライン
- –benchmark-sync オプションを使用して、複数ランクの MPI アプリケーションのルーフライン・ベンチマークを同期。
- ルーフライン・グラフで各ループのパフォーマンスの上限を可視化。
- 同じグラフで複数のルーフライン結果を比較する機能。
- 複雑なグラフの解析を簡素化し、選択したドットをビットマップとして保存するため、ルーフライン・グラフ上の任意のドットのサブセットをフィルター処理。
- 新しい OS サポート
- Fedora* 27 をサポート。
- Ubuntu* 17.10 をサポート。
- Microsoft* Windows® 10 build 1709 をサポート。
インテル® Advisor 2018 Update 1
- 解析範囲を狭め、オーバーヘッドを軽減するため、ルーフライン、FLOPS とトリップカウント収集でプロファイルを選択する機能を追加。
- GUI/CLI で注目するループのみを選択。
- ITT “pause/resume” API を使用して、ソースコードの注目する領域をマーク。
- ファイナライズの時間を短縮: 要求に応じて静的な命令混在解析を実行。
- 使い勝手の改善:
- コマンドラインからルーフライン解析を実行。
- UI の応答性を改善。
- 問題の検出にプログレスバーを導入。
- 単一ファイルで容易にデータを共有するため、Python* から HTML レポートを生成。
- システムモジュールのデバッグ情報不足の警告を抑制するプロジェクトのプロパティー設定。
- シンボルが解決できない場合に検索パスのヒントを提供。
- Microsoft* Visual Studio* 2017 統合におけるいくつかの問題を解決。
- バグフィックス。
インテル® Advisor 2018
ルーフライン:
- アプリケーション全体と特定のループ/関数のパフォーマンスを制限する主要な要因をグラフィカルに表示できるパフォーマンス測定モデル、キャッシュを考慮したルーフラインが一般利用可能に。
- プレビュー機能: 階層的なルーフライン: この機能を有効にするには、インテル® Advisor を起動する前に、環境変数 ADVIXE_EXPERIMENTAL=roofline_ex を設定します (データの再収集が必要です)。
詳細な特性:
- 呼び出しツリーに分散する FLOPS を表示し、異なる階層レベルでデータの集計を可能にする、[トップダウン] ビューの合計 FLOPS メトリック。
- コード解析の動的命令混在メトリック。
- トリップカウント・データに加え関数の呼び出し数メトリックを提供。
新しい推奨事項:
- インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) で、マスク使用率が低いループのスカラー・リマインダーに注目。
- “Gather 推奨” に “一定 (非ユニット)” パターンを追加。
- “非効率が競合検出命令が存在する可能性があります” の推奨事項。
- ベクトル化を妨げるシリアル化やスカラー関数の名前を報告。
- “仮想メソッドの呼び出しのベクトル化” の推奨事項。
データのレポート:
- サーベイとリファインメントを結合したコマンドライン・レポート: advixe-cl -R joined。
- サマリーレポートにインテル® マス・カーネル・ライブラリー (インテル® MKL) の内訳を示し、サーベイレポートでインテル® MKL フィルターをサポート。
- メモリー・アクセス・パターン・レポートで読み取り/書込みアクセスを分類。
使い勝手の改善:
- 単一のスタートボタンを使用するようにツールバーを再設計。
- バイナリーとソース検索パスの変更を適用できる、インテル® Advisor のサーベイ結果の再ファイナライズ機能。
- 操作性が改善された新しい推奨事項タブ。
- すべてのライセンスタイプで、OS 間の解析をサポート。 ほかの OS 向けのインストール・パッケージは、registrationcenter.intel.com からダウンロードできます。
- オーバーヘッドを軽減して大規模なアプリケーションで結果を絞り込むのに役立つ、サーベイ、FLOPS およびトリップカウント収集のモジュールでフィルター処理。
新しいプロセッサーと OS サポート:
- インテル® Xeon® スケーラブル・プロセッサーをサポート。
- Microsoft* Visual Studio* 2017 をサポート。
- Microsoft* Windows Server* 2016 をサポート。
- Fedora* 26 をサポート。
- Ubuntu* 17.04 をサポート。
- SUSE* Linux* Enterprise Server 12 SP2 をサポート。
- Debian* 9 をサポート。
プレビュー機能:
- インテル® スレッディング・ビルディング・ブロック (インテル® TBB) のフローグラフ (別途ダウンロードの必要があります) を使用するアプリケーションを解析するフローグラフ・アナライザー。
- キャッシュラインの使用率、キャッシュミスの回数、任意のキャッシュサイズのメモリーロードとストアに関する情報を提供するキャッシュ・シミュレーター。この機能を有効にするには、インテル® Advisor を起動する前に環境変数 ADVIXE_EXPERIMENTAL=cachesim を設定します (データの再収集が必要です)。
- サーベイ収集で Python* プロファイルをサポート。FLOPS、トリップカウント、およびルーフライン収集では仮サポート。
- Python* API を利用したインテル® Advisor データへのアクセスを試験的にサポート。{インストール・ディレクトリー}/pythonapi/examples ディレクトリーの例をご覧ください。API は将来のリリースで変更される可能性があります。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。