この記事は、インテル® デベロッパー・ゾーンに公開されている「Making Visual Call Graphs from Intel® VTune™ Amplifier Output」(https://software.intel.com/en-us/articles/making-visual-call-graphs-from-intel-vtune-amplifier-output) の日本語参考訳です。
インテル® VTune™ Amplifier では、ほかの多くの方法でデータを表示および操作することができるため、解析したアプリケーションのビジュアル・コールグラフを生成する機能を提供していません。しかし、ビジュアル・コールグラフを作成する方法はあります。多くの開発者がビジュアル・コールグラフを使用しているため、ここでは Windows* システムと Linux* システムでそれらを作成する方法を紹介します。このアプローチは、サードパーティー・ツールを使用するため、正式にはサポートされていません。自己責任の下に使用してください。
ステップ 1: 環境の準備
最初に、サードパーティー・ツール gprof2dot.py (英語) と Graphviz (英語) をダウンロードします。gprof2dot.py は gprof ファイル (インテル® VTune™ Amplifier で生成可能) を dot 形式に変換するスクリプトで、Graphviz は dot 形式をイメージに変換します。実行ファイルへの絶対パスの代わりに "dot" コマンドで Graphviz を呼び出すには、パスを PATH 環境変数に手動で追加する必要があります。また、.py スクリプトを使用するには、マシンに Python* がインストールされている必要があります。
ここでは、インテル® VTune™ Amplifier に同梱の tachyon サンプルをデフォルト設定でビルドしたものを使用してコールグラフを生成します。この例では、便宜上、balls.dat ファイル (および gprof2dot.py スクリプト) を find_hotspots.exe と同じディレクトリーに移動しています。
ステップ 2: インテル® VTune™ Amplifier の結果の収集と準備
通常どおり、ホットスポット解析を実行します。
amplxe-cl --collect=hotspots --result-dir=result -- find_hotspots.exe balls.dat
結果を gprof 形式に変換します。
amplxe-cl --report=gprof-cc --result-dir=result --format=text --report-output=result.txt
変換後のファイルは次のようになります。
ステップ 3: グラフの生成
Python* スクリプトを使用してこのファイルを dot 形式に変換し、出力を Graphviz ツールに渡して .PNG ファイルを生成します。
python gprof2dot.py -f axe result.txt | dot -T png -o graph.png
以下は、生成されるイメージの一部です。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。