メニーコアプロセッサにおけるコア間通信レイテンシ隠蔽手法の検討...
-
Upload
shinya-takamaeda-yamazaki -
Category
Documents
-
view
891 -
download
1
Transcript of メニーコアプロセッサにおけるコア間通信レイテンシ隠蔽手法の検討...
メニーコアプロセッサにおける コア間通信レイテンシ隠蔽手法の検討
高前田 伸也 ◎森 洋介 吉瀬 謙二
東京工業大学 大学院情報理工学研究科
第50回 情報処理学会全国大会@東大
Abstract u メニーコアプロセッサにおけるコア間通信の レイテンシを隠蔽し性能向上を狙う n 処理と通信との間の並列性をハードウェアで抽出 n ブロッキング転送の完了を待たずに 先行的にコアの処理を進める
n わずかに性能向上 n 通信によるストール時間は最大40%程度削減
u 代理発表です
10-03-09 IPSJ全国大会72@東大 2
Agenda u 背景と目的 u 提案手法 u 評価環境 u 評価 u まとめ
10-03-09 IPSJ全国大会72@東大 3
背景と目的 u メニーコアで性能を引き出すには並列化は必須
n 各コアにタスクを分散,処理をして同期をとる
u 性能向上を阻む要因の1つ: 通信レイテンシ n コア外へのメモリアクセス・キャッシュアクセス
• NoC経由 n 同期
• 同期が増える→通信が増える
通信レイテンシを隠蔽し性能向上を目指す!
10-03-09 IPSJ全国大会72@東大 4
提案手法 (1) u ブロッキング転送中にコアの処理を先行実行
n 明示的にコア間DMA転送を行う アーキテクチャを想定
– ブロッキング転送 » 転送完了をSW側で待つ
– ノンブロッキング転送 » 転送完了をSW側で待たない
10-03-09 IPSJ全国大会72@東大 5
コアA コアB
ローカル メモリ
ローカル メモリ DMA転送
コアBに DMA転送!
提案手法 (2) u 本来データ転送が完了した後で行う処理を 先行的に実行することでレイテンシを隠蔽する
u ブロッキング転送っていつ使うの? n 転送対象とその後の処理でハザードが発生する場合
• 例) 配列の各要素を処理してから転送. そして転送完了後さらに処理する
n でも,実は並列に実行できる部分があるのでは? • プログラマが予期せぬ並列性
そこを先行実行すればよい!
10-03-09 IPSJ全国大会72@東大 6
どこが先行実行できるか? (1) u 例: ブロッキング転送後にロードしてストア
n 1) データブロッキング転送を開始 n 2) 転送エリアからロード n 3) 転送エリアにストア
n 2)はデータ転送中に先行実行可能 n 3)はストア先のデータ転送が完了していれば 実行可能
• 転送完了前に実行するとWARハザードが発生
10-03-09 IPSJ全国大会72@東大 7
block_send mem[0x1000~0x1200]のデータをコアAへ 擬似命令列
store reg[r2]をmem[0x1004]へ load mem[0x1000]からreg[r1]へ
どこが先行実行できるか? (2) u メモリアクセス以外の命令はOK u ロード命令もOK
n Read After Readハザード・・・? u ストア命令は注意が必要
n 未転送エリアへストアすると Write After Readハザードが発生
n 未転送エリアに対するストアを 発行してはいけない
• 未転送エリアを記憶しておく必要あり • 今回はコアをストールさせる
10-03-09 IPSJ全国大会72@東大 8
メモリ
転送完了 エリア
未転送 エリア
転送 エリア
評価環境:M-Coreアーキテクチャ(全体) u 計算ノード (Comp. Node) n プログラムを 実行
n データを転送 u メモリノード
n メインメモリ にアクセス
u パスノード n データを転送 n 今後の拡張用
10-03-09 IPSJ全国大会72@東大 9
Off chip memory modules
Comp. Node (1,1)
Comp. Node (1,2)
Comp. Node (1,N)
Comp. Node (2,1)
Comp. Node (2,2)
Comp. Node (2,N)
Comp. Node (3,1)
Comp. Node (3,2)
Comp. Node (3,N)
Comp. Node (M,1)
Comp. Node (M,2)
Comp. Node (M,N)
Mem. Node (0,0)
Path Node (2,0)
Path Node (3,0)
Path Node (M,0)
Many-core processor chip
Path Node (1,0)
Path Node (0,1)
Path Node (0,2)
Path Node (0,N)
評価環境:M-Coreアーキテクチャ(計算ノード)
u Core n プロセッシングエレメント
u Node Memory n ローカルメモリ
u INCC (Inter Node Communication Controller) n データの送受信
u Router n データの転送
10-03-09 IPSJ全国大会72@東大 10
Comp. Node
INCC Node Memory
Core
Router
提案手法の追加:Violation Detector u CoreとINCC, ノードメモリの間に Violation Detector を挿入 n 未転送エリアの アドレスを保持
n データ転送と メモリアクセス の間のハザード を検知したら コアをストール
10-03-09 IPSJ全国大会72@東大 11
Core
Violation Detector
Node Memory
0x1000
Tail Address
Head Address
0x2000
Yes DMA Req
INCC
load
store
store
store
write
DMA Transfer
stall signal
DMA status
DMA Reg PUT to (3,2)
read
: data : control
Router On Chip Network
load
評価環境 u M-Coreシミュレータ SimMcを利用 u コア数: 16, 64 u コアのプロセッサ: シングルサイクルMIPS32 u ローカルメモリサイズ: 512KB u ルータ: ワームホール・シングルサイクル VCなし・入力バッファサイズは4フリット分
u ベンチマーク: NAS Parallel Benchmarks n cg, ft, is, lu, mg,問題サイズS
u 性能・通信完了待ち時間を測定 10-03-09 IPSJ全国大会72@東大 12
評価: 性能 u わずかに性能向上を達成
n 通信の割合がそもそも少ない? n DMA転送を連続で発行すると効果なし n SWレベルの同期には対応できない
10-03-09 IPSJ全国大会72@東大 13
0
0.2
0.4
0.6
0.8
cg ft is lu mg
Spee
dup
[%]
Benchmark
16cores64cores
評価: 通信完了待ち時間 u 最大40%程度の通信完了待ち時間を削減
n レイテンシのパラメータやプロセッサ構成次第では 大きな性能向上が見込める
• ストアバッファとの連携
10-03-09 IPSJ全国大会72@東大 14
0
0.2
0.4
0.6
0.8
1
cg ft is lu mg
Stal
l Rat
e
Benchmark
16cores64cores
まとめ u メニーコアプロセッサにおけるコア間通信の レイテンシを隠蔽し性能向上を狙う n 処理と通信との間の並列性をハードウェアで抽出 n ブロッキング転送の完了を待たずに 先行的にコアの処理を進める
n 転送待ちデータとコアが処理に使用するデータ間のWARハザードを検出,コアをストール
n わずかに性能向上 n 通信によるストール時間は最大40%程度削減
• ストアバッファ等との連携でまともに?
10-03-09 IPSJ全国大会72@東大 15
評価: 通信の割合 u 最大5%程度
10-03-09 IPSJ全国大会72@東大 17
0.5 1
1.5 2
2.5 3
3.5 4
4.5 5
5.5
cg ft is lu mg
DM
A ra
te [%
]
Benchmark
16cores base64cores base
16cores pre-write64cores pre-write