インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

25
インテル® VTune™ Amplifier 2019 Windows* 環境向けスタートガイド エクセルソフト株式会社 テクニカル・サポート 1.0.0 - 2019/04/19

Transcript of インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

Page 1: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

インテル® VTune™ Amplifier 2019Windows* 環境向けスタートガイド

エクセルソフト株式会社 テクニカル・サポート

1.0.0 - 2019/04/19

Page 2: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

目次はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1

ターゲットシステム. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1

1. スタートガイドの開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

1.1. サンプルプログラムのコピー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

1.2. ビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

2. インテル® VTune™ Amplifier の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5

Visual Studio 統合環境から GUI を起動する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5

スタンドアロンの GUI を起動する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6

3. プロジェクトの作成と設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7

3.1. ターゲットアプリケーションの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7

3.2. ソースコード検索パスの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8

4. データ収集の開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

5. ホットスポットの特定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  11

5.1. 実行状況を素早く大まかに把握する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  11

5.2. より詳細な情報を確認する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  13

6. ホットスポットの性能を制限する原因を特定する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  16

6.1. Microarchitecture Exploration 解析の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  16

6.2. コア内部の実行効率から原因を特定する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  17

7. コードの変更と性能向上の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21

8. まとめ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23

9. より高度な機能を使用するために . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23

10. ドキュメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23

11. お問い合わせ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23

Page 3: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

はじめにインテル® VTune™ Amplifier はインテル® プロセッサー搭載システム向けパフォーマンス・プロファイラーです。システム全体や稼働中のプロセス、アプリケーションの性能解析を行い、性能を制限する要因の発見を支援します。Java、C/C++、Fortran、C#、Go、Python 言語と、これらの言語が混在したコードに対応しており、様々なアプリケーションの解析に使用できます。

このガイドでは、サンプルプログラムを使用して、Windows 環境向けにインテル® VTune™ Amplifier の基本的な使用方法を説明します。

手順を進めるには、インテル® VTune™ Amplifier がインストールされている環境が必要です。

• インテル® VTune™ Amplifier の起動方法

• プロジェクトの作成、設定方法

• 解析結果の表示と、解析画面の見方

• ソースコードに掘り下げて解析結果を確認する方法

ターゲットシステムインテル® プロセッサーを搭載したシステムで解析を行います。プロセッサー固有の性能情報は、インテル® プロセッサー内部に搭載されているパフォーマンス・モニタリング・ユニット(以下、PMU)から、サンプリング・ドライバーを使用して取得します。

サンプリング・ドライバーが利用できない環境でも、インテル® VTune™ Amplifier の割り込みにより基本的な性能情報を取得します。スレッドの実行効率や、メモリー帯域幅、キャッシュメモリーの利用率など最適化に必要な豊富な情報を提供します。

このガイドでは以下の環境で実行します。実施環境により解析結果の一部は異なる可能性があります。

表 1. 実行環境

構成 実施環境CPU インテル® Core™ i7 4770 プロセッサーメモリーサイズ 16 GBOS Windows® 10 (バージョン 1809)Microsoft* Visual Studio* Visual Studio* 2017 バージョン 15.8.1インテル® VTune™ Amplifier 2019 Update3

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 1 / 23

Page 4: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

1. スタートガイドの開始インテル® VTune™ Amplifier をインストールした環境には、いくつかのサンプルプログラムが含まれています。ガイドでは、サンプルプログラムの matrix を使用します。matrix は行列の積和演算を実行するプログラムです。

1.1. サンプルプログラムのコピー1. インストールフォルダから matrix フォルダを任意の場所にコピーします。

デフォルトの設定でインストールされている環境では、以下のフォルダに配置されています。

C:\Program Files (x86)\IntelSWTools\VTune Amplifier\samples\en\C++

ここでは、デスクトップにコピーします。

画像 1. matrix フォルダをコピー

1.2. ビルド1. matrix › vc15 フォルダを開き Visual Studio* のソリューションファイル (.sln) をクリックして Visual

Studio* を起動します。

画像 2. matrix.sln をクリック

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 2 / 23

Page 5: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

2. Visual Studio* の起動後、上部メニューから ビルド › ソリューションのビルド を選択して実行ファイルを作成します。

画像 3. ソリューションのビルドをクリック

エラー "Windows* SDK バージョン 8.1 が見つかりませんでした" が発生する場合の対処

1. 上部メニューから プロジェクト › プロパティ を開きます。

2. 構成プロパティ › 全般 › Windows SDK バージョン を 8.1 から 10.x.xxxxx.x に切り替えます。

Windows* SDK の切り替え

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 3 / 23

Page 6: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

3. デバッグ › デバッグなしで開始 を選択してプログラムを実行します。プログラムの実行時間を確認します。

画像 4. デバッグなしで実行

画像 5. tachyon_vtune_amp_xe サンプルプログラムの実行

計算処理を完了後、プロンプト画面に経過時間が表示されます。ここでは、計算の完了に約 48 秒ほどの時間を要したことが確認できます。

48.238 秒の時間を基準として、高速化できる余地があるかどうか、インテル® VTune™ Amplifier を使用して性能解析を行います。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 4 / 23

Page 7: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

2. インテル® VTune™ Amplifier の起動これまでの手続きにより、ベースラインとなる計算時間の取得しました。

以降では、インテル® VTune™ Amplifier で性能解析を行い、実行時間を改善するために必要な情報を入手します。インテル® VTune™ Amplifier は Visual Studio 環境、もしくはスタンドアロンの GUI を使用して操作します。

Visual Studio 統合環境から GUI を起動する もしくは スタンドアロンの GUI を起動する のどちらか一つを操作して、インテル® VTune™ Amplifier を起動します。

Visual Studio 統合環境から GUI を起動する上部メニューから のアイコンをクリックして、インテル® VTune™ Amplifier を起動と必要な設定を行います。

画像 6. Visual Studio 上部メニュー

解析するために New Amplifier Result タブが立ち上がります。

画像 7. Visual Studio 上のインテル® VTune™ Amplifier

データ収集の開始 に進んでください。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 5 / 23

Page 8: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

スタンドアロンの GUI を起動する以下のどちらかの手順を行い、GUI を起動します。どちらの手順でも同じ GUI が起動します。

• スタートメニューを開き、VTune™ Amplifier 2019 を選択する。

• コマンドプロンプトを開き、amplxe-vars.bat を実行後、amplxe-gui コマンドを実行する。

C:\Program Files (x86)\IntelSWTools\VTune Amplifier\amplxe-vars.bat

画像 8. アイコンをクリック、もしくはコマンドを実行

スタンドアロンのインテル® VTune™ Amplifier は解析をプロジェクト単位で管理します。解析対象ごとに1つのプロジェクトを作成します。

画像 9. スタンドアロンの GUI を開始

プロジェクトの作成と設定に進んでください。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 6 / 23

Page 9: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

3. プロジェクトの作成と設定スタンドアロンの GUI を起動する から起動した場合は、プロジェクトの作成と設定を行います。

1. をクリックして Create a Project ウィンドウを開きます。Project name: に任意のプロジェクト名を入力します。ここでは、matrix-sample とします。

画像 10. Create a Project ウィンドウ

2. [Create Project] ボタンをクリックします。Configure Analysis タブが開き、解析対象となるアプリケーションやシステムなどの設定を行います。

画像 11. Configure Analysis タブ

3.1. ターゲットアプリケーションの設定WAHT タブの Application: に、サンプルプログラムの実行ファイルを指定します。実行ファイルの配置先はビルド環境により異なります。

C:\Users\[ユーザー名]\Desktop\matrix\vc15\x64\Debug\matrix.exe

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 7 / 23

Page 10: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

3.2. ソースコード検索パスの設定1. 右下の をクリックします。

画像 12. Configure Analysis タブ

2. Sources をクリックして Source Search ウィンドウを開き、左側の をクリックします。

画像 13. ソースコードの検索パスを設定

3. サンプルプログラムに含まれる src フォルダを選択します。ソースファイルの場所は展開先により異なります。

C:\Users\[ユーザー名]\Desktop\matrix\src

4. Source Search ウィンドウの [OK] ボタンをクリックして終了します。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 8 / 23

Page 11: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

4. データ収集の開始ここまでの手続きにより、インテル® VTune™ Amplifier でサンプルプログラムが解析できる状態になりました。解析タイプを指定して解析を実行します。

まずは HOW タブの Hotspots を実行します。 Hotspots は一番時間を消費している関数 (以下、ホットスポット)を発見する基本的な解析タイプです。 Hotspots 以外にも、様々な解析タイプがあり、それぞれ必要に応じて複数の解析タイプを実行可能です。解析結果は結果ファイルとして保存されます。

1. 解析タイプに Hotspots を選択されていることを確認してください。

Basic Hotspots が選択されていない場合

HOW タブの をクリックして、一覧から Hot Spots を選択します。

2. Hardware Event-Based Sampling を選択します。

画像 14. イベントベースサンプリングを選択

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 9 / 23

Page 12: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

3. をクリックします。

プログラムが実行され、自動的にデータ収集を開始します。

画像 15. 解析の開始

4. プログラムの実行が終了して解析結果が表示されるまで待機します。

画像 16. matrix の解析中

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 10 / 23

Page 13: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

5. ホットスポットの特定解析結果は、異なる情報を提供する複数のタブから構成されており、Hotspots解析は5つのタブから解析情報を参照します。使用した解析タイプにより表示される内容は異なります。ここでは Summary と Bottom-upに注目します。

• Summary• Bottom-up• Coller/Collee

• Top-down Tree

• Platform

画像 17. 解析結果を切り替えるタブ

5.1. 実行状況を素早く大まかに把握する解析終了後、最初に Summary 画面が表示されます。Summary 画面は、アプリケーションの実行時間や、ホットスポット、CPU 使用率のヒストグラムから、アプリケーションの実行状況をおおまかに把握できます。

画像 18. Summary 画面

Elapsed Timeアプリケーションの実行から終了までに要した時間が表示されます。

Top Hotspotsアプリケーション中に実行された関数の中から、最も多くの CPU 時間を消費した関数をランキング形式で表示します。CPU 時間は CPU のコアがプログラムを実行した時間の計上します。CPU 時間が一番かかっている関数は、multiply1 関数だと表示されています。

Effective CPU Utilization HistogramCPU コアの使用率がヒストグラムで表示されます。プログラムの処理時間のほとんどは、複数のコアを使用して動作してます。これによりマルチスレッドにて並列処理が実装されている状態が想定できます。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 11 / 23

Page 14: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

画像 19. Effective CPU Utilization Histogram

ここまでの確認から Summary 画面では下記の情報を取得できました。

• プログラム全体の実行時間は約 49 秒• 実行時間中の CPU 時間は約 350 秒• 合計 12 のスレッドが動作している• プログラム中の処理は並列化されており複数のコアが使用されている• ホットスポットは multiply1 関数

なお、特定の項目に注目するために、追加の解析タイプを実行するようにアドバイスされています。ここでは、Microarchitecture Usage が低いため、Microarchitecture Exploration 解析の実行をアドバイスされています。

画像 20. より注目するべき情報を取得

ここでは、ホットスポット関数として表示されている multiply1 関数に注目するため、より詳細な情報が得られる Bottom-up 画面に移動します。

画像 21. Bottom-up 画面に移動

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 12 / 23

Page 15: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

5.2. より詳細な情報を確認するBottom-up 画面は、Bottom-up、タイムライン、コールスタックの3つのペインで構成されています。ここでは、Bottom-up とタイムラインの情報に注目します。

• Bottom-up : 実行された関数やループ、モジュールごとに対応した性能情報を表示します。

• タイムライン : 解析開始から終了までに実行されたスレッド数とスレッドの状態を時系列で表示します。

• コールスタック : Bottom-up で選択したオブジェクトのコールスタックを表示します。

画像 22. Bottom-up 画面

Bottom-up を見ると、CPU Time の項目で降順にソートされており、Summary 画面で確認した情報と同じくmultiply1 関数がほとんどの CPU 時間を消費していることが確認できます。Bottom-up の項目をスクロールバーで移動すると、 multiply1 関数は、multiply.c に実装されており、matrix.exe に含まれるユーザー関数だと確認できます。

画像 23. multiply1 関数の場所

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 13 / 23

Page 16: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

あわせてタイムラインも確認します。茶色の領域はプログラム中の処理にCPU コアを使用したことを示しており、マルチスレッド化された処理が 多くを占めていることが確認できます。タイムラインから multiply1 関数の動作を確認するために、フィルタリング機能を使用します。Bottom-up に表示されている multiply1 を右クリックして、表示されるメニューから Filter In by Selection を選択します。

画像 24. multiply1 でフィルタリング

Bottom-up から multiply1 に対してフィルタリングすることで、タイムラインから multiply1 関数が実行されたタイミングや、スレッドの動作状況を確認できます。multiply1 関数は、CPU コアを複数使用したマルチスレッドで動作しており、CPU を十分に使用出来ている状態だと推測できます。

画像 25. multiply1 の動作状況

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 14 / 23

Page 17: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

続いて、Microarchitecture Usage 項目を確認します。 multiply1 関数の Microarchitecture Usage は、性能を制限している要因の可能性があるとしてピンク色でハイライトされており、注目するように促されています。multiply1 関数の Microarchitecture Usage を調べるために、Microarchitecture Exploration の解析タイプを実行します。

画像 26. multiply1 の Microarchitecture Usage 項目

ここまでの確認により下記の情報が得られました。

• multiply1 関数は matrix.exe のユーザー関数• multiply1 関数は一番 CPU 時間を消費しており、並列化された動作により CPU 全体の利用率は高い• multiply1 関数は Microarchitecture Usage が低く CPU コアを効果的に使用できていない

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 15 / 23

Page 18: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

6. ホットスポットの性能を制限する原因を特定するここまでの解析により multiply1 関数がホットスポットだと確認できました。multiply1 関数は複数コアを使用して動作していますが、Microarchitecture Usage が低い状態です。Microarchitecture Usage はコア内部の動作効率を示しており、multiply1 関数は何からの原因によりコアごとの実行効率が低下しています。

Microarchitecture Exploration の解析タイプは、Microarchitecture Usage をより詳細に調べるために必要な情報を収集します。

6.1. Microarchitecture Exploration 解析の実行1. Bottom up 画面から Summary 画面に移動します。

画像 27. Summary 画面

2. HOW タブに Microarchitecture Exploration が表示されていることを確認してください。 をクリックします。

画像 28. Microarchitecture Exploration 解析タイプの選択

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 16 / 23

Page 19: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

6.2. コア内部の実行効率から原因を特定するHotspots 解析と同様に、初めに Summary 画面が表示されますが、内容は大きく異なっています。

画像 29. Microarchitecture Exploration 解析の Summary 画面

表示されているダイアグラムに注目します。ダイアグラムには、赤色、緑色、灰色のカテゴリが表示されており、コアの実行効率を可視化しています。

ダイアグラムは左側から右側へ CPU が実行する命令が流れている状況を示します。赤色の Memory Boundの要因により実行効率が制限されている状態が確認でき、緑色で表示されている内容を見ると最終的な実行効率は 11 % 程度だと確認できます。

画像 30. matrix プログラムの実行効率

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 17 / 23

Page 20: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

Bottom-up 画面に移動します。

画像 31. Microarchitecture Exploration 解析の Bottom-up 画面

multiply1 関数に注目すると CPI Rate がハイライトされています。 CPI (Cycles Per Instruction) はCPU が実行する1命令あたりに消費するクロック数を示しており、値が高いほど実行効率が悪いことを示しています。

Bottom-up ペインをスクロールすると、さらに Back-end Bound 項目がピンク色でハイライトされています。詳しく確認するために、Back-end Bound 項目の をクリックして展開します。

画像 32. Back-end Bounds 項目に注目

続けて、Memory Bound › DRAM Boundの をクリックして展開します。

LLC Miss 項目がハイライトされており、multiply1 関数は LLC (Last Level Cache) のヒットミスが多発して、多くのデータを DRAM から取得しています。計算に必要なデータがコアに到達するまで時間がかかっているため、性能が十分に活用できていない状態です。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 18 / 23

Page 21: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

画像 33. LLC Miss 項目に注目

multiply1 関数の修正箇所を特定するためにソースコード行のレベルに掘り下げて解析結果を確認します。

multiply1 をダブルクリックしてコードビューに移動します。Bottom-up 画面には、関数に対応したソースファイルが項目に表示されます。multiply1 関数は multiply.c に記述されています。

画像 34. maltiply1 のコードビューに移動

コードビューでは、対応した関数をコードレベルで確認できます。ここでは、multiply.c ファイルの multiply1 関数に含まれるコードがハイライトされます。

画像 35. find_hotspots.cpp のコードビュー

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 19 / 23

Page 22: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

ソースコード行レベルの割合を見るために、クロック数をパーセントで表示します。Clockticks 項目を右クリックして Show Dara As › Parcent を選択します。

画像 36. 消費されたクロック数をパーセントで表示

注目するべきは、 multiply1 関数が消費したクロック数の約 98% が、51 行目の多重ループによって処理されている行列の積和演算によって消費されていることです。

画像 37. 消費したクロック数

Microarchitecture Exploration 解析により下記の情報を取得しました。

• matrix.exe は全体の 80% 以上の実行性能がメモリーアクセスに関する問題により制限されている• multiply1 関数は、キャッシュミスにより DRAM へデータを取得している。• multiply1 関数が消費したクロック数の 98 % 以上は multiply1 関数の 51 行目で行列の積和演算を

行う処理。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 20 / 23

Page 23: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

7. コードの変更と性能向上の確認いままでの手続きにより、multiply1 関数の計算処理に多くの時間を消費していることが確認できました。

multiply1 の実装を変更して性能向上を図ります。サンプルプログラムには修正された計算処理が multiply2関数に実装されているため、multiply.h から multiply2 関数をコールするように変更します。

1. Visual Studio から multiply.h を開きます。

2. multiply.h 36 行目の multiply1 を multiply2 に変更します。

multiply1 関数は、メモリーに対して非連続にアクセスしており、効率の悪い配列へのアクセスが行われています。multiply2 関数では連続したアクセスを行うように実装されているので変更します。

変更後の multiply.h 36 行目

#define MULTIPLY multiply2

multiply2 関数の内容

  int i,j,k;

// Step 2: Loop interchange  for(i=tidx; i<msize; i=i+numt) {  for(k=0; k<msize; k++) {  for(j=0; j<msize; j++) {  c[i][j] = c[i][j] + a[i][k] * b[k][j];  }  }  }

置き換えた状態でビルドをやり直して、再度実行します。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 21 / 23

Page 24: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

3. 上部メニューから ビルド › ソリューションのビルド を選択してビルドを行い、実行ファイルを作成します。

4. ビルドしたサンプルプログラムを デバッグ › デバッグなしで開始 から実行して、描画時間を確認します。

画像 38. 実行性能が向上したプログラム

計算時間は高速化して 6.5 秒程度にまで短縮しました。最適化を行う前にベースラインとして計測した 48.238秒と比較した場合、約 7.5 倍ほどの性能向上が得られました。Microarchitecture Exploration で解析すると下記のような結果が得られます。

画像 39. インテル® VTune™ Amplifier の結果

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 22 / 23

Page 25: インテル® VTune™ Amplifier 2019 - XLsoft.com...目次 はじめに ...

8. まとめこのドキュメントでは、インテル® VTune™ Amplifier を使用して、基本的な使用方法からサンプルプログラムのホットスポットを発見して修正する手続きを紹介しました。インテル® VTune Amplifier には、インテル® プロセッサー向けのイベントベース解析が使用できるため、コア内部の性能解析に必要な情報を取得してメモリーに関わる問題を特定しました。ここではごく一部の機能について説明しています。より高度な機能を取得するためには、 より高度な機能を使用するために から他のチュートリアルも進めてみてください。

9. より高度な機能を使用するためにより複雑なアプリケーションに対する性能解析を学習するためには、下記の Intel 社 Web ページに公開されているチュートリアルを進めてください。

Intel Developer Zone - Intel® VTune™ Amplifier Tutorials (英語)

10. ドキュメントインテル® VTune™ Amplifier の日本語情報は IA Software User Society (以下、iSUS) に公開されている下記のリンク先からアクセスできます。

iSUS - インテル® VTune™ Amplifier 製品ページ

製品の詳細な使用方法はリファレンスガイドを確認します。

Intel Developer Zone - Intel® VTune™ Amplifier 2019 User’s Guide

パフォーマンス解析クックブックには様々なケースに応じた解析例が掲載されています。

インテル® VTune™ Amplifier パフォーマンス解析クックブック

インテル® VTune™ Amplifier のリファレンスガイドには日本語参考訳を見ることができます。

iSUS - インテル® VTune™ Amplifier オンラインヘルプ (iSUS 翻訳版)

11. お問い合わせ本ドキュメントに関する不明点は以下よりご連絡ください。

お問い合わせ窓口

URL: https://www.xlsoft.com/jp/services/xlsoft_form.html

Intel、インテル、Intelロゴ、Intel Core、VTune は、アメリカ合衆国および/またはその他の国におけるIntel Corporation の商標です。

*その他の社名、製品名などは、一般に各社の商標または登録商標です。XLsoftのロゴ、XLsoftはXLsoftCorporation の商標です。

インテル®ソフトウェア製品のパフォーマンス/ 最適化に関する詳細は、 Optimization Notice (最適化に関する注意事項) を参照してください。

インテル® VTune™ Amplifier 2019 - Windows* 環境向けスタートガイド

Copyright © 2015-2019 XLsoft Corporation. All Rights Reserved. 23 / 23