SlideShare a Scribd company logo
1 of 20
Download to read offline
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

What's hot

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

What's hot (20)

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

Similar to Isca13 study

ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
Sparkパフォーマンス検証
Sparkパフォーマンス検証Sparkパフォーマンス検証
Sparkパフォーマンス検証BrainPad Inc.
 
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来Preferred Networks
 
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2Computational Materials Science Initiative
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...Takuma Usui
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術Preferred Networks
 
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryAtsushi Koshiba
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編Daiyu Hatakeyama
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_finalTakano Masaru
 
[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること
[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること
[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていることDeep Learning JP
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus WorkshopHitoshi Sato
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectComputedasyprocta
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価Toshiaki Hishinuma
 

Similar to Isca13 study (20)

ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるLoadingとGCのProfilingと最適化手法UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるLoadingとGCのProfilingと最適化手法
 
[DL Hacks]FPGA入門
[DL Hacks]FPGA入門[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
 
Sparkパフォーマンス検証
Sparkパフォーマンス検証Sparkパフォーマンス検証
Sparkパフォーマンス検証
 
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
 
Cmc cmd slim
Cmc cmd slimCmc cmd slim
Cmc cmd slim
 
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
CMSI計算科学技術特論A(7) 線形代数演算ライブラリBLASとLAPACKの基礎と実践2
 
20130126 sc12-reading
20130126 sc12-reading20130126 sc12-reading
20130126 sc12-reading
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_final
 
[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること
[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること
[DL Hacks]ディープラーニングを まともに動かすために ハードウェアの人が考えていること
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
 

More from Toshiya Komoda

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

More from Toshiya Komoda (6)

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