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