270 likes | 338 Views
演算 / メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法. ○福本 尚人 , 井上 弘士,村上 和彰 九州大学. マルチコア・プロセッサ. 1 チップに複数のプロセッサコアを搭載 複数コアによる並列処理により高性能化 性能だけでなく、消費エネルギーも重要. 並列 プログラム. Core i7 (Intel ). Core i7 (Intel ). Cell/B.E.( ソニー / 東芝 /IBM).
E N D
演算/メモリ性能バランスを考慮したマルチコア向けオンチップメモリ貸与法演算/メモリ性能バランスを考慮したマルチコア向けオンチップメモリ貸与法 ○福本 尚人, 井上 弘士,村上 和彰 九州大学
マルチコア・プロセッサ • 1チップに複数のプロセッサコアを搭載 • 複数コアによる並列処理により高性能化 • 性能だけでなく、消費エネルギーも重要 並列プログラム Core i7 (Intel) Core i7 (Intel) Cell/B.E.(ソニー/東芝/IBM) IBM:http://domino.research.ibm.com/comm/research_projects.nsf/pages/multicore.CellBE.html http://ascii.jp/elem/000/000/124/124281/img.html
マルチコアにおけるメモリウォール問題 • メモリ性能によるトータル性能の抑制 • 大きな主記憶アクセスレイテンシ • オフチップメモリバンド幅の不足 プログラム:Barnes プログラム:Cholesky Idealmemory Ideal memory 256KB privatememory 256KB private memory ○ × Idealとの差が小さい コア数に見合う性能が得られない
提案手法の狙い • 用途に応じてコアを使い分け • メインコア:並列プログラム実行用 • ヘルパーコア:メモリ性能向上用 • コア同士で協調実行 • 演算性能とメモリ性能のバランシング メインコア メインコア メインコア ヘルパー コア メインコア メインコア メインコア ヘルパー コア プログラム: Cholesky 6並列実行+2サポート実行 Idealmemory 本研究のねらい 256KB private memory コア コア コア コア 従来の8並列実行 • 本手法を実装し、評価した結果、 • 最大、46%の実行時間、32%の消費エネルギーを削減 • ハードウェアコストなし コア コア コア コア
発表手順 • マルチコアにおけるメモリウォール問題 • 演算/メモリ性能バランスを考慮したマルチコア向けオンチップメモリ貸与法 • 基本アイディア • 詳細な実装(ソースコードの自動変換) • 貸与メモリのデータ割当て決定 • ヘルパーコア数決定 • 評価 • まとめと今後の課題
対象マルチコア・プロセッサ 並列プログラム チップ コア コア コア コア コア コア コア SPM SPM SPM SPM SPM SPM SPM ソフトウェア制御オンチップメモリ オンチップ接続 主記憶
マルチコア向けオンチップメモリ貸与法 • メインコア • 並列プログラムを実行 • ヘルパーコア • メインコアに自身のメモリを提供(階層メモリとして活用される) • アイドル • ヘルパーコアを増やすと ○メモリ性能が向上 ○消費電力が減少 ×演算性能が低下 並列プログラム コア コア コア コア メインコア ヘルパーコア SPM SPM SPM SPM Idle ロード オンチップ接続 主記憶 メモリ性能改善効果>演算性能低下効果となるようにヘルパーコア数を決定
プログラムの特徴に応じたコアの使い分け プログラム: Cholesky Idealmemory ○メモリ性能向上による性能向上 大 ○演算性能低下による性能低下 小 ○コアの消費電力の削減 コア コア コア コア コア コア コア コア 256KB private memory • SPM SPM SPM SPM SPM SPM SPM SPM プログラム: Barnes 全てメインコア メインコア数3 ヘルパーコア数1 SPM オンチップ接続 オンチップ接続 Idealmemory 256KB private memory ○従来の全コア実行により高性能化 プログラムの特徴に応じて適切なコアの配分を決定
発表手順 • マルチコアにおけるメモリウォール問題 • 演算/メモリ性能バランスを考慮したマルチコア向けオンチップメモリ貸与法 • 基本アイディア • 詳細な実装(ソースコードの自動変換) • 貸与メモリのデータ割当て決定 • ヘルパーコア数決定 • 評価 • まとめと今後の課題
提案手法の適用手順 コア数1で事前実行 DMA転送トレース 逐次処理時間の割合・・・ 入力 事前実行 並列化 ソースコード プロファイル情報 ハードウェア情報 貸与メモリのデータ割当て決定 コア配分決定 貸与メモリデータ割当て コア配分 ソースコード生成 メインコアソースコード ヘルパーコアソースコード
貸与メモリのデータ割当て決定法 • 目標:メインコアの主記憶アクセス回数が最小となる貸与メモリのデータ割当ての算出 • 決定手順 • プロファイル情報を元に各データごとのアクセス回数を集計 • アクセス回数の多い順にデータを貸与メモリへ配置 プロファイル情報 貸与メモリ データ割当て 1.アクセス回数の集計 2.保持するデータの選択 DMA転送トレース
ヘルパーコア数決定法 • 目標: 最も高性能となるヘルパーコア数の算出 • 決定手順 • 性能モデルにプロファイル情報を代入することで全てのコア配分の実行時間を予測 • 最も実行時間の短いコア配分を選択 プロファイル情報 • DMA転送に関する情報 • 搭載コア数・・・ ハードウェア情報 予測実行時間 コア配分 性能予測 実行時間の比較 • 逐次実行時間の割合 • ・・・
メモリ貸与法適用時にプログラマが行う作業 • 元ソースコードの並列実行部の前後に目印の挿入 • スレッド生成部の修正 • 他は全て自動で適用される プロファイル情報取得用の関数の挿入 主記憶アクセス数最小となる割当て決定 性能モデルによる実行時間の予測 アドレス変換処理の挿入 実行コア数の変更 貸与メモリのデータ入替え
発表手順 • マルチコアにおけるメモリウォール問題 • 演算/メモリ性能バランスを考慮したマルチコア向けオンチップメモリ貸与法 • 基本アイディア • 詳細な実装(ソースコードの自動変換) • 貸与メモリのデータ割当て決定 • ヘルパーコア数決定 • 評価 • まとめと今後の課題
評価環境 • Cell/B.E.の実機(Cellreference set)で評価 • 実行プログラム • HIMENO, LU (SPLASH-2), FFT(CellSDK), Matrix_mul(CellSDK) • SPEの実行時間を計測 • 7個のSPEに対して、オンチップメモリ貸与法を適用 • 適切なコアの配分の算出法 • 性能モデルを用いて予測(PB-PREDICT) • 事前実行を全パタン行い予測(PB-MEASURE) 【最適な配分】
実行時間 メインコア数6 ヘルパーコア数1 0 0 0 0 0 0 0 0 1 1 0 0 0 3 3 1 1 2 2 1 1 最大で46%の実行時間の削減
実行時間 メインコア数6 ヘルパーコア数1 0 0 0 0 0 0 0 0 1 1 0 0 0 3 3 1 1 2 2 1 1 主記憶アクセス削減によるストール時間の削減> メインコア減少による演算時間増加+アドレス変換時間増加 従来実行が最も性能が高いと予測した場合
実行時間 メインコア数6 ヘルパーコア数1 0 0 0 0 0 0 0 0 1 1 0 0 0 3 3 1 1 2 2 1 1 ヘルパーコア数を正しく予測できていないが、 従来実行と比較して性能は低下していない 最適なヘルパーコア数を予測することで性能向上
実行時間 メインコア数6 ヘルパーコア数1 0 0 0 0 0 0 0 0 1 1 0 0 0 3 3 1 1 2 2 1 1 最大で46%の実行時間の削減
消費エネルギー評価方法 • 消費エネルギーモデルを用いて評価 • SPU, LS, 主記憶の動的消費エネルギー 消費電力*実行時間 • :非ストール時の消費電力 • :ストール時の消費電力 • :非ストール時の実行時間 • :ストール時間 • とする(α=0~1) • ヘルパーコアの は読込み完了までの時間とする アクセス回数*アクセス当たりの消費エネルギー • メモリ貸与法の適用により、 • 動作コア数減少、ストール時間削減→SPUの消費エネルギー削減 • (ストール時の消費電力が大きいほど、削減効果大) • 主記憶アクセスがLS間転送へ→DMA転送の消費エネルギー削減
αに対する消費エネルギーの変化(α: ストール時の消費電力の割合/通常実行時の消費電力) 性能向上が大きいプログラムではαに対する変化が大きい ヘルパーコア実行ならびにアドレス変換による処理の増加>DMA転送のエネルギー削減 α=1のとき、最大52%の消費エネルギー削減 α=0のとき、最大12%の消費エネルギー削減
消費エネルギー(α=0.4) 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 3 3 2 2 1 1 実行コア数減少、実行時間削減→SPUの消費エネルギー削減 主記憶アクセスがLS間転送に置き換え→DMA転送の消費エネルギー削減 最大で32%の消費エネルギーの削減
まとめと今後の課題 • プログラムの特徴に応じて演算性能とメモリ性能のバランスをとるマルチコア向けオンチップメモリ貸与法 • 適切なヘルパーコア数と貸与メモリのデータ割当てを決定 • 自動ソースコード変換により実装 • 最大で、46%の実行時間の削減と32%の消費エネルギーの削減を達成 • 今後の課題 • 詳細な消費エネルギー評価 • コア、オンチップメモリ、主記憶のエネルギー比を変更 • 消費エネルギーを考慮したヘルパーコア数決定法の考案
主記憶アクセス削減率 1 1 2 2 0 1 3 3 1 0 0 1 1 0
既存研究との比較 0 0 0 0 0 0 0 0 0 0 0 3 3 0 0 1 1 0 0 0 1 0 1 1 2 2 1 1