この記事は、インテル® デベロッパー・ゾーンに公開されている『Intel® VTune™ Profiler User Guide』の「Throttling Analysis (Preview)」(https://software.intel.com/en-us/vtune-help-throttling-analysis) の日本語参考訳です。
これまでパフォーマンス解析を行う場合、ターボモードを無効化することが推奨されることもありました。これは、従来のインテル® VTune™ Amplifier (旧バージョン) では、周波数変動の原因を特定できなかったためです。
スロットリング解析は、熱および電力の上限を超える温度で CPU が動作することで生じるパフォーマンスの問題を特定するのに役立ちます。また、ターボモードの動作を観察することもできます。
注
これは、Windows* ではプレビュー機能です。プレビュー機能は、正式リリースに含まれるかどうか未定です。皆さんが機能に対する有用性のフィードバックを送ることで、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換が提供される保証はありません。parallel.studio.support@intel.com または intelsystemstudio@intel.com へフィードバックをお送りください。
スロットリングとは?
システムが過負荷でない状況でシステムのパフォーマンスが予期せずに低下する場合、システムでスロットリングが発生している可能性があります。スロットリングとは、システムが安全な動作電力と温度制限に達したことに反応して、発熱によるシャットダウンなど致命的なイベントを防止するため動作周波数を低下せることを意味します。
例えば、CPU の動作温度が設定されている上限を超えた場合、システムを冷却できるように動作周波数はピーク値から低いレベルに低下します。このような状態になると、CPU は以前に維持されたピーク値まで周波数を上昇する必要があります。この CPU 動作周波数が最初に低下し、最終的に上昇するフェーズがスロットルフェーズです。
安全な CPU 動作温度に戻すため周波数を下げると、パフォーマンスも大幅に低下する可能性があります。
スロットリングを防ぐには?
残念ながらスロットリングは避けられない動作です。CPU のパフォーマンスは最終的に消費電力によって決定され、消費電力はシステムがどれだけ早く冷却できるかによって決まります。OS の温度アルゴリズムが温度制限の違反を制御しているため、アプリケーションを変更してシステムのスロットリングを防ぐことはできません。
しかし、スロットリングの範囲を縮小することはできます。
- インテル® VTune™ プロファイラーを使用してスロットリング解析を実行します。この情報を使用して、冷却システムに必要な最適化を決定します。スロットリングはハードウェアの問題です。
- インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 命令を多数実行する場合、コードを変更して通常の命令セットで動作するようにします。
スロットリング解析を行うべき状況は?
スロットリングは、システムに供給される電力によって生じるパフォーマンスの問題です。次のいずれかの状況でパフォーマンスの低下が観察される場合、スロットリング解析を行います。
- ベクトル命令を実行した後
- システムをロードした後
- 期待に反してパフォーマンスの低下が観察された場合
スロットリング解析を実行
必要条件:
スロットリング解析タイプを実行するには、管理者権限でインテル® VTune™ プロファイラーを起動する必要があります。
- [ようこそ] スクリーンで [解析の設定] をクリックします。
- [どのように] ペインで、[プラットフォーム解析] グループから [スロットリング解析] タイプを選択します。
- [何を] ペインの [アプリケーションを起動] セクションで、アプリケーションが指定されていることを確認します。
- 解析を実行するには、 [開始] ボタンをクリックします。
解析が完了したら、[サマリー] ウィンドウでスロットリングが発生しているか確認します。スロットリングのタイプ別に、プロファイルされた各エンティティーのインスタンス数を確認できます。
この情報をグラフィカルに確認するには、[関連メトリック] タブを参照してください。この例では、システムをピーク・パフォーマンスで実行すると、CPU 周波数が最大ターボ周波数を超えることが分かります。
さらに詳しい解析については、それぞれのスロットリング・タイプのタブを参照して、各インスタンスの原因を理解します。
スロットリング・カウントの表では、解析の対象となっているスロットリングのすべてのソースを確認できます。
[理由 (Reason)] カラムには、スロットリングが発生したサンプリング・ポイント数と、その原因が示されます。
[理由なし (Not Reason)] カラムには、スロットリングが発生しなかったサンプリング・ポイント数が表示されます。
スロットリングの原因の説明
これらの表は、CPU、GPU、およびリング・スロットリングが発生するさまざまな理由を説明しています。
CPU スロットリングの原因:
この表では、周波数はプロセッサーのコア周波数を指します。
原因 | 説明 |
---|---|
PROCHOT | 周波数は OS 周波数を超えました。 |
THERMAL | 温度イベントにより、周波数が OS 周波数を超えました。 |
RSR-LIMIT | 常駐ステート規制の制限違反により、周波数が OS 周波数を超えました。 |
RATL | 実行平均温度の制限違反により、周波数が OS 周波数を超えました。 |
VR-THERMAL-ALERT | プロセッサーの電圧調整器 (VR) からの温度通知により、周波数が OS 周波数を超えました。 |
VR-TDC | VR 熱設計電流制限により、周波数が OS 周波数を超えました。 |
OTHER | 電気的または他の制約により、周波数が OS 周波数を超えました。 |
PBM-PL1 | PL1 のパッケージ/プラットフォーム・レベルの電力制限により、周波数が OS 周波数を超えました。 |
PBM-PL2 | PL2/PL3 のパッケージ/プラットフォーム・レベルの電力制限により、周波数が OS 周波数を超えました。 |
MAX-TURBO-LIMIT | マルチコアターボの制限により、周波数が OS 周波数を超えました。 |
TURBO-ATTENUATION | ターボ移行の減衰により、周波数が OS 周波数を超えました。これにより、稼働率が頻繁に変更されるため、パフォーマンスが低下する可能性があります。 |
GPU スロットリングの原因:
この表では、周波数はプロセッサーのグラフィックス周波数を指します。
原因 | 説明 |
---|---|
PROCHOT | 周波数は OS 周波数を超えました。 |
THERMAL | 温度イベントにより、周波数が OS 周波数を超えました。 |
RSR-LIMIT | 常駐ステート規制の制限違反により、周波数が OS 周波数を超えました。 |
RATL | 実行平均温度の制限違反により、周波数が OS 周波数を超えました。 |
VR-THERMAL-ALERT | プロセッサーの電圧調整器 (VR) からの温度通知により、周波数が OS 周波数を超えました。 |
VR-TDC | VR 温度設計の限界により、周波数が OS 周波数を超えました。 |
OTHER | 電気的または他の制約により、周波数が OS 周波数を超えました。 |
PBM-PL1 | PL1 のパッケージ・レベルの電力制限により、周波数が OS 周波数を超えました。 |
PBM-PL2 | PL2/PL3 のパッケージ・レベルの電力制限により、周波数が OS 周波数を超えました。 |
MAX-TURBO-LIMIT | マルチコア・ターボの制限により、周波数が OS 周波数を超えました。 |
TURBO-ATTENUATION | ターボ移行の減衰により、周波数が OS 周波数を超えました。これにより、稼働率が頻繁に変更されるため、パフォーマンスが低下する可能性があります。 |
リング・スロットリングの原因:
この表では、周波数はアンコアのリング相互接続を指します。
原因 | 説明 |
---|---|
PROCHOT | 周波数は OS 周波数を超えました。 |
THERMAL | 温度イベントにより、周波数が OS 周波数を超えました。 |
RSR-LIMIT | 常駐ステート規制の制限違反により、周波数が OS 周波数を超えました。 |
RATL | 実行平均温度の制限違反により、周波数が OS 周波数を超えました。 |
VR-THERMAL-ALERT | プロセッサーの電圧調整器 (VR) からの温度通知により、周波数が OS 周波数を超えました。 |
VR-TDC | VR 熱設計電流制限により、周波数が OS 周波数を超えました。 |
OTHER | 電気的または他の制約により、周波数が OS 周波数を超えました。 |
PBM-PL1 | PL1 のパッケージ/プラットフォーム・レベルの電力制限により、周波数が OS 周波数を超えました。 |
PBM-PL2 | PL2/PL3 のパッケージ/プラットフォーム・レベルの電力制限により、周波数が OS 周波数を超えました。 |
MAX-TURBO-LIMIT | マルチコア・ターボの制限により、周波数が OS 周波数を超えました。 |
TURBO-ATTENUATION | ターボ移行の減衰により、周波数が OS 周波数を超えました。これにより、稼働率が頻繁に変更されるため、パフォーマンスが低下する可能性があります。 |
これらの原因の詳細については、『インテル®64 および IA-32 プロセッサー・アーキテクチャー・デベロッパー・マニュアル』 (英語) を参照してください。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。