Skip to main content
QUICK REVIEW

[論文レビュー] Automatic Microprocessor Performance Bug Detection

Erick Carvajal Barboza, Sara Jacob|arXiv (Cornell University)|Nov 17, 2020
Parallel Computing and Optimization Techniques参考文献 48被引用数 4
ひとこと要約

本論文は、マイクロプロセッサコア設計におけるパフォーマンスバグの自動検出のための機械学習ベースの二段階手法を提示する。レガシーマイクロアーキテクチャからのパフォーマンスカウンタを活用して、ベースラインIPCを予測するモデルを学習させることで、パフォーマンスレグレッションを示す乖離を特定する。IPCに1%以上の影響を与えるバグについては91.5%の検出率を達成し、メモリシステムのバグについては100%の検出率を示し、偽陽性はゼロである。

ABSTRACT

Processor design validation and debug is a difficult and complex task, which consumes the lion's share of the design process. Design bugs that affect processor performance rather than its functionality are especially difficult to catch, particularly in new microarchitectures. This is because, unlike functional bugs, the correct processor performance of new microarchitectures on complex, long-running benchmarks is typically not deterministically known. Thus, when performance benchmarking new microarchitectures, performance teams may assume that the design is correct when the performance of the new microarchitecture exceeds that of the previous generation, despite significant performance regressions existing in the design. In this work, we present a two-stage, machine learning-based methodology that is able to detect the existence of performance bugs in microprocessors. Our results show that our best technique detects 91.5% of microprocessor core performance bugs whose average IPC impact across the studied applications is greater than 1% versus a bug-free design with zero false positives. When evaluated on memory system bugs, our technique achieves 100% detection with zero false positives. Moreover, the detection is automatic, requiring very little performance engineer time.

研究の動機と目的

  • パフォーマンスの決定的基準がないため、マイクロプロセッサにおけるパフォーマンスバグを特定することが困難であるという、深刻な課題に対処する。
  • 先行研究で用いられる手動のパフォーマンス検証や誤りの多いリファレンスモデリング手法の限界を克服する。
  • エキスパートの作業時間に依存しない、自動的かつスケーラブルな手法を開発し、プロトタイピング段階およびプロダクション段階の検証を加速する。
  • 世代ごとのパフォーマンス向上によって隠されがちなパフォーマンスレグレッションの早期検出を可能にする。
  • 各設計に対して再トレーニングを必要とせず、複数のマイクロアーキテクチャに一般化可能な検出アプローチを実現する。

提案手法

  • 既知のバグのないレガシーマイクロアーキテクチャのバージョンから収集したパフォーマンスカウンタトレースを用いて、ベースラインIPCを予測する機械学習モデルをトレーニングする。
  • 直交するプローブ(特定のパフォーマンスカウンタのサブセット)を用いて、独立したIPC推定モデルを構築することで、モデルの特異性と精度を向上させる。
  • 訓練済みモデルを新しいマイクロアーキテクチャのシミュレーションに適用し、正常な状態での予想されるIPCを予測する。
  • 予測されたIPCと実際のシミュレーテッドIPCを比較し、顕著な乖離が生じた場合に潜在的なパフォーマンスバグを特定する。
  • 二段階の検出パイプラインを採用する:第一段階ではIPC予測誤差により異常なワークロードを特定し、第二段階ではプローブレベルの分析を用いて異常を検証・分類する。
  • モデルの解釈可能性を活用して、検出されたバグに関連するカウンターパattersや命令レベルの特徴を同定し、原因の特定を支援する。

実験結果

リサーチクエスチョン

  • RQ1レガシーマイクロアーキテクチャでトレーニングされた機械学習モデルが、新しいマイクロアーキテクチャの期待されるIPCを正確に予測できるか。その結果、パフォーマンスバグの検出が可能になるか。
  • RQ2世代ごとのパフォーマンス向上によって隠されがちなパフォーマンスレグレッションを、パフォーマンスカウンタベースのモデルがどの程度検出できるか。
  • RQ3二段階の検出パイプラインは、偽陽性を最小限に抑えてパフォーマンスバグを効果的に特定できるか。
  • RQ4この手法は複数のマイクロアーキテクチャに一般化可能であり、コアおよびメモリシステムの両方のパフォーマンスバグを検出できるか。
  • RQ5プローブレベルのモデル特性およびカウンタ相関は、潜在的なバグの場所を特定する上でどのような役割を果たすか。

主な発見

  • 提案手法は、バグフリー設計と比較してIPCに1%以上の影響を与えるマイクロプロセッサコアのパフォーマンスバグの91.5%を検出でき、偽陽性はゼロである。
  • メモリシステムのバグについては、100%の検出率を達成し、偽陽性ゼロであり、重要なサブシステムにおける高い信頼性を示している。
  • 直交的でプローブ固有のモデルを用いることで、パフォーマンス推定の精度が高く、先行する電力予測研究で用いられた一般化モデルを上回っている。
  • 手法は完全に自動的であり、パフォーマンスエンジニアの関与が最小限に抑えられ、手動分析に比べてデバッグ時間を著しく短縮できる。
  • モデルはマイクロアーキテクチャを跨いで一般化可能であり、レガシーデザインでトレーニングされたモデルを新しい設計に再トレーニングなしに再利用可能である。
  • モデルの解釈可能性により、トリガーとなるプローブに共通する特徴(例:命令タイプ、メモリアクセスパターン)を同定でき、原因の特定を支援する。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。