新しいマイクロアーキテクチャーでアプリケーションはどのように実行されるのか? この疑問に答えるインテル® VTune™ Amplifier XE 2011
電力効率の良いアプリケーション・ソフトウェアの設計
この記事は、Dr.Dobb’s Go Parallel に掲載されている「How Do Applications Run on a New Micro-Architecture? Intel VTune Amplifier XE 2011 Answers the Question」 (http://drdobbs.com/go-parallel/article/232601968?pgno=1) の日本語参考訳です。
よくあることですが、特定のターゲット・マイクロアーキテクチャーの利点を最大限に利用し、特定の Windows バージョンで動作している既存のアプリケーションが、異なるマイクロアーキテクチャーで期待する UX (ユーザー・エクスペリエンス) を提供できるかどうか確認しなければならないことがあります。そのような場合に、インテル® VTune™ Amplifier XE 2011 の Profile System (システムのプロファイル) ターゲットタイプは、システム全体のパフォーマンスを解析し、新しいターゲット・マイクロアーキテクチャー向けに最適化するのに必要なすべての情報を提供します。
通常、Profile System (システムのプロファイル) ターゲットタイプは、次のような考慮事項に対する詳細な情報を提供します。
- インテル® Atom™ プロセッサー・ベースのタブレットで新しい HTML 5 Web アプリケーションを使用できるか?
- インテル® Core™ i5 プロセッサー・ベースのウルトラブックで既存の Silverlight* アプリケーションを実行できるか?
- インテル® Core™ i3 プロセッサー・ベースのウルトラブックでデスクトップ・アプリケーションは想定どおりに動作するか?
- インテル® Core™ i5 プロセッサー・ベースのウルトラブックでより良い UX を提供するには、既存のデスクトップ・アプリケーションに対してどのような最適化を行うべきか?
- ウルトラブックで必要なすべてのアプリケーションを実行するため、システム全体のパフォーマンスを向上させるにはどうしたら良いか?
- アプリケーションで最新の Sandy Bridge✝ マイクロアーキテクチャーの拡張機能を利用できているか?
システム全体のパフォーマンスを解析する場合は、対象アプリケーションの実行に関連するすべてのアプリケーション/プロセスと、それらが特定のマイクロアーキテクチャーでどのように動作するのかを考慮する必要があります。また、必要なすべてのアプリケーションを起動した場合に何が起こるかを解析することで、ロード時間を減らす最適化に専念できます。通常、最初にシステム全体のパフォーマンスを解析したほうが良いでしょう。Profile System (システムのプロファイル) は、インテル® VTune™ Amplifier XE 2011 プロジェクトを起動したときにターゲットタイプのドロップダウン・リストに表示されます (図 1 を参照)。
図 1: 新しいインテル® VTune™ Amplifier XE 2011 プロジェクトでは Profile System (システムのプロファイル) ターゲットタイプが選択されています。
ターゲットタイプに Profile System (システムのプロファイル) を設定して新しいプロジェクトを作成したら、解析タイプを選択します。インテル® VTune™ Amplifier XE 2011 は、インテル® Core™2 プロセッサー・ファミリー、インテル® Nehalem✝ マイクロアーキテクチャー、インテル® Sandy Bridge✝ マイクロアーキテクチャー、インテル® Atom™ プロセッサー・ファミリーなどの多様なインテル・プラットフォーム向けに高度なハードウェア・レベルの解析タイプを提供します (図 2 を参照)。
新しいインテル® マイクロアーキテクチャーが登場すると、通常、インテル® VTune™ Amplifier XE 2011 はアップデート・パッケージを提供することで、そのマイクロアーキテクチャー向けの各種解析タイプを追加します。各解析タイプは、CPU のオンチップの PMU (パフォーマンス・モニタリング・ユニット) を使用して、リタイアした命令数、クロック数、キャッシュミスなどのパフォーマンス・イベントをカウントするイベントベース・サンプリング解析タイプを提供します。
図 2: インテル® VTune™ Amplifier XE 2011 プロジェクトで提供される各種マイクロアーキテクチャー向けの解析タイプ
各イベントベース・サンプリング解析タイプは、アプリケーションでマイクロアーキテクチャーのハードウェア・リソースを活用できていない場所を特定する詳細な情報を提供します。各ターゲット・マイクロアーキテクチャーの解析タイプをクリックすると、サンプリングされるイベント名とサンプリング間隔の値 (インテル® VTune™ Amplifier XE 2011 がイベントデータの収集の割り込みをかけるイベント数) が表示されます (図 3 を参照)。必要に応じて、デフォルトの設定を変更できます。
インテル® VTune™ Amplifier XE 2011 は、収集時間に応じて倍数を使用しサンプリング間隔の値を自動的に調整します。
図 3: 45nm インテル® Core™2 マイクロアーキテクチャー向けのメモリーアクセス解析用に設定されたイベント
解析タイプを選択したら、[Start] をクリックして、解析およびデータ収集対象のすべてのアプリケーションと UX (ユーザー・エクスペリエンス) 動作を実行できます。例えば、異なるグループレベルの異なるアプリケーションの hotspot から取り掛かることができます。Profile System (システムのプロファイル) ターゲットタイプは特定のアプリケーション/プロセスに注目した解析ではないため、収集されるデータから、改善することでターゲット・プラットフォームの全体的なパフォーマンスを向上させる可能性のあるアプリケーション/プロセスを特定できます。
インテル® VTune™ Amplifier XE 2011 は、ハードウェアで何が起こっているのかを把握するために必要な情報を提供します。これにより、CPU 使用率の平均値だけを基に誤った判断をすることがなくなり、 各マイクロアーキテクチャーでさまざまなアプリケーションがどのように動作するかをよく理解し、必要な最適化を有効にして最適な判断を下すことができます。さらに、インテル® VTune™ Amplifier XE 2011 は、マイクロアーキテクチャーごとにさまざまなパフォーマンスの問題を理解するのに役立つヒントも提供します。
インテル® VTune™ Amplifier XE 2011 は商用製品ですが、こちらから無料体験版をダウンロードすることができます。
✝開発コード名
関連記事
電力効率の良いアプリケーション・ソフトウェアの設計 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Designing Application Software for Energy-efficient […]
インテル® Advisor 2018 アップデート情報 この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® Advisor 2018 Release Notes - What's New」(https://software.intel.com/en-us/intel-advisor-2018-update-3-release-notes-what-s-new) […]
ターゲット GPU での C++ アプリケーションのスピードアップを予測 この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® Advisor Cookbook」の「Estimate the C++ Application Speedup on a Target GPU」の日本語参考訳です。 バージョン: 2021.1 (最終更新日: 2021 年 5 月 19 […]
プロトタイピングは芸術であり科学である この記事は、Tech.Decoded に公開されている「Prototyping is an Art (and a Science)」(https://techdecoded.intel.io/resources/prototyping-is-an-art-and-a-science/) […]
GitLab* CI でパフォーマンスをプロファイルする この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® VTune™ Profiler Performance Analysis Cookbook」の「Enabling Performance Profiling in GitLab* […]
-
-
C++ 開発者が陥りやすい OpenMP* の 32 の罠 2011年12月22日
-
マルチコア向け並列プログラミングの 8 つのルール 2020年4月28日
-
セグメンテーション・フォルト SIGSEGV や SIGBUS エラーの原因を特定する 2012年2月24日
-
StdAfx.h に関する考察 2015年7月29日
-
プログラミング、リファクタリング、そしてすべてにおける究極の疑問 2018年5月15日
-
インテル® SSE およびインテル® AVX 世代 (SSE2、SSE3、SSSE3、ATOM_SSSE3、SSE4.1、SSE4.2、ATOM_SSE4.2、AVX、AVX2、AVX-512) 向けのインテル® コンパイラー・オプションとプロセッサー固有の最適化 2017年12月26日
-
インテル® ソフトウェア開発製品 技術ウェビナーシリーズ 2018年8月28日
-
コンパイラー最適化入門: 第1回 SIMD 命令とプロセッサーの関係 2011年5月5日
-
x64 アセンブリーの概要 2012年3月23日
-
ゲーム AI の設計 (その 1) – 設計と実装 2011年7月22日
-