Skip to main content
QUICK REVIEW

[論文レビュー] Introducing a Performance Model for Bandwidth-Limited Loop Kernels

Jan Treibig, Georg Hager|ArXiv.org|May 6, 2009
Parallel Computing and Optimization Techniques参考文献 1被引用数 21
ひとこと要約

この論文は、現代のx86 4コアアーキテクチャにおいて、L1キャッシュ内の命令レベル実行時間とメモリ階層帯域幅制約を組み合わせることで実行時間を予測する帯域幅制限型ループカーネルのパフォーマンスモデルを提示する。このモデルは、キャッシュ帯域幅、データパス並列性、転送量を分析することで、ロード、ストア、コピーやストリームトリアッド演算のパフォーマンスを正確に予測し、キャッシュ内パフォーマンスが命令レベル実行サイクルとキャッシュ構成に強く依存することを明らかにする。測定された効率は、アーキテクチャ間で49%から81%の範囲にのぼる。

ABSTRACT

We present a performance model for bandwidth limited loop kernels which is founded on the analysis of modern cache based microarchitectures. This model allows an accurate performance prediction and evaluation for existing instruction codes. It provides an in-depth understanding of how performance for different memory hierarchy levels is made up. The performance of raw memory load, store and copy operations and a stream vector triad are analyzed and benchmarked on three modern x86-type quad-core architectures in order to demonstrate the capabilities of the model.

研究の動機と目的

  • 命令レベル実行とメモリ階層帯域幅の両方を考慮した、帯域幅制限型ループカーネルの体系的パフォーマンスモデルの構築を目的とする。
  • 現代のマルチコアx86アーキテクチャにおける基本的なメモリ操作(ロード、ストア、コピーやストリームトリアッド)のパフォーマンスを分析・予測することを目的とする。
  • キャッシュ帯域幅、データパス並列性、命令リタイアレートがキャッシュ内パフォーマンスに与える影響を定量化することを目的とする。
  • コア2、コアi7、AMDシャンハイプロセッサでのベンチマークを通じて、モデルの正確性を評価することを目的とする。
  • マルチスレッドアプリケーションおよびプリフェッチ効果へのモデルの拡張基盤を築くこと。

提案手法

  • モデルは、L1キャッシュ内の命令実行サイクルと、キャッシュレベル間のメモリ転送にかかるサイクルを反復的に合算するアプローチを用いる。
  • 各メモリレベル(L1、L2、L3、メインメモリ)は、キャッシュラインサイズとピーク帯域幅を用いて転送サイクルを計算することでモデル化され、最小転送サイズが1つのキャッシュラインであると仮定する。
  • 命令レベルパフォーマンスは、IntelおよびAMDのマイクロアーキテクチャ仕様に基づき、1サイクルあたりにリタイア可能なロード、ストア、および演算の数から導出される。
  • ダブルポートバンクや1つのキャッシュあたりの複数ポートといったデータパス並列性を考慮し、各ストリームごとの有効帯域幅を決定する。
  • CPUサイクル数を数えるためにrdtsc命令を用いて測定を行い、精度を高めるためにC言語およびアセンブリ言語でカーネルを実装する。
  • 理論的予測は、キャッシュ階層とメモリコントローラが異なる3種類の4コアx86プロセッサ上で実測値と照合される。

実験結果

リサーチクエスチョン

  • RQ1L1キャッシュ内の命令レベル実行サイクルとメモリ帯域幅制約が、帯域幅制限型ループカーネルのパフォーマンスをどのように共同で決定するか?
  • RQ2キャッシュ構成(例:包含型/非包含型、共有/プライベート)が、メモリバウンドカーネルのパフォーマンス予測精度にどの程度影響を与えるか?
  • RQ3なぜ理論的帯域幅予測値と実測パフォーマンス値に差が生じるのか、特にオンチップメモリコントローラを備えたアーキテクチャでは特に顕著である。
  • RQ4マルチスレッディングがメモリ帯域幅スケーリングに与える影響は何か?また、共有キャッシュとプライベートキャッシュはこの挙動にどのような役割を果たすか?
  • RQ5ハードウェアプリフェッチャーの影響を定量化するために、モデルを用いてプリフェッチャーを一時的に無効化して評価できるか?

主な発見

  • モデルは、L1キャッシュ内の命令サイクルとメモリ転送時間の組み合わせにより、3つの現代的x86アーキテクチャにおけるロード、ストア、コピーやストリームトリアッドカーネルのパフォーマンスを正確に予測する。
  • コアi7はL3キャッシュでストリームトリアッドに対して80.6%の効率を達成するが、コア2はメモリコントローラのオーバーヘッドが高く、55.1%にとどまる。
  • AMDシャンハイはL3キャッシュでストリームトリアッドに対して80.6%の効率を示し、共有L2キャッシュのため2コアで飽和するコア2よりも優れたスケーラビリティを示す。
  • コアi7はL3およびメインメモリレベルで、予測を上回るパフォーマンスを示しており、これはメモリ転送のオーバーラップやストアモデルの不正確さによる可能性がある。
  • メインメモリ帯域幅効率は、非オーバーラップメモリアクセスオーバーヘッドによって制限されており、コア2ではフロントサイドバスの制限により約60%の効率にとどまる。
  • マルチスレッドパフォーマンスでは、コアi7のL3キャッシュは2スレッドまでスケーリングするが、4スレッドで飽和する。一方、AMDシャンハイは4スレッドでより良好なスケーリングを示し、L3で36.9 GB/sに達する。

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

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

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

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