Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Submit Search
Fpgax20170924
•
Download as PPTX, PDF
•
0 likes
•
2,038 views
Natsutani Minoru
Follow
第9回 FPGAX LT
Read less
Read more
1 of 16
Download now
More Related Content
Fpgax20170924
1.
コキュートスでいろいろ動かしてみた話 2017/9/24 株式会社パソナテック 西日本支社 夏谷 1 HUMANWARE® changes the
world
2.
自己紹介 夏谷実 株式会社パソナテック
株式会社パソナテック 西日本支社 TFUG KANSAI 最近は半導体関連の仕事が多い FPGAが好き プログラミングも好き Deep Learningも好き 2
3.
やったこと 組込向けフレームワークを使って、ラズパイやPYNQでいろい ろ動かしてみた。 各手法の報告。FPGAは使ってません><
gccのオプションはデフォルトで-O3 処理の95%以上は3x3 conv2d 3 https://ja.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi 3 Model B http://www.pynq.io/ PYNQ
4.
ラズパイ VS PYNQ 4 VGG16
Tiny-YOLO ラズパイ 188 20 PYNQ メモリ不足で動かず 42 -> 60 単位は秒 VGG16の重みが512MBを超え ているので、PYNQにロードでき ない。 最初42秒だったけど、Emacsイ ンストールしたら遅くなった。
5.
ラズパイ VS PYNQ 5 VGG16
Tiny-YOLO ラズパイ 188 20 PYNQ メモリ不足で動かず 42 -> 60 単位は秒 VGG16の重みが512MBを超え ているので、PYNQにロードでき ない。 最初42秒だったけど、Emacsイ ンストールしたら遅くなった。 ・ラズパイの方が2~3倍速い ・PYNQにEmacsは入れるな。
6.
ラズパイ上のTiny-YOLOを早くしたい 6 ①3x3 conv2dの計算順を変える。 →画処理のコンボリューションではなくフィルター方向への コンボリューションへ →メモリライトの数が減る。PC上では速度3倍へ ②それに合わせて、データの並びを変える。(チャネルラストへ) ③OpenMP ④FP16 ⑤Neon+OpenMP →社内の専門家の知識を使った 順番にやってみた
7.
ラズパイ上のTiny-YOLOを早くしたい 7 名前 Conv2d 計算順 チャネル ラスト OpenMP FP16
NEON 処理時間 (秒) C_ori - - - - - 20 C_ori_MP - - 有効 - - C 変更 - - - - c_cl 変更 有効 - - - C_ori_fp16 - - - 有効 - C_fp_16 変更 - - 有効 - C_neon - - 有効 - 有効 いろいろやってみた。結果は?
8.
ラズパイ上のTiny-YOLOを早くしたい 8 名前 Conv2d 計算順 チャネル ラスト OpenMP FP16
NEON 処理時間 (秒) C_ori - - - - - 20 C_ori_MP - - 有効 - - 計算結果 不一致 C 変更 - - - - 31 c_cl 変更 有効 - - - 31 C_ori_fp16 - - - 有効 - C_fp_16 変更 - - 有効 - C_neon - - 有効 - 有効 データの並び替え、計算順序の変更では早くならない。実測大事。
9.
ラズパイ上のTiny-YOLOを早くしたい 9 名前 Conv2d 計算順 チャネル ラスト OpenMP FP16
NEON 処理時間 (秒) C_ori - - - - - 20 C_ori_MP - - 有効 - - 計算結果 不一致 C 変更 - - - - 31 c_cl 変更 有効 - - - 31 C_ori_fp16 - - - 有効 - 46 C_fp_16 変更 - - 有効 - 64 C_neon - - 有効 - 有効 今のARMはFP16サポートしてない。毎回変換が入ってる。
10.
ラズパイ上のTiny-YOLOを早くしたい 10 名前 Conv2d 計算順 チャネル ラスト OpenMP FP16
NEON 処理時間 (秒) C_ori - - - - - 20 C_ori_MP - - 有効 - - 計算結果 不一致 C 変更 - - - - 31 c_cl 変更 有効 - - - 31 C_ori_fp16 - - - 有効 - 46 C_fp_16 変更 - - 有効 - 64 C_neon - - 有効 - 有効 2.4 さすがNEONや!
11.
まとめ 実際に手を動かすの大事 本命はFP16+NEON
次はFPGAだ! 11
12.
おまけ:ラズパイGPUの実力 12 Tiny-YOLO ARM+NEON 2.4秒 https://www.slideshare.net/notogawa/using-raspberry-pi-gpu-for-dnn GPU使うと大体4~5倍? Using Raspberry Pi
GPU for DNN 9/3 Deep Learning Acceleration勉強会 中村 晃一様
13.
おまけ:ラズパイGPUの実力 13 VGG16 ARM+NEON 7秒 Tensorflow(GPUなし) 2秒 Tiny-YOLO ARM+NEON 2.4秒 https://www.slideshare.net/notogawa/using-raspberry-pi-gpu-for-dnn http://qiita.com/kazunori279/items/1e23679c534a49c0e837 Neonでも十分早くできるのでは? Using Raspberry
Pi GPU for DNN Deep Learning Acceleration勉強会
14.
おまけ:FPGA(SDSOC)奮戦中 14 データ量が固定でないとバース トできない アクセスがシーケンシャルじゃな いとバーストできない Conv2D 13x13 Conv2D 416x416 Conv2D 208x208 同じ回路をいくつもつくらないと駄目>< データ量で動き変わるぞ・・・ Zynq 7020 c w h DLのコンボリューションは一次元多い! FP16のくせに、回路規模減らない 回路はいらない 速度でない 1サイクル1時間コース DSP 741MHz
15.
おまけ:FPGA(SDSOC)奮戦中 15 データ量が固定でないとバース トできない アクセスがシーケンシャルじゃな いとバーストできない Conv2D 13x13 Conv2D 416x416 Conv2D 208x208 同じ回路をいくつもつくらないと駄目>< Zynq 7020 c w h DLのコンボリューションは一次元多い! FP16のくせに、回路規模減らない 回路はいらない 速度でない 同じ回路をいくつもつくらないと駄目>< データ量で動き変わるぞ・・・ 1サイクル1時間コース Deep LearningのFPGA実装に、SDSOCはやめとけ (少なくとも今は・・・) DSP 741MHz
16.
ご静聴ありがとうございました。 16
Editor's Notes
テンサーフローユーザーグループ関西 パソナテック公認キャラ
Download