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