!Microwatt [A tiny Open POWER ISA softcore written in VHDL 2008|https://github.com/antonblanchard/microwatt.git]だそうなので,とりあえず合成してみた. 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 :: リアルタイムもあれこれ 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 ** http://eyeriss.mit.edu/tutorial.html ** https://www.jics.utk.edu/files/images/csure-reu/2015/Tutorial/DNN/DNN-Intro-2.pdf :: 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 ** https://arxiv.org/abs/1811.08634 :: 次のトレンド * 学習のアクセラレータ ** なんか具体的にかわったの? *** Lottery Ticket(?) *** スパースありきで学習してもいい * DA的には設計デザインチョイス