演算/メモリ性能バランスを考慮した Cell/B.E.向け オンチップ・メモリ 活用法とその評価 九州大学 ○林 徹生(現ルネサス) 福本 尚人 今里 賢一 井上 弘士 村上 和彰 1 発表手順 背景・目的 演算/メモリ性能バランシング 1月のARC/EMB からの差分 プロファイルに基づくコア配分決定方法 性能評価 概要 Cell/B.E.への実装 姫野ベンチマーク Susan@MiBench おわりに 2 チップマルチプロセッサ (CMP)の普及 スレッドレベル並列性(TLP)により性能向上 汎用 特定用途 2コアが主流 4コアのプロセッサ(ハイエンド) 8コア:Cell(Sony,Toshiba,IBM)、Niagara2(Sun) 16コア:Raw(MIT) 80コア:Intelのプロセッサ 96コア:CSX600(Clear Speed) メニーコアを想定した研究 3 メモリ・ウォール問題の深刻化 On-chip Core 0 Core 1 Mem 主記憶へのアクセス時間が計算機 の性能ボトルネックとなることが多い 階層メモリ構造(オンチップ・メモリの 利用)により影響を軽減 Core N ・・・ Mem Mem Network 資源競合 データ競合主記憶 CMPではNコアに対応 データ競合 (物理的な)資源競合 Off-chip 4 メモリ性能の影響 Speedup 10 性能差は拡大 8 L2ミスなし 6 4 L2=2MBで実行 2 0 1 2 3 4 5 6 性能向上は 次第に飽和 7 8 Number of Threads(使用コア数) SPLASH2ベンチマークよりFMMを抜粋 5 本研究の狙い 【目的】 CMPの実効性能向上 あるプログラムを全コアを用いて高速に処理 【動機】 コア数増加に伴う演算性能向上と、メモリ性能 改善による性能向上の影響の差異 コア数の増加に伴いメモリ性能の影響増大 【方法】 全コアを演算に割り当てず、一部のコアをメモ リ性能向上用として利用 あえて演算性能を低下、代わりにメモリ性能向上 最大14.5%の性能向上を達成 6 発表手順 背景・目的 演算/メモリ性能バランシング プロファイルに基づくコア配分決定方法 性能評価 概要 Cell/B.E.への実装 姫野ベンチマーク Susan@MiBench おわりに 7 Speedup コアの割り当てによる性能向上 ~提案方式のコンセプト~ 9 8 7 6 5 4 3 2 1 0 7コア「演算用」、 1コア「メモリ性能向上用」 > 8コア「演算用」(従来手法) 従来の並列処理 1 2 3 4 5 6 7 8 Number of Threads 8 計算コア/メモリ提供コアのバランス • メモリ性能改善 の可能性 • データ/資源競 合の減少? 並列化さ れたプロ グラムを 実行 計算コア SPU メモリ提供コア SPU ・・ LS SPU SPU LS LS ・・ LS プログラ ムの実行 は行わな い 計算コアに LSを提供 EIB To PPE To MIC 演算性能低下 (コアあたりの 負担増加) To BIC 9 計算コア/メモリ提供コアのバランス メモリ性能重視 並列化さ れたプロ グラムを 実行 計算性能重視 計算コア SPU メモリ提供コア SPU ・・ LS SPU SPU LS LS ・・ LS 計算コアに LSを提供 ↓ 階層メモリ として利用 EIB To PPE To MIC プログラ ムの実行 は行わな い To BIC 10 Cell/B.E.への実装 ~メモリ貸与コア~ 階層メモリとして利用 →共有データを多くマッピングする必要性(非キャッシュ) (ループ内の)共有データ の先頭アドレス(Base) 0x00 ・・・ PPE ・・・ プログラム 静的領域 ヒープ領域 0xFF.. ・・・ マッピング メモリ提供コア LS 1 LS 2 LS 3 11 Cell/B.E.への実装 ~計算コア~ アドレスを判別してメモリアクセス メモリ提供コアのLS or 主記憶 Step1: メモリ提供コア数(Naid)分の配列確保 Step2: 配列[i] = LS[i]アドレス+0x6000 Step3: offset = Baseからのアドレス距離 ・ offset > 224(KB)* Naid 主記憶アクセス ・ それ以外 LS[offset/224(KB)]へアクセス プログラム(24KB) 主記憶のデータ (224KB) スタック(8KB) 12 発表手順 背景・目的 演算/メモリ性能バランシング プロファイルに基づくコア配分決定方法 性能評価 概要 Cell/B.E.への実装 姫野ベンチマーク Susan@MiBench おわりに 13 プロファイルの事前取得 静的に最適なコア分配を知ることは困難 ターゲットプログラム+実際の入力データ N(コア数)パタンの事前実行 【対策1】 1回あたりの試行時間を短縮 実際の入力よりも小サイズの入力データを使用 【対策2】 事前実行のパタン数を削減 サンプリングにより代表とするパタンのみ事前実行 14 二次曲線を利用したコア分配決定方法 1 1 p 理想的な並列処理(p:並列化可能な割合) SpeedUp 1/1 p p / N 現実の並列処理 極限値が一意に決定 コア数N 最適なコア分配(計算コア数)を決定 二次曲線 • 計算コア数x • 従来実行方式に対する正規化性能を y を利用 15 二次曲線を利用したコア分配決定方法 x12 2 x2 x2 3 x1 x2 x3 1 a y1 1 b y2 1 c y3 逆行列を用いて a,b,cを求める 頂点座標(X,Y) 曲線 曲線 ①Y<1の時 従来の全コア実行 ②X<Nコアの時 従来の全コア実行 計算コア1個を最適と予測 ③Xを四捨五入した値を 最適な計算コア数と予測 16 提案方式でのプログラム実行フロー(1/2) コンパイル時にテスト実行を行い プロファイル情報を取得 小サイズ 入力データ ターゲット プログラム コンパイラ バイナリ プロファイル 17 提案方式でのプログラム実行フロー(2/2) プロファイル情報を基に計算コア数を 決定、再コンパイルしてバイナリを実行 プロファイル ターゲット プログラム 実際の 入力データ 目的の処 理 コンパイラ バイナリ 18 発表手順 背景・目的 演算/メモリ性能バランシング プロファイルに基づくコア配分決定方法 性能評価 概要 Cell/B.E.への実装 姫野ベンチマーク Susan@MiBench おわりに 19 評価 評価環境 CRS(実機) +Time関数 Cellプロセッサを搭載 7コアが計算コアまたはメモリ提供コアとして動作 10回測定、最大/最小値を除いた平均値 評価対象モデル CONV:従来の全コア実行 PB-BEST:最適な計算コア数が既知 PB-Predict:最適な計算コア数を事前に予測 1ランク小規模入力データ/計算コア【2,4,6】をサンプル 20 姫野ベンチマーク 13%の性能改善 1.15 最適な計算コア数を正確に予測 CONV PB-BEST PB-Predict 正規化性能 1.1 1.05 1 0.95 0.9 SS S M 入力データサイズ 21 姫野ベンチマーク 1.15 CONV PB-BEST PB-Predict 正規化性能 1.1 1.05 計算コア数=N(全コア)を予測 1 0.95 0.9 SS S M CONVと同性能= 入力データサイズ 従来手法(全コア実行)が効果的 22 Susan-Edge 1.8 CONV 正規化性能 1.2 PB-Predict 大幅な性能改善 1.6 1.4 PB-BEST CONVと同性能= 全コア実行が効果的 1 0.8 0.6 0.4 0.2 0 エッジ強調 原画像重ね トータル 23 Susan-Edge 1.8 CONV PB-BEST 1.6 正規化性能 1.4 1.2 PB-Predict 最適ではないが、 それに近い高性能 従来の並列処理 が有効と判別 1 0.8 0.6 0.4 0.2 0 エッジ強調 原画像重ね トータル 24 Susan-Edge 1.8 CONV PB-BEST PB-Predict 1.6 正規化性能 1.4 1.2 1 0.8 0.6 0.4 0.2 0 ・提案手法によって 17%性能改善の余地 ・計算コア数予測によ り14.5%性能向上 エッジ強調 原画像重ね トータル 25 発表手順 背景・目的 演算/メモリ性能バランシング プロファイルに基づくコア配分決定方法 性能評価 概要 Cell/B.E.への実装 姫野ベンチマーク Susan@MiBench おわりに 26 まとめ 新しい並列処理モデルを提案 コアを「演算用」と「メモリ性能向上用」とに分配 プロファイルに基づくコア配分決定方法を提案 最大14.5%の性能向上 従来の並列処理が有効な場合も判別 今後の課題 コア分配決定方法の精度向上 多くのベンチマークプログラムの評価 低消費エネルギー化への応用 27 ご清聴ありがとうございました 28 見た目上の主記憶アクセス・レイテ ンシの変化 アクセス先 DMA命令 主記憶 AidコアのSPM Read ↑オーバーヘッド ↓削減 Write ↑オーバーヘッド ↑オーバーヘッド 書込みはメモリ・コントローラへのリクエストによる完了を 想定 アクセス先 (主記憶/Aidコア)に関わらず、アクセス先判別 のためのオーバーヘッドが発生 Aidコアでのデータヒット率がメモリ性能向上の鍵 小オーバーヘッドでの実現が必要 29 演算処理 演算 演算 offset A, B offset 時間 DMA転送 主記憶アクセス A = Mem [base +offset ] B = Mem [base2+offset ] 30 (a) レイテンシ 隠蔽可能 ループ・イタレーション(i)の処理 (i-1)の書込み (i+1)の読込みA (i+1)の読込みB 時間 (b) レイテンシ 隠蔽不可 ループ・イタレーション(i)の処理 (i-1)の書込み (i+1)の読込みA (i+1)の読込みB 31 評価 評価目的 提案手法の効果の有無を調査 評価環境 Cellプロセッサ(実機)+Time関数 10回測定、最大値・最小値を除いた平均値を選出 DMAキャッシュをウォームアップ 評価対象プログラム 姫野ベンチマーク(SSサイズ、Sサイズ、Mサイズ) Susan-Edge (large input) コンパイルオプション:-O3 評価項目 実行性能 (実行時間の逆数) 32 プログラム実装方針 並列処理方法 ○処理分散(各コアは同じプログラムを処理) ×機能分散(各コアは異なるプログラムを処理) 負荷分散 粗粒度の並列処理 多重ループの最外ループをコア数Nで分割 コードチューニング 最内ループのデータをバッファリング 33 姫野ベンチマーク 3次元データ + 4次元データ(更新なし)を使用 k for(i) for(j) for(k) array[i][j][k]の更新に隣接 する配列の要素を使用 i end for(k) end for(j) end for(i) j iのループを並列化 34 姫野ベンチでのローカル容量 (k+3)*34*4(Byte) Input i×j×l ローカル容量 SS 33×33×65 9KB S 65×65×129 17.5KB M 129×129×257 34.5KB 35 Susanの逐次処理部分 画素によって、前の処理に移動 (ライン単位の)バッファリングが無駄になることも 書き戻す時は画素(バイト)単位 x-2 y-1 x-1 y-1 条件判定 画像(pgmファイル) 36 参考文献 D.J-Gonzalez et al. “Performance Analysis of Cell Broadband Engine for High Memory Bandwidth Applications” ISPASS 2007 *各SPEは同じアドレス にアクセス 4-2-8-1 4-8-2-1 4-8-2-1 37
© Copyright 2025 ExpyDoc