並列処理プロセッサへの 実数演算機構の開発 数理情報科学専攻 福永研究室 大橋 常毅 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 1 研究背景-TPCORE • • • • 当研究室で開発しているプロセッサ Transputer-T425互換を目指し作成 並列プログラミング言語Occamが実行可能 昨年度の研究(VirtualChannel&Router)により ネットワークトポロジの制限から開放 • 50MHzで動作(Xilinx・Virtex5) IEEE1355-link OS-link TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP TP Router TP TP TP 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 2 研究背景-開発の動機 • TPCOREを画像処理に応用したい • 画像処理では大量の実数演算が必要 (高速フーリエ変換,フィルタリングなど) • これまでは整数演算が主な処理対象 • 実数演算について最適な実装方法を 模索することに 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 3 研究背景-TPCOREの問題点 • 実数演算のための命令が完備されていない • Occamの実数型に対する演算子が使えず 独自開発したライブラリで実数演算を行っている • データを文字列として扱っている 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 4 IEEE754 • Transputerの実数データ形式 符号ビット:s MSB LSB 31 30 29 …… 24 23 22 21 20 19 指数部:e …… 3 2 1 0 仮数部:f • 数の表現(正規数) (1) s 2 e127 1.f • T425での実数演算の流れ 指数部・仮数部 の分離 2011.02.04 論理演算 整数演算 指数部・仮数部 の結合 首都大学東京 修士論文発表会 T.Ohashi 5 T425命令の補完 • 以下の命令を実装すれば、T425と 同等の処理能力となる 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 6 TPCOREの拡張 • TPCOREはマイクロプログラム 方式を採用している • 各回路はマイクロコードROMの ビットパターンに従って動作 • 命令追加には – マイクロプログラムの作成 – 回路の機能を拡張 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi マイクロ コード ROM 制御部 マイクロ コード ROM 制御信 号 alua alub Creg Breg Areg ALU err databus Aregをaluaに接続 Bregをalubに接続 ALUでalua+alubを実行 databusにALUの出力を接続 Aregにdatabusの値を代入 7 ソフトウェア実装の限界 • T425の命令には直接実数演算を 行う命令がない • 内部的にはソフトウェア実装 • 専用ハードウェア(FPU)で実数演算 を行えば更なる高速化が望める 1命令で実行 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 8 FPUの組み込み方 • FPUを内蔵させる – T800がFPUを内蔵したTransputer – プロセッサの命令として効率的に実行できる – 高速演算可能だが実装可能な演算は命令セットに依存 • 外付け回路として通信命令でアクセス – 実装する演算に制限がない – 通信のオーバーヘッドが発生 通信プロトコル の拡張で対応 TP FPU 内蔵型 内部のバスで接続 2011.02.04 TP 四則演算 三角関数 平方根 四則演算のみ 対数関数など FPU FPU 外付け型 外部リンクで接続 首都大学東京 修士論文発表会 T.Ohashi 9 内蔵型FPU1(T800へのアップグレード) • T800互換のためには以下の演算 が必要 – – – – – – – – 四則演算 特定の数(2,32) による乗算・除算 絶対値 大小,イコール判定 NaN,Inf 判定 整数型⇔実数型の変換 単精度⇔倍精度の変換 端数切捨て • 上記以外の演算はソフトウェア的 に実行(三角関数,平方根など) 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 10 内蔵型FPU2 • FPUをTPCOREにどのように組み込むか? link部 CPU FPU FPU OS-link0 OS-link1 OS-link2 1355-link 32bit 8bit Memory controller 8bit データのやり取 り 制御方法 RAM 8K×8bit RAM 8K×8bit RAM 8K×8bit RAM 8K×8bit Memory • CPU部分をなるべく変更しない実装 – データバスで接続(32bit-パラレルバス) – マイクロードROMのアドレスでFPUを制御 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 11 外付け型FPU • 画像処理では三角関数の利用頻度が高 い(高速フーリエ変換、回転処理など) • 四則演算と三角関数をハードウェア実装 • ルーターを用いて複数のTPCOREで FPUを共有させる事ができる • リンク速度は50Mbps(シリアル通信) • TPCORE以外の計算要素(PE)を含めた システム構築の足掛かりに (ヘテロジニアスマルチコア) 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi TP TP Router TP リンク速度 50Mbps FPU 四則演算 + 三角関数 TP TP Router PE PE 12 性能評価1 TP ソフト 外付け T425互換 • 単純ループ FPU TP FPU 内蔵 21.4 98.7 81.8 演算(ループ数:10000) div 5044.7 15.4 96.1 65.4 mul 4931.6 15.6 96.1 81.2 add 4849.8 10 100 1000 内蔵 外付け T425互換 ソフト ADDループ SEQ temp:=0.0(REAL32) clock? before SEQ index=0 FOR LOOP SEQ temp=temp+DELTA clock? after ソフトと比較して 内蔵 :310倍 外付け :50倍 T425互換:60倍 10000 時間[ms] 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 13 外付けFPUの通信時間 FPUの処理(18clock) 1Loop(472clcok) TPから FPUへ FPUから TPへ 通信(213) 通信準備(259) • 通信時間(213)よりも通信準備(259) の方が時間がかかっている • 通信時間そのものもFPUの処理時 間(18)に対して大きい 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi データを一列に並べて 送信しているだけ 14 性能評価2 • 高速フーリエ変換(FFT) • Occamライブラリの三角関数と外付け FPUの三角関数演算で比較 四則演算 TRI FUNC UNIT TP 三角関数 TRI FUNC UNIT TP 高速フーリエ変換 N 1 X x W kn k n n0 2 i 2 2 W e N cos( ) i sin( ) N N 四則演算 FPU 内蔵-cd T425互換-cd 内蔵-cd 10.5 12.5 内蔵 N=128 55.9 外付け 43.1 66.1 T425互換-cd T425互換 0 10 20 30 40 50 60 70 時間[ms] [Hz] 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi 15 まとめ • 3つの方法でTPCOREの実数演算に ついて実装・評価 – T425の命令の補完 – FPUをTPCOREに内蔵 – 外付け回路としてのFPU • 内蔵FPUで実数演算性能は大幅に上昇 • 外付けFPUも演算規模によっては有効 • 今後 – 処理単位を上げて外付け回路を実装・評価 – リンク速度の高速化、高速I/O-IFの導入 – 画像処理(動画解析)に最適なシステムの構築 2011.02.04 首都大学東京 修士論文発表会 T.Ohashi TP FFT ビデオカメラ TP TP カメラIF Router FFT 回転 補正 16
© Copyright 2024 ExpyDoc