初めてのチューニングから高度な最適化にわたって、インテル® VTune™ プロファイラー は CPU と GPU パフォーマンス、スレッドのパフォーマンスとスケーラビリティー、バンド幅、キャッシュ利用など、パフォーマンス向上のための豊富な情報を収集します。一般的なスレッド化モデルをサポートし、解析を支援するハイレベルな情報を提供するため、素早く簡単にチューニングを行うことができます。解析結果をタイムラインとソースコード上でソート、フィルターして可視化できます。
シングルコード・プロファイラーとは異なり、C/C++、Fortran、Python*、Go*、Java* が混在したコードの hotspot を正確に特定します。
詳細・新機能 技術情報最新のプロセッサーのパフォーマンスを解析する場合、シングルスレッド・パフォーマンスを最適化するだけでは十分ではありません。ハイパフォーマンスなコードには、次のものが求められます。
メディア・アプリケーションでは、OpenCL* と GPU のチューニングも必要になります。インテル® VTune™ プロファイラー では、これらの高度なプロファイル機能をフレンドリーな 1 つのインターフェイスから利用できます。
インテル® VTune™ プロファイラー は、インテルのソフトウェア開発ツールキットに含まれる次の解析ツールと連携可能です。
インテル® VTune™ プロファイラーは単体で販売されておりません。以下製品に同梱されます。
主に以下の変更・機能が追加されました。
詳細は、リリースノートおよび インテル社公開の情報を参照ください。
インテル® VTune™ プロファイラーは、インテル® TBB、OpenMP* などのスレッド化モデルをサポートします。タスクの開始/終了、同期、待機時間などマルチスレッドの概念を簡単に理解することができます。待機時間を確認する "Lock & Wait" 解析 (次にあるイメージ) は便利な機能の 1 つです。タイムラインの可視化 (以下の 2 番目のイメージ) では、ロック競合 (黄色のトランジション)、負荷インバランス、そして不用意なシリアル化など、並列処理のパフォーマンスを低下させるすべての原因を容易に検出できます。
現在のホストまたはリモートシステム上で簡単にデータを収集できます。もしくは、リモートシステム上でコマンドラインを使用してデータを収集し、その後ホストでインポートしてローカルでデータを解析できます。
ヒント: 最適なパフォーマンスを達成するには、VNC スロー・グラフィックスは避けましょう。UI をローカルで実行してください。リモートターゲットからデータをインポートしましょう。リモートシステムへのインストールとデータの収集にはライセンスは必要ありません。ライセンスは、収集したデータを分析もしくは表示する場合にのみ必要です。リモートデータ収集については、 こちらの iSUS の記事もご覧ください。
インテル® プロセッサーは、オンチップのパフォーマンス・モニタリング・ユニット (PMU) を搭載しています。インテルおよび互換プロセッサーで動作する "basic hotspots" 解析に加え、インテル® VTune™ プロファイラーには、インテル® プロセッサー上のパフォーマンス・モニタリング・ユニット (PMU) を使用した非常にオーバーヘッドの少ない収集を行う "advanced hotspots" があります。システム全体の解析では、ドライバーも分析できます。高解像度 (~1 ミリ秒対 ~10 ミリ秒) で小さな関数中のホットスポットを検出できます。
インテル® VTune™ プロファイラーのサマリー表示には、改善された OpenMP* パフォーマンスによって、パフォーマンスが向上する上位の MPI ランクのテーブルがまとめられています。
MPI と OpenMP* のハイブリッド・アプリケーションでは、ランク間の MPI 通信とともに OpenMP* が非効率である部分を探すことが重要です。少ない通信スピン時間で多くのランクが実行され、そしてより多くの OpenMP* チューニングがアプリケーションの実行時間に影響します。MPI のチューニングには、 インテル® Trace Analyzer & Collector を使用し、通信スピン時間が低いランクを選択してインテル® VTune™ プロファイラーで分析します。インテル® VTune™ プロファイラーはクラスターにインストールできます。
低オーバーヘッドの収集は、データの精度を高めます。
コマンドライン・ツールを使用して回帰テストを自動化できます。また、簡単にリモート収集を行うためリモートシステムに軽量コンポーネントをインストールできます。
ドライバー、カーネルモデル、そしてマルチプロセス・アプリケーションをチューニング。
Windows* ゲーム中の低速な部分は? 開発者は、ゲーム中で時間がかかりフレームレートの低い場所を特定するために多くの時間を費やす必要はありません。インテル® VTune™ プロファイラーを使うことで、Microsoft* DirectX* のフレームを自動的に認識し、遅いフレームで何が起こっているかを見るためのフィルター処理が可能です。DirectX* を使用していない場合は? 時間がかかる場所に API を追加してフレーム解析を行うことで、遅延を解析することができます。
Java* コードもしくは Java* とネイティブ・コードが混在したコードの解析結果を元の Java* のソースにマッピングします。インストルメント・コードを使用するほかの Java* プロファイラーとは異なり、インテル® VTune™プロファイラーは、ハードウェアとソフトウェア収集による低オーバーヘッドの統計的なサンプリングを行います。ハードウェアによる収集は、プロセッサーのパフォーマンス・モニター・ハードウェアを使用するため、非常に低オーバーヘッドです。
タスク・アノーテーション API は、インテル® VTune™ プロファイラーが実行されたタスクを表示できるよう、ソースに注釈をつけるために使用されます。例えば、パイプラインのステージに API でラベルを付け、タイムラインに表示させることで、領域の詳細を明らかにします。これにより、プロファイルされたデータが分かりやすくなります。
このセッションでは HPC の分野に特化したパフォーマンス解析技術を性能解析ツール「インテル® VTune™ プロファイラー」を使用してご紹介します。
まず最初に、現在の HPC 業界における一般的なパフォーマンス解析の状況をご紹介します。そして次に、インテル® VTune™ プロファイラーに搭載される HPC Performance Characterization (HPC 特性解析) について、その概要を説明します。これは、HPC
アプリケーションのパフォーマンス特性を解析する機能となります。 さらに、HPC 特性解析を使用したパフォーマンス解析の例もご紹介します。
容量 |
|
ユーザー・インターフェイスとすべてのデータ収集による一般的な操作 (ハードウェア・イベントベース・サンプリング分析を除く) |
|
ハードウェア・イベントベース・サンプリング (EBS) 分析 |
|
プラットフォーム・プロファイラー解析 |
|
CPU 解析 |
クライアントおよびサーバー・プラットフォームで以下の世代のプロセッサーをサポートします。
バージョン 2023 では、上記に記載されたプロセッサーよりも古い世代のプロセッサーはサポートされていません。 |
GPU 解析 |
|
FPGA 解析 |
FPGA 解析は、外付けのインテル® Arria® 10 FPGA およびインテル® Stratix® FPGA でサポートされています。 |
Android* ターゲット |
|
ホスト/ターゲット OS |
Linux*
※ Amazon Linux*、Clear Linux*、組み込み Linux* 環境では、プラットフォーム・プロファイラーを使用してデータを収集することができません。 ※ プラットフォーム・プロファイラーのホスト機能 (ビューおよび結果の解析) は、Debian* または SUSE* Linux* Enterprise Server ではサポートされていません。 Windows*
FreeBSD* (ターゲットのみ)
Android* (ターゲットのみ)
仮想マシン (ターゲットのみ) Windows* または Linux* のホストマシンでは、インテル® VTune™ プロファイラーを使用して、これらのマシンの仮想環境で実行されているターゲットをプロファイリングできます。利用可能なサポートは、ホストマシンとゲストマシンの特定の組み合わせによって異なります。 |
コンパイラー | 下記のインテル® コンパイラー、そのほか標準に準拠するコンパイラーで動作します。
|
開発環境 | スタンドアロン、下記の Microsoft* Visual Studio* バージョン (Windows*)、Eclipse* 統合環境
|
Linux* カーネル |
|
言語 | C、C++、C#、Fortran、Java*、OpenCL™、Python*、Go |
スレッド化モデル: 完全なスレッド情報 | OpenMP*、インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB)、Win32* スレッド (Windows*)、Posix* Threads (Linux*)、インテル® C/C++ 並列言語拡張 |
.NET 環境 |
|
Java* 環境 |
|
OpenCL™ 環境 |
Windows* システムの場合、OpenCL™ 向けインテル® グラフィックス・コンピュート・ランタイムは GPU ドライバーに同梱されています。Linux* システムの場合、GitHub* からダウンロードできます。 |
グラフィカル・ユーザー・インターフェイス (GUI) 要件 |
Windows* システムの場合、OpenCL™ 向けインテル® グラフィックス・コンピュート・ランタイムは GPU ドライバーに同梱されています。Linux* システムの場合、GitHub* からダウンロードできます。 |
Linux* カーネル要件 |
|
FPGA 解析要件 | FPGA 向けに設計された DPC++ アプリケーションは、-Xsprofile オプションを使用してコンパイルすることで、パフォーマンス・データをソースレベルでマッピングできます。 |
DPC++ アプリケーションのコンパイル要件 | -gline-tables-only および -fdebug-info-for-profiling オプションを使用して DPC++ アプリケーションをコンパイルすることで、パフォーマンス解析向けにデバッグ情報を入手できます。 |
グラフィックス・ドライバーのインストール |
Windows* 向けインテル® グラフィックス・ドライバー ご利用中のデバイスに適したリンクの手順に沿って、ドライバーをインストールしてください。
Linux* オペレーティング・システム向けの汎用 GPU ドライバー インテルの GPU につきましては、こちらの記事からご利用中のデバイスに適した手順をご確認ください。 |
2023年11月24日、インテル® VTune™ プロファイラー 2024 が同梱されるインテル® ソフトウェア開発ツールに対応する有償サポートサービスの提供を開始しました。
過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2024 を無料でダウンロードしてご利用いただけます。
2022年12月19日、インテル® VTune™ プロファイラー 2023 が同梱されるインテル® oneAPI 2023 の販売を開始しました。
過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2023 を無料でダウンロードしてご利用いただけます。
2021年 12月 23日、インテル® VTune™ プロファイラー 2022 が同梱されるインテル® oneAPI 2022 の販売を開始しました。
過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2022 を無料でダウンロードしてご利用いただけます。
2020年 12月 9日、インテル® VTune™ プロファイラー 2021 が同梱されるインテル® oneAPI 2021 の販売を開始しました。
過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2021 を無料でダウンロードしてご利用いただけます。
2019年 12月 18日、インテル® VTune™ プロファイラー 2020 の販売を開始しました。
本バージョンより、製品名が 「インテル® VTune™ Amplifier」 から 「インテル® VTune™ プロファイラー」 に変更となりました。
過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2020 を無料でダウンロードしてご利用いただけます。
開発元の方針により、2019年 8月 6日を以って、インテル® VTune™ Amplifier Windows/Linux OS 共通ライセンスへの特別アップグレード製品の販売を終了いたします。
バージョン 2017 以前のインテル® VTune™ Amplifier 各 OS 向けライセンスをお持ちの場合、今後 Windows/Linux OS 共通ライセンスをご利用を希望される場合は、インテル® VTune™ Amplifier の新規ライセンスをご購入ください。
2018年 9月 13日、インテル® VTune™ Amplifier 2019 の販売を開始しました。
過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2019 を無料でダウンロードしてご利用いただけます。
バージョン 2017 以前のインテル® VTune™ Amplifier 製品では、Windows、Linux 各ホスト OS 向けのライセンスを販売しておりましたが、インテル社の意向により、2017年
9月 14日のバージョン 2018 リリースより、Windows、Linux 両 OS でご利用いただける「OS 共通製品」へと変更されました。
また、製品名についても、インテル® VTune™ Amplifier XE for Windows および for Linux から、「インテル® VTune™ Amplifier」 へと変更されました。
この変更により、これまでのインテル® VTune™ Amplifier for Windows または for Linux (各ホスト OS 向け製品) をお持ちのお客様が、サポートサービスの更新を希望される場合には、以下いずれかの特別アップグレード製品を購入いただくことにより、OS 共通ライセンスへアップグレードいただく必要がございます。
インテル® VTune™ Amplifier for Windows または for Linux (各 OS 向け製品) のサポートサービスが有効な場合、本特別アップグレードをご購入いただくことで、OS
共通ライセンスへアップグレードいただけると共に、インテル® VTune™ Amplifier のサポートサービス更新用製品「SSR (期限内更新用)」よりも安価にて、サポートサービスの期間を 1 年間延長いただけます。詳しくは こちらのページをご覧ください。
インテル® VTune™ Amplifier OS 共通ライセンスを含む上位製品へのアップグレードです。詳しくは こちらのページをご覧ください。
iSUS では、皆様のご要望にお応えして、インテル® VTune™ Amplifier 2019 for Windows* Initial Release、Update 1、Update 2、Update 3 の日本語版を提供しています。日本語版では、GUI/CLI メッセージ、およびヘルプ (ドラフト版) やドキュメント類が日本語化されています。こちらの iSUS のページからお申し込みいただけます。
基本的な hotspot (以前の「hotspot」)
高度な hotspot
はい。インテル® VTune ™ Amplifier は、インテルの命令セットを含むアプリケーションを解析する場合、インテル® プロセッサーと互換プロセッサーの両方で動作します。ソフトウェア・コレクターを使用するプロファイル機能 (「基本的な hotspot」および「ロックと待機」など) は、インテル® プロセッサーと互換プロセッサーの両方で動作します。ハードウェア・コレクターおよびオンチップのパフォーマンス・モニタリング・ユニットを使用するプロファイル機能 (「高度な hotspot」および「マイクロアーキテクチャー解析」など) は、データ収集にはインテル® プロセッサーが必要ですが、収集後の結果は互換プロセッサーで解析できます。
いいえ。インテル® VTune ™ Amplifier でプロファイルを行うために再コンパイルする必要はありません。しかし、最も完全で有用な結果が得られるように、最適化されたアプリケーションでデバッグおよびシンボル情報を有効にすることを推奨します。このため、リリースビルドのプロセスはデバッグ情報を追加するように修正する必要があります。
いいえ。製品を入手した後、CLI インストーラー (コマンドライン・インストーラー) から同じ OS のほかのシステムでのデータ収集を設定できます。リモートシステムでは、データの収集はできますが、収集したデータの表示にはライセンスが必要です。データを表示するには、製品をインストールしたシステムに結果ディレクトリーをコピーします。詳細については、ドキュメントの「Remote Tuning Workflow (リモート・チューニング・ワークフロー)」を参照してください。インストールの詳細については、リリースノートの「リモートシステムでのコレクターのインストール」を参照してください。
インテル® VTune ™ Amplifier にソースコードが表示されない理由はいくつかあります。
ソースコードを表示するには、デバッグ情報が利用可能になるようにコードをコンパイルする必要があります。例えば、Linux* では、"-g" オプションを指定してコンパイルしていることを確認します。
インテル® VTune ™ Amplifier にソースファイル、バイナリーファイル、シンボルファイルの場所を知らせる必要もあります。既存のプロジェクトを開くか新規プロジェクトを作成して、[Project Properties (プロジェクト・プロパティー)] ボタンをクリックします。[Project Properties (プロジェクト・プロパティー)] ダイアログで、[Search Directories (検索ディレクトリー)] タブをクリックします。プルダウンメニューで、[All files (すべてのファイル)] をクリックして、ファイルが含まれているディレクトリーを指定します。サブディレクトリーが含まれる場合は、[Search subdirectories (サブディレクトリーを検索)] ボックスをオンにします。
いいえ。Linux* では、ハードウェア・コレクターのドライバーをインストールするには root 権限が必要ですが、ドライバーをインストールした後は root 権限は必要ありません。プリインストールされる perf ドライバーを使用することもできますが、perf では一部の機能はサポートされていません。Linux* では、ハードウェア・コレクターを使用するには、ドライバー・アクセス・グループ (デフォルトは 'vtune') に属している必要があります (選択されるインストール・オプションに依存します)。ハードウェア・コレクターは、高度な hotspot 解析や高度な解析に使用されます。詳細については、ドキュメントの「Installing the Sampling Driver (サンプリング・ドライバーのインストール)」を参照してください。
ハードウェアベースの (「高度な」) サンプリング解析タイプではプロセッサーのパフォーマンス・モニタリング・ユニット (PMU) との通信が必要になるため、インストーラーはデバイスドライバーをインストールしようとします。Windows® では、ドライバー (署名されています) をインストールするユーザーは管理者グループに属している必要があります。Linux* では、ドライバーをインストールするユーザーは、root ユーザーまたは sudo を利用可能なユーザーである必要があります。Linux* ユーザーは、デバイスドライバーなしでソフトウェアをローカルにインストールして、ユーザーモード・サンプリング解析タイプ (基本的な hotspot、コンカレンシー、ロックと待機) を使用できます。ユーザーはプリインストールされる perf ドライバーを使用することもできますが、perf では一部の機能はサポートされていません。ユーザーが root としてソフトウェアをインストールできる場合、ハードウェアベースのサンプルを収集するユーザーは、インストール中に定義されるユーザーグループに属している必要があります (インストール中に選択されるオプションに依存します)。デフォルトは 'vtune' グループですが、インストーラー (install.sh) の高度なオプションにアクセスして変更または省略することができます。
結果をインテル® VTune ™ Amplifier にインポートするには、最初にインポートする結果を含めるプロジェクトを作成する必要があります。インテル® VTune ™ Amplifier で、[File (ファイル)] > [New (新規)] > [Project (プロジェクト)] メニューをクリックします。プロジェクト名を指定するダイアログが表示されます。プロジェクト名を指定して、[OK] をクリックします。インテル® VTune ™ Amplifier の [Project Properties (プロジェクト・プロパティー)] ダイアログが表示されます。結果をプロジェクトへインポートするときにアプリケーションを指定する必要はありません。しかし、インポートした結果のソースを表示する場合は、ソースおよびバイナリーの場所を検索ディレクトリーに追加する必要があります。[Project Properties (プロジェクト・プロパティー)] ダイアログで、[Search Directories (検索ディレクトリー)] タブをクリックします。プルダウンメニューで、[All files (すべてのファイル)] をクリックして、ファイルが含まれているディレクトリーを指定します。サブディレクトリーが含まれる場合は、[Search subdirectories (サブディレクトリーを検索)] ボックスをオンにします。
検索ディレクトリーは、通常はデータ収集が完了した後に行われるファイナライズ中に使用されます。新しい検索ディレクトリーのパスを有効にするには、提供される新しい情報を使用してインテル® VTune ™ Amplifier で結果を再解決する必要があります。[Analysis Type (解析タイプ)] タブをクリックした後、[Start (スタート)] ボタンおよび [Project Properties (プロジェクト・プロパティー)] ボタンの下にある [Re-resolve (再解決)] ボタンをクリックします。
サンプルカウントは、実行可能なコードと通常関連付けられていないソース行 ('for' ループや 'while' ループの閉じ括弧など) に表示されることがあります。間違っているように見えるかもしれませんが、これはコンパイラーによって生成された命令の結果です。アセンブリー・コードを見ると、そのソース行に属するものとしてタグ付けされた (閉じ括弧)、サンプルが関連付けられたアセンブリー命令のデバッグ情報を明らかにすることができます。一方で、アセンブリー命令を見ると、特定のハードウェア・イベントが本来そのイベントを生成しない命令で収集されることがあります (例えば、ジャンプ命令のメモリーイベントやメモリー命令の算術イベント)。これは「イベントスキッド」と呼ばれ、命令ポインターをサンプリングする前にプロセッサーがいくつかのマイクロオペレーションを停止できないことが原因です。つまり、サンプルを処理している間に命令ポインターが後の命令を指してしまうのです。一般に、命令フローを調べることにより、そのイベントの原因となった命令を判断することができます。
アプリケーションが I/O をブロックしている場合、ファイルアクセスに起因する関数呼び出しが基本的な hotspot 解析に表示されます。また、1 つのファイルへのアクセスを待つ複数のスレッドがある場合、ファイルを保護する同期オブジェクト (クリティカル・セクションなど) がロックと待機解析に表示されます。
インテル® レジストレーション・センターで操作します。
操作手順やよくあるご質問、トラブルシューティングは、インテル® レジストレーション・センター操作マニュアルを参照ください。
最新版、または旧バージョンのダウンロードは、インテル® レジストレーション・センターで行います。
詳細は以下ページを参照ください。