演算/メモリ性能バランスを考慮したCMP
向けオンチップ・メモリ貸与法の提案
九州大学
○林 徹生 今里 賢一
井上 弘士 村上 和彰
発表手順
z背景・目的
z演算
/メモリ性能バランシング
z概要
zアクセスレイテンシの削減とオーバーヘッド
z提案手法の実現方法
z着目する命令
z(Cellプロセッサへの)実装
z性能評価
z姫野ベンチマーク
zSusan@MiBench
zおわりに
チップマルチプロセッサ (CMP)の普及
z
スレッドレベル並列性
(TLP)により性能向上
z汎用
z2コアが主流
z4コアのプロセッサへ移行
z特定用途
z8コア:Cell(Sony,Toshiba,IBM)、Niagara2(Sun)
z16コア:Raw(MIT)
z80コア:Intelのプロセッサ
z96コア:CSX600(Clear Speed)
z
メニーコアを想定した研究
メモリ・ウォール問題の深刻化
z主記憶へのアクセス時間が計算機
の性能ボトルネックとなることが多い
高速 大容量レジスタ
1クロックサイクル(cc)【
オンチップ・メモリ
】
1~数10cc【
オフチップ・メモリ
】
数100cc補助記憶
アクセス時間
z
CMPでは
zデータ競合
: 同期後の主記憶
アクセスは隠蔽できない!
z資源競合
: コア数に比例して
オフチップ・バンド幅はスケー
ルしていない!
メモリ性能の影響
0
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
Number of Threads
S
p
eedup
L2ミスなし
L2=2MBで実行
性能差は拡大
性能向上は
次第に飽和
研究の目的
【目的】
zプロセッサのトータル性能を向上
【動機】
z演算性能とメモリ性能がプロセッサのトータル性能に与える影響
が異なる
【方法】
zチップ内のコアを単純に並列処理に用いず、「演算用」と「メモリ
性能向上用」として使い分ける
zメモリ性能がボトルネックとなる場合、並列実行可能でも
あえて
TLPを犠牲
にし、コアをメモリ用として利用することでトータル性
能を向上する
発表手順
z背景・目的
z演算/メモリ性能バランシング
z概要
zアクセスレイテンシの削減とオーバーヘッド
z提案手法の実現方法
z着目する命令
z(Cellプロセッサへの)実装
z性能評価
z姫野ベンチマーク
zSusan@MiBench
zおわりに
コアの割り当てによる性能向上
0
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
Number of Threads
S
p
eedup
従来の並列処理
7コア「演算用」、1コア「メモリ性 能向上用」の時の性能の上限 かつ8コア並列処理における
最大性能
想定するCMPアーキテクチャ
z
各コアはソフトウェア制御
可能なオンチップメモリ
(SPM)を持つ
z計算とデータ転送は同時実
行可能
z
各コアは他コアの
SPMの
物理アドレスを知ることが
可能、かつ、アクセス可能
zベースアドレスとオフセットか
らアドレスを算出可能
Core 0 SPM Core 1 SPM Core N SPM・・・
Network Main Memory on-chip off-chipコアの振る舞いと定義
z
Compコア
z並列化されたコード
(ス
レッド
)を実行する
z
Aidコア
zスレッド実行を行なわない
z自コアの
SPMを他コアの
メモリ性能向上のために
提供する
zSPMはCompコア-主記憶
間の階層メモリとして利用
される
Core 0 SPM Core 1 SPM Core N SPM・・・
Network Main MemoryCompコア
Aidコア
マッピング
このエリアにアクセス
要求が来たら・・・
こっちへアクセス!
Aidコアを確保する効果
z
利点: メモリ性能改善の可能性
zAidコアのSPMにアクセスすればレイテンシ削減
zデータ競合・資源競合の減少
z
欠点: 演算性能の低下
z1コアあたりの演算負荷が増大
z
目標: メモリ性能改善>演算性能の低下
意識して制御
するのは困難
見た目上の主記憶アクセス・レイテ
ンシの変化
アクセス先
DMA命令
主記憶
AidコアのSPM
Read
↑オーバーヘッド
↓削減
Write
↑オーバーヘッド
↑オーバーヘッド
z書込みはメモリ・コントローラへのリクエストによる完了を
想定
zアクセス先
(主記憶/Aidコア)に関わらず、アクセス先判別
のためのオーバーヘッドが発生
zAidコアでのデータヒット率がメモリ性能向上の鍵
z小オーバーヘッドでの実現が必要
発表手順
z背景・目的
z演算
/メモリ性能バランシング
z概要
zアクセスレイテンシの削減とオーバーヘッド
z提案手法の実現方法
z着目する命令
z(Cellプロセッサへの)実装
z性能評価
z姫野ベンチマーク
zSusan@MiBench
zおわりに
SPU LS
SPE×7
On-Chip Network L2 L1 PPUPPE
MIC BICOff-chip
Cellプロセッサ
SPU LS SPU LS SPU LS SPU LS SPU LS SPU LS256KB
I/O制御、初期化 並列処理着目する命令
z
SPM環境ではバッファリングは当たり前
→ 同期命令後のデータ転送命令に着目
→ アクセスアドレス付近のデータをマッピング
for(n=0; n<N ; n++){ cal(i,j,k); atomic(・・・); // 全コアで処理が終了 DMA_READ(・・・); // 中間データ読み込み DMA_WRITE(・・・); // データ更新 atomic(・・・); // 全コアで更新終了 } DMA_READ(・・・); // 中間データ読み込み DMA_WRITE(・・・); // データ更新提案手法の実装(Compコア)
z
メモリアクセス先
(主記憶 or あるAidコアのSPM)
の判別には配列を使用
z分岐命令はミスペナルティが膨大
z必要なメモリ領域はコア数
Nに対して最悪でもO(N)
z
配列イメージ図
主記憶 コア4 コア5 コア6 配列[
]
+
=
SPM4 SPM5 SPM6 マッピング *フォン・ノイマン型(コード領域)を考慮提案手法の実装(Aidコア)
z
データ・プリフェッチ
zAidコアは並列処理の開始時にデータプリフェッチ
zAidコアへの初期参照を保証
z読込み/書込みサイズが異なる時の動作を保証
z
データ・ライトバック
zAidコアは並列処理の終了時にデータを書き戻す
z最新の値は
AidコアのSPMで保持
z終了時のデータを主記憶へ書込み
発表手順
z背景・目的
z演算
/メモリ性能バランシング
z概要
zアクセスレイテンシの削減とオーバーヘッド
z提案手法の実現方法
z着目する命令
z(Cellプロセッサへの)実装
z性能評価
z姫野ベンチマーク
zSusan@MiBench
zおわりに
評価
z 評価目的 z 提案手法の効果の有無を調査 z 評価環境 z Cellプロセッサ(実機)+Time関数 z 10回測定、最大値・最小値を除いた平均値を選出 z DMAキャッシュをウォームアップ z 評価対象プログラム z 姫野ベンチマーク(SSサイズ、Sサイズ、Mサイズ) z Susan-Edge (large input)z コンパイルオプション:-O3
z 評価項目