この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® VTune™ Profiler Functionality on AWS* Instances」の日本語参考訳です。
はじめに
インテル® VTune™ プロファイラーは、グラフィカルおよびコマンドライン・インターフェイスを使用してソフトウェアとハードウェアのパフォーマンス解析を行うことができるパフォーマンス・プロファイリング・ツールです。データ収集のタイプは次の 3 つです。
- ソフトウェア (ユーザーモードのホットスポットとスレッド) – これらの収集は一般にソフトウェア・ベースで、ハードウェア・イベントに依存しません。
- ハードウェア (イベントベースのホットスポットとスレッド、マイクロアーキテクチャー解析および HPC 特性) – これらの収集はハードウェア・ベースで、一部のハードウェア・イベントを使用します。
- メモリー (メモリーアクセスと帯域幅解析) – この収集はハードウェア・ベースで、CPU の外部で発生するイベント (アンコアイベント) を使用します。
Amazon Web Services* (AWS*) は、その Elastic Compute Cloud* (EC2*) サービスで、ユーザーに多くのインスタンス・タイプとサイズを提供しています。一部のインテル® VTune™ プロファイラーの収集タイプは、ハイパーバイザーが必要なハードウェア・カウンターを提供しない特定のインスタンスでは利用できません。
テストしたインスタンス
インスタンス | サポートしているインテル® VTune™ プロファイラーの収集 |
アプリケーション・パフォーマンス・ スナップショットのサポート |
c5.xlarge | ソフトウェアのみ | いいえ |
c5.9xlarge | ソフトウェア、ハードウェア | はい |
c5.12xlarge | ソフトウェア、ハードウェア | はい |
c5.18xlarge | ソフトウェア、ハードウェア | はい |
c5.24xlarge | ソフトウェア、ハードウェア | はい |
c5.metal | すべて | はい |
m5.4xlarge | ソフトウェアのみ | いいえ |
m5.8xlarge | ソフトウェアのみ | いいえ |
m5.12xlarge | ソフトウェア、ハードウェア | はい |
m5.16xlarge | ソフトウェアのみ | いいえ |
m5.24xlarge | ソフトウェア、ハードウェア | はい |
m5.metal | すべて | はい |
r5.8xlarge | ソフトウェアのみ | いいえ |
r5.12xlarge | ソフトウェア、ハードウェア | はい |
r5.16xlarge | ソフトウェアのみ | いいえ |
r5.24xlarge | ソフトウェア、ハードウェア | はい |
r5.metal | すべて | はい |
インスタンスの説明
テストしたインスタンスは、さまざまなサイズの C5、R5、および M5 インスタンスを含みます。これらのインスタンスはすべて、インテル® Xeon® スケーラブル・プロセッサー (開発コード名 Skylake および Cascade Lake) を使用しています。C5 インスタンスはコンピューティング最適化インスタンスで、効率的で費用対効果の高いパフォーマンスを提供します。R5 インスタンスはメモリー最適化インスタンスで、大量のメモリーを制御して効果的なパフォーマンスを提供します。そして M5 インスタンスは汎用のインスタンスで、メモリー、計算能力およびネットワーク・リソースを最適化したパフォーマンスを提供します。
パフォーマンス・モニタリング・ユニット (PMU)
PMU は、キャッシュミス、キャッシュヒットおよび経過サイクルなどのマイクロアーキテクチャー・イベントを監視するオンチップ・ハードウェアで、オペレーティング・システムやアプリケーションがプロセッサー上でどのように動作しているか解析します。PMU には、2 種類のイベント (ハードウェアおよびソフトウェア) があります。ハードウェア・イベントは、命令、CPU サイクルとキャッシュ・リファレンスを含み、ソフトウェア・イベントは、コンテキスト・スイッチとページフォルトを含みます。
Linux* でインテル® VTune™ プロファイラーを使用してこれらのイベントを収集するには、2 つの方法があります。
- Linux* Perf ツール – PMU とその機能へのアクセスを提供するインターフェイス。Perf は、イベントの数がしきい値に達したときに記録する、イベント・ベース・サンプリング (EBS) などのモードも提供します。Perf は、デフォルトカーネルですでにインストールされています。
- インテル® VTune™ プロファイラーの sep ドライバー – インテル® VTune™ プロファイラー・パッケージの一部として提供され、PMU アクセスが検出された場合にインストールされます。インテル® VTune™ プロファイラーが sep ドライバーを使用できない場合、perf を使用して収集します。現時点では、sep ドライバーはメタル・インスタンスでのみサポートされています。
PMU をフルサポートしないインスタンス
インテル® VTune™ プロファイラーのホットスポット解析、マイクロアーキテクチャー全般解析および HPC パフォーマンス特性解析などの解析タイプでは、リタイアした命令数やサイクル数などのハードウェア・データを提供するため PMU イベントにアクセスする必要があります。AWS* のインスタンスで PMU イベントにアクセスできるかどうかは、インスタンスのサイズに依存します。テストしたインスタンスは、2 ソケットのインテル® Xeon® スケーラブル・プロセッサー上で実行しました。ソケットの一部を使用することは CPU リソースの共有につながる可能性があるため、一方または両方のソケットのすべてを使用するインスタンス・サイズのみ、PMU アクセスが可能です。テストした大きなインスタンスのうち、M5.16xlarge インスタンスと R5.16xlarge インスタンスは、1 つのソケットのすべてともう 1 つのソケットの一部を使用するため、PMU イベントをサポートしません。そのため、ハードウェア解析を行うことはできません。
インテル® VTune™ プロファイラー – アプリケーション・パフォーマンス・スナップショット
アプリケーション・パフォーマンス・スナップショット (APS) は、Linux* 向けインテル® VTune™ プロファイラーに含まれているユーティリティーです。APS は、アプリケーションの MPI と OpenMP* のインバランス、メモリーアクセスの効率、浮動小数点 (FPU)、I/O およびメモリーデータを迅速に表示する機能も提供します。このデータを解析した後、インテル® VTune™ プロファイラーで追加の解析を行う方法を表示します。
APS にも、インテル® VTune™ プロファイラーのハードウェア解析タイプと同じ制限があります。APS は、PMU イベントにアクセスできる場合にのみ実行できます。
インテル® VTune™ プロファイラー – プラットフォーム・プロファイラー
プラットフォーム・プロファイラーもインテル® VTune™ プロファイラーに含まれているユーティリティーです。ストレージレイアウト、メモリーとディスク I/O、CPU 周波数、命令ごとのサイクル数 (CPI)、消費電力などのハードウェア構成の問題を特定できるように支援するため、システムレベルでプロファイルを行います。
プラットフォーム・プロファイラーは、メタル・インスタンスでのみ使用できます。
メタル・インスタンスと非メタル・インスタンス
一部のインスタンス・タイプには、最大の非メタル・インスタンスと同じサイズのメタル・インスタンスがあります。例えば、c5.24xlarge の vCPU の数は c5.metal と同じで、同じハードウェアを利用しているように見えます。主な違いは、24xlarge インスタンスは、メモリーアクセス解析で使用されるアンコアイベントを含む、PMU へのフルアクセスを妨げるハイパーバイザーを使用していることです。その結果、インテル® VTune™ プロファイラーの機能は最大の非メタル・インスタンスでは制限されますが、同等のメタル・インスタンスでは制限されません。
製品とパフォーマンス情報
1 インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。
注意事項の改訂 #20110804