インテル® Advisor XE 2016 Update 1 新機能
この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® Advisor XE 2016 Update 1 What’s new」の日本語参考訳です。
ベクトル化支援ツールの新バージョンが公開されました: インテル® Advisor XE 2016 Update 1
インテル® Advisor XE Update 1 では、Windows* 10 と Microsoft* Visual Studio* 2015 への統合がサポートされます。
このバージョンでは、パフォーマンスと Survey、Trip Counts、MAP および Dependencies レポートでのデータ読み込みの応答性を改善しました。
さらに、推奨の精度を高め、それらを C++ と Fortran コードから分離しました。そのため、サンプルコードと推奨の関連性がより多く表示できるようになりました。
リモート環境のサーバーから作業環境へ単一ファイルとして結果を転送し、データのスナップショットを作成できます。
Linux* OS のシステム管理者とユーザーは、製品環境を設定する際に環境モジュールとしてインテル® Advisor XE をロード/アンロードする新しい機能を利用できます。
Summary ペイン
インテル® Advisor XE のベクトル化サマリー (Vectorization Summary) ペインが、大幅に改善されました。例えば、最も時間を消費しているループ (top time consuming loops) のリストから、ループへのリンクをクリックすることで、すぐに注目するホットスポットへジャンプすることができます。
Summary ペインにある “純化解析データ (Refinement analysis data)” に、新しい列 “サイト名 (Site Name)” が追加されました。これは、”純化 (Refinement)” タブにある対応するサイト (選択されたループ) へのハイパーリンクです。
Survey 解析
Survey レポートのデータ表現が改善されました: 親と子の関係、フィルターとハイライト表示。また、共存するスレッド化とベクトル化のインテル® Advisor XE レイアウトを改善しました。
新しいインテル® Advisor XE では、Survey Top Down グリッドでインライン展開された関数を区別できるようになったため、アプリケーションの呼び出しツリーをより詳しく知ることができます
コンパイラーは、ループのトリップカウントを 1 と想定し、バイナリーコードにループを生成しないことがあります。インテル® Advisor XE 2016 Update1 では、Bottom Up と Top Down ウィンドウでこのようなループを見つけることができます。完全にアンロールされたループとループのトリップカウントが 1 のソース位置は、ループの外側のソース行に起因します。
特殊ループ型の導入により外部ループのベクトル化解析が向上しました: “Inside Vectorized” (内部のベクトル化) これにより、ベクトル化は親ループの誘導 (インダクション) 変数に沿って行われ、その子ループと外部 SIMD ループを区別するのが容易になります。
新しい、選択したループでソート (sort by loop selection) カラムにより、リストでどのループが選択されているか明確にし、依存関係やメモリー・アクセス・パターン解析を実行する前に、それに応じて管理することができます。”選択 (Selection)” カラム (黒いアイコン) をクリックするだけです。
純化 (Refinement) 解析
フィルター機能を純化レポートに拡張したことで、より効率よく依存性やメモリー・アクセス・パターンを管理できます。
メモリー・アクセス・パターンや依存性解析の変数解像度が改善され、C++ クラスメンバーなど入れ子になったデータ・オブジェクトを参照することを可能にし、規則性があり/なしでロード/ストアされた特定のオブジェクトを理解することができます:
新しい “ストライド (stride)” 型が追加されました: 均一ストライド (Uniform Stride) は、ループ反復で同じメモリー位置にアクセスします:
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。