...

1 - 立命館大学 高性能計算研究室 HPCLab.

by user

on
Category: Documents
26

views

Report

Comments

Transcript

1 - 立命館大学 高性能計算研究室 HPCLab.
山崎研究室紹介
2013年10月28日
山崎 勝弘
[email protected]
1.研究室の目標
2.育成したい人材
3.指導方針
4.研究分野: 並列処理とハード/ソフト・コデザイン
5.研究テーマ
6.貴君らに提供できること
1
1.研究室の目標
• ハードウェアとソフトウェアの両方分かる人
材の育成
• コミュニケーション能力、スケジューリング
能力、および知的体力の養成
• 社会人としての基本的素養をつけ、努力を
継続して、目標を達成できる人材の育成
• 並列処理とハード/ソフト・コデザインを融合
した高性能な問題解決システムの構築
2
2.育成したい人材像
• あいさつ
• コミュニケーション能力
– 日本語で正しく表現、発表、議論
– 英語能力
• スケジューリング能力
– 立案、実行、チェック(Plan, do ,check)
• 知的体力
– 最後まであきらめずにやり遂げること
3
3.指導方針
•
•
•
•
•
•
前向きに楽しく: positive thinking
研究テーマの設定、研究環境の整備
社会人としての基本的素養をつけて欲しい。
社会人になるための実力をつけて欲しい。
英会話学習のきっかけをつかんで欲しい。
自分の夢を将来にわたって実現して欲しい。
4
4.研究分野
画像圧縮
GPU
並列処理
ハード/ソフト・コラー
ニングシステム
ハイブリッド
N体問題
リアルタイ
ムレイト
レーシング
ハッシュ関
数高速化
SMPクラスタの構築
1号機~4号機
ラジオシティ法
フォトンマッピ
ング
Blokus Duo
モンテカルロ囲碁
将棋手筋
GPUマシンとSMPクラスタを使いこなす。
デザイン
パターン
命令セット
プロセッサ
ガラス傷検出
高速化
コンパイラ
マルチALUプロ
セッサの設計
甲骨文の画像
解析と再解読
FPGAボードを使いこなす。
並列処理とハード/ソフト・コデザインを融合
した高性能な問題解決システムの構築
5
研究経歴(1976~現在)
FPGA
ハードソフト
アーキテクチャ
並列アプリ
知識工学
QA-1
MUNAP
プロセッサ4台の並列マシン
マイクロプログラム制御
ハードウェア、システムソフト
アプリケーション
電力系統
知的CAI
1994 情
トランスピュータ
AP1000+
同期マルチ
メディア
KSR1
ハード/ソフト・コラー
ルーティング
ニングシステム
ハッシュ関
数高速化
JPEG、MPEG
N体、グリッド
OpenMP
動作合成
MAP設計
FPGA
BlokusDuo
報
工
学
科
レイトレーシング
ラジオシティ
事例ベース
並列プログラミング
ガラス傷検出
1988 情
甲骨文字
認識
SMPクラスタ
命令スケ
ジューリング
報
学
科
2004 電
子
情
報
デ
ザ
イ
ン
学
科
PCクラスタ
SMPクラスタ
リアルタイム
レイトレーシング
GPU
2012 電
将棋手筋
モンテカルロ
囲碁
SMPクラスタ GPU
子
情
報
工
学
科
なぜハードとソフトか
• 人間: 強い肉体(体力)+知恵(知力)
• コンピュータ: 高い性能(ハード)+使いやすさ(ソフト)
• ハードのみ: 設計は難しい。組み立ては容易。
– 差別化が難しい。低価格化にさらされる。
• ソフトのみ: 技術者が多い。
– Cプログラミングだけなら理工系なら誰でもできる。
• ハードとソフト: できる人材が極めて少ない。ニーズは高い。
両方できれば、鬼に金棒
• Cプログラミング:アセンブリ言語やコンパイラのコード生成が
分かれば、コンパクトで速いプログラムができる
• プロセッサ設計:命令の使われ方や使用頻度が分かれば、良
い命令セットを設計できる。
7
ハード/ソフト・コデザインの目標
•
•
•
•
•
•
プロセッサ設計
命令セットアーキテクチャ
アセンブリ言語、C言語、コンパイラ
ハードウェア設計言語
ハードウェアとソフトウェアの最適バランス
FPGA:プログラム可能なLSI
目標
• マルチALUプロセッサを設計してFPGA上で動かす。
• 画像処理、ガラス傷検出、ゲームなどをFPGA上で動かす。
• FPGA上で動作させて、感激を味わう。
8
並列処理の目標
•
•
•
•
•
マルチコアプロセッサ
GPU(Graphics Processing Unit)
超並列マルチスレッド処理
SMPクラスタ
ハイブリッド並列処理
– 共有メモリ+分散メモリ、OpenMP+MPI
目標
• リアルタイム画像生成、画像認識、囲碁など、大規模問題を
SMPクラスタやGPU上で高速に解く。
• 実際に動作させて、高速化を実感し、感激を味わう。
9
5.研究テーマ
5.1 マルチALUプロセッサの設計とFPGAボ
ード上での検証
5.2 FPGAとGPUを用いたガラス傷検出の高
速化
5.3 FPGA上でのBlokusDuoの設計と実現
5.4 GPUによるリアルタイムレイトレーシング
5.5 甲骨文字の画像解析と再解読
5.6 モンテカルロ囲碁システム
10
5.1 マルチALUプロセッサMAPの設計
• 複数ALUによる並列処理 ALU数:2,4,8,16
• レジスタ数は32で、全ALUで共有
• 演算レベル並列処理:ALUで並列演算と連鎖演算
• HDLによるMAPの設計と論理シミュレーション
• FPGAボード上での実装・評価
• ハードとアセンブラによる並列演算と連鎖演算の検出
11
2ALUのMAPのデータパス
12
MAPの命令セットアーキテクチャ
1命令32ビット 4命令形式 MIPSサブセット
13
2ALUによる並列処理
ハードウェアによる並列性の検出
PPUで並列演算、連鎖演算、単一演算を判定
連鎖演算
並列演算
A=B+C
D=E+F
D=A+E
14
MAPプログラミング
連鎖
並列
連鎖
並列
• 2命令を取り出し、各オペランドのデータ依存性を調べる
• データ依存がなければ並列演算、あれば連鎖演算
15
プロセッサデバッガ・モニタ
コマンドをデコード
ボードコンピュータを制御
コマンドを入
力
16
FPGAボード上への実装
• Spartan-3A Starter Kitと、論理合成ツールISE13.2を使用
• プロセッサデバッガを設計・開発中
17
現状と今後の研究内容
•
•
•
•
•
2ALUのMAPをHDLで設計し、各モジュールをデバッグ
MAPアセンブラ、シミュレータを作成、MAPプログラミング
プロセッサデバッガのGUIインタフェースを作成
MAP本体のSpartan3A上で実動作 確認
Booth乗算(1次、2次)のFPGAボード上での実行
今後の研究内容
• クロック制御部の改善による高速化
• ALU数:4,8のMAPを設計し、並列処理の有効性を評価する
18
5.2 FPGAを用いたガラス傷検出の高速化
• 液晶用ガラスの欠損検出を画像処理によって行い,それを
ハードウェア化することによって高速に処理
• 本システムは雑音除去のためのTDI,欠損検出のためのラプ
ラシアンフィルタ,2値化,ラベリングから構成される
画像撮影
画像データの
読み込み
ノイズ除去
傷のエッジ抽出
閾値処理
画像内の
オブジェクトの
認識
欠損(傷)
傷の検出
19
TDI(Time Delay Integration)
• 対象物を縦方向に1ラインずつずらして複数回撮影
• 撮影画像の共通部分を重ね合わせて平均値を取る
• ノイズの影響を減少
縦方向に1ラインずつずらして撮影
・・・
欠損(傷)
共通部分を重ね合わせて平均値を取る
20
ラベリング
• 画像中の連結成分にラベルをつける
• 1回目のスキャンで仮ラベルを生成
• 2回目のスキャンでラベルを補正
1
1 1
2 1 1 1
2 2 1 1
2 2
3
3 3
1
1 1
1 1 1 1
1 1 1 1
1 1
4 4
4 4
仮ラベル生成
3
3 3
4 4
4 4
ラベル補正
21
逐次処理による欠損検出
• 画像処理モジュール
–
–
–
–
BRAM_RW
Laplacian
Labeling(仮ラベル生成)
Revising Labels(ラベル補
正)
• 3ラインレジスタ
– PIX_Register
– LAP_Register
– LAB_Register
• 制御モジュール
– Generate_ADDR
22
パイプライン処理による欠損検出
• 画像処理モジュール
–
–
–
–
BRAM_RW
Laplacian
Labeling (仮ラベル生成)
Revising Labels(ラベル補正)
• パイプラインレジスタ
– PIX_Register
– LAP_Register
– LAB_Register
• 制御モジュール
– Generate_ADDR
4-stage pipeline
23
実験環境
• FPGA環境
–
–
–
–
TDI処理後の画像サイズ256*256,1画素8bit
FPGA評価ボード: Xilinx社のVirtex5 507
合成ツール: ISE14.5
シミュレーションツール: Isim
• CPUソフトウェア環境
–
–
–
–
–
Intel Core 2 Quad CPU Q9400 2.67GHz
4.00GB メモリ
OS : Windows7 Ultimate
プログラム言語 : C
コンパイラ: gcc 4.3.4
24
ハードウェア量
逐次処理
レジスタ数
LUT数
LUT-FF ペア数
Block RAM と
FIFO数
54
(0.12%)
2222
(4.96%)
17
(0.74%)
16
(12.5%)
パイプライン
処理
46
(0.10%)
2590
(6.36%)
17
(0.74%)
16
(12.5%)
Virtex5
44800
44800
2295
128
• 二つの手法はVirtex5の僅かな部分しか使用していない
• LUT数は、パイプライン処理が逐次処理により16%の増加
25
実行時間と速度向上
FPGA
パイプライン処理
FPGA 逐次処
理
CPU
ソフトウェア
72.0
(13.9ns)
77.6
(12.9ns)
―
時間/ピクセル (ns)
13.9
51.6
2274.2
時間/画像 (ms)
0.94
3.40
149.2
158.7
43.9
1
クロック周波数(MHz)
速度向上 (times)
• パイプライン処理の性能向上
– 1ms以下で実現できた(ラプラシアン ~ラベリングの補正)
– CPUソフトウェア処理の158倍
– 逐次処理の3.6倍
26
5.3 FPGA上でのBlokusDuoの設計と実現
第3回 相磯秀夫杯
FPGAデザインコンテスト
2013年9月18日 北陸先端科学技術大学院大学
電子情報通信学会 リコンフィギャラブル研究会
21チーム参加
予選4グループ Bグループ 1位
決勝リーグ
3位入賞
FPGAデザインコンテスト 表彰式
BlokusDuoボード
2台のFPGAでの対戦
5.4 GPUによるリアルタイムレイトレーシング
スクリーン,視点,物体,光源を作成
光源
(1)スクリーン上の画素に向けて光線を発生
(2)すべての物体と光線の交差判定を行う
反射
(3)光線と接した物体のうち最も距離の近い
物体を抽出
屈折
反射
屈折
(4)抽出した物体の輝度の計算をする
(5)反射や屈折が起これば,
それを新たな光線とみなして
(2)~(4)を繰り返す
光線
視点
スクリーン
29
Geforce GTX 480
ホストコンピュータ
• NVIDIA社から2010年発表
GPU
• Graphics Processing
Cluster(GPC)を4個搭載
Giga スレッドスケジューラ
GPC
GPC
GPC
GPC
ラスターエンジン
• 各GPCはストリーミング・マル
チプロセッサ(SM)を4個搭載
SM
SM
SM
SM
• GPU内にSMが16個
• SMが並列処理の単位
L2キャッシュ:768KB
グローバルメモリ:1536MB
30
ストリーミング・マルチプロセッサ(SM)
SM
• スカラー・プロセッサ
(SP)が32個
• 共有メモリ:64KB
ワープ・スケジューラ
ワープ・スケジューラ
ディスパッチ・ユニット
ディスパッチ・ユニット
SP
RF
SP
RF
SP
RF
SP
RF
• レジスタファイル:
128KB
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
• 32個のスレッド(ワー
プ)による並列処理
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
SP
RF
• Single Instruction
Multiple Thread
(SIMT)型プロセッサ
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
LD/ST
SFU
SFU
SFU
SFU
共有メモリ/L1キャッシュ:64KB
テクスチャ・キャッシュ
命令キャッシュ
31
SPDシーンデータ
teapot
tetra
teapot
mount
tetra
mount
ポリゴン数
2328
4096
8192
サイズ(KB)
370
249
617
• SPD:レイトレーシング用のベンチマークシーンデータ
• 視線,背景,光源,物体素材,物体形状,位置の定
義が含まれている
32
画面のブロック分割
• スクリーンを複数の
ブロックに分割する
• 1個のブロックを1個
のSMで処理する
• 16ブロックを16個の
SMで並列処理
• SM内の32個のSPで
マルチスレッド処理
ブロック
33
SM内でのマルチスレッド処理
• 1画素が1スレッドに
対応
1画素 1スレッド
SP×32個
ブロック
• 各スレッドはSPで処
理される
• 32スレッド(ワープ)
の並列処理
• 64ピクセルで2ワー
プ処理
34
GPU上での並列処理
CPU
SPDファイル情報
読み込み
GPU
スクリーンを指定されたブロック数に分割
各ブロックをワープ単位でスレッド分割
SPD情報
配列変換
交差判定
スクリーン
情報受信
SP
YES
反射
NO
輝度計算
SM15
SM1
・・・
・・・
ブロック数, スレッ
ド数の指定
GPU側にSPD情報
転送
マルチスレッド処理
SM0
SP
SP
光線の方向探索
SP
SP
SP
画像生成
32スレッド(1ワープ)で動作
スクリーンにレイトレーシング結果書き込み
35
実験方法と実験環境
• CPUによる逐次処理とGPUによる並列処理
– 画像の解像度は512*512
• 画面分割はブロック数,スレッド数を変化させて実行
ブロック数
256*256 128*128 64*64
32*32
16*16
スレッド数
2*2
16*16
32*32
4*4
8*8
• CPU逐次処理の環境
– Intel(R) Core i7 CPU 950 @3.07GHz 6.00GB
• GPU並列処理の環境
– Intel(R) Core i7 CPU 950 @3.07GHz 6.00GB
– GPU:Geforce GTX480 (コアプロセッサ数 512個)
グラフィッククロック:700MHz,メモリクロック:1848MHz
– 並列処理環境:CUDA
実行時間と速度向上
ブロック数
スレッド数
teapot
tetra
mount
実行時間
(秒)
速度向上
(倍)
実行時間
(秒)
速度向上
(倍)
実行時間
(秒)
速度向上
(倍)
256*256
2*2
13.9
14.2
7.75
12.0
20.7
12.7
128*128
4*4
3.60
55.0
2.00
46.6
5.22
50.4
64*64
8*8
1.71
116
0.92
101
2.41
109
32*32
16*16
1.83
108
0.94
99.1
2.45
107
16*16
32*32
2.17
91.2
0.99
94.1
2.56
103
CPU
実行時間
198
93.2
263
5.5 甲骨文字の画像解析と再解読
• 研究背景
データベースから
類似候補を抽出する
*川が正しい
– 3000年以上前の甲骨文字が
劣化などの問題で、認識しに
くい
– 甲骨文字の解読が文字の起
源、変化と未解読資料の解
読に重要である
• 研究手法
– 画像処理技術を用いて、文
字を取り出し、鮮明化して、
マッチング手法を用いて、認
識する
• 貢献
– 文化財産の保護
– 古文献の解読による史学へ
の貢献
川
(川) (水)
甲骨
文字の
切り出し
研究のイメージ図
認識
5.6 モンテカルロ囲碁 各種知的ゲームの比較
チェス
将棋
囲碁
局面数
10120
10200
10300
コンピュータ チャンピオン 女流トッププロ
の強さ
に勝利
前名人以上
アマ六段程度
人間に勝つ 1997年
2010年 女流 2030年?
のはいつ
Kasparov
2015年? 名人
トピック
IBM
評価関数の モンテカルロ囲碁
DeepBlue
機械学習
人間との対戦
激指 清水上アマ名人に○ MoGo プロ8段に9子で○
稲葉アマ準名人に×
CrazyStone
あから2010 清水女流王将に○ 青葉4段に8子で○
2012年 ボンクラーズ 米長前名人に○ 武宮9段に6子で○
2013年 第1回電王戦 3勝1敗1分
武宮9段に4子で1勝1敗
39
モンテカルロ囲碁とは
• 囲碁は陣地をたくさん取った方が勝ち
• ある局面から最後まで実際に打って(プレイアウト)、
最も勝率の高い手を次の手とする。
• ランダムプレイアウト:乱数を用いて、適当に最後まで
打つ(弱い)
• パターンプレイアウト:よく出てくるパターンに基づいて
最後まで打つ(上より強い)
• 次の候補手を5つ位選ぶ→プレイアウト→最も勝率の
高い手を次の手とする。
40
モンテカルロ囲碁の並列化
プレイアウト
盤面認識
候補手生成(5つ)
1
2
3
4
5
プレイアウト
1
2
3
4
5
0.4
0.5
0.3
0.7
0.6 勝率
4を打つ
0.8
黒勝ち
0.66
0.6
0.5
白勝ち
大量のプレイアウトを高速に行う
1万回/秒 4プロセッサでは4万回/秒
41
6.貴君らに提供できること
• 問題解決の仕方
– 卒論、進路、就職、‥
• スケジューリングの仕方
– Plan, do, check
• 研究発表の仕方
– 日本語文章、スライド作成、発表、‥
• 英会話勉強の仕方
– マンチェスター大学 客員研究員 1992年~1993年
– IEEE student branch カウンセラー 2006年から5年間
– 英語プレゼン大会 2004年から10回実施
42
ドイツ・ハノーバ大学短期留学
・2013年度 GRGP (Global-ready Graduate Program) 受講
⇒大学院生のための留学プログラム
M1 野尻 直人君
・留学先決定までの過程
1. 履歴書(CV)とCover letterを 作成
2. 画像処理を主に行っている海外の大学をサーチ
3. 研究室の担当教授にメールを送付 (約50通)
・留学先
ドイツ・ハノーバ大学・The institut für Informationsverarbeitung
担当教授:Prof. Dr.-Ing. Jörn Ostermann
研究室名:情報科学技術研究室
研究内容:マルチメディア信号処理及び画像解析
・期間 2013年8月5日~2013年10月19日
・研究内容
1.ビデオ動画上で移動する小物体のラベリング
2.地理画像上での小物体のラベリング
異なる分類監視システムの評価向上
• 学んだこと
-コミュニケーション能力
-人との出会い
-自己主張
-向上心
-感謝
大学での昼食
マインツ(岡崎慎司選手)VSハノーバ(酒井宏樹選手)
宿泊先の部屋
MUNAP
トランスピュータ
45
ラジオシティ法 サンプル画像
上嶋 明氏 作成、富士通 AP1000+ 64プロセッサを使用、1997.
Parallel Computing 2011
46
入門 SPARTAN-3 Starter Kit
3(20万ゲート), 3E(50万), 3A(70万)
47
VIRTEX5
48
Nyctoクラスタ:サーバー(8プロセッサ)×2
49
おわりに
• 今日のスライドを高性能計算研究室の私
のHPにアップしておきます。
• 興味のある人は、ぜひ研究室見学に来て
下さい。
• 気力、体力、知力のある人 歓迎!
• 研究室デモ 11月4日(月) 13時~15時
11月5日(火) 13時~15時
11月6日(水) 15時~17時
50
Fly UP