• 検索結果がありません。

2000 研究テーマ

N/A
N/A
Protected

Academic year: 2021

シェア "2000 研究テーマ"

Copied!
57
0
0

読み込み中.... (全文を見る)

全文

(1)

1

山崎研究室紹介

2011年10月24日

山崎 勝弘

[email protected] 1.研究室の目標 2.育成したい人材像 3.指導方針 4.研究分野: 並列処理とハード/ソフト・コデザイン 5.研究テーマ 6.貴君らに提供できること 1

(2)

1.研究室の目標

• ハードウェアとソフトウェアの両方分かる人

材の育成

• コミュニケーション能力、スケジューリング

能力、および知的体力の養成

• 社会人としての基本的素養をつけ、努力を

継続して、目標を達成できる人材の育成

• 並列処理とハード/ソフト・コデザインを融合

した高性能な問題解決システムの構築

(3)

3

2.育成したい人材像

• あいさつ

• コミュニケーション能力

– 日本語で正しく表現、発表、議論

– 英語能力

• スケジューリング能力

– 立案、実行、チェック(Plan, do ,check)

• 知的体力

– 最後まであきらめずにやり遂げること

3

(4)

3.指導方針

• 前向きに楽しく: positive thinking

• 研究テーマの設定、研究環境の整備

• 社会人としての基本的素養をつけて欲しい。

• 社会人になるための実力をつけて欲しい。

• 英会話学習のきっかけをつかんで欲しい。

• 自分の夢を将来にわたって実現して欲しい。

(5)

5

4.研究分野

並列処理とハード/ソフト・コデザインを融合 した高性能な問題解決システムの構築

(6)

研究経歴

(1976~現在)

FPGA ハードソフト アーキテクチャ 並列アプリ 知識工学 QA-1 MUNAP レイトレーシング ラジオシティ ハード/ソフト・コラー ニングシステム JPEG、MPEG N体、グリッド 電力系統 知的CAI 事例ベース 並列プログラミング ハッシュ関 数高速化 同期マルチ メディア MAP設計 ガラス傷検出 AES OpenMP 動作合成 リアルタイム レイトレーシング モンテカルロ 囲碁 ルーティング トランスピュータ AP1000+ PCクラスタ SMPクラスタ KSR1 GPU FPGA プロセッサ4台の並列マシン マイクロプログラム制御 ハードウェア、システムソフト アプリケーション SMPクラスタ 情 報 工 学 科 情 報 学 科 電 子 情 報 デ ザ イ ン 学 科 1988 2004 1994

(7)

なぜハードとソフトか

• 人間: 強い肉体(体力)+知恵(知力) • コンピュータ: 高い性能(ハード)+使いやすさ(ソフト) • ハードのみ: 組み立ては容易 – 差別化が難しい。低価格化にさらされる。 • ソフトのみ: 技術者が多い。 – Cプログラミングだけなら理工系なら誰でもできる。 • ハードとソフト: できる人材が極めて尐ない。ニーズは高い。 • Cプログラミング:アセンブリ言語やコンパイラのコード生成が 分かれば、コンパクトで速いプログラムができる • プロセッサ設計:命令の使われ方や使用頻度が分かれば、 良い命令セットを設計できる。 7

(8)

ハード/ソフト・コデザインの目標

• プロセッサ設計 • 命令セットアーキテクチャ • アセンブリ言語、C言語、コンパイラ • ハードウェア設計言語 • ハードウェアとソフトウェアの最適バランス • FPGA:プログラム可能なLSI 目標 • 学生独自のプロセッサをFPGA上で動かす。 • 暗号化、画像処理、囲碁などをFPGA上で動かす。 • FPGA上で動作させて、感激を味わう。

(9)

9

並列処理の目標

• マルチコアプロセッサ • マルチスレッド:スレッドレベル並列処理 • PCクラスタ、SMPクラスタ • ハイブリッド並列処理 – 共有メモリ+分散メモリ、OpenMP+MPI

• GPU(Graphics Processing Unit) 目標

• リアルタイムレイトレーシングや画像処理など、大規模問題 をSMPクラスタやGPU上で高速に解く。

• 実際に動作させて、高速化を実感し、感激を味わう。

(10)

5.研究テーマ

5.1 マルチALUプロセッサの設計とコンパイ

ラ設計支援

5.2 FPGAを用いたガラス傷検出とAESの高

速化

5.3 GPUによるリアルタイムレイトレーシング

5.4 OpenMPハードウェア動作合成システム

5.5 モンテカルロ囲碁システム

5.6 命令スケジューリング

(11)

11

5.1 マルチALUプロセッサの設計と

コンパイラ設計支援

命令セット設計 命令セット 定義ツール 命令セット アセンブラ 命令セット シミュレータ プロセッサ モニタ プロセッサ デバッガ サンプル プログラム MONIプロセッサ アーキテクチャ理解

ソフトウェア学習

ハードウェア学習

HDLによる プロセッサ設計 HDL シミュレータ FPGAボード- コンピュータ上で検証 MONI シミュレータ プロセッサ設計 能力の習得 プ ロ セ ッ サ 学 習 シ ス テ ム プ ロ セ ッ サ 設 計 支 援 ツ ー ル

(12)

命令セットを用いたテスト1

• MONI (ハード/ソフト協調学習システム)

– 命令語長16bit、3オペランド、全43命令、4命令形式 – Nまでの和、Nの階乗、除算、素数判定、根の判別 5 3 3 3 2 Opecode Opecode Opecode Opecode Rs Rs Rs Rt Rt Rd Fn Immediate Immediate Immediate 命令形式 Register JUMP Immediate8 Immediate5 5 2 3 3 3 Opecode Opecode Opecode Rd Rs Rt Rt Rd Fn Immediate Immediate Rd 命令形式 Register Transfer Immediate

• SOAR (2004年度 4回生が設計)

– 命令語長16bit、3オペランド、全25命令、4命令形式 – Nまでの和、最大値、最大公約数、バブルソート

(13)

13

命令セットを用いたテスト2

• コマンド・全205パターンの動作が正しく動くことを確認

– フラグや境界値の変化も確認

• MONI, SOAR, SARISの命令セットを用いて、

それぞれのプログラムが正しく動くことを確認

5 2 3 3 3 Opecode Opecode Opecode Opecode Rd Rs Rt Rt Rd Fn Immediate Immediate Immediate Fn (Rd) 命令形式 Register JUMP Immediate8 Immediate3

• SARIS (2007年度 4回生が設計)

– 命令語長16bit、3オペランド、全22命令、4命令形式 – Nまでの和、Nの階乗、最大公約数、除算、根の判別

(14)

マルチALUプロセッサMAPの設計

• 複数ALUによる並列処理が可能

• レジスタファイルは32個で、全ALUで共有

• ALUで並列演算と連鎖演算を行う

• FPGAボード上での実装・評価

• ハードウェアとアセンブラでの並列処理の検出・

比較

命令 語長 64 SUB $0 $0 $0 LD $1 MEM[$0+#0]

(15)

2ALUのMAPのデータパス

(16)
(17)

MAPプログラミング

• 例 整数同士による c=a×b の計算

プログラマは並列演算や連鎖演算を考慮せずに 1命令ずつ記述する。

(18)

ALU並列処理

ハードウェアによる並列性の検出

PPUで単一実行、並列演算、連鎖演算を判定

並列演算 連鎖演算

(19)

FPGAボード上への実装

• Xilinx社のSpartan-3A Starter Kitボードと、同社の論理合成ツー ル総合開発環境ISE13.2を使用する。

• 研究室で開発したプロセッサデバッガを使用する

(20)

プロセッサデバッガ・モニタ

コマンドをデコード ボードコンピュータを制御

コマンドを入 力

(21)

MAP用アセンブラ

• 2命令を取り出し、各オペコードで並列性を検出 • 並列性が検出できたらオペランドから命令間での連鎖を検出 21 並列 並列 連鎖 連鎖

(22)

字句解析部 <lex.yy.c> 構文解析 定義ファイル 字句解析 定義ファイル Flex 字句解析ツール Bison 構文解析ツール コード生成部 変数表 (レジスタ 番地登録) トークン列 構文木 (中間表現) Cソース コード アセンブリ コード 構文解析部 <y.tab.c><y.tab.h> moni.l moni.y コード最適化

コンパイラ設計支援システム

(23)

23 ・名前 ・目的と用途 ・動機 ・構成要素 ・構造(アニメーション) ・本体 -ソースコード -対象プロセッサ デザインパターン 新規設計 キーワード 類似設計パターンの検索 類似設計パターン インターフェースの修正 検証、再利用化 HDL設計 類似パターン キーワード 登録

プロセッサ設計におけるデザインパターンの利用

機能の追加、削除

(24)

5.2 FPGAボードを用いたガラス傷検出

使用する欠損画像 TDI ラプラシアン フィルタ 2値化 ラベリング 判別 ノイズ除去 エッジ抽出 閾値判定 ラベル付け HW化 液晶ガラス検査装置の高速化 ケーデーイーとの共同研究

(25)

TDI(Time Delay Integration)

TDIとは同じ画像の画素をずらして撮影を繰り返し、その共通 部分を重ね合わせ平均値を取ることで、ノイズの影響が小さ い画像を得る手法 1 1 1 1 2 2 2 2 3 3 3 3 1 0 1 2 1 2 2 2 3 2 3 2 理想の画像 現実の画像 25 0 0 0 0 1 0 1 2 2 1 1 1 1 2 2 2 2 2 3 2 3 2 3 2 3 3 3 4 3 4 4 4 1.5 0.5 1 1.5 1.5 2 2.5 2 3 2.5 3 3

(26)

ラプラシアンフィルタ

ラプラシアンフィルタとは、画像中に含まれる物体の輪郭 抽出(エッジ)を抽出フィルタである。 ラプラシアンフィルタ: f(x, y) y y) f(x, x y) L(x, 2 2 2 2       30 7 5 5 6 3 8 9 10 4 1 1 1 1 -8 1 1 1 1

(27)

ラベリング

ラベリングとは、画像の繋がっている画素(連結成分)に同じ 番号(ラベル)をつけ、異なった連結部分には異なった番号を つける処理である。 ラベリングにより、TDIやラプラシアンフィルタ処理後に残った ノイズ(傷)を検出する事ができる。 2 2 2 2 3 3 1 1 1 1 1 27

(28)

ラプラシアンフィルタのHW化(1)

アドレス調整 メモリ ラプラシアン フィルタ 2値化 画像データ Spartan3A SK lap EX 画像データ

(29)

ラプラシアンフィルタのHW化(2)

(30)

実験条件

•実験内容 あらかじめTDI処理を128回行った画像でラプラシアンフィル タ処理を行う。FPGAボードとパソコン両方で処理させ、その 処理時間を比較する。実際のガラス欠損画像データを使用 (株式会社ケー・デー・イー提供) •使用したFPGAボード

Xilinx社のSpartan3A Starter Kitを使用し、同社の設計ツー ルを用いて設計を行った。

•パソコン

Intel® Core™2 Quad CPU Q9400 2.67GHz、実装メモリ4.00GB、 Windows 7 Ultimate 32bitオペレーティングシステム。

(31)

実験結果(1)

回路規模や遅延、最大動作周波数は以下のようになった

ラプラシアンフィルタの処理時間

31

Number of Slices 314 Number of Flip Flop 23 Number of 4 input LUTS 591

Delay 24.849(nsec) Maximum Frequency 40.243(MHz)

パソコン 108(msec) FPGAボード(Spartan3A SK) 7.6(msec)

(32)

実験結果(2)

(33)

AES暗号の全体図

SubByte変換 Shiftrows変換 MixColumns変換 AddRoundKey変換 AddRoundKey変換 SubByte変換 Shiftrows変換 MixColumns変換 AddRoundKey変換 SubByte変換 Shiftrows変換 AddRoundKey変換 入力鍵 鍵拡張,w36-w39 鍵拡張,w4-w7 鍵拡張,w40-w43 平文 暗号文 ラウンド1 ラウンド9 ラウンド10 AddRoundKey変換 逆MixColumns変 換 AddRoundKey変換 逆SubByte変換 逆Shiftrows変換 逆MixColumns変 換 AddRoundKey変換 逆SubByte変換 逆Shiftrows変換 AddRoundKey変換 逆SubByte変換 逆Shiftrows変換 暗号文 平文 ラウンド1 ラウンド9 ラウンド10 33

(34)

• 非常にリアルなCG画像を作成する手法のひとつ。 • 視点から光を追跡することにより画像を描画する。 • 映画制作、ゲームのCG表現、拡張現実感、試作レス化などに利用。 <研究目標> • GPUを用いて、リアルタイム(100ms以下)に画像を生成する。 • 古典的レイトレーシングのみならず、モンテカルロレイトレーシング、 フォトンマッピングも対象とする。

5.3 GPUによるリアルタイムレイトレーシング

34

(35)

レイトレーシングの問題点

• 光線と物体との交差判定

が全処理の約8割

– 物体の数が増えると処理時間が増える

– 反射が多いと処理時間が増える

35

• 交差判定の高速化が必要

①交差判定自体を高速化する

②交差判定の回数を減らす

<解決策>

①GPUを用いた画面分割

②GPUを用いた適応型空間分割

(36)

NVIDIA Tesla C1060

• ストリーミング・マルチプ ロセッサ(SM)を30搭載 • 各SMにストリーミング・ プロセッサ(SP)を8搭載 • 16KBの共有メモリ • 32bitのレジスタ (16K個) • Single Instruction Multiple Thread(SIMT) 型プロセッサ

(37)

GPUを用いた画面分割

• スクリーンを分割

• 分割された画素ブロック

は各SMで処理

• 共有メモリを有効利用

37

(38)

適応型空間分割

• 含まれる物体が最も

多い空間を2分割

• 空間を128分割する

まで繰り返す。

• 各空間を各SPに割り

当て並列処理を行う。

(39)

現在までにできていること

(1)物体情報の定義ファイル読み込み (2)レイトレレーシング処理 ・拡散反射(物体に陰影をつける) ・鏡面反射(物体に光沢感をつける) (3)レイトレーシング画像出力 39 実行時間:58.67(s) 実行時間:124.48(s) 実行時間:396.91(s) Intel(R)Core(TM)2 Duo CPU E6850 @3.00GHz

(40)

5.4 OpenMPハードウェア動作合成システム

コード ジェネレータ OpenMP プログラム (動作記述) ハードウェ ア制約 SMP環境 (PCクラスタ) シミュレーション 並列動作 ハードウェア OpenMP コンパイラ トランスレータ マルチスレッド プログラム 並列動作HW 中間表現 アルゴリズム評価 ハードウェア合成 並列アルゴリズム 並列効果 回路規模 性能評価 OpenMP構文を 利用した動作合成 早期に並列化手法の検討 検証時間の短縮 逐次プログラムから の段階的な設計

(41)

CベースとOpenMPベースの比較

Cベース

41

OpenMPベース

Cプログラム OpenMPプログラム 並列リージョン ユーザ記述 ハードウェア記述 自動並列化 並列リージョン からの変換

(42)

データ並列の実行モデル

• データ並列性のある処理をノードで分担

• 100回の繰り返しを4ノードで分担する場合

#pragma omp parallel for

for(i=0;i<100;i++) { 処理A(i); }

#pragma omp parallel for (スレッド生成 & fork) 処理A(i=0~24) スレッド 処理A(i=25~49) スレッド 処理A(i=50~74) スレッド 処理A(i=75~99) スレッド join 終了時のリダクション演算(結果の足し合わせなど) 各スレッドはの繰り返し処理を分担 forループ内 sum= sum+i

(43)

43

データ並列のハードウェア構成

逐次データパス Memory or Register 並列データパス Op 処理A 処理A 処理A 処理A Control Control 並列HWの起動・終了 Arbiter スレッド間共有データへ の同時アクセス制御 Memory or Register 並列データパス 動作時は停止

(44)

コードジェネレータの改善

44

the number of state

transitions

State1,2 state3 State4,5 state6 state7 state8 false true true false a = a + 1 b = b + 2 state1 state2 state3 state4 state5 state6 state7 state8 false true true false a = a + 1 b = b + 2 ・Sジェネレータ(1演算)とMジェネレータ (複数演算) ・状態数と一時レジスタの削減による高 速化を図るコードジェネレータを作成中 ・マンデルブロー、エッジ抽出で速度が 25%向上

(45)

45

5.5 モンテカルロ囲碁システム

各種知的ゲームの比較

チェス 将棋 囲碁 局面数 10120 10200 10300 コンピュータ チャンピオン アマ名人程度 アマ初段程度 の強さ に勝利 女流トッププロ アマ三段程度 人間に勝つ 1997年 2010年 女流 2030年? のはいつ Kasparov 2015年? 名人 トピック IBM 評価関数の モンテカルロ囲碁 DeepBlue 機械学習 人間との対戦 激指 清水上アマ名人に○ MoGo プロ8段に9子で○ 稲葉アマ準名人に× CrazyStone あから2010 清水女流王将に○ 青葉4段に8子で○

(46)

46

モンテカルロ囲碁とは

• 囲碁は陣地をたくさん取った方が勝ち

• ある局面から最後まで実際に打って(プレイアウト)、

最も勝率の高い手を次の手とする。

• ランダムプレイアウト:乱数を用いて、適当に最後まで

打つ(弱い)

• パターンプレイアウト:よく出てくるパターンに基づいて

最後まで打つ(上より強い)

• 次の候補手を5つ位選ぶ→プレイアウト→最も勝率の

高い手を次の手とする。

(47)

モンテカルロ囲碁の並列化

47 盤面認識 候補手生成(5つ) プレイアウト 1 2 3 4 5 0.4 0.5 0.3 0.7 0.6 勝率 1 2 3 4 5 4を打つ プレイアウト 黒勝ち 白勝ち 0.8 0.66 0.6 0.5 大量のプレイアウトを高速に行う 1万回/秒 4プロセッサでは4万回/秒

(48)

モンテカルロ囲碁のハードウェア化

• 序盤、中盤、終盤でアルゴリズムが異なる。

• 序盤、中盤、終盤に最適のハードウェアを用意し、実

行時に切り替える(動的再構成)

(49)

49 Miss-prediction Bias (MPB) の発見と応用 予測ミスが一部の分 岐命令に集中する。 予測器LPHTを追加し て、再予測する。 分離式BTB

(Branch Target Buffer)

無条件分岐命令を従 来のBTBから分離し, 小さい特殊なBTBを追 加する。

5.6 命令スケジューリング

条件分岐命令( beq )の分岐予測の精度を上げる。 BTB:beq命令の分岐先の予測アドレスを格納する表 BTBを工夫、追加して精度を上げる。

(50)

6.貴君らに提供できること

• 問題解決の仕方

– 卒論、進路、就職、‥

• スケジューリングの仕方

– Plan, do, check

• 研究発表の仕方

– 日本語文章、スライド作成、発表、‥

• 英会話勉強の仕方

– IEEE student branch カウンセラー 5年間

– 英語プレゼン大会 2004年から8回実施

(51)

MUNAP トランスピュータ

(52)

ラジオシティ法 サンプル画像

(53)

入門 SPARTAN-3 Starter Kit

3(20万ゲート), 3E(50万), 3A(70万)

(54)
(55)

55

Diploクラスタ:サーバー(4プロセッサ)×4

(56)
(57)

• 今日のスライドを高性能計算研究室の私

のHPにアップしておきます。

• 興味のある人は、ぜひ研究室見学に来て

下さい。

• 気力、体力、知力のある人 歓迎!

• 7日から10日の予定 10日出張

• 研究室デモ 11月7日(月)3時~5時

11月9日(水)3時~5時

57

おわりに

参照

関連したドキュメント

[r]

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

[r]

※固定片は 配管セットに同梱.. 転用する配管セット品番 必要な追加部品品番 対応可能排水芯 CH160FW.

具体音出現パターン パターン パターンからみた パターン からみた からみた音声置換 からみた 音声置換 音声置換の 音声置換 の の考察

東京都 福祉保健局 健康安全部 環境保健課...

章番号 ページ番号 変更後 変更前

章番号 ページ番号 変更後 変更前