- 題目:Synetgy: Algorithm-hardware Co-design for ConvNet Accelerators on Embedded FPGAs
- 時間:2019
- 會議:FPGA
- 研究機構:伯克利/清華
- 博客參考:https://zhuanlan.zhihu.com/p/91064128
1 abstract & introduction
本篇論文的主要貢獻:
- 基於ShuffleNetV2設計了一個新的網絡模型:DiracDeltaNet
- 通過軟硬件協同的思想,以及對應的accelerator:Synetgy
2 網絡設計
2.1 ShuffleNetV2
ShuffleNetV2有這幾個特點:
- 模型較小,計算量較小
- 採用了concatenative skip連接而不是additive skip連接
2.2 網絡主要的改進
- 3x3卷積換成了shift模塊和1x1卷積
3x3卷積是9個數變成1個數,shift就是從9個數中按照規則copy1個數作爲輸出 - 3x3max-pooling換成2x2最大池化
- channel shuffle順序更換:方便硬件實現
2.3 網絡量化
權重按照這個公式量化
activation參考了論文Pact: Parameterized clipping activation for quantized neural networks 2018,採用這個公式量化:
重訓練參考論文Towards Effective Low-bitwidth Convolutional Neural Networks 2017 arXiv,每次重訓練50epoch,一直量化到權重1bit,activation4bit
3 accelerator結構
利用了HLS生成硬件,硬件需要完成的運算:
- 1x1卷積
- 2x2最大池化
- shift
- shuffle和concatenation
硬件不支持的運算:
- 全連接層則用1x1卷積運算完成
- shuffle操作用CPU-based memory copy
- 平均池化用ARM
3.1 軟件接口
開發板爲Xilinx Zynq UltraScale+ MPSoC,ARM上跑linux系統,通過基於PYNQ部署,並且在ARM上計算最後7x7的平均池化