大規模再構成可能データパスにおける オンチップ・ネットワークの検討 九州大学 / JST CREST ○島崎慶太,長野孝昭 ファラハドメディプー,本田宏明 井上弘士,村上和彰 1 発表手順 • 研究背景 • 大規模再構成可能データパス • オンチップネットワークの面積に関する評価 – 配線/演算資源間のトレードオフ解析 • おわりに 2 研究背景 • 近年、アクセラレータを用いた高性能計算機シス テムが注目されている – CSX600 processor(ClearSpeed社) – Cell B.E. (Sony,東芝,IBM) • アクセラレータ – 演算性能に特化したコプロセッサ – 演算性能の増加に伴い要求メモリバンド幅が増大 – メモリウォール問題の深刻化 • 演算性能と比較してメモリの性能が低いことにより計算機全 体としての性能が抑えられてしまう 要求メモリバンド幅を抑え、かつ高い演算性能 を実現するアクセラレータの提案 3 大規模再構成可能データパス (LSRDP: Large-Scale Reconfigurable Datapath) • 概要 ORN ... FPU ORN : : : : ... ORN ... ORN SB : : : : LM SMAC ... : – 浮動小数点数演算器(FPU: Floating-Point Unit)を2次元アレイ 状に配置 – FPUを相互接続する網(ORN: Operand Routing Network)により データ転送 – FPUで行う演算内容、ORN上の FPU間接続関係を再構成可能 • データ依存関係を利用しメモリア クセス回数を削減 4 メモリアクセス回数の削減 提案手法 プログラム A = B + C; デ ー タ 依 存 ・ ・ ・ ・ ・ ・ ・ D = A-E; ・ ・ ・ ・ ・ load R0, [B] メモリ 読み込み load R1, [C] add R2, R0, R1 store R2, [A] メモリ ・ ・ ・ 書き込み load R3, [A] メモリ 読み込み load R4, [E] sub R5, R3, R4 store R5, [D] メモリ ・ ・ ・ ・ B C + デ ー A タ 依 存 メモリ 読み込み E - D 書き込み ・ ・ ・ 5 LSRDPへのアプリケーションの 実装方法(1/2) • アプリケーション プログラムの解析 • GPPとLSRDPそれぞ れ計算する部分の 振り分け Application Program Exe. Code for GPP GPP Mem. LSRDP Arc. Def. LSRDP Config. Data LSRDP Engine 6 LSRDPへのアプリケーションの 実装方法(2/2) ソースコード A BC D EF G A D データパス DFG B C E × F × A D + マ ッ ピ ン グ ORN × × ORN + ORN G ORN 7 ループ処理をLSRDPに実装(1/4) 入 力 デ ー タ ソースコード for (i=0; ; i++) for (j=0; ; j++) for (k=0; ; k++) for (l=0; ; l++) ループボディ forend forend forend forend デ ー タ パ ス を 構 成 イタレーション3のデータ イタレーション2のデータ イタレーション1のデータ ORN ORN ORN ORN 8 ループ処理をLSRDPに実装(2/4) 入 力 デ ー タ ソースコード for (i=0; ; i++) for (j=0; ; j++) for (k=0; ; k++) for (l=0; ; l++) ループボディ forend forend forend forend デ ー タ パ ス を 構 成 イタレーション3のデータ イタレーション2のデータ ORN イタレーション1のデータ ORN ORN ORN 9 ループ処理をLSRDPに実装(3/4) 入 力 デ ー タ ソースコード for (i=0; ; i++) for (j=0; ; j++) for (k=0; ; k++) for (l=0; ; l++) ループボディ forend forend forend forend デ ー タ パ ス を 構 成 イタレーション3のデータ ORN イタレーション2のデータ ORN イタレーション1のデータ ORN ORN 10 ループ処理をLSRDPに実装(4/4) 入 力 デ ー タ ソースコード for (i=0; ; i++) for (j=0; ; j++) for (k=0; ; k++) for (l=0; ; l++) ループボディ forend forend forend forend デ ー タ パ ス を 構 成 ORN イタレーション3のデータ ORN イタレーション2のデータ ORN イタレーション1のデータ ORN 11 パ イ プ ラ イ ン 処 理 初期積分計算における LSRDPの性能予備調査 51列 入力数:17,出力数:1 演算器数:122 13段 ○ 横幅無限大の LSRDP を仮定 ○ 配線,演算器配置 技術 12 計算の遅延ならびに並列度 (LSRDP ループ計算の場合:120回) 初期積分連続計算における ※ LSRDP 内の計算並列度と計算推移時間との関係 最初の計算 の 出力 並列計算演算器数(個) 140 平均並列計算数 : 97.3 ループの 最終回開始 メモリアクセス回数:2160 120 100 92 メモリアクセス 回数~1/5倍 80 通常プロセッサ: 60 メモリアクセス回数: 40 ~ 10000 Simple Scalar 20 0 0 20 40 60 80 100 120 実行時間 (Clock Cycle) 140 160 180 ※全演算器の遅延を一律 3CC 13 とした LSRDPの特徴 • 利点 – 多数のFPUによる高い演算性能 – データ依存関係を利用してメモリアクセス回数の削減 • 実行方式 – コアとなるループのイタレーション間並列性を活用した パイプライン実行 – 比較的頻度の低い再構成処理 • ハードウェア構成 – 面積の大部分はFPUとORN 14 研究目的 • LSRDPの構成を決定するには? – – – – ORNの構成 FPUの配置数 FPUの演算の種類 etc… • ORNの構成について検討 – 性能、面積に大きく影響 15 FPU間接続 隣接行間接続 – ORN • 完全接続 • 制限付き接続 (前提) 非隣接行間接続 ORN ORN ORN – データ転送にFPUを使用 ORN 16 ORNの構成例 (a)完全接続 (b)FPU間接続数3 FPU O R N 17 ORNの構成例 制限付き接続におけるマッピング手法例 FPU内を経由 使用されるFPUの数が増える 行数が増える 18 配線/演算資源間のトレードオフ関係 1 4 2 5 3 6 接続数 多い 少ない 配線面積 大 小 FPU数 少ない 多い 7 マッピング 1 2 1 3 2 3 FPU FPU ・・・・・ FPU ORN 4 5 6 7 4 5 2’ 3’ FPU FPU ・・・・・ FPU LSRDP 2行でマッピング可 6 7 3行でマッピング可 データ転送用に使用 19 配線/演算資源間のトレードオフ解析 • 目的 – 配線/演算資源間のトレードオフ関係を解析 – LSRDPの面積が最小となるORNの構成を検討 • 手法 – LSRDPの構成要素の面積見積もり • FPUの面積 • FPU間接続数の異なるORNの面積 – 二電子積分計算における初期積分部分 • DFGを人手でマッピング – 列数32、行数最小を目的 20 面積の見積もり方法 • LSRDPの面積はFPUとORNの面積の和に より求める LSRDP – FPUの面積 • GRAPE-DRのPEのデータを参考 – プロセス90nmを前提 • 1行あたり32個配列 • LSRDPの横幅は約20mm – ORNの面積 • レイアウト設計により見積もる FPU FPU ・・・・・ FPU 1 組 ORN FPU FPU ・・・・・ FPU ORN ・ ・ ・ ・ – デザインルールを違反しない範囲で面積ができるだけ小 さくなるように設計(配線幅と配線間隔を最小寸法にする) 21 構成の違うORNのレイアウト図 (a)完全接続 FPU (b)FPU間接続数3 22 初期積分計算のDFG • 入力データ数:18 出力データ数:1 • 演算ノード数:140 エッジ数:251 • クリティカルパス:16 (終端ノードまでの最大パス長) 23 1行あたりのORN面積と マッピングに必要となる行数 FPUの行数 0.7 60 0.6 50 0.5 40 0.4 0.3 30 0.2 20 0.1 10 0 0 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 FPU間接続数 24 行数 面積(×20)m㎡ 一行あたりのORNの面積 ORNの総面積 総ORNの面積 総ORNの面積(×20)m㎡ 12 10 8 6 4 2 0 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 FPU間接続数 ORN1行の面積に必要な行数を乗算した値 25 FPUの総面積 総FPUの面積 総FPUの面積(×20)m㎡ 35 30 25 20 15 10 5 0 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 FPU間接続数 FPU1行の面積に必要な行数を乗算した値 26 LSRDPの面積 総ORNの面積 総FPUの面積 LSRDPの面積(×20)m㎡ 35 30 25 20 15 10 5 0 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 FPU間接続数 9個のFPU(左4/右4/下1)間接続で面積最小 27 まとめ • ニ電子積分の初期積分部分をマッピング したときの配線・演算資源間のトレードオフ 関係を明らかにし、LSRDPの面積を評価 • FPU間接続数9のORNをもつLSRDPが、 最も面積が小さくなることがわかった 28 今後の課題 • 他のアプリケーションを対象とした実験 – 数値計算ライブラリ ・・・ ORN • アーキテクチャの設計空間の探索 – 配線資源を考慮したFPU間接続 ・・・ ORN ・・・ ORN ・・・ • LSRDPアーキテクチャの決定・評価 29 ご静聴ありがとうございました 30 FPU間接続 ・・・ • 隣接行間接続(ORN) ORN – 完全接続 – 制限付き ・・・ ORN • 非隣接行間接続 ・・・ – データ転送にFPUを使 用 – データ転送に配線資 源を使用 ORN ・・・ ORN ・・・ :配線資源 31 計算の遅延ならびに並列度 (LSRDP 1回計算の場合) 1つの初期積分計算時における ※ LSRDP 内の計算並列度と計算推移時間との関係 並列計算演算器数(個) 60 平均並列計算数 : 10.8 50 LSRDP計算遅延: 35 CC メモリアクセス回数: 18 40 メモリアクセス回数 30 ~1/5倍 通常プロセッサ: ※※ 122 演算の演算遅延見積り: 126 CC メモリアクセス回数: ~80 Simple Scalar 20 10 0 0 5 10 15 20 25 実行時間 (Clock Cycle) 30 35 32 とした ※全演算器の遅延を一律 3CC ※ ※パイプライン化された逐次計算 LSRDP を利用した場合の 電子反発積分ループ計算アルゴリズム変 更 (d d ,d d ) LSRDP 使用時 loop: IJKLの各成分 begin 通常 loop: IJKL begin (IJ,KL)の 全成分を同時に 計算 (IJ,KL)全成分を利用し計算 end (IJ,KL) は,配列量 0 0 0 0 (d0d0,d0d1) … 各成分に対応した LSRDP構成情報の入替え loop: 現 成分を持つ IJKL begin LSRDP (IJ,KL)の 1成分のみ 計算 (IJ,KL) 1成分のみ利用し計算 end end 33 電子反発積分計算ループにおける, 各計算アルゴリズムの計算量とデータアクセス比較 (dd,dd) ,120 ループ繰り返しでの見積もり: 通常プロセッサ LSRDP 使用時 計算遅延 (CC) ~5x10^9 ~5x10^9/並列度 ロードストア回数 >5x10^9 ※ ※全演算器の遅延を一律 1CC とした ※ ※1演算に対し1ロードストア以上と見積り ※※ <<5x10^9 動的再構成 演算器入れ替え分 1.(IJ,KL) = (JI,KL) = (IJ,LK) = (JI,LK) = (KL,IJ) = (LK,IJ) = (KL,JI) = (LK,JI) なる対称性を利用すると更に ld 数は削減 2.大多数の再構成の際に部分再構成で済む34 FPU間接続 隣接行間接続(ORN) 完全接続 制限付き 非隣接行間接続 データ転送にFPUを使用 ORN ORN 完全接続 1行のFPU数制限無し 制限付き ORN 1行のFPU数制限有り データ転送に配線資源を使用 完全接続 ORN 1行の配線資源数制限無し 制限付き 1行の配線資源数制限有り 35 ・・・ ORN ・・・ ORN ・・・ ORN ・・・ 36
© Copyright 2025 ExpyDoc