マルチコア向けオンチップメモリ貸与法に おける実行コード生成法の改善 ○福本 尚人,今里 賢一, 井上 弘士,村上 和彰 九州大学 発表手順 • マルチコア・プロセッサの高性能化阻害要因 • 演算/メモリ性能バランスを考慮したマルチコ ア向けオンチップメモリ貸与法 • 評価 • まとめと今後の課題 2 マルチコア・プロセッサ • マルチコア・プロセッサ – 1チップに複数のプロセッサコアを搭載 – 複数コアによる並列処理により高性能化 Cell/B.E.(ソニー/東芝/IBM) IBM:http://domino.research.ibm.com/comm/res earch_projects.nsf/pages/multicore.CellBE.html Core i7 (Intel) http://ascii.jp/elem/000/000/124/124281/img.html 3 対象マルチコア・プロセッサ 並列化 プログラム コア SPM コア SPM コア SPM コア SPM チップ コア SPM コア SPM コア SPM ソフトウェア制御 オンチップメモリ オンチップ接続 主記憶 4 マルチコア・プロセッサの性能向上を阻害 する要因は? • メモリ性能によるトータル性能の抑制(メモリウォー ル問題の顕在化) – 長大な主記憶アクセスレイテンシ – オフチップメモリバンド幅の不足 Ideal memory 256KB private memory 1 ○ SpeedUp SpeedUp 10 8 6 4 2 0 プログラム:Barnes 2 3 4 5 6 実行コア数 7 Idealとの差が小さい 8 12 10 8 6 4 2 0 プログラム:Cholesky Ideal memory 1 2 256KB private memory 3 4 5 6 7 8 実行コア数 × Idealと比較して1/2の性能 5 発表手順 • マルチコア・プロセッサの高性能化阻害要因 • 演算/メモリ性能バランスを考慮したマルチコ ア向けオンチップメモリ貸与法 • 評価 • まとめと今後の課題 6 • 従来方式:全てのコアで並 列処理 • 問題:メモリ性能によりトー タル性能が抑えられる場 合、性能向上効果が低い SpeedUp 提案手法のねらい 12 10 8 6 4 2 0 プログラム: Cholesky Ideal memory 本研究 のねらい 1 2 3 256KB private memory 4 5 6 7 8 実行コア数 一部のコアをメモリ性能向上用に活用する ことでトータル性能向上をねらう 7 マルチコア向けオンチップメモリ貸与法 用途に応じてコアを使い分ける • メインコア – 並列化プログラムを実行 • ヘルパーコア – メインコアに自身のメモリ を提供(階層メモリとして 利用) – コアはアイドル ヘルパーコア メインコア コア コア コア コア SPM SPM SPM SPM Idle オンチップ接続 ロード 主記憶 8 マルチコア向けオンチップメモリ貸与法 • ヘルパーコアの導入により メモリ性能不足 ○メモリ性能が向上 メインコア コア コア ×演算性能が低下 SPM 目標:「メモリ性能向上」 SPM 演算性能不足 ヘルパーコア コア コア SPM SPM オンチップ接続 V 「演算性能低下」 主記憶 コアの配分を適切に決定することが重要 9 アプリケーション特性に応じた コアの使い分け Speed up Speedup 10 8 6 4 2 0 プログラム: Barnes Ideal memory 256KB private memory 1 2 3 4 5 6 実行コア数 全てメインコア 7 8 12 10 8 6 4 2 0 プログラム: Cholesky Ideal memory 1 2 3 4 256KB private memory 5 6 7 8 実行コア数 メインコア数3 ヘルパーコア数1 コア コア コア コア コア コア コア コア SPM SPM SPM SPM SPM SPM SPM SPM オンチップ接続 ○従来の全コア実行により高性能化 オンチップ接続 ○メモリ性能向上による性能向上 大 ○演算性能低下による性能低下 小 10 発表手順 • マルチコア・プロセッサの高性能化阻害要因 • 演算/メモリ性能バランスを考慮したマルチコ ア向けオンチップメモリ貸与法 – 基本概念 – ヘルパーコアのデータ配置 – コア配分の決定 • 評価 • まとめと今後の課題 11 提案手法の適用手順 1. メインコア数1で事前実行を行い、プロファイル情 報を取得 2. ヘルパーコアのデータ配置と実行コア配分を決定 3. ソースコードに提案手法を適用 入力 元 ソースコード 分析 事前実行 プロファイ ル情報 •DMA転送の情報 •並列性に関する情報... ヘルパーコアの データ配置 実行コア配分 ソースコード 変換 提案手法が適用され たソースコード 12 ヘルパーコアのデータ配置の決定方法 • 目標: メインコアの主記憶アクセス回数が最小となるヘルパー コアのデータ配置の算出 • 手順 1. 事前実行を行いプロファイル情報を取得 2. 各データに対するアクセス回数を集計 3. アクセス回数の多い順にデータをSPMへ配置 プロファイ ル情報 アクセス 回数の集計 6000 アクセス回数 入力 元 ソースコード メインコア数1で 事前実行 4000 2000 0 アドレス DMA転送の トレース 保持する データの選択 ヘルパーコアの データ配置 13 最適なコア配分の見積もり方法 • 目標: 最も性能が高くなるコア配分の算出 • 手順 入力 元 ソースコード メインコア数1で 事前実行 性能予測 プロファイ ル情報 実行時間 1. 事前実行を行いプロファイル情報を取得 2. 性能モデル式にプロファイル情報を代入することで全てのコ ア配分の実行時間を予測 3. 最も実行時間の短いコア配分を選択 0.8 0.6 0.4 0.2 0 予測実行時間 1:6 2:5 3:4 4:3 5:2 6:1 7:0 •並列実行部の 実行時間の割合 •主記憶アクセス 削減率 メインコア: ヘルパーコア 最適なコア 配分の選択 予測最適 コア配分 14 発表手順 • マルチコア・プロセッサの高性能化阻害要因 • 演算/メモリ性能バランスを考慮したマルチコ ア向けオンチップメモリ貸与法 • 評価 • まとめと今後の課題 15 評価環境 • プラットフォーム – SPE数7のCell/B.E. – SPEに対して手法を適用 • ベンチマーク・プログラム – 姫野ベンチマーク, Susan(MiBench), LU(SPLASH-2), FFT (Cell SDK), Matrix Mul (Cell SDK) – 事前実行には同一入力を使用 • 評価モデル – CONV:従来手法(全てのコアでプログラム実行) – PB-PREDICT:提案手法(予測に基づくコア配分) – PB-IDEAL:提案手法(理想的なコア配分) 16 評価結果(性能) CONV SpeedUp 2 PB-IDEAL 4:3 メインコア数6 ヘルパーコア数1 5:2 5:2 6:1 1.5 1 PB-PREDICT 7:0 6:1 6:1 7:0 7:0 7:0 7:0 7:0 7:0 7:0 7:0 7:0 6:1 7:0 7:0 6:1 7:0 0.5 0 SS SSS HIMENO 512 SUSAN FFT LU 256 MATRIX_MUL 17 評価結果(性能) 0.5 1 2 3 4 PB-IDEAL 4:3 メインコア数6 100% ヘルパーコア数1 5:2 80% 60% 40% 6:1 20%7:0 7:0 7:0 7:0 7:0 7:0 6:1 7:0 7:0 7:0 7:0 7:0 0% Data transfer 100% 80% 1.5 5:2 6:1 60% 6:1 6:1 40% 7:0 7:0 20% 1 0% Data transfer Rate of On-chip SpeedUp 主記憶アクセス削減率 2 PB-PREDICT Rate of On-chip 主記憶アクセス削減率 CONV 5 6 ヘルパーコア数 #of Helper Cores 1 2 3 4 5 6 ヘルパーコア数 #of Helper Cores 0 SS SSS HIMENO 512 SUSAN FFT LU 256 MATRIX_MUL 18 評価結果(性能) CONV SpeedUp 2 PB-IDEAL 4:3 メインコア数6 ヘルパーコア数1 5:2 5:2 6:1 1.5 1 PB-PREDICT 7:0 6:1 6:1 7:0 7:0 7:0 7:0 7:0 7:0 7:0 7:0 7:0 6:1 7:0 7:0 6:1 7:0 0.5 0 SS SSS HIMENO 512 SUSAN FFT LU 256 MATRIX_MUL 19 発表手順 • マルチコア・プロセッサの高性能化阻害要因 • 演算/メモリ性能バランスを考慮したマルチコ ア向けオンチップメモリ貸与法 • 評価 • まとめと今後の課題 20 まとめと今後の課題 • プログラムの特性に応じてコアをメモリ性能向上 に活用するマルチコア向けオンチップメモリ貸与 法を提案 – プロファイル情報をもとにSPMのデータ配置と実行コア 配分を決定 – 演算性能を犠牲にしてでもメモリ性能を向上させること で性能向上を達成 • 今後の課題 – ヘルパーコアのデータ配置方式の改善 (プログラム実行時にデータの入替えを行う) 21 Backup slides 性能モデル式 メインコア数n, ヘルパーコア数mの実行時間 T( m,n) Texe( n) Tmem( m,n) メインコア数nの演算時間 メインコア1のと きの演算時間 メインコア数n, ヘルパーコア数mのDMA実行時間 並列化部分の実行 時間の割合(0~1) Texe( n) Texe(1) F / n (1 F ) メインコア数 ATLS :LSアクセス時間 MP :ミスペナルティ DMA回数 平均DMA実行時間 Tmem(m,n) AC(n) AMAT(m) AMAT( m ) HRLSR ( m ) ATLS ヘルパーコア のヒット率 (1 HRLSR ( m ) ) MP 23
© Copyright 2024 ExpyDoc