Download presentation
Presentation is loading. Please wait.
1
GPUにおける走行時パワーゲーティング向け スレッド発行制御手法に関する研究
高性能コンピューティング学講座 本多・近藤研究室 松本洋平
2
動作の必要がないときに 電源供給を遮断する
パワーゲーティング(PG) LSIの回路ブロックに対して 電源遮断用のスイッチを設ける 動作の必要がないときに 電源供給を遮断する リーク消費エネルギーを削減 Power Switch パワーゲーティングの回路図 1/16
3
Interconnection Network
研究目的:GPUの消費エネルギー削減 GPU Chip SIMDユニットレベルPG 演算器レベルPG コアレベルPG GPU Core Core Core 大量のプロセッサコア 大量のSIMD演算器 高い並列性 消費電力大 unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD GeForce GTX480の場合 コア部分の リーク消費電力[1] 24.15[W] Interconnection Network ( GPU全体の8% ) 階層的なPG手法を提案 DRAM Chip (GDDR5) DRAM Chip (GDDR5) コアレベル(粗粒度PG) SIMDユニットレベル(細粒度PG) 演算器レベル(細粒度PG) GPUのモデル [1] M. A. Majeed et al. Warped Gates: Gating Aware Scheduling and Power Gating for GPGPUs MICRO ’13, 2013. 2/16
4
戦略:アイドル時間の集約 分散しているアイドル時間を集約し PGの効果を最大化する コアレベル(粗粒度PG)
スレッドブロックの割り当てを制御 ネットワーク混雑度に応じたCTA発行 SIMDユニットレベル(細粒度PG) コア中のSIMDユニットでのワープ発行を制御 演算器使用率に応じたワープ発行 演算器レベル(細粒度PG) SIMDユニット中の各演算器にスレッド発行を制御 ワープ分割 スレッドコンパクション 3/16
5
戦略:アイドル時間の集約 分散しているアイドル時間を集約し PGの効果を最大化する コアレベル(粗粒度PG)
スレッドブロックの割り当てを制御 ネットワーク混雑度に応じたCTA発行 SIMDユニットレベル(細粒度PG) コア中のSIMDユニットでのワープ発行を制御 演算器使用率に応じたワープ発行 演算器レベル(細粒度PG) SIMDユニット中の各演算器にスレッド発行を制御 ワープ分割 スレッドコンパクション
6
ネットワーク混雑度に応じたCTA発行制御
コアレベルPG GTX480の場合 コアからのチャネルが15本 メモリからのチャネルが6本 オンチップネットワークが 性能のボトルネックとなる場合は PGを適用しても性能に影響が少ない Hazard Hazard いくつかのコアに対するCTAの発行を 抑制してPGを適用する 性能低下を予測した制御が必要 GPUのモデル 4/16
7
ネットワーク混雑度に応じたCTA発行制御
提案手法 ユーザーが設定した性能低下率の 範囲内でCTAの発行制御する 各ベンチマークで測定した結果を示す オンチップネットワークの ストールサイクル率 × α + 演算平均間隔(1/演算器使用率) により性能低下率を予測 ストールサイクル率 ネットワークの混雑よりメモリ側から データ送信ができずストールしているサイクル数 15コアから10コアの発行指標 14コアから8コアまで指標を 作成し、なるべく少ないコア数で実行 演算平均間隔(1/演算器使用率)… 短いほどネットワークが混雑していても 多くのコアを使用したほうが良い 初期CTA実行の際に全コアを 動作させ指標を習得して以降の コア数を決定 (1カーネル内では指標の変動はほぼないため) 15コアから13コアの発行指標 5/16
8
戦略:アイドル時間の集約 分散しているアイドル時間を集約し PGの効果を最大化する コアレベル(粗粒度PG)
スレッドブロックの割り当てを制御 ネットワーク混雑度に応じたCTA発行 SIMDユニットレベル(細粒度PG) コア中のSIMDユニットでのワープ発行を制御 演算器使用率に応じたワープ発行 演算器レベル(細粒度PG) SIMDユニット中の各演算器にスレッド発行を制御 ワープ分割 スレッドコンパクション
9
細粒度PGの問題点:電力オーバーヘッド 6/16
電源のON/OFFによる電力オーバーヘッドが発生してしまうため 出来る限りActive/Sleepの移行回数を少なくする必要がある 分散している演算器のアイドルサイクルをまとめてPGする必要がある 6/16
10
GPUコア中には複数個の SIMDユニットが搭載されている
GPU core GPU core 演算 演算器に空きがあれば すぐにSIMD演算を発行 演算 演算 演算 演算 演算 SIMD演算間で短いアイドルが 発生してしまう 演算 演算 演算 演算 提案手法 片方のSIMD ユニットのみに 演算を発行する SIMD1 SIMD2 SIMD1 SIMD2 発行制御前 発行制御後 ただし、性能低下する可能性あり SIMDユニットPG 7/16
11
戦略:アイドル時間の集約 分散しているアイドル時間を集約し PGの効果を最大化する コアレベル(粗粒度PG)
スレッドブロックの割り当てを制御 ネットワーク混雑度に応じたCTA発行 SIMDユニットレベル(細粒度PG) コア中のSIMDユニットでのワープ発行を制御 演算器使用率に応じたワープ発行 演算器レベル(細粒度PG) SIMDユニット中の各演算器にスレッド発行を制御 ワープ分割 スレッドコンパクション
12
1ワープ(32スレッド)の命令処理を行うには同じ命令を 2回連続で実行しワープを処理する
GPUのスレッド実行 1つのSIMDユニット内でのスレッド実行(アニメーション) 1ワープ(32スレッド)の命令処理を行うには同じ命令を 2回連続で実行しワープを処理する 8/16
13
問題点:モード切り替えの頻発 9/16 演算の位置がばらばらであると、 演算器のアイドルは時間的に分散 BET以下でのPGとなり
消費電力が増大する可能性 電源のON/OFF 回数を削減して 分散してしるアイドル集約したい 2つのスレッド発行制御手法を提案 ワープ発行制御 スレッドコンパクション 青:PGにより消費電力を削減 黄:PGにより消費電力を削減 or 損失 赤:PGにより損失が発生 SIMDユニット内でのスレッド実行例 9/16
14
1ワープ を2ワープ に分割することで 使用する演算器を半分にすることで 不使用になった演算器を長期間PG
ワープ分割 空きスロットが存在 演算器が使用されないサイクルが発生 プログラム中の並列度の不足 オンチップネットワークのストール キャッシュミス 提案手法 warp分割 1ワープ を2ワープ に分割することで 使用する演算器を半分にすることで 不使用になった演算器を長期間PG 不使用演算器に対して長期間PGを 適用可能になる ただし、性能低下する可能性あり 10/16
15
演算器使用率に応じて SIMDユニット発行制御と
ワープ発行制御 性能低下の恐れのある SIMDユニットに対するワープ発行制御 ワープ分割 の両者に統一的な制御が必要 提案手法 演算器使用率に応じて SIMDユニット発行制御と ワープ分割を組み合わせた 4モードを制御 性能低下を防ぎつつ 演算器をPG可能 11/16
16
コンパクション(集約)することで 不使用になった演算器を長期間PG
スレッドコンパクション 通常であればスレッド毎に 使用する演算器が固定されている 提案手法 スレッドコンパクション スレッドコンパクション 一部の演算器に対してスレッド発行を コンパクション(集約)することで 不使用になった演算器を長期間PG 性能には影響なし 12/16
17
評価手法 HWシミュレーター:GPGPU-Sim (version 3.2.0) 提案手法の評価手法 ベンチマーク集 13/16
HWモデル:GeForce GTX 480 提案手法の評価手法 各手法によるリークエネルギー削減効果を評価 仮定:BET以上のアイドルサイクルは理想的にPGが適用できる ベンチマーク集 Rodinia, ISPASS, NVIDIA SDK 13/16
18
コアレベルPGの評価結果 14/16 BFS, MUM, lud, cfd はアクティブサイクルを 削減することができた
性能低下の目標値 性能低下の目標値 BFS, MUM, lud, cfd はアクティブサイクルを 削減することができた 暫定的に発行制御の指標を作成したため 適当でない発行制御をしてしまっている 今後の課題 14/16
19
SIMDユニット・演算器レベルPGの評価結果
高削減 低削減 スレッド発行制御とコンパクションの相乗効果が見られた スレッド発行制御+コンパクション スレッドコンパクション スレッド発行制御 SIMDユニット使用率の低いBFSで8ポイント, MUMで6ポイントの効果が得られた 分岐命令の多いBFSで16 ポイント, MUMで6 ポイントの 効果が得られた 15/16
20
まとめと今後の展望 まとめ 今後の展望 学会発表 GPU上のリーク消費エネルギー削減手法を提案
シミュレーションによる評価の結果、 リーク消費電力を効率的に削減できる可能性あり 今後の展望 より性能を抑えつつさらに効率的なPG手法の考案 より現実的な評価 学会発表 第196回計算機アーキテクチャ研究発表会 第199回ARC・第142回HPC合同研究発表会 16/16
22
SIMD ユニットレベルPGの評価結果 提案手法ほとんど性能に影響はない (スレッドコンパクションは性能に影響しないため評価は省略)
実行時間 : 長 実行時間 : 短 提案手法ほとんど性能に影響はない (スレッドコンパクションは性能に影響しないため評価は省略)
23
(スレッドコンパクションは本制御とは独立に常に適用可能 )
スレッド発行制御手法:ワープ発行制御 制御手法 State-1(再載) State-3(再載) タイムスライスベースの制御 ワープ実行をある一定の期間Tに区切る タイムスライスの最後に測定したSIMDユニット使用率の結果から、 次のタイムスライスで用いる状態を決定する (スレッドコンパクションは本制御とは独立に常に適用可能 )
24
スレッド発行制御手法:アーキテクチャ 17/31 アーキテクチャーの詳細な 構想については今後の課題 命令デコーダ 命令デコーダ 演算器
N/2ポート セレクタ N/2ポート セレクタ 演算器 演算器 演算器 演算器 演算器 演算器 演算器 演算器 演算器 演算器 演算器 演算器 (a)スレッドコンパクション 命令デコーダ 通常のGPUの構成 アーキテクチャーの詳細な 構想については今後の課題 演算器 演算器 演算器 演算器 演算器 演算器 (b)warp分割 17/31
25
研究目的:GPUの消費電力削減 文献[2]ではGeForce GTX480の 消費電力を10コンポーネントに 分類している
本提案手法の範囲は EXE, RF, Constant , Pipelineの4コンポーネントが 対象である 提案手法の影響範囲は GPU総消費電力の55.9% [2] Jingwen Leng et al. GPUWattchy : Enabling Energy Optimizations in GPGPUs ISCA ’13, pp , 2013.
26
GPU Chip GPU Chip Core Cluster Core Cluster Core Cluster Core Cluster
unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD unit SIMD Buffer Buffer Buffer Buffer Buffer Interconnection Network Interconnection Network L2 Cache DRAM Chip (GDDR5) L2 Cache DRAM Chip (GDDR5) L2 Cache DRAM Chip (GDDR5) L2 Cache DRAM Chip (GDDR5) L2 Cache DRAM Chip (GDDR5)
27
GPUのSIMDユニット使用率 50サイクル毎の演算器使用率の推移 演算器をPG できる機会が多く存在する LPSのSIMDユニット使用率
BFSのSIMDユニット使用率 50サイクル毎の演算器使用率の推移 LPS では75%以下の演算器使用率が点在 BFS では演算器使用率が50%以下の部分がほとんど 演算器をPG できる機会が多く存在する
28
GPU上でのCTA 発行 通常のCTAスケジューリング ラウンドロビン方式 全てのコアに均等にCTA が割り当てられるために
CTA : Cooperative Thread Array 通常のCTAスケジューリング ラウンドロビン方式 全てのコアに均等にCTA が割り当てられるために コアをPGできる機会はほとんどない
29
SIMDユニットレベルの細粒度PG 50サイクル毎の演算器使用率の推移(LPS) 演算器を細粒度にPGできる機会が多く存在する
演算器使用率[%] 50サイクル毎の演算器使用率の推移(LPS) LPS では75%以下の演算器使用率が点在 演算器を細粒度にPGできる機会が多く存在する
30
T[cycle] T[cycle] T[cycle] T[cycle] SIMDユニット使用率 75% 50% 75% ワープ発行制御 State-1 State-3 State-1 T 2T 3T 4T
31
コアレベルPG手法:CTA ブロック割り当て
少なかった場合 一部のコアにCTA発行を止めてPG適用 性能低下を抑えつつPG 可能
32
CTAブロック割り当ての評価結果 全てのベンチマークで アクティブサイクルの削減と PG によりリーク電力削減が 期待できる
LIBでは性能低下率は3%で アクティブサイクルを45%削減 とても高い効果 相対実行サイクル
33
GPU上でのCTA 発行 通常のCTAスケジューリング ラウンドロビン方式
CTA:Cooperative Thread Array PG適用 通常のCTAスケジューリング ラウンドロビン方式 GPUコアにCTAを割り当てずPGを適用して GPUコアのPGできる機会を増やすことを考える
35
Kernel CTA warp CUDA Application Kernel 1 Kernel 2 Kernel N CTA 1
Warp N CTA N Kernel N
36
GPU core Branch unit SIMD unit I-Buffer Issue fetch() decode() issue()
ALU I-Cache Decode I-Buffer Score Board Issue Operand Collector MEM Fetch SIMT-Stack Done (WID) Valid[1:N] Branch Target PC Pred. Active Mask fetch() decode() issue() read_operand() execute() writeback() GPU core Thread Pool (up to 1536 Thread) Branch unit Fetch &Decode SIMD unit Active mask CTA 1 CTA 2 Active mask Read Operand I-Buffer Issue Memory unit CTA 7 CTA 8
37
0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 1 0 A B C D E F G
38
SIMD Lane ID A B C D E F G warp実行順序 0 1 2 3 1 1 1 1 0 0 1 1 0 1 0 1
0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 warp実行順序 B C D E F G A 0 1 2 3 SIMD Lane ID
39
Kernel GPU core 1 GPU core 2 GPU core 15 Application Thread Pool
GPGPU Application Kernel Kernel 0 CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA CTA GPU core 1 GPU core 2 GPU core 15 Thread Pool (up to 1536 Thread) Thread Pool (up to 1536 Thread) Thread Pool (up to 1536 Thread) CTA 0 CTA 1 CTA 2 CTA 3 CTA 28 CTA 29 CTA 90 CTA 91 CTA 92 CTA 93 CTA 118 CTA 119
40
Kernel GPU core 1 GPU core 2 GPU core 15 Application Thread Pool
GPGPU Application Kernel Kernel 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA CTA GPU core 1 GPU core 2 GPU core 15 Thread Pool (up to 1536 Thread) Thread Pool (up to 1536 Thread) Thread Pool (up to 1536 Thread) CTA 1 CTA 2 CTA 3 CTA 4 CTA 71 CTA 72 CTA 73 CTA 74
41
Kernel GPGPU Application GPU core 1 GPU core 1 Thread Pool
CTA 1 CTA 1 CTA CTA CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA CTA Thread Pool (up to 1536 Thread) CTA 1 GPU core 1 CTA 7 CTA 2 CTA 8 Thread Pool (up to 1536 Thread) CTA 1 GPU core 1 CTA 7 CTA 2 CTA 8
42
Kernel GPGPU Application GPU core 1 GPU core 2 GPU coreN Thread Pool
CTA 1 CTA 1 CTA CTA CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA 1 CTA CTA Thread Pool (up to 1536 Thread) CTA 1 GPU core 1 CTA 7 CTA 2 CTA 8 Thread Pool (up to 1536 Thread) CTA 1 GPU core 2 CTA 7 CTA 2 CTA 8 Thread Pool (up to 1536 Thread) GPU coreN
43
60%~100% 50%~75% 25%~50% 50%~75% 60%~100% 10%~35% 0%~25% 0%~25%
SIMDユニット2 SIMDユニット1 GPUコア(State-1) SIMDユニット2 SIMDユニット1 GPUコア(State-3) 25%~50% 50%~75% 60%~100% 0%~25% 60%~100% 0%~25% 10%~35% SIMDユニット2 SIMDユニット1 GPUコア(State-2) SIMDユニット2 SIMDユニット1 GPUコア(State-4) 35%~60% 35%~60% 0%~25%
44
関連研究 GPU上のPG GPUのスレッド発行制御 CPUにおける細粒度PG 30/31
Yue Wang , et al. Run-time power-gating in caches of GPUs for leakage energy savings. DATE12,pp ,2012. キャッシュのPGであり、演算器はPGの対象としてない GPUのスレッド発行制御 Minsoo Rhu , et al. CAPRI: Prediction of Compaction-Adequacy for Handling Control-Divergence in GPGPU Architectures. ISCA ’12, pp.61-71, 2012. 演算器使用効率の向上を目的としたスレッド コンパクションでGPUの性能を向上させる手法 CPUにおける細粒度PG 関直臣ら, “MIPS R3000 プロセッサにおける細粒度動的スリープ制御の実装と評価”, 電子情報通信学会論文誌, pp , 2010 年. MIPS R3000プロセッサ上で,OSやコンパイラが ハードウェアによるPGを制御する手法 30/31
45
スレッド発行器 スケジューラ W W W W A A B C 演算器 演算器 スレッド スレッド W W x warp x warp
46
W W W A B C 演算器 スレッド W x warp
47
W W W A B C 演算器 スレッド W x warp
48
W 1 W 2 W 1 W 2 W 1 W 2 A A B B C C 演算器 スレッド W x warp
49
SIMD ユニットレベルPGの評価結果 高削減 低削減 スレッド発行制御 BFS, CP, MUM 演算器の使用率が低いベンチマーク
normal に比べてリーク消費電力の削減効果は BFSで8ポイント,CPで6 ポイント,MUMで5 ポイントであった
50
SIMD ユニットレベルPGの評価結果 高削減 低削減 スレッド発行制御 リーク消費電力の削減効果が僅か
hotspot, LPB, LPS 演算器の使用率が高いベンチマーク リーク消費電力の削減効果が僅か
51
SIMD ユニットレベルPGの評価結果 高削減 低削減 スレッド発行制御 NN もともと演算器の空きが多い リーク消費電力の削減効果が僅か
52
SIMD ユニットレベルPGの評価結果 高削減 低削減 BFS, MUM 全命令中の分岐命令の割合が多い スレッドコンパクション
normal に比べてそれぞれ16 ポイント,6 ポイント増加の リークエネルギー削減効果が得られた スレッドコンパクション
53
SIMD ユニットレベルPGの評価結果 高削減 低削減 その他 全命令中の分岐命令の割合が少ない スレッドコンパクション
その他 全命令中の分岐命令の割合が少ない スレッドコンパクションの効果がほとんど得られていない スレッドコンパクション
54
SIMD ユニットレベルPGの評価結果 高削減 低削減 スレッド発行制御+コンパクション
スレッド発行制御とコンパクションの相乗効果が見られた スレッド発行制御+コンパクション
Similar presentations
© 2025 slidesplayer.net Inc.
All rights reserved.