PPT

並列処理プロセッサへの
実数演算機構の開発
数理情報科学専攻 福永研究室
大橋 常毅
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 e127  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
n0
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