演算 / メモリ性能バランスを考慮した 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
メモリ ウォール問題の深刻化 高速 大容量 アクセス時間 レジスタ 1 クロックサイクル (cc) オンチップ メモリ 1~ 数 10cc オフチップ メモリ 数 100cc 補助記憶 主記憶へのアクセス時間が計算機の性能ボトルネックとなることが多い CMP では データ競合 : 同期後の主記憶アクセスは隠蔽できない! 資源競合 : コア数に比例してオフチップ バンド幅はスケールしていない! 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 Core 0 Core 1 SPM SPM Network Main Memory off-chip Core N SPM 各コアはソフトウェア制御可能なオンチップメモリ (SPM) を持つ 計算とデータ転送は同時実行可能 各コアは他コアの SPM の物理アドレスを知ることが可能 かつ アクセス可能 ベースアドレスとオフセットか らアドレスを算出可能 9
コアの振る舞いと定義 こっちへアクセス! Compコア Aidコア Core 0 Core 1 SPM SPM Network Main Memory このエリアにアクセス要求が来たら Core N SPM マッピング Comp コア 並列化されたコード ( スレッド ) を実行する Aid コア スレッド実行を行なわない 自コアの 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 MIC BIC L1 I/O 制御 初期化 PPU Off-chip 14
着目する命令 SPM 環境ではバッファリングは当たり前 同期命令後のデータ転送命令に着目 アクセスアドレス付近のデータをマッピング for(n=0; n<n ; n++){ cal(i,j,k); atomic( ); DMA_READ( ); ); DMA_WRITE( ); ); atomic( ); } // 全コアで処理が終了 // 中間データ読み込み // 中間データ読み込み // データ更新 // データ更新 // 全コアで更新終了 15
提案手法の実装 (Comp コア ) メモリアクセス先 ( 主記憶 or ある Aid コアの SPM) の判別には配列を使用 分岐命令はミスペナルティが膨大 必要なメモリ領域はコア数 N に対して最悪でも O(N) 配列イメージ図 SPM4 SPM5 SPM6 * フォン ノイマン型 ( コード領域 ) を考慮 配列 コア 4 コア 5 コア 6 マッピング 主記憶 アクセスアドレス [ offset Size] offset Address = Array % + 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
評価結果 : 姫野ベンチマーク 1.4 1.2 1 0.8 0.6 0.4 0.2 0 SS S M オーバーヘッド 1% 最大 13% 性能向上 Normalized Performance CONV IDEAL PB-1 PB-2 PB-3 PB-4 PB-5 PB-6 PB-7 Evaluation Model 22
評価結果 : 姫野ベンチマーク 1.4 1.2 1 0.8 0.6 0.4 0.2 0 CONV IDEAL PB-1 PB-2 PB-3 PB-4 PB-5 PB-6 PB-7 Hit 率 100% だけど 並列処理の性能低下の影響が大きい SS S M ヒット率が低く 性能向上が小さい 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 正規化性能 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 定数の代入 or 何もしない 頻発するデータ転送でバスが飽和 並列処理部分並列処理 前半部並列処理 後半部 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