マルチ tpcore による並列コンピュータ
DESCRIPTION
マルチ TPcore による並列コンピュータ. 並列処理用プロセッサの再構築と FPGA 内ネットワーク 首都大学東京 数理情報科学専攻 福永 力. 目次. 研究の背景 Communicating Sequential Process ( CSP ) (通信逐次プロセス) Transputer と Occam TPcore 開発工程 TPcore アーキテクチャ 動作検証と実装結果 動体認識と追跡への応用. 研究の背景. 並列処理理論としての CSP の有用性・将来性 CSP をもとにした Occam 言語の有用性と 並列処理プログラム記述の簡便性 - PowerPoint PPT PresentationTRANSCRIPT
2007.9.21 URCFセミナー 1
マルチ TPcore による並列コンピュータ
並列処理用プロセッサの再構築とFPGA 内ネットワーク
首都大学東京 数理情報科学専攻 福永 力
2007.9.21 URCFセミナー 2
目次 研究の背景 Communicating Sequential Process ( CSP )(通信逐次プロセス)
Transputer と Occam TPcore 開発工程 TPcore アーキテクチャ 動作検証と実装結果 動体認識と追跡への応用
2007.9.21 URCFセミナー 3
研究の背景 並列処理理論としての CSP の有用性・将来性 CSP をもとにした Occam 言語の有用性と
並列処理プログラム記述の簡便性 CSP をもとに設計された並列処理プロセッサの
現代技術のもとでの復元 Inmos 社(当時)の Occam コンパイラ +Toolset の再利用 このプロセッサをもとに並列処理システムの
応用分野の拡大発展 さらなるプロセッサの開発への一歩
2007.9.21 URCFセミナー 4
CSP ( Communicating Sequential Process )
通信逐次プロセス
(逐次実行)プロセスが処理単位 プロセスは次々とイベントが起こることにより実行さ
れる 入出力イベントが( 2つの)プロセス間の唯一の相互
作用(データ移動)
入出力イベントは 2つのプロセス間に張られた共通インターフェース(チャンネル)を通してなされる
入出力イベントにより2つのプロセスは同期をとる(バッファなし同期通信)
デッドロック(あるいはライブロック)に注意が必要
2007.9.21 URCFセミナー 5
例えば 2つのプロセスが 2つのチャンネルで通信し合うときその順番を取り違えた場合
モデル作成段階でさまざまなモデル検証・精錬アプリケーションが市販(フリーも)されている. FDR2 ( Failure Divergence Refinement ), ProBe , ARC , Ca
sper
Deadlock,Livelock の回避・除去
正常通信デッドロック
2007.9.21 URCFセミナー 6
Occam について
CSP を具現したプログラミング言語
逐次プロセス( SEQ )と並列プロセス( PAR )の記述が可能
チャンネル通信のためのチャンネル変数:プロセス間データ(メッセージ)交換に利用
並列プログラミングが容易
2007.9.21 URCFセミナー 7
P0
transputer 0
P1
transputer 1
P0 P1
transputer 0Link
同じ Occam 記述で実行可能
Transputer
英国 Inmos 社が開発した並列処理プロセッサ Occam を実行する命令セットを持つ それぞれのプロセッサは 4対の双方向 Link を持ち、
さまざまなネットワークが構成可能 1台の transputer でも並列プロセスが実行可能
2007.9.21 URCFセミナー 8
Transputer
英国 Inmos 社が開発した並列処理プロセッサ Occam を実行する命令セットを持つ それぞれのプロセッサは 4対の双方向 Link を持ち、
さまざまなネットワークが構成可能 1台の transputer でも並列プロセスが実行可能
TP
TP
TP
TP
TP
TP
TP
TP
TP
TP
TP
TP
TP
TP
TPTP
TP
TP TP
2007.9.21 URCFセミナー 9
TPcore
Transputer とアセンブリ命令レベルで互換
レジスタやバス構成は transputer のモデルを可能な限り踏襲
制御機構 (Microcode ROM)はフルカスタム
2007.9.21 URCFセミナー 10
TPcore 設計開発工程
transputerの構造及び
命令セットの解析
TPcore の回路設計•Verilog-HDL で記述
マイクロコードの設計•各命令を実行するための 回路の状態遷移を記述
transputer Coreの研究段階
設計・開発段階
評価・検証段階
統合
TPcore の動作検証
Link の検証
複数の TPcoreでの動作検証
2007.9.21 URCFセミナー 11
TPcore 内部アーキテクチャ CPU 部
Link部
Memory Controller
Memory
Link
Memory Controller
CPU
32bit 32bit
8bit8bit8bit 8bit
8bit x 4
RAM8Kx
8bit
Memory
RAM8Kx
8bit
RAM8Kx
8bit
RAM8Kx
8bit
外部Memory
2007.9.21 URCFセミナー 12
CPU
レジスタやバス、
ALU を制御する信号を出力する
2007.9.21 URCFセミナー 13
命令実行の状態遷移
ROM code defines state of registers, bus and ALU
CPU
address
Iptr
MicroCode ROM
Instruction register
Oreg
Registers and busses
Memory(32KByte)
Select address of MicroCode ROM
8bit
命令実行Execution
命令解読Analysis
命令取得Instruction Fetch
2007.9.21 URCFセミナー 14
Micro-code ROM◆ レジスタ間,メモリレジスタ間データパス制御, ALU 機能決定◆ 状態遷移管理
◆ 仕様変更への対処の容易さ◆ FPGA 内部メモリの効率的仕様(論理領域有効利用)
68bit
1024step
2007.9.21 URCFセミナー 15
単一 TPcore 内の並列処理 単一 TPCore での CSP独特の並列処理操作:PAR ( Parallel ), ALT ( Alternate )などでの プロセス管理 プロセス間通信(チャンネル通信) プロセス待行列
はハードウェアアルゴリズムを独自開発
特許出願中(特願 2007-211904 )
2007.9.21 URCFセミナー 16
単一 TPcore の動作確認 Eight Queens とハノイの塔
2007.9.21 URCFセミナー 17
TPcore と transputerT425 の性能比較
開発した TPCORE ( FPGA ) Originalの transputer( ASIC)
動作周波数 24MHz 20,25,30MHz
回路規模 3816slices (論理素子ユニット)
〜 107 000gates
メモリ 32KByte24MByte/sec
( FPGA に依存 /Processor 同期 )
4KByte (内部 RAM) 100MByte/sec
4GByte (外部 RAM) 33MByte/sec
リンク 24Mbit/sec ( Processor 同期)
5/10/20 Mbit/sec
2007.9.21 URCFセミナー 18
マルチ TPcore の組み込み FPGA として Xilinx Virtex4LX160 を使用最大 67,584slices ( 1890000gates )回路規模
TPcore ( 4000slices ) 16台 + ネットワークを 1FPGA に実現可能
今後 Virtex5 familyでさらなるマルチ TPcore の実現が期待できる:Virtex5LX330 でゲート規模が 1.8 倍を実現している.
2007.9.21 URCFセミナー 19
マルチ TPcore組込み例 Mandelbrot集合の描画 フロントエンド TPcore の数 Nftp 全体ネットワークの TPcore 数 Nttp 構成例
Nftp=2 Nttp=3 Nftp=4 Nttp=7 Nftp=8 Nttp=15
2007.9.21 URCFセミナー 20
マルチ TPcore組み込み例(続)
Mandelbrot GraphWritingTime vs.
Number of front-end TPcore
0
200000
400000
600000
800000
1000000
1200000
1400000
0 1 2 3 4 5 6 7 8 9
Time
Time(clocks)
ï`âÊTPcoreêî
8% 17% 36% 57% 86% FPGA占有率
描画時間 vs. フロントエンド TPcore 数
単純にフロントエンドの TPcore を増やしても描画時間はすぐに飽和 FPGA の占有率も考慮しなければならない( 60% 以下が効率的) フロントエンド,中継 TPcore のソフトウェアの注意深いチューニング
が必要
2007.9.21 URCFセミナー 21
並列処理応用例:対象認識と追跡
航空写真のブレ補正 航空機の対地速度 (V) /対地高度 (H) 比→山岳への衝突回避
ミサイルや航空機など飛翔体の発見・追尾→天空など高輝度背景中の物体検出
噴煙や地すべり、河川の流れ計測 自律搬送車の無人走行
2007.9.21 URCFセミナー 22
標的認識・追跡アルゴリズム オプティカルフロー
Lucas&Kanade の勾配法• 並列処理との親和性あり
色ヒストグラムと Mean-Shift法• 並列処理アルゴリズムの開発の必要
空間フィルタリング Matrix 加減乗除算と並列処理の親和性(シストリックアレー)
時系列フィルタリング 時系列モデルによる追跡と予測
• 並列処理アルゴリズムの開発の必要性
2007.9.21 URCFセミナー 23
Lucas&Kanade法と並列処理 I(xi,yi,t)を時刻 t でのセル xi,yi
の画像強度( Intensity) (t-1) から tでの位置シフト(速度)を u,v とするとIxu+Iyv+It=0を満たす u,v を探す.
となりあうセルの情報が必要 近傍セルすべての I, Ix,Iyを並列
処理で効率よく計算• Ix=dI/dx, Iy=dI/dy, It=dI/dt
2007.9.21 URCFセミナー 24
複数 TPcore を用いた並列処理
2007.9.21 URCFセミナー 25
まとめと今後の展望 並列処理プロセッサとしての TPcore
TPcore は CSP システムを完全に実現できるハードウェアプロセッサ→ CSP 発展のフィールド• 超並列システム(より粒状化の進んだ並列システム)への移行の前段階の研究
• 並列システムソフトウェアの効率向上のためのツールの開発• 新たな通信プロトコルの開発
TPcore ネットワークによる並列処理システム応用• 動体認知・追跡
実時間処理ネットワークシステムの基幹プロセッサ• ロボット• 車載(分散)制御システムの統合ネットワーク
T9000級のプロセッサの開発