Diary/2019-8-22
Microwatt
A tiny Open POWER ISA softcore written in VHDL 2008だそうなので,とりあえず合成してみた.
git clone https://github.com/antonblanchard/microwatt.git
して fpga/topleve.vhd をトップにVivadoでプロジェクト作成.
VivadoでVHDL 2008を解釈するにはファイルタイプを指定しないといけないので,
tclコンソールで
set_property FILE_TYPE {VHDL 2008} [get_files *.vhd] set_property FILE_TYPE {VHDL 2008} [get_files *.vhdl]
とかする.
clock_generatorはIP Catalogから選んで生成.
よくわからないけど,とりあえず,合成通すためってことで,入力125MHz→出力100MHzでコア生成.
合成時にuPythonのファームウェアを読み込むようなので,READMEに従ってuPythonをビルド.
git clone https://github.com/mikey/micropython cd micropython git checkout powerpc cd ports/powerpc make -j$(nproc)
PowerPC用のgccは,https://toolchains.bootlin.com/ からダウンロード.
uPythonはfirmware.elfとfirmware.binができるので,
とりあえずfirmware.binをhexdumpでHEX文字列に変換.
xdcは,exStickGE用に,
set_property -dict {PACKAGE_PIN W11 IOSTANDARD LVCMOS33} [get_ports clk] create_clock -period 8.000 -name sys_clk_pin -waveform {0.000 4.000} -add [get_ports clk] set_property -dict {PACKAGE_PIN D19 IOSTANDARD LVCMOS33} [get_ports reset_n] set_property -dict {PACKAGE_PIN C14 IOSTANDARD LVCMOS33} [get_ports uart0_txd] set_property -dict {PACKAGE_PIN C15 IOSTANDARD LVCMOS33} [get_ports uart0_rxd] set_property CONFIG_VOLTAGE 3.3 [current_design] set_property CFGBVS VCCO [current_design]
と用意.
合成してみたら100MHzだとタイミングメットせず.残念.
Worst Negative Slack: -2.049ns
らしい.リソースは,LUT 15692, LUTRAM 91, FF 4643,BRAM 256,DSP 16とか.
KWS聴講
KWS@北千住で中原先生の招待講演きいてきた.
座長をおおせつかっていたので特別席でよかった.
Kは軽井沢じゃなくて,回路になってしまって久しいのだなあ,とか.
- 最近は姿勢推定のアプリが人気らしい
- Z. Cao, T.Simon, S.-E. Wei and Y.Sheikh, Realtime Multi-Person 3D Pose Estimation using Part Affinity Fields
- OpenPose, VGG19 + 6 Stages,https://motchallenge.net/data/2D_MOT_2015
- クラウドと組み込みの違い
- FPGA Acceleration in the era of high level design, J.Freeman
- cloud
- many classes(1000s)
- large workloads
- high efficiency (perf./W)
- server form factor
- Embedded
- Few classes(< 10)
- Realtime frame rates
- Low coast & low power
- Custom from factor
- cloud
- リアルタイムもあれこれ
Ship classification from SAR image based on deep learning
https://link.springer.com/chapter/10.1007/978-3-030-01054-6_2
- プラットフォーム
- RPi - Jetson Nano - FPGA(Ultra96) - EdgeTPU
- 柔軟性 -> R&Dコスト
- 柔軟な設計法
- 推論アクセラレータ
- CNN 90%
- 産総研 片岡さん マシンラーニング ノック
- Tutorial on Hardware Architectures for Deep Neural Networks
- Light-weight approach
- fully pipelining vs. stage pipelining(= GPU)
- 混合精度
- スパース化
- Separable Convolution
- Point-wise + Depth-wise
- Shift-net, Shuflle-net
- 初段をTernaryでスピードも精度もあがる
- 精度もあがる,のか.
- probablistics approach - 統計的手法
- PCAで可視化 (多次元を二次元にマッピング)
- ノイズくわえる
- NCNN
- Systematic Approach
- 入力画像と精度のトレードオフ
- たとえば,OpenPoseで 368x368 -> 128x128
- タイル分割
- 前処理・後処理
- Synetgy: Algorithm-hardware co-design for convnet accelerators on embedded fpgas
- 次のトレンド
- 学習のアクセラレータ
- なんか具体的にかわったの?
- Lottery Ticket(?)
- スパースありきで学習してもいい
- なんか具体的にかわったの?
- DA的には設計デザインチョイス