1 / 47

稼働コア数制限に基づく マルチコア・ プロセッサ 性能向上手法の提案

稼働コア数制限に基づく マルチコア・ プロセッサ 性能向上手法の提案. 九州大学大学院 今村 智史  福本 尚人 井上 弘士 村上 和彰. 発表手順. マルチコアにおける並列処理の問題 稼働コア数制限に基づく高性能化手法 基本概念 定量的評価 実行時間モデルを用いた稼働コア数決定法 まとめと今後の課題. 発表手順. マルチコアにおける並列処理の問題 稼働コア数制限に基づく高性能化手法 基本概念 定量的評価 実行時間モデルを用いた稼働コア数決定法 まとめと今後の課題. マルチコアに おける 並列処理. 並列 プログラム. スレッド. スレッド.

essien
Download Presentation

稼働コア数制限に基づく マルチコア・ プロセッサ 性能向上手法の提案

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 稼働コア数制限に基づくマルチコア・プロセッサ性能向上手法の提案稼働コア数制限に基づくマルチコア・プロセッサ性能向上手法の提案 九州大学大学院 今村 智史 福本 尚人 井上 弘士 村上 和彰

  2. 発表手順 • マルチコアにおける並列処理の問題 • 稼働コア数制限に基づく高性能化手法 • 基本概念 • 定量的評価 • 実行時間モデルを用いた稼働コア数決定法 • まとめと今後の課題

  3. 発表手順 • マルチコアにおける並列処理の問題 • 稼働コア数制限に基づく高性能化手法 • 基本概念 • 定量的評価 • 実行時間モデルを用いた稼働コア数決定法 • まとめと今後の課題

  4. マルチコアにおける並列処理 並列 プログラム スレッド スレッド スレッド スレッド • マルチコア・プロセッサが主流 • 1チップに複数のコアを搭載 • プログラムを複数スレッドに分割し,各コアに割り当てることで並列処理が可能 • 理想的にはコア数に比例した性能向上 コア コア コア コア 共有キャッシュ マルチコアの概略図

  5. マルチコアにおける並列処理の問題 blackscholes Radix 性能比 性能比 稼働コア数増加に伴い 性能向上 メモリアクセスにより 性能向上が阻害 稼働コア数 稼働コア数 ferret streamcluster 性能比 性能比 稼働コア数増加に伴い 性能向上が頭打ち 稼働コア数を32に増加させると性能低下 稼働コア数 稼働コア数

  6. 並列処理による性能向上の阻害要因 • 逐次処理 • 排他制御   • ロードインバランス

  7. 逐次処理と排他制御による性能向上の阻害 • 並列プログラムには逐次処理部分と並列処理可能部分が存在 • 逐次処理部分は1コアのみで実行 • プログラムの整合性を保つためにクリティカルセクション(CS)が存在 • CS:共有データにアクセスするプログラムの部分 • CS内の処理を行う間は排他制御 ⇒他のコアを待機させ,1コアのみで実行 並列処理による性能向上を阻害

  8. ロードインバランスによる並列処理性能向上の阻害ロードインバランスによる並列処理性能向上の阻害 • コア毎に処理時間が異なる場合 • バリア同期を行う度に処理時間が最も長いコアのバリアへの到達を他の全コアが待機  ⇒効率的な並列処理を行えない • バリア同期:全コアがバリアに到達するまで各コアを待機させ,        全コアが到達すると処理を同時に開始

  9. 既存の解決手法 • 稼働コア数制限手法[1] • 稼働コア数増加に伴い性能向上しない場合に稼働コア数をあえて制限 • 性能を維持または向上しつつ,消費電力削減 ferret streamcluster 性能比 性能比 性能を維持しつつ 消費電力削減 性能を向上しつつ 消費電力削減 稼働コア数 稼働コア数 [1] Suleman, Met al.: Feedback-driven threading: power-efficient and high-performance execution of multi-threaded workloads on CMPs, ACM,(2008). 9

  10. 稼働コア数に応じた動作周波数上昇手法 • Intel社のTurboBoost[2] • プロセッサの消費電力・発熱量を動的に監視 • 消費電力・発熱量が上限値に達していない場合,稼働コアへの供給電圧と動作周波数を上昇 • 稼働コア数が少ないほど,消費電力・発熱量は減少⇒稼働コアの動作周波数を大幅に上昇可能 4コア稼働時 2コア稼働時 f上昇 f上昇 コア コア コア コア コア 休止 コア 休止 共有L2キャッシュ 共有L2キャッシュ [2] Intel Corporation: Intel Turbo Boost Technology in Intel Core Microarchitecture (Nehalem)Based Processors. ,Whitepaper,(2008).

  11. 研究目的 • 着眼点 • プログラムに応じた稼働コア数制限により性能を維持または向上しつつ消費電力を削減可能 • 稼働コア数に応じて動作周波数上昇可能 消費電力制約下において並列性(稼働コア数)と稼働コアの動作周波数上昇の適切なトレードオフポイントを選択⇒マルチコアによる並列プログラム実行の高速化

  12. 発表手順 • マルチコアにおける並列処理の問題 • 稼働コア数制限に基づく高性能化手法 • 基本概念 • 定量的評価 • 実行時間モデルを用いた稼働コア数決定法 • まとめと今後の課題

  13. 稼働コア数制限に基づくマルチコア・プロセッサ性能向上手法稼働コア数制限に基づくマルチコア・プロセッサ性能向上手法 稼働コア数増加に伴い性能向上が得られない場合・・・ 休止させたコアの消費電力バジェットを稼働コアに再割り当て⇒稼働コアの動作周波数上昇 稼働コア数をあえて制限⇒消費電力削減 f上昇 f上昇 休止 休止 ferret 動作周波数上昇 性能比 コア コア コア コア 稼働コア数制限 共有L2キャッシュ 稼働コア数

  14. ベンチマークプログラムを用いた定量的評価 • 比較対象 • all_core:全コア(32コア)による実行 • throttling:性能向上を最大にする稼働コア数(最適コア数)による実行 • 動作周波数上昇なし • proposal_opt:最適コア数で実行する場合の提案手法 • 前提 • プログラム全体を通して一定の動作周波数で実行 • throttling,proposal_optにおいて最適コア数は既知

  15. 評価環境 • シミュレータ:マルチコアシミュレータM5 • ベンチマーク・プログラム • PARSECからblackscholes,dedup,swaptions,streamcluster,ferretの5つ サイズ:32[KB] アクセス時間0.5[ns] L1キャッシュ L1キャッシュ L1キャッシュ Core0 Core1 Core31 ・・・ サイズ:16[MB] アクセス時間:4[ns] 共有L2キャッシュ 主記憶 アクセス時間:150[ns] シミュレータの設定

  16. 稼働コア数に応じた動作周波数 • 全コア(32コア)稼働時の消費電力を上限値に設定 • 消費電力が上限値を超えないよう,稼働コア数に応じて動作周波数と供給電圧を決定 • 動作周波数は100MHzごと,供給電圧は38mVごとに変化 • 最大動作周波数は5GHz α:スイッチング確率   C:1コア当たりの負荷容量 f:定格周波数(2GHz)V:定格供給電圧(1.3V) 動作周波数[GHz] 4 8 12 16 20 24 28 32 稼働コア数

  17. 評価結果(性能) 7 6 15 32 32 28 性能向上比 8 32 32 32 ベンチマーク・プログラム • 稼働コア数制限手法 • ferret,streamclusterにおいて性能を低下させず稼働コア数を制限 • 最適コア数で実行する場合の提案手法 • ferret,streamclusterにおいて性能向上達成 事前実行時間短縮のために 最適コア数の予測が必要

  18. 発表手順 • マルチコアにおける並列処理の問題 • 稼働コア数制限に基づく高性能化手法 • 基本概念 • 定量的評価 • 実行時間モデルを用いた稼働コア数決定法 • まとめと今後の課題

  19. 実行時間モデルによる稼働コア数決定法 プロファイル情報 並列プログラム 事前実行 実行時間が最短となる場合のコア数を稼働コア数に決定 代 入 コア数に応じた実行時間を計算 実行時間モデル 実行時間[秒] コア数

  20. 実行時間モデル 稼働コア数 並列処理可能部分 逐次処理部分 稼働コア数に応じた動作周波数 CC:1コアでのプログラム実行に要する総クロックサイクル数 Pseq:全プログラム実行時間に対する逐次処理部分の実行時間の割合 CS:全プログラム実行時間に対するクリティカルセクション実行時間の割合 クリティカルセクション(CS)における排他制御に注目

  21. 最適コア数と実行時間モデルにより決定したコア数での性能比較最適コア数と実行時間モデルにより決定したコア数での性能比較 proposal_model:実行時間モデルにより決定したコア数で実行する場合の提案手法 7 6 7 性能向上比 32 32 32 32 28 32 10 ベンチマーク・プログラム • blacksholes,swaptions:最適コア数と同じコア数を決定 • ferret:最適コア数に近いコア数を決定 • 約73%性能向上 • dedup,streamcluster:最適コア数に近いコア数を決定できていない

  22. 実行時間モデルの妥当性に対する考察[精度が高い場合]実行時間モデルの妥当性に対する考察[精度が高い場合] • 逐次処理部分とCSを除いた並列処理可能部分の実行時間がプログラム実行時間の約99%を占める • 性能向上阻害要因の影響が極めて小さい  ⇒実測性能とほぼ同等の性能を予測可能

  23. 実行時間モデルの妥当性に対する考察[精度が低い場合(1/2)]実行時間モデルの妥当性に対する考察[精度が低い場合(1/2)] • 稼働コア数が20未満の場合,実測値<予測値 • 実際の実行:ロードインバランスなパイプライン並列処理[3] • 実行時間モデル:ロードインバランスを未考慮のため性能を過大予測 • 稼働コア数が20以上の場合,実測値≧予測値 • 実際の実行:CSに無関係な処理は並列処理可能 • 実行時間モデル:CS実行時には,常に全コアが同一のCSを実行すると想定しているため性能を過小予測 [3] Bienia, C. et al: The PARSEC benchmark suite: Characterization and architectural implications,ACM,(2008).

  24. 実行時間モデルの妥当性に対する考察[精度が低い場合(2/2)]実行時間モデルの妥当性に対する考察[精度が低い場合(2/2)] • CSの割合が極めて小さいが,稼働コア数増加に伴い性能低下 • 実際の実行:多数のバリア同期[4]⇒バリア同期を行う度にロードインバランスの影響により待ち時間発生 • 実行時間モデル:ロードインバランスを未考慮のため,性能を過大予測 [4] Navarro, A et al.: Analytical modeling of pipeline parallelism,PACT, (2009).

  25. 発表手順 • マルチコアにおける並列処理の問題 • 稼働コア数制限に基づく高性能化手法 • 基本概念 • 定量的評価 • 実行時間モデルを用いた稼働コア数決定法 • まとめと今後の課題

  26. まとめと今後の課題 • 稼働コア数制限に基づくプロセッサ性能向上手法 • 稼働コア数をあえて制限し,稼働コアの動作周波数を上昇 • 実行時間モデルとプロファイル情報から稼働コア数を決定 • 最適コア数で実行する場合,最大2倍以上の性能向上 • 実行時間モデルにより決定した稼働コア数で実行する場合,最大約73%の性能向上 • 今後の課題 • 実行時間モデルを再検討し,稼働コア数決定法の精度向上 • CSの実行時間を再検討 • ロードインバランスによる影響も考慮

  27. ご清聴ありがとうございました

  28. Backup slide

  29. 稼働コア数制限手法[1] • 稼働コア数増加に伴い性能向上しない場合⇒稼働コア数を制限 • 性能を維持または向上しつつ,消費電力削減 • 2つの阻害要因に着目 • クリティカルセクションにおける排他制御 • オフチップメモリバンド幅の制限 ferret 性能比 稼働コア数 [1]M.A. Suleman et al.”feedback-driven threading: power- efficient and high- performance execution of multi-threaded workloads on cmps”. 2008.

  30. 実測値と予測値の比較~ferret~ • CSにおける排他制御が性能へ大きく影響⇒予測値が実測値と同様の傾向を示す • 実際の実行:ロードインバランスなパイプライン並列処理[3] • 実行時間モデル:ロードインバランスを未考慮のため性能を過大予測 ferret 予測値 性能比 実測値 稼働コア数

  31. 消費エネルギー比の算出方法 • 全コア実行時に対する消費エネルギー比= 消費電力比×実行時間比

  32. 評価結果(消費エネルギー) 10 32 32 32 32 28 32 32 32 32 7 消費エネルギー比 6 7 15 8 ベンチマーク・プログラム • 最適コア数で実行する場合の提案手法 • dedup,ferret,streamclusterにおいて消費エネルギー削減 • 提案手法(実行時間モデルにより稼働コア数決定) • dedupおいて消費エネルギー増加 • ferretにおいて消費エネルギー削減

  33. 現代のプロセッサ • マルチコア・プロセッサが一般的 • 1チップに複数のコアを搭載 • 並列処理により性能向上 • 同消費電力制約下のシングルコアに比べ電力効率に優れる Intel Corei7ダイ写真 出典: http://www.atmarkit.co.jp/fsys/zunouhoudan/102zunou/corei7.html

  34. なぜマルチコアなのか? • シングルコアに比べ電力効率に優れる • プロセッサの動的消費電力 • 上式をシングルコアの動的消費電力とする • コア数2,動作周波数50%低下,供給電圧20%低下のマルチコアの動的消費電力を考えると... α:スイッチング確率 C:コア1つ当たりの負荷容量 f:動作周波数 V:供給電圧 性能を維持しつつ動的消費電力を36%削減

  35. ロードインバランスによる並列処理性能向上の阻害ロードインバランスによる並列処理性能向上の阻害 • コア毎に処理時間が異なる場合 • バリア同期を行う度に処理時間が最も長いコアのバリアへの到達を他の全コアが待機 • バリア同期:全コアがバリアに到達するまで各コアを待機させ,        全コアが到達したら処理を同時に開始  ⇒効率的な並列処理を行えない コア0 コア2 コア3 コア1 処理 処理 処理 処理 実行時間 待機 待機 バリア

  36. 評価環境 • シミュレータ:マルチコアシミュレータM5[2] • ベンチマーク・プログラム • PARSEC[3]からblackscholes,dedup,swaptions,streamcluster,ferretの5つ 32KBのL1キャッシュ搭載 32KBのL1キャッシュ搭載 32KBのL1キャッシュ搭載 Core0 Core1 Core31 ・・・ 16MB,4 nsのL2キャッシュ 4GB,150 nsの主記憶

  37. 共有データに対する処理の例(排他制御なし) 実行時間 • スレッドA,BがそれぞれデータDに1を加えたが,データDの値は1 スレッドA スレッドB メモリの100番地内のデータD load; add 1; store; load; add 1; store; 0 1

  38. 共有データに対する処理の例(排他制御あり) 実行時間 • スレッドA,Bが逐次的にデータDに1を加えたため,データDの値は2 スレッドA スレッドB メモリの100番地内のデータD スレッドAの処理終了 まで待機 load; add 1; store; 0 1 load; add 1; store; 1 2

  39. ベンチマーク・プログラムの情報

  40. モデルを用いた提案手法と従来手法の比較 • 従来手法(全32コアによる実行) • CSの割合と稼働コア数の変化に応じて提案手法による性能向上を評価 • 逐次処理部分:1% • 並列処理部分が大部分を占める並列プログラムにおいて提案手法の有効性を示すため • 最大コア数  = 32 • 定格周波数 = 2[GHz] • 供給電圧  = 1.3[V]

  41. 実行時間モデルの妥当性に対する考察(精度が高い場合)実行時間モデルの妥当性に対する考察(精度が高い場合) blackscholesの実行には逐次処理のみが影響していると考えられる blackscholes 予測値 性能比 実測値 稼働コア数

  42. 従来手法に対する提案手法による性能向上 • CSの割合が大きくなるにつれて • 性能向上を最大にする稼働コア数は少なくなる • 性能向上が大きくなる 65% 14%

  43. 実行時間モデル • クリティカルセクション(CS)における排他制御に注目 • CS:共有データにアクセスするプログラムの部分 稼働コア数制限により並列処理性能低下 動作周波数上昇により 性能低下を抑制 動作周波数上昇により性能向上

  44. PCUの機能 電力比較 • プロセッサの実消費電力を最大消費電力値と比べ、その差を動作周波数やコア電圧を制御する回路に伝達 • プロセッサの温度を温度の上限値と比較するとともに、各コアの状態(C-state:休止,P-state:稼働)をチェックし、ターボブーストによる周波数上昇の幅を決定 温度比較 コア状態チェック [5]

  45. P-stateとC-state

  46. ベンチマークプログラムを用いた定量的評価 • 比較対象 • all_core:全コア(32コア)による実行 • throttling:性能向上を最大にする稼働コア数(最適コア数)による実行 • 動作周波数上昇なし • proposal_opt:最適コア数で実行する場合の提案手法 • proposal_model:提案手法(モデルにより稼働コア数を決定) • 前提 • プログラム全体を通して一定の動作周波数で実行 • throttling,proposal_optにおいて最適コア数は既知

  47. 稼働コア数に応じた動作周波数上昇手法 • Intel社のTurboBoost[2] • プロセッサの消費電力・発熱量を動的に監視 • 消費電力・発熱量が上限値に達していない場合,稼働コアへの供給電圧と動作周波数を上昇 • 稼働コア数が少ないほど,消費電力・発熱量は減少⇒稼働コアの動作周波数を大幅に上昇可能 [2] Intel Corporation: Intel Turbo Boost Technology in Intel Core Microarchitecture (Nehalem)Based Processors. ,Whitepaper,(2008).

More Related