以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/02/14/040000より取得しました。


ChameSC: Virtualizing Superscalar Core of a SIMD Architecture for Vector Memory Accessの論文を読む (3. 評価)

ベクトル・メモリ・アクセスの関係で、以下の論文が気になったので読んでみることにした:

https://ieeexplore.ieee.org/document/10818118

前回の投稿はこちら:msyksphinz.hatenablog.com


4. 評価環境

(1) シミュレーション環境

  • gem5のアウトオブオーダープロセッサモデルを使用し、スーパースカラコアとベクトルエンジンが分離されたRISC-Vベクトルアーキテクチャを使用
  • キャッシュサブシステム: Arm AMBA 5 CHIを基盤とし、最新のキャッシュコヒーレンシプロトコルを再現。
  • オンチップネットワーク: gem5のシンプルネットワークモデルを利用。
  • メモリアクセスのモデル
    • L1キャッシュ: 64KB (スカラ用) / ベクトル側はL2キャッシュにダイレクトに接続されている
    • L2キャッシュ: 512KB(ベクトルエンジンとスーパースカラコアで共有)
    • LLC: 2MB
    • メインメモリ: DDR4-2400

5.評価

評価対象

  • ベースライン (Baseline):
    • 通常のSIMDアーキテクチャ(スーパースカラコア+デカップルドベクトルエンジン)。
    • プリフェッチ技術なし。
  • 従来のデータプリフェッチ技術:
    • Stride: 一定のストライドパターンを持つメモリアクセスに対して、次のメモリアクセスを予測。
    • Berti: ローカルデルタ型のデータプリフェッチ技術。過去のメモリアクセスから規則性を見つけ、次のアドレスを推測。
    • IPCP: 命令ポインタを分類し、空間的なプリフェッチを行う技術。
  • 提案手法 (ChameSC):
    • スーパースカラコアのアイドルメモリユニットを仮想化し、正確なデータプリフェッチとプロアクティブキャッシュを活用する。

ベンチマーク

  • 14種類のデータ並列アプリケーション
    • ストライドメモリアクセスを持つアプリケーション:
      • mmult, vvadd, axpy, pathfinder, streamcluster, backprop, kmeans
    • インデックスメモリアクセスを持つアプリケーション:
      • indMM, aes, des, spmv, sddmm, cc, sssp

性能比較 (Overall Performance Comparison)

ChameSCの全体的な性能向上

  • ベースラインと比較して34.3%の性能向上
  • 特にインデックスメモリアクセスを多用するアプリケーションで41.3%の改善。
  • backpropindMM では 最大80%の性能向上。
  • 要因としては、スーパースカラコアのアイドルメモリユニットを活用することで、ベクトルメモリアクセスのボトルネックを大幅に軽減したこと。

既存のプリフェッチ技術との比較

  • Stride
    • 規則的なメモリアクセス(ストライドパターン)には効果的だが、不規則なアクセスには対応できず、ChameSCに対して18.2%劣る。
  • Berti
    • ローカルデルタ型プリフェッチャだが、予測精度が低く、キャッシュ汚染を引き起こす。ChameSCの約半分の性能改善(+16.8%)にとどまる。
  • IPCP
    • 命令ポインタ分類ベースのプリフェッチ手法で、短い距離のアクセスには有効だが、大規模なベクトルメモリアクセスには対応困難。ChameSCと比較して12.7%劣る。

メモリアクセス遅延の削減 (Memory Access Latency Reduction)

  • Berti: 9.2%の遅延削減
  • IPCP: 8.8%の遅延削減
  • ChameSC: 36.5%の遅延削減

  • 理由としては、既存のプリフェッチ手法はヒューリスティックに基づいた予測だが、ChameSCは実際に必要なデータだけをプリフェッチするため、無駄なメモリアクセスが発生しない。


キャッシュヒット率とL2アクセスの削減 (Cache Hit Rate and L2 Access Reduction)**

  • ベースライン: 35.1%のデータがL2からフェッチ
  • ChameSC: L2アクセスが12.6%削減
  • プロアクティブキャッシュの効果
    • プリフェッチしたデータをスーパースカラコアのL1キャッシュに保存。
    • ベクトルエンジンがデータを要求すると、L2ではなくL1から取得できる確率が向上。

キャッシュ汚染の抑制

  • 従来のプリフェッチ手法は不要なデータをプリフェッチし、L1キャッシュを汚染する可能性がある。
  • ChameSCはスーパースカラコアのL1を別途プロアクティブキャッシュとして利用し、L1の本来の機能を維持。

追加評価: ハードウェアコスト (Hardware Cost Analysis)

  • 新規ハードウェアの追加は最小限
    • プリフェッチコントローラ: 640ビットのレジスタ追加(64ビット×2のスカラレジスタ+512ビットのベクトルレジスタ)。
    • ロード/ストアキュー: 1ビットのプリフェッチフラグ追加。
    • 制御回路: 既存のメモリユニットを再利用するため、追加コストは低い。



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/02/14/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14