Comments
Description
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