演算/メモリ性能バランスを考慮したCMP 向けオンチップ・メモリ貸与法の提案 九州大学 ○林 徹生 今里 賢一 井上 弘士 村上 和彰 1 発表手順 背景・目的 演算/メモリ性能バランシング 提案手法の実現方法 着目する命令 (Cellプロセッサへの)実装 性能評価 概要 アクセスレイテンシの削減とオーバーヘッド 姫野ベンチマーク Susan@MiBench おわりに 2 チップマルチプロセッサ (CMP)の普及 スレッドレベル並列性(TLP)により性能向上 汎用 特定用途 2コアが主流 4コアのプロセッサへ移行 8コア:Cell(Sony,Toshiba,IBM)、Niagara2(Sun) 16コア:Raw(MIT) 80コア:Intelのプロセッサ 96コア:CSX600(Clear Speed) メニーコアを想定した研究 3 メモリ・ウォール問題の深刻化 高速 主記憶へのアクセス時間が計算機 の性能ボトルネックとなることが多い CMPでは アクセス時間 レジスタ 1クロックサイクル(cc) 【オンチップ・メモリ】 1~数10cc 【オフチップ・メモリ】 数100cc データ競合: 同期後の主記憶 アクセスは隠蔽できない! 資源競合: コア数に比例して オフチップ・バンド幅はスケー ルしていない! 補助記憶 大容量 4 Speedup メモリ性能の影響 9 8 7 6 5 4 3 2 1 0 性能差は拡大 L2ミスなし 性能向上は 次第に飽和 L2=2MBで実行 1 2 3 4 5 6 7 8 Number of Threads SPLASH2ベンチマークよりFMMを抜粋 5 研究の目的 【目的】 プロセッサのトータル性能を向上 【動機】 演算性能とメモリ性能がプロセッサのトータル性能に与える影響 が異なる 【方法】 チップ内のコアを単純に並列処理に用いず、「演算用」と「メモリ 性能向上用」として使い分ける メモリ性能がボトルネックとなる場合、並列実行可能でもあえて TLPを犠牲にし、コアをメモリ用として利用することでトータル性 能を向上する 6 発表手順 背景・目的 演算/メモリ性能バランシング 提案手法の実現方法 着目する命令 (Cellプロセッサへの)実装 性能評価 概要 アクセスレイテンシの削減とオーバーヘッド 姫野ベンチマーク 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 想定するCMPアーキテクチャ on-chip 各コアはソフトウェア制御 可能なオンチップメモリ (SPM)を持つ Core 0 Core 1 SPM Core N ・・・ SPM Network Main Memory SPM 各コアは他コアのSPMの 物理アドレスを知ることが 可能、かつ、アクセス可能 off-chip 計算とデータ転送は同時実 行可能 ベースアドレスとオフセットか らアドレスを算出可能 9 コアの振る舞いと定義 こっちへアクセス! Compコア Compコア Core 0 Core 1 SPM Aidコア Core N ・・・ SPM SPM Aidコア Network Main Memory このエリアにアクセス 要求が来たら・・・ マッピング 並列化されたコード(ス レッド)を実行する スレッド実行を行なわない 自コアのSPMを他コアの メモリ性能向上のために 提供する SPMはCompコア-主記憶 間の階層メモリとして利用 される 10 Aidコアを確保する効果 利点: メモリ性能改善の可能性 欠点: 演算性能の低下 AidコアのSPMにアクセスすればレイテンシ削減 データ競合・資源競合の減少 意識して制御 するのは困難 1コアあたりの演算負荷が増大 目標: メモリ性能改善>演算性能の低下 11 見た目上の主記憶アクセス・レイテ ンシの変化 アクセス先 DMA命令 主記憶 AidコアのSPM Read ↑オーバーヘッド ↓削減 Write ↑オーバーヘッド ↑オーバーヘッド 書込みはメモリ・コントローラへのリクエストによる完了を 想定 アクセス先 (主記憶/Aidコア)に関わらず、アクセス先判別 のためのオーバーヘッドが発生 Aidコアでのデータヒット率がメモリ性能向上の鍵 小オーバーヘッドでの実現が必要 12 発表手順 背景・目的 演算/メモリ性能バランシング 提案手法の実現方法 着目する命令 (Cellプロセッサへの)実装 性能評価 概要 アクセスレイテンシの削減とオーバーヘッド 姫野ベンチマーク Susan@MiBench おわりに 13 Cellプロセッサ SPE×7 並列処理 SPU SPU SPU SPU SPU SPU SPU LS LS LS LS LS LS LS 256KB On-Chip Network L2 PPE L1 PPU I/O制御、初期化 MIC BIC Off-chip 14 着目する命令 SPM環境ではバッファリングは当たり前 → 同期命令後のデータ転送命令に着目 → アクセスアドレス付近のデータをマッピング for(n=0; n<N ; n++){ cal(i,j,k); atomic(・・・); // 全コアで処理が終了 DMA_READ(・・・); DMA_READ(・・・); DMA_WRITE(・・・); DMA_WRITE(・・・); // 中間データ読み込み // 中間データ読み込み atomic(・・・); // 全コアで更新終了 // データ更新 // データ更新 } 15 提案手法の実装(Compコア) メモリアクセス先(主記憶 or あるAidコアのSPM) の判別には配列を使用 分岐命令はミスペナルティが膨大 必要なメモリ領域はコア数Nに対して最悪でもO(N) 配列イメージ図 SPM4 SPM5 SPM6 *フォン・ノイマン型(コード領域)を考慮 マッピング 配列 コア4 コア5 コア6 アクセスアドレス 主記憶 Address Arrayoffset%Size offset 16 提案手法の実装(Aidコア) データ・プリフェッチ Aidコアは並列処理の開始時にデータプリフェッチ Aidコアへの初期参照を保証 読込み/書込みサイズが異なる時の動作を保証 データ・ライトバック Aidコアは並列処理の終了時にデータを書き戻す 最新の値はAidコアのSPMで保持 終了時のデータを主記憶へ書込み 17 発表手順 背景・目的 演算/メモリ性能バランシング 提案手法の実現方法 着目する命令 (Cellプロセッサへの)実装 性能評価 概要 アクセスレイテンシの削減とオーバーヘッド 姫野ベンチマーク Susan@MiBench おわりに 18 評価 評価目的 提案手法の効果の有無を調査 評価環境 Cellプロセッサ(実機)+Time関数 10回測定、最大値・最小値を除いた平均値を選出 DMAキャッシュをウォームアップ 評価対象プログラム 姫野ベンチマーク(SSサイズ、Sサイズ、Mサイズ) Susan-Edge (large input) コンパイルオプション:-O3 評価項目 実行性能 (実行時間の逆数) 19 プログラム実装方針 並列処理方法 ○処理分散(各コアは同じプログラムを処理) ×機能分散(各コアは異なるプログラムを処理) 負荷分散 粗粒度の並列処理 多重ループの最外ループをコア数Nで分割 コードチューニング 最内ループのデータをバッファリング 20 評価モデル 【CONV】 従来の、並列化されたコードを全コアを 用いて並列処理するモデル. 【IDEAL】 主記憶アクセスレイテンシを0と仮定し たモデル.実装上ではDMA転送の完了を待た ないため,プログラム実行の正しさを保証しない. 【PB-N】 Compコア数をN (Aidコア数:7-N)とした 時の提案手法を示すモデル. 並列処理部分のみを抽出 逐次処理部分の高速化は考慮しない 21 SS S M PB -3 PB -4 1.2 PB -2 1.4 最大13%性能向上 オーバーヘッド1% 1 0.8 0.6 0.4 0.2 PB -7 PB -6 PB -5 0 CO NV ID EA L PB -1 Normalized Performance 評価結果:姫野ベンチマーク Evaluation Model 22 ヒット率が低く、性能 向上が小さい 1.2 S M PB -4 1.4 PB -3 SS 1 0.8 0.6 0.4 PB -7 PB -2 CO NV ID EA L PB -1 0 Hit率100%だけど、並列処理 の性能低下の影響が大きい PB -6 0.2 PB -5 Normalized Performance 評価結果:姫野ベンチマーク Evaluation Model 23 正規化性能 評価結果:Susan-Edge 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 並列処理部分 隠蔽できないDMA転送が 少ない(初期参照程度) 並列処理・前半部 並列処理・後半部 オーバーヘッド10% CONV PB-1 PB-2 PB-3 PB-4 PB-5 PB-6 PB-7 BEST 評価モデル 24 評価結果:Susan-Edge 正規化性能 定数の代入 or 何もしない 並列処理部分 並列処理・前半部 1.8 → 頻発するデータ転送で 1.6 バスが飽和 1.4 1.2 1 0.8 0.6 0.4 0.2 0 CONV PB-1 並列処理・後半部 PB-2 PB-3 PB-4 PB-5 PB-6 PB-7 BEST 評価モデル 25 発表手順 背景・目的 演算/メモリ性能バランシング 提案手法の実現方法 着目する命令 (Cellプロセッサへの)実装 性能評価 概要 アクセスレイテンシの削減とオーバーヘッド 姫野ベンチマーク Susan@MiBench おわりに 26 まとめ 新しい並列処理モデルを提案 コアを「演算用」と「メモリ性能向上用」とに分配 姫野ベンチマークのSSサイズで13%の性能向上 7コア程度では性能向上が得られるプログラムは限定的と予想 Comp/Aidコア数を如何にして決定方法が課題 ボトルネック解析とコア間協調実行による静的/動的最適化技 術の確立も課題 姫野ベンチ(HPC)、Susan(組込み)の次はequake (SPEC OMP、汎用)を評価予定 27 ご清聴ありがとうございました 28 backup slides 29 性能モデル式(通常実行) 読込み(Tread)と書込み(Twrite)のDMA転送時間 Tread LDMA Lctrl Loff Sizek / BW Twrite LDMA Lctrl Sizek / BW LDMA: DMA転送のセットアップ時間 Lctrl: メモリコントローラへのリクエスト時間 Loff: オフチップのアクセスレイテンシ Size: データ転送サイズ BW: オンチップのバンド幅 30 性能モデル式(提案手法) 提案手法を適用、かつ、読込みはAidコアの SPM上にアクセスした時のDMA転送時間 通常実行との差異 ' read T LDMA Lctrl Laid Sizek / BW OHRW 主記憶の代わりにAidコア のSPMへアクセス ' write T アクセス先(主記憶/Aid コアのSPM)制御の オーバーヘッド LDMA Lctrl Sizek / BW OHRW オーバーヘッドのみ発生 31 主記憶アクセスレイテンシの削減 量 提案手法の適用により、 Aidコアにデータを読込み → レイテンシ削減 主記憶にデータを読込み → オーバーヘッド発生 書込み(アクセス先非依存) → オーバーヘッド発生 レイテンシの削減量/主記憶アクセス Treduce RW Hit Loff Laid OHRW RW: 全DMA命令に占める読込み命令 Hit: Aidコア上でのデータヒット率 32 主記憶アクセスレイテンシの削減 RW=2/3, OHRW=Laid/2と仮定 Hit=80%と仮定 ワーストケースで40%強の 主記憶アクセスレイテンシ (100cycle強)削減 参考文献[10] Loff reduction(%) Victim Replication (ISCA2005) N回の主記憶アクセスが並列処理 の台数効果を上回ればよい 60 50 40 30 20 10 0 -10 50.0 -60.0 40.0 -50.0 30.0 -40.0 20.0 -30.0 10.0 -20.0 0.0 -10.0 -10.0 -0.0 60 56 7 8 9 10 0 Loff/Laid 90 30 Hit(%) 33 処理フロー 1. Aidコアがデータをプリフェッチ 初期参照を保証 読込み/書込みサイズの差異を保証 2. Compコアが各SPMの物理アドレスを習得 3. CompコアがDMA転送時のアクセス先判別に用いる 配列を作成 4. CompコアはAidコアのSPMを活用しつつ並列処理 最新のデータは、AidコアのSPMが保持 5. Aidコアのデータを主記憶に書き戻す 処理終了の合図受信後 34 DMA(データ転送)コード DMA_read(addr1, addr2, offset, size, tag, id, extend1, extend2){ プロセッサ依存のDMA命令 } function(){ DMA_read(・・・・・) a+b; ・・・・ DMA_write(・・・・・) } 35 姫野ベンチマーク 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のループを並列化 36 姫野ベンチでのローカル容量 (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 37 Susanの逐次処理部分 画素によって、前の処理に移動 (ライン単位の)バッファリングが無駄になることも 書き戻す時は画素(バイト)単位 x-2 y-1 x-1 y-1 条件判定 画像(pgmファイル) 38 Susan@提案手法:逐次処理込み 1.2 1 0.8 0.6 0.4 0.2 0 CONV PB-1 PB-2 PB-3 PB-4 PB-5 PB-6 PB-7 39 前半部(従来手法)のSpeed Up 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 40 参考文献 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 41
© Copyright 2024 ExpyDoc