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屋さん側でも様々な研究
がなされ始めている.
で, 今回の紹介論文.
•  「Orchestrated Scheduling and Prefetching for GPGPUs」
Adwait Jog et al. ISCA’13
HW プリフェッチを用いて, GPGPUプログラムのメモリアクセス
レイテンシ隠蔽を目指す.
(GP)GPUのアーキテクチャ
•  インオーダーSIMDコアが大量に詰まれており, 数千〜数万の
スレッドを並列実行.
•  各コアは数十KBのL1Dキャッシュを持つ.
•  今回の話は, 各コア上で並列スレッドの実行順序をHW側で工夫するとL1D
キャッシュへのプリフェッチが良く効くようになるという話.
2013年 8月 22日 木曜日 ISCA'13 勉強会 3
NVIDIA Kepler Architecture
SIMDとSIMT(GPGPU)の実行方式の違い	
•  SIMD
•  一つの命令を複数のデータに対して, 並列実行.
•  ベクタ長を大きくすることは難しい
•  PCが一つしかないため, メモリアクセスが発生すると全体が止まってしまうため.
Data	
0	
 32	
 64	
 96	
 127	
PC	
Inst1
Inst2
Inst3
2013年 8月 22日 木曜日 ISCA'13 勉強会 4
128 way SIMD の模式図
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
単純な 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 が
なくなることが多い. 従って, 実行性能が低い.
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 を グループ化し, グループ間でメモリアクセスが同時に発生しない
ように実行タイミングを調整することで, 性能向上.
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 を グループ化し, グループ間でメモリアクセスが同時に発生しない
ように実行タイミングを調整することで, 性能向上.
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 ともにプリフェッチによって性能を向上できる余地は
大きい.
想定するプリフェッチアルゴリズム	
•  様々なプリフェッチアルゴリズムが考えられるが, 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
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
提案手法:
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 の仕方を, ストライド方式に
変更
提案手法:
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 の仕方を, ストライド方式に
変更
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
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
評価環境
•  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
プリフェッチの正確さの評価
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
プリフェッチによるミス率の減少幅 	
•  間に合うプリフェッチが増えたことで, 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
性能評価 (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
まとめ	
•  GPGPU アーキテクチャのHW最適化のお話
•  やはり, GPGPUはメモリがボトルネック. コア内での並列
スレッドの実行順序を工夫することで, 既存プリフェッチ手法の
効果を高めることに成功.
•  Round Robin+ Prefetching に対して 25% 性能向上
•  Two Level Scheduling + Prefetching に対して 7% 性能向上	
•  プリフェッチの効果を高めるための, スレッドスケジューリング
という発想が面白い.	
2013年 8月 22日 木曜日 ISCA'13 勉強会 20

More Related Content

PDF
EnrootとPyxisで快適コンテナ生活
PDF
Router board勉強会vol2(配布用)
PDF
KVM環境におけるネットワーク速度ベンチマーク
PDF
Router board勉強会vol2(ベンチマーク班まとめ)
PDF
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
PDF
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
PDF
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
PDF
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
EnrootとPyxisで快適コンテナ生活
Router board勉強会vol2(配布用)
KVM環境におけるネットワーク速度ベンチマーク
Router board勉強会vol2(ベンチマーク班まとめ)
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術

What's hot (20)

PDF
Jubatus 新機能ハイライト
PDF
(JP) GPGPUがPostgreSQLを加速する
PDF
サバフェスLT(元うなぎ屋)
KEY
NVIDIA Japan Seminar 2012
PDF
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
PPTX
Slurmのジョブスケジューリングと実装
PDF
EthernetやCPUなどの話
PDF
Sesanboot ja
PDF
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
PDF
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
PDF
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
PDF
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
PDF
2015年度GPGPU実践基礎工学 第8回 並列計算の概念 (プロセスとスレッド)
PPTX
システムパフォーマンス勉強会#1
PPTX
システムパフォーマンス勉強会#5
PDF
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
PPTX
システムパフォーマンス勉強会#8
PDF
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
PDF
Native Memory Tracking
PDF
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)
Jubatus 新機能ハイライト
(JP) GPGPUがPostgreSQLを加速する
サバフェスLT(元うなぎ屋)
NVIDIA Japan Seminar 2012
【旧版】2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
Slurmのジョブスケジューリングと実装
EthernetやCPUなどの話
Sesanboot ja
[Cyber HPC Symposium 2019] Microsoft Azureによる、クラウド時代のハイパフォーマンスコンピューティング High...
[Azure Antenna] クラウドで HPC ~ HPC on Azure ~
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
2015年度GPGPU実践基礎工学 第8回 並列計算の概念 (プロセスとスレッド)
システムパフォーマンス勉強会#1
システムパフォーマンス勉強会#5
2015年度GPGPU実践基礎工学 第1回 学際的分野における先端シミュレーション技術の歴史
システムパフォーマンス勉強会#8
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
Native Memory Tracking
2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)
Ad

Similar to Isca13 study (20)

PDF
20180227_最先端のディープラーニング 研究開発を支えるGPU計算機基盤 「MN-1」のご紹介
PDF
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
PDF
2012-04-25 ASPLOS2012出張報告(公開版)
PDF
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
PDF
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
PDF
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
PDF
20130126 sc12-reading
PDF
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
KEY
PyOpenCLによるGPGPU入門
PDF
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
PDF
コンピュータエンジニアへのFPGAのすすめ
PDF
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
PDF
20170421 tensor flowusergroup
PDF
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PDF
Halide, Darkroom - 並列化のためのソフトウェア・研究
PDF
マルチコアのプログラミング技法 -- OpenCLとWebCL
PDF
PEZY-SC programming overview
PDF
第4回 配信講義 計算科学技術特論A (2021)
PDF
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
20180227_最先端のディープラーニング 研究開発を支えるGPU計算機基盤 「MN-1」のご紹介
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2012-04-25 ASPLOS2012出張報告(公開版)
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
20130126 sc12-reading
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
PyOpenCLによるGPGPU入門
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
コンピュータエンジニアへのFPGAのすすめ
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
20170421 tensor flowusergroup
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Halide, Darkroom - 並列化のためのソフトウェア・研究
マルチコアのプログラミング技法 -- OpenCLとWebCL
PEZY-SC programming overview
第4回 配信講義 計算科学技術特論A (2021)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
FPGA・リコンフィギャラブルシステム研究の最新動向
Ad

More from Toshiya Komoda (6)

PDF
5分で分かるselenium conference berlin 2017
PDF
Introduce Machine Learning into UI Tests
PDF
selenimu commiter day 2017: Methods to Sustain Long Term Operations of E2E Au...
PPTX
CUDA & OpenCL GPUコンピューティングって何?
PPTX
Micro12勉強会 20130303
PPTX
2012 1203-researchers-cafe
5分で分かるselenium conference berlin 2017
Introduce Machine Learning into UI Tests
selenimu commiter day 2017: Methods to Sustain Long Term Operations of E2E Au...
CUDA & OpenCL GPUコンピューティングって何?
Micro12勉強会 20130303
2012 1203-researchers-cafe

Isca13 study

  • 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