Your SlideShare is downloading. ×
Isca13 study
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Isca13 study

249
views

Published on

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

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


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
249
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ISCA’13 勉強会: Orchestrated Scheduling and Prefetching for GPGPUs 中村研究室 D3 薦田 登志矢 2013年 8月 22日 木曜日 ISCA'13 勉強会 1
  • 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. (GP)GPUのアーキテクチャ •  インオーダーSIMDコアが大量に詰まれており, 数千〜数万の スレッドを並列実行. •  各コアは数十KBのL1Dキャッシュを持つ. •  今回の話は, 各コア上で並列スレッドの実行順序をHW側で工夫するとL1D キャッシュへのプリフェッチが良く効くようになるという話. 2013年 8月 22日 木曜日 ISCA'13 勉強会 3 NVIDIA Kepler Architecture
  • 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. 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. 単純な 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. 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. 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. 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. 想定するプリフェッチアルゴリズム •  様々なプリフェッチアルゴリズムが考えられるが, 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. 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. 提案手法: 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. 提案手法: 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. 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. 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. 評価環境 •  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. プリフェッチの正確さの評価 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. プリフェッチによるミス率の減少幅 •  間に合うプリフェッチが増えたことで, 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. 性能評価 (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. まとめ •  GPGPU アーキテクチャのHW最適化のお話 •  やはり, GPGPUはメモリがボトルネック. コア内での並列 スレッドの実行順序を工夫することで, 既存プリフェッチ手法の 効果を高めることに成功. •  Round Robin+ Prefetching に対して 25% 性能向上 •  Two Level Scheduling + Prefetching に対して 7% 性能向上 •  プリフェッチの効果を高めるための, スレッドスケジューリング という発想が面白い. 2013年 8月 22日 木曜日 ISCA'13 勉強会 20

×