Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
並列計算の現状と
産業応用について
伊野 文彦
大阪大学 大学院情報科学研究科
1
2017/2/10IoTと機械学習シンポジウム
並列計算とは?
1つの問題を複数の演算器で解くこと
計算時間の短縮による新しい価値観や方法論の創出
普通にできないことを可能にする!
例:超音速航空機による大阪・ニューヨーク間の日帰り旅行
2
並列計算機の変遷
需要のある市場なくして並列計算機は開発できない
NVIDIAによる民主化
並列でないプロセッサはもはやない
3
将来の超並列プロセッサを見据えた超並列アルゴリズムが必要
ベクトル機
国家の特注品
PCクラスタ
WINTE...
身の回りの並列処理
 逐次処理で100年かかるもの
天気予報
力学シミュレーション
DNA解析
機械学習
 秒単位の応答を必要とするもの
 可視化やPCゲーム
 ウェブ検索
 手術支援
 自動運転
4
手術シミュレーション可...
なぜGPUは速いのか?
 高スループット指向のハードウェア・プログラミングモデル
 高いメモリ帯域幅
 短い道路(短いメモリ遅延)よりも車線の多い道路
 大事なことは絶え間なくデータを演算器に供給し続けること
 高い並列性
 多くの...
6
Digitally reconstructed
radiograph (DRR)
 Coordinates mapping by simulating X-ray projection in
data space [Lemieux94]
...
GPU implementation7
GPU SideCPU Side
CT
volume
2-D
image
DRR
1) DRR
generation
Gradient
DRR
Gradient
image
2) Gradient ima...
DRR generation
 Graphics-oriented solution: DRR generation from CT
volume is almost the same computation as volume
render...
Performance results
 GPU-based system
 Laptop PC (Dell Precision M70)
 CPU: Pentium 4 2.8-GHz
 GPU: NVIDIA Quadro FX G...
Cone beam reconstruction
 A technique for producing volume data
 Input data: a series of 2-D projections taken by CT sca...
FDK algorithm
 Input/output data
 Input: a series of projections
 Output: Volume
 Filtering stage
 Convolution betwee...
キャッシュ最適化 (1 of 2)
 一連のスレッドが担当する領域の形状を工夫
 任意の方向からの投影面積が小さくなるように形状を選定
12
逆投影時間 キャッシュヒット率(左L1,右L2)
キャッシュ最適化 (2 of 2)
 投影像に対する参照の局所性を高める
 投影角の違いが微小であれば,投影先の座標 (u,v) はほぼ同じ
 投影角ごとの2次元投影像を3次元データとして並べ替え
13
一連の2次元データ 並べ替え後の3...
性能評価
 メモリスループットに関して実行効率を計測
14
GPU GeForce GTX 980 (Maxwell)
OS Fedora 22 64-bit
CUDA 7.5
0
50
100
150
200
250
512 1024 20...
文字列探索
テキスト𝑇𝑇 = 𝑡𝑡1 𝑡𝑡2 ⋯ 𝑡𝑡𝑛𝑛のうち,
パターン𝑃𝑃 = 𝑝𝑝1 𝑝𝑝2 ⋯ 𝑝𝑝𝑚𝑚が一致する部分を返すこと
加速を阻害する要因
GPU上の計算量=CPU・GPU間の転送量
計算の不規則性
袖つきのデータ...
接頭辞和(prefix sums)問題に帰着
一見して逐次性が強そうだが並列に解ける問題
 i 番目までの和を配列 A[i] に格納
演算子 ⊕ が結合則を満たせば並列処理できる
袖を除去するアイデア
16
𝑥𝑥 ⊕ 𝑦𝑦 ⊕ 𝑧𝑧 ⇔...
性能評価
入出力データがGPU側にあることを仮定
17
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0 8 16 24 32 40 48 56 64
Throughput(Tbps)
Pattern size ...
商品識別(深層学習応用)
セルフレジ
人件費節約(すかいらーく)
バーコードを付加できない生鮮食品
バーコードを探すのが手間
BakeryScan:レガシーな画像処理による識別
トレイ上のパンを天から撮影
山盛りはダメ
2017/...
深層学習による解法
 日常業務において学習データを容易に収集できる
 学習データ:画像とその正解ラベルの組
 GoogLeNet(22層)
 物体識別のための学習済みネットワーク:
畳込み層+プーリング層の反復と全結合層
 パラメータ...
処理の流れ
3台のウェブカメラ(正面,左下,右下)
による画像の取得
1280×720画素,30 fps
オプティカルフローによる
動きの検出
ダウンサンプリング(64×64画素)
学習時間を短縮するため
3方向の画像を1枚にまとめ...
識別器の構成21
GoogLeNet
ラベルごと
のスコア
複数視点画像
GoogLeNet
ラベルごと
のスコア
右下視点画像
GoogLeNet
ラベルごと
のスコア
正面視点画像
GoogLeNet
ラベルごと
のスコア
左下視点画像
ラ...
識別器の評価
 9+3クラスの識別:大根,人参,玉葱,さつま芋,長葱,ゴ
ボウ,キャベツ,白菜,水菜 + カロリーメイト3種
 学習時間(GeForce GTX 980 Ti+cuDNN+Chainer)
連結版:2.8時間(3万枚の画像...
並列処理が創造したもの
 実行時間の短縮
 術中の位置合わせ
 製造ラインにおける品質検査
 高速な機械学習
 頑健性の向上
 停電,ネットワーク断(PCクラスタ→ノートPC)
 新しい手段・価値の創造
 術中の安全性検証
 ...
まとめ
並列計算:計算時間の短縮だけでなく新しい価値観
や方法論を創出
医療現場などにおける並列処理の紹介
数万個もの並列性を活用できる超並列アルゴリズム
が大事
単なる高速化から価値を見出すことが成功の肝
2017/2/10IoTと機...
研究室のホームページ
2017/2/10IoTと機械学習シンポジウム
25
http://www-hagi.ist.osaka-u.ac.jp/
補足資料26
Shift-Or algorithm (1 of 2)
 非決定性オートマトンNFAに基づいて,ビット並列性を
活用する方法
 テキストから文字を1つ読み出すたびにNFAの状態を更新
 状態 𝑟𝑟𝑖𝑖 は,パターンにおける最初の 𝑖𝑖 文...
Shift-Or algorithm (2 of 2)
 比較開始点をずらした,𝑚𝑚 個の比較器を同時に処理
 比較器の状態をビット列に格納して更新
28
Text 𝑇𝑇: peach pie pen
Bit 𝑟𝑟0: 1011111011...
結合則への対応
 シフト演算子 ≪ は結合則を満たさない
 𝒙𝒙 ≪ 𝒚𝒚 ≪ 𝒛𝒛 ⇎ 𝒙𝒙 ≪ (𝒚𝒚 ≪ 𝒛𝒛)
 しかし,結合則を満たす加算に置換可能
 𝒙𝒙 ≪ 𝒚𝒚 ≪ 𝒛𝒛 ⟺ 𝒙𝒙 ≪ 𝒚𝒚 + 𝒛𝒛
 つまり,シフト...
結合則を満たす演算子†30
𝑢𝑢1, 𝑣𝑣1 † 𝑢𝑢2, 𝑣𝑣2 = 𝑢𝑢1 + 𝑢𝑢2, (𝑣𝑣1≪ 𝑢𝑢2) ∣ 𝑣𝑣2
𝑢𝑢𝑗𝑗, 𝑣𝑣𝑗𝑗 = 0, 1 𝑚𝑚 † 1, 𝑀𝑀(𝑡𝑡1) † ⋯ † 1, 𝑀𝑀(𝑡𝑡𝑗𝑗−1) † 1,...
参考文献
 五味田遵, 合田圭吾, 川崎康博, 伊野文彦, 萩原兼一. ``汎用グラフィクス
ハードウェアを用いた2次元/3次元剛体位置合わせの高速化''. 情報処理学
会論文誌, Vol. 47, No. 10, pp. 2947--295...
Upcoming SlideShare
Loading in …5
×

機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について

434 views

Published on

産業・社会向けソリューションをさせるIoTと機械学習シンポジウム
大阪大学大学院情報科学研究科 准教授 伊野文彦先生

Published in: Technology
  • Be the first to comment

  • Be the first to like this

機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について

  1. 1. 並列計算の現状と 産業応用について 伊野 文彦 大阪大学 大学院情報科学研究科 1 2017/2/10IoTと機械学習シンポジウム
  2. 2. 並列計算とは? 1つの問題を複数の演算器で解くこと 計算時間の短縮による新しい価値観や方法論の創出 普通にできないことを可能にする! 例:超音速航空機による大阪・ニューヨーク間の日帰り旅行 2
  3. 3. 並列計算機の変遷 需要のある市場なくして並列計算機は開発できない NVIDIAによる民主化 並列でないプロセッサはもはやない 3 将来の超並列プロセッサを見据えた超並列アルゴリズムが必要 ベクトル機 国家の特注品 PCクラスタ WINTELユーザの汎用品 GPU PCゲーマーの特定汎用品
  4. 4. 身の回りの並列処理  逐次処理で100年かかるもの 天気予報 力学シミュレーション DNA解析 機械学習  秒単位の応答を必要とするもの  可視化やPCゲーム  ウェブ検索  手術支援  自動運転 4 手術シミュレーション可視化やPCゲーム DNA解析 機械学習 台風シミュレーション
  5. 5. なぜGPUは速いのか?  高スループット指向のハードウェア・プログラミングモデル  高いメモリ帯域幅  短い道路(短いメモリ遅延)よりも車線の多い道路  大事なことは絶え間なくデータを演算器に供給し続けること  高い並列性  多くの車を道路に流せる  逐次性の強いアルゴリズムはGPUでも遅い  制約のあるプログラミングモデル  スレッド単位のプログラムを記述  制約:一部のスレッド間の依存を禁止 → メモリ遅延を隠蔽しやすい 5 メモリ 演算器
  6. 6. 6 Digitally reconstructed radiograph (DRR)  Coordinates mapping by simulating X-ray projection in data space [Lemieux94] SimulationData space Real space X-ray source X-ray image Position of the real patient can be estimated if the DRR matches the X-ray image Projection Preoperative CT volume 2-D/3-D 位置合わせ
  7. 7. GPU implementation7 GPU SideCPU Side CT volume 2-D image DRR 1) DRR generation Gradient DRR Gradient image 2) Gradient image generation Reduction 3) NCC computation Similarity evaluation 5 floating point numbers P: Position & orientation Input data P Minimize communication between CPU and GPU Bottleneck offloaded to GPU Update P Data transfer
  8. 8. DRR generation  Graphics-oriented solution: DRR generation from CT volume is almost the same computation as volume rendering  We select the texture-based rendering method [Cullip93], which exploits the hardware components in the GPU 8 Viewing direction CT volume Volume slicing by texture mapping Screen Slice composition by alpha blending
  9. 9. Performance results  GPU-based system  Laptop PC (Dell Precision M70)  CPU: Pentium 4 2.8-GHz  GPU: NVIDIA Quadro FX Go 1400 Video memory: 256MB  Cluster-based system  Cluster of 64 PCs  CPU: Dual Pentium 3 1-GHz  Network: Myrinet-2000 (2 Gb/s) 9 1 GPU 1 CPU 128 CPUs 1) DRR (ms) 19 2940 142 2) Gradient (ms) 4 142 7 3) NCC (ms) 28 9 46 Total per iteration (ms) 51 3091 195 300 iterations 15 s 15 m 58 s
  10. 10. Cone beam reconstruction  A technique for producing volume data  Input data: a series of 2-D projections taken by CT scanner  Output data: 3-D volume  Feldkamp, Davis and Kress (FDK) algorithm  Standard but memory-intensive reconstruction method  135 s on a single-core CPU using SSE instructions  Acceleration is needed for real-time imaging  GPU (8.9 s), Cell B.E. (19 s), and FPGA (40 s) 10 Imaging Reconstruction A series of 2-D projections Volume Scan rotation Cone beam CT
  11. 11. FDK algorithm  Input/output data  Input: a series of projections  Output: Volume  Filtering stage  Convolution between projections and Shepp-Logan filter  Backprojection stage  accumulates pixels on filtered projections to voxels  iterates accumulation for every projection  has perfect parallelism between different voxels 11 Volume F X-ray source Filtered projection Qi u v Interpolated pixel (u,v) Rotation F(x,y,z) = ∑ Wi(x,y) Qi(u,v) Volume Weight Projectioni
  12. 12. キャッシュ最適化 (1 of 2)  一連のスレッドが担当する領域の形状を工夫  任意の方向からの投影面積が小さくなるように形状を選定 12 逆投影時間 キャッシュヒット率(左L1,右L2)
  13. 13. キャッシュ最適化 (2 of 2)  投影像に対する参照の局所性を高める  投影角の違いが微小であれば,投影先の座標 (u,v) はほぼ同じ  投影角ごとの2次元投影像を3次元データとして並べ替え 13 一連の2次元データ 並べ替え後の3次元データ 同一投影像内に 局所性がある 投影像間をまたいで 局所性がある (u,v)
  14. 14. 性能評価  メモリスループットに関して実行効率を計測 14 GPU GeForce GTX 980 (Maxwell) OS Fedora 22 64-bit CUDA 7.5 0 50 100 150 200 250 512 1024 2048 1024 2048 Efficiency(%) 今回 従来 4秒 22秒 160秒 40秒 255秒 >100%なら キャッシュが 効いている
  15. 15. 文字列探索 テキスト𝑇𝑇 = 𝑡𝑡1 𝑡𝑡2 ⋯ 𝑡𝑡𝑛𝑛のうち, パターン𝑃𝑃 = 𝑝𝑝1 𝑝𝑝2 ⋯ 𝑝𝑝𝑚𝑚が一致する部分を返すこと 加速を阻害する要因 GPU上の計算量=CPU・GPU間の転送量 計算の不規則性 袖つきのデータ並列計算 15 Text 𝑇𝑇: peach pie pen Pattern 𝑃𝑃 : pen match 𝑛𝑛 𝑚𝑚 1−m Text Thread 1 Thread 2 Thread 3 Thread 4 袖領域 数万スレッドが走るGPUで 高い効率を得るためには 袖の除去が不可欠
  16. 16. 接頭辞和(prefix sums)問題に帰着 一見して逐次性が強そうだが並列に解ける問題  i 番目までの和を配列 A[i] に格納 演算子 ⊕ が結合則を満たせば並列処理できる 袖を除去するアイデア 16 𝑥𝑥 ⊕ 𝑦𝑦 ⊕ 𝑧𝑧 ⇔ (𝑥𝑥 ⊕ 𝑦𝑦) ⊕ 𝑧𝑧 𝑛𝑛個の要素なら 𝑂𝑂(log 𝑛𝑛) ステップ 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 + + + + + + + + + + +
  17. 17. 性能評価 入出力データがGPU側にあることを仮定 17 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 8 16 24 32 40 48 56 64 Throughput(Tbps) Pattern size m cuShiftOr GBPR GPU GeForce GTX TITAN X (Maxwell) OS Windows 7 64-bit CUDA 7.5 Tbpsオーダの 探索スループット パターンが 1ワードに収まれば 性能は一定 既存手法は パターン長とともに 性能低下
  18. 18. 商品識別(深層学習応用) セルフレジ 人件費節約(すかいらーく) バーコードを付加できない生鮮食品 バーコードを探すのが手間 BakeryScan:レガシーな画像処理による識別 トレイ上のパンを天から撮影 山盛りはダメ 2017/2/10IoTと機械学習シンポジウム 18
  19. 19. 深層学習による解法  日常業務において学習データを容易に収集できる  学習データ:画像とその正解ラベルの組  GoogLeNet(22層)  物体識別のための学習済みネットワーク: 畳込み層+プーリング層の反復と全結合層  パラメータの初期値は乱数とした 19 Convolution Pooling Softmax Other http://www.image-net.org/challenges/LSVRC/2014/slides/GoogLeNet.pptx ラベル:大根
  20. 20. 処理の流れ 3台のウェブカメラ(正面,左下,右下) による画像の取得 1280×720画素,30 fps オプティカルフローによる 動きの検出 ダウンサンプリング(64×64画素) 学習時間を短縮するため 3方向の画像を1枚にまとめる 画像の連結 学習時間を短縮するため 20 ダウンサンプリング 動きの検出 推論(あるいは学習) 画像取得 画像の連結 あり なし
  21. 21. 識別器の構成21 GoogLeNet ラベルごと のスコア 複数視点画像 GoogLeNet ラベルごと のスコア 右下視点画像 GoogLeNet ラベルごと のスコア 正面視点画像 GoogLeNet ラベルごと のスコア 左下視点画像 ラベルごと のスコア + 連結版 独立版
  22. 22. 識別器の評価  9+3クラスの識別:大根,人参,玉葱,さつま芋,長葱,ゴ ボウ,キャベツ,白菜,水菜 + カロリーメイト3種  学習時間(GeForce GTX 980 Ti+cuDNN+Chainer) 連結版:2.8時間(3万枚の画像に対して150エポック) 連結版は独立版の1/3の時間で学習を完了  交差検証による正答率 連結版 青果:98~99% カメ:92~95% 独立版 青果:99 % カメ:92~95% 単一版 青果:96~98% カメ:93~96%  誤答の原因:撮影の死角や画像のブレ 22
  23. 23. 並列処理が創造したもの  実行時間の短縮  術中の位置合わせ  製造ラインにおける品質検査  高速な機械学習  頑健性の向上  停電,ネットワーク断(PCクラスタ→ノートPC)  新しい手段・価値の創造  術中の安全性検証  ヒトを超えるプレーヤ(識別,囲碁,異物検出,手術ロボット) 23 単なる高速化から価値を見出すことが成功の肝
  24. 24. まとめ 並列計算:計算時間の短縮だけでなく新しい価値観 や方法論を創出 医療現場などにおける並列処理の紹介 数万個もの並列性を活用できる超並列アルゴリズム が大事 単なる高速化から価値を見出すことが成功の肝 2017/2/10IoTと機械学習シンポジウム 24
  25. 25. 研究室のホームページ 2017/2/10IoTと機械学習シンポジウム 25 http://www-hagi.ist.osaka-u.ac.jp/
  26. 26. 補足資料26
  27. 27. Shift-Or algorithm (1 of 2)  非決定性オートマトンNFAに基づいて,ビット並列性を 活用する方法  テキストから文字を1つ読み出すたびにNFAの状態を更新  状態 𝑟𝑟𝑖𝑖 は,パターンにおける最初の 𝑖𝑖 文字までが一致している ことを表す  読み出した文字が一致するときのみ添え字 𝑖𝑖 が増える → シフト 27 𝑟𝑟0 𝑟𝑟1 𝑟𝑟2 𝑟𝑟3 p e n *Pattern 𝑃𝑃 : pen 分岐の少なさが規則性の面で有利
  28. 28. Shift-Or algorithm (2 of 2)  比較開始点をずらした,𝑚𝑚 個の比較器を同時に処理  比較器の状態をビット列に格納して更新 28 Text 𝑇𝑇: peach pie pen Bit 𝑟𝑟0: 10111110111011 Bit 𝑟𝑟1: 11011111111101 Bit 𝑟𝑟2: 11111111111110 Output: 1111111111110 𝑟𝑟0 𝑟𝑟1 𝑟𝑟2 𝑟𝑟3 p e n* 𝑟𝑟0 𝑟𝑟1 𝑟𝑟2 𝑟𝑟3 p e n* 𝑟𝑟0 𝑟𝑟1 𝑟𝑟2 𝑟𝑟3 p e n* 0が一致を表す𝑆𝑆𝑗𝑗 = � 1 𝑚𝑚 , if 𝑗𝑗 = 0 (𝑆𝑆𝑗𝑗−1≪ 1) ∣ 𝑀𝑀(𝑡𝑡𝑗𝑗) , if 𝑗𝑗 > 0 文字𝑡𝑡𝑗𝑗が一致するときのみシフトを許すビットマスク
  29. 29. 結合則への対応  シフト演算子 ≪ は結合則を満たさない  𝒙𝒙 ≪ 𝒚𝒚 ≪ 𝒛𝒛 ⇎ 𝒙𝒙 ≪ (𝒚𝒚 ≪ 𝒛𝒛)  しかし,結合則を満たす加算に置換可能  𝒙𝒙 ≪ 𝒚𝒚 ≪ 𝒛𝒛 ⟺ 𝒙𝒙 ≪ 𝒚𝒚 + 𝒛𝒛  つまり,シフトの幅 𝑦𝑦 + 𝑧𝑧 をあとで反映すればよい 29 𝑆𝑆𝑗𝑗 = � 1 𝑚𝑚 , if 𝑗𝑗 = 0 (𝑆𝑆𝑗𝑗−1≪ 1) ∣ 𝑀𝑀(𝑡𝑡𝑗𝑗) , if 𝑗𝑗 > 0
  30. 30. 結合則を満たす演算子†30 𝑢𝑢1, 𝑣𝑣1 † 𝑢𝑢2, 𝑣𝑣2 = 𝑢𝑢1 + 𝑢𝑢2, (𝑣𝑣1≪ 𝑢𝑢2) ∣ 𝑣𝑣2 𝑢𝑢𝑗𝑗, 𝑣𝑣𝑗𝑗 = 0, 1 𝑚𝑚 † 1, 𝑀𝑀(𝑡𝑡1) † ⋯ † 1, 𝑀𝑀(𝑡𝑡𝑗𝑗−1) † 1, 𝑀𝑀(𝑡𝑡𝑗𝑗) Text: pie Pattern: pi p i e 11 10 01 11 Mask を使って,以下の 𝑣𝑣𝑗𝑗 を計算する 10 10 <<1 10 11 + + 00 <<1 11 + 00 <<1 01 +
  31. 31. 参考文献  五味田遵, 合田圭吾, 川崎康博, 伊野文彦, 萩原兼一. ``汎用グラフィクス ハードウェアを用いた2次元/3次元剛体位置合わせの高速化''. 情報処理学 会論文誌, Vol. 47, No. 10, pp. 2947--2958, (2006-10).  Yuechao Lu, Fumihiko Ino, and Kenichi Hagihara. ``Cache-Aware GPU Optimization for Out-of-Core Cone Beam CT Reconstruction of High-Resolution Volumes''. IEICE Transactions on Information and Systems, Vol. E99-D, No. 12, pp. 3060--3071, (2016-12).  Yasuaki Mitani, Fumihiko Ino, and Kenichi Hagihara. ``Parallelizing Exact and Approximate String Matching via Inclusive Scan on a GPU''. IEEE Transactions on Parallel and Distributed Systems, accepted. 31

×