Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ISCA’13 勉強会:
Orchestrated Scheduling and
Prefetching for GPGPUs
中村研究室
D3 薦田 登志矢
2013年 8月 22日 木曜日 ISCA'13 勉強会 1
紹介論文の概要
2013年 8月 22日 木曜日 ISCA'13 勉強会 2
•  GPGPUと言えば, 涙ぐましいSW最適化の話ばかりなイメージ
•  特にメモリ周り
à こういうSW最適化をしなくて済むように, HW屋さん側でも様々な研究...
(GP)GPUのアーキテクチャ
•  インオーダーSIMDコアが大量に詰まれており, 数千〜数万の
スレッドを並列実行.
•  各コアは数十KBのL1Dキャッシュを持つ.
•  今回の話は, 各コア上で並列スレッドの実行順序をHW側で工夫すると...
SIMDとSIMT(GPGPU)の実行方式の違い	
•  SIMD
•  一つの命令を複数のデータに対して, 並列実行.
•  ベクタ長を大きくすることは難しい
•  PCが一つしかないため, メモリアクセスが発生すると全体が止まってしまうため...
SIMDとSIMT(GPGPU)の実行方式の違い	
Data	
0	
 32	
 64	
 96	
 127	
PC
warp1	
Inst1
Inst2
Inst3
32 way SIMD	
PC
warp2	
PC
warp3	
PC
wa...
単純な Warp Scheduling	
Data	
0	
 32	
 64	
 96	
 127	
Inst1
Inst2
Inst3
1	
 2	
 3	
 4	
5	
 6	
 7	
 8	
12	
11	
10	
9	
…	
memi ...
Warp Schedulingによるオーバーラップ実行	
Data	
0	
 32	
 64	
 96	
 127	
Inst1
Inst2
Inst3
1	
 2	
3	
 4	
6	
5	
…	
mem 202	
201	
Group 1	...
Warp Schedulingによるオーバーラップ実行	
Data	
0	
 32	
 64	
 96	
 127	
Inst1
Inst2
Inst3
1	
 2	
3	
 4	
6	
5	
…	
mem 202	
201	
メモリアクセス
...
0
1
2
3
4
5
6
7
SSC
PVC
KMN
SPMV
BFSR
FFT
SCP
BLK
FWT
JPEG
GMEAN
Round-robin (RR) Two-level (TL)
理想的にプリフェッチが成功した場合のIPC向上率
...
想定するプリフェッチアルゴリズム	
•  様々なプリフェッチアルゴリズムが考えられるが, HWの実装
コストが小さい以下のアルゴリズムを想定.
•  Spatial Locality Detection Based Prefetching
1....
TL Scheduling時のプリフェッチ動作とその問題点	
•  同一グループ内のwarp が利用するデータしかプリフェッチされず,
性能が向上しない
•  異なるWarp group は, 異なるCache Group内のデータを利用するた...
提案手法:
Prefetch-aware warp (PA) scheduling	
2013年 8月 22日 木曜日
Data	
0	
 32	
 64	
 96	
 127	
Inst1
Inst2
Inst3
1	
 2	
3	
 4	
...
提案手法:
Prefetch-aware warp (PA) scheduling	
2013年 8月 22日 木曜日
Data	
0	
 32	
 64	
 96	
 127	
Inst1
Inst2
Inst3
1	
 2	
3	
 4	
...
PA Scheduling 時のプリフェッチ動作	
•  異なるグループの warp が利用するデータをプリフェッチできる
•  異なる warp group は, 異なる Cache Group内のデータを
利用しやすい.
2013年 8月 ...
PA Scheduling 時のプリフェッチ動作	
•  異なるグループの warp が利用するデータをプリフェッチできる
•  異なる warp group は, 異なる Cache Group内のデータを
利用しやすい.
2013年 8月 ...
評価環境
•  GPGPU-Sim: GPUのサイクルレベルシミュレータ
•  ハードウェア構成
•  30 SMs, 8 memory controllers, crossbar connected
•  1300MHz, SIMT Widt...
プリフェッチの正確さの評価
85% 89% 90%
0%
20%
40%
60%
80%
100%
89% 86% 69%
0%
20%
40%
60%
80%
100%
Fraction of Late Prefetches Prefetch...
プリフェッチによるミス率の減少幅 	
•  間に合うプリフェッチが増えたことで, L1 D キャッシュのミス率
削減率が, 大幅に増加.
2013年 8月 22日 木曜日
2%
4%
16%
0%
5%
10%
15%
20%
Reductio...
性能評価 (IPC向上率)	
•  Round Robin+ Prefetching に対して 25% 性能向上
•  Two Level Scheduling + Prefetching に対して 7% 性能向上	
2013年 8月 22日 ...
まとめ	
•  GPGPU アーキテクチャのHW最適化のお話
•  やはり, GPGPUはメモリがボトルネック. コア内での並列
スレッドの実行順序を工夫することで, 既存プリフェッチ手法の
効果を高めることに成功.
•  Round Robi...
Upcoming SlideShare
Loading in …5
×

Isca13 study

研究室内部の論文読み会で使った資料です.

  • Be the first to comment

Isca13 study

  1. 1. ISCA’13 勉強会: Orchestrated Scheduling and Prefetching for GPGPUs 中村研究室 D3 薦田 登志矢 2013年 8月 22日 木曜日 ISCA'13 勉強会 1
  2. 2. 紹介論文の概要 2013年 8月 22日 木曜日 ISCA'13 勉強会 2 •  GPGPUと言えば, 涙ぐましいSW最適化の話ばかりなイメージ •  特にメモリ周り à こういうSW最適化をしなくて済むように, HW屋さん側でも様々な研究 がなされ始めている. で, 今回の紹介論文. •  「Orchestrated Scheduling and Prefetching for GPGPUs」 Adwait Jog et al. ISCA’13 HW プリフェッチを用いて, GPGPUプログラムのメモリアクセス レイテンシ隠蔽を目指す.
  3. 3. (GP)GPUのアーキテクチャ •  インオーダーSIMDコアが大量に詰まれており, 数千〜数万の スレッドを並列実行. •  各コアは数十KBのL1Dキャッシュを持つ. •  今回の話は, 各コア上で並列スレッドの実行順序をHW側で工夫するとL1D キャッシュへのプリフェッチが良く効くようになるという話. 2013年 8月 22日 木曜日 ISCA'13 勉強会 3 NVIDIA Kepler Architecture
  4. 4. SIMDとSIMT(GPGPU)の実行方式の違い •  SIMD •  一つの命令を複数のデータに対して, 並列実行. •  ベクタ長を大きくすることは難しい •  PCが一つしかないため, メモリアクセスが発生すると全体が止まってしまうため. Data 0 32 64 96 127 PC Inst1 Inst2 Inst3 2013年 8月 22日 木曜日 ISCA'13 勉強会 4 128 way SIMD の模式図
  5. 5. SIMDとSIMT(GPGPU)の実行方式の違い Data 0 32 64 96 127 PC warp1 Inst1 Inst2 Inst3 32 way SIMD PC warp2 PC warp3 PC warp4 2013年 8月 22日 木曜日 •  SIMT •  並列スレッド全体を固定長のwarpに分割. それぞれが, 独立のPCを持つ. •  並列スレッド数 (SIMDではベクタ長に相当) を大きくしても問題ない. •  PCが複数(warp ごとに)あるので, メモリアクセスによるストールは当該のwarp がストールするだけで良い. •  複数のWarpの実行順序に任意性が存在する •  Warp Scheduling Problem Warp 1 Warp 2 Warp 3 Warp 4 ISCA'13 勉強会 5
  6. 6. 単純な Warp Scheduling Data 0 32 64 96 127 Inst1 Inst2 Inst3 1 2 3 4 5 6 7 8 12 11 10 9 … memi 404 403 402 401 2013年 8月 22日 木曜日 Warp 1 Warp 2 Warp 3 Warp 4 実行順序 メモリアクセス (Long Latency) ISCA'13 勉強会 6 •  RR: Round Robin (商用GPUで良く使われる) •  全ての Warp が同時にメモリストールし, 計算可能な warp が なくなることが多い. 従って, 実行性能が低い.
  7. 7. Warp Schedulingによるオーバーラップ実行 Data 0 32 64 96 127 Inst1 Inst2 Inst3 1 2 3 4 6 5 … mem 202 201 Group 1 2013年 8月 22日 木曜日 Group 2 Warp 1 Warp 2 Warp 3 Warp 4 メモリアクセス (Long Latency) ISCA'13 勉強会 7 実行順序 •  Two-Level Warp Scheduling (Micro’11) •  warp を グループ化し, グループ間でメモリアクセスが同時に発生しない ように実行タイミングを調整することで, 性能向上.
  8. 8. Warp Schedulingによるオーバーラップ実行 Data 0 32 64 96 127 Inst1 Inst2 Inst3 1 2 3 4 6 5 … mem 202 201 メモリアクセス (Long Latency) Group 1 2013年 8月 22日 木曜日 Group 2 Warp 1 Warp 2 Warp 3 Warp 4 203 204 205 206 208 207 404 403 Group1のメモリ アクセスとオーバー ラップ実行することで 性能向上 ISCA'13 勉強会 8 実行順序 •  Two-Level Warp Scheduling (Micro’11) •  warp を グループ化し, グループ間でメモリアクセスが同時に発生しない ように実行タイミングを調整することで, 性能向上.
  9. 9. 0 1 2 3 4 5 6 7 SSC PVC KMN SPMV BFSR FFT SCP BLK FWT JPEG GMEAN Round-robin (RR) Two-level (TL) 理想的にプリフェッチが成功した場合のIPC向上率 2.20X 1.88X 2013年 8月 22日 木曜日 予備評価: GPGPUでプリフェッチを考える ことにどれくらい意味があるのか? ISCA'13 勉強会 9 •  RR, TL ともにプリフェッチによって性能を向上できる余地は 大きい.
  10. 10. 想定するプリフェッチアルゴリズム •  様々なプリフェッチアルゴリズムが考えられるが, HWの実装 コストが小さい以下のアルゴリズムを想定. •  Spatial Locality Detection Based Prefetching 1.  連続するアドレスに対応するCache Lineをグループ化する. •  e.g. Cache Block 128B, 2つのCache Blockを一つのGroupにする 2.  各Group内に存在するCache Blockの半分がミスしたら, 残りの Cache Blockをプリフェッチ 2013年 8月 22日 木曜日 ISCA'13 勉強会 10 Line1 Line2 Miss Prefetch Group of Cache Lines
  11. 11. TL Scheduling時のプリフェッチ動作とその問題点 •  同一グループ内のwarp が利用するデータしかプリフェッチされず, 性能が向上しない •  異なるWarp group は, 異なるCache Group内のデータを利用するた め, プリフェッチ対象にならない. 2013年 8月 22日 木曜日 ISCA'13 勉強会 11 Data 0 32 64 96 127 … mem 202 201 Group 1 Group 2 Warp 1 Warp 2 Warp 3 Warp 4 メモリアクセス (Long Latency) Miss Prefetch Prefetch が間に合わないので, 結局ミス. 性能向上効果はない à Schedulingの工夫で, 何とかならないか? Cache Group
  12. 12. 提案手法: Prefetch-aware warp (PA) scheduling 2013年 8月 22日 木曜日 Data 0 32 64 96 127 Inst1 Inst2 Inst3 1 2 3 4 6 5 … mem 202 201 Group 1 Group 2 Warp 1 Warp 2 Warp 3 Warp 4 メモリアクセス (Long Latency) メモリアクセス (Long Latency) ISCA'13 勉強会 12 実行順序 •  TL Scheduling における warp grouping の仕方を, ストライド方式に 変更
  13. 13. 提案手法: Prefetch-aware warp (PA) scheduling 2013年 8月 22日 木曜日 Data 0 32 64 96 127 Inst1 Inst2 Inst3 1 2 3 4 6 5 … mem 202 201 Group 1 Group 2 Warp 1 Warp 2 Warp 3 Warp 4 メモリアクセス (Long Latency) メモリアクセス (Long Latency) 203 205 207 403 204 206 208 404 Group1のメモリ アクセスとオーバー ラップ実行することで 性能向上 ISCA'13 勉強会 13 実行順序 •  TL Scheduling における warp grouping の仕方を, ストライド方式に 変更
  14. 14. PA Scheduling 時のプリフェッチ動作 •  異なるグループの warp が利用するデータをプリフェッチできる •  異なる warp group は, 異なる Cache Group内のデータを 利用しやすい. 2013年 8月 22日 木曜日 ISCA'13 勉強会 14 Data 0 32 64 96 127 … mem 202 201 Warp 1 Warp 2 Warp 3 Warp 4 メモリアクセス (Long Latency) Miss Prefetch Cache Group Group 1 Group 2 Miss Prefetch
  15. 15. PA Scheduling 時のプリフェッチ動作 •  異なるグループの warp が利用するデータをプリフェッチできる •  異なる warp group は, 異なる Cache Group内のデータを 利用しやすい. 2013年 8月 22日 木曜日 ISCA'13 勉強会 15 Data 0 32 64 96 127 … mem 202 201 Warp 1 Warp 2 Warp 3 Warp 4 メモリアクセス (Long Latency) Miss Prefetch Cache Group Group 1 Group 2 Miss Prefetch 403 404 Group2 のメモリ命令以前の命令実行中に プリフェッチが終了. L1D にヒットするため, 性能が向上する! Hit Hit
  16. 16. 評価環境 •  GPGPU-Sim: GPUのサイクルレベルシミュレータ •  ハードウェア構成 •  30 SMs, 8 memory controllers, crossbar connected •  1300MHz, SIMT Width = 8, Max. 1024 threads/core •  32 KB L1 データキャッシュ, 8 KB Texture and Constant Caches •  L1 Prefetcher : Locality Detector based Prefetcher •  GDDR3@1100MHz •  ベンチマークアプリ •  Mapreduce Applications •  Rodinia •  Parboil •  NVIDIA CUDA SDK – GPGPU Applications 2013年 8月 22日 木曜日 ISCA'13 勉強会 16
  17. 17. プリフェッチの正確さの評価 85% 89% 90% 0% 20% 40% 60% 80% 100% 89% 86% 69% 0% 20% 40% 60% 80% 100% Fraction of Late Prefetches Prefetch Accuracy RR+Prefetching TL+Prefetching PA+Prefetching 2013年 8月 22日 木曜日 •  PA Scheduling によって, 間に合わないプリフェッチリクエストの 数が減少. ISCA'13 勉強会 17
  18. 18. プリフェッチによるミス率の減少幅 •  間に合うプリフェッチが増えたことで, L1 D キャッシュのミス率 削減率が, 大幅に増加. 2013年 8月 22日 木曜日 2% 4% 16% 0% 5% 10% 15% 20% Reduction in L1D Miss Rates RR+Prefetching TL+Prefetching PA+Prefetching ISCA'13 勉強会 18
  19. 19. 性能評価 (IPC向上率) •  Round Robin+ Prefetching に対して 25% 性能向上 •  Two Level Scheduling + Prefetching に対して 7% 性能向上 2013年 8月 22日 木曜日 0.5 1 1.5 2 2.5 3 SSC PVC KMN SPMV BFSR FFT SCP BLK FWT JPEG GMEAN RR+Prefetching TL TL+Prefetching Prefetch-aware (PA) PA+Prefetching 1.01 1.16 1.19 1.20 1.26 ISCA'13 勉強会 19
  20. 20. まとめ •  GPGPU アーキテクチャのHW最適化のお話 •  やはり, GPGPUはメモリがボトルネック. コア内での並列 スレッドの実行順序を工夫することで, 既存プリフェッチ手法の 効果を高めることに成功. •  Round Robin+ Prefetching に対して 25% 性能向上 •  Two Level Scheduling + Prefetching に対して 7% 性能向上 •  プリフェッチの効果を高めるための, スレッドスケジューリング という発想が面白い. 2013年 8月 22日 木曜日 ISCA'13 勉強会 20

×