• 题目:Inference of Quantized Neural Networks on Heterogeneous All-Programmable Devices
  • 时间:2018
  • 会议:DAT
  • 研究机构:赛灵思

1 缩写 & 引用

FINN: A framework for fast, scalable binarized neural network inference 2017 FPGA
Accelerating binarized convolutional neural networks with software-programmable FPGAs 2017 FPGA

2 abstract & introduction

这篇论文描述了一个实时的目标检测的视频流,跑在Zynq UltraScale+(XCZU3EG),实现了16FPS,网络是基于Tiny YOLO进行修改

3 构建tincy yolo

3.1 优化1:定点化+FINN:1fps

所有的feature map value是3bit,权重是-1或者1,输入层和输出层是8bit
中间四层最大池化和六层卷积层用FINN-based QNN实现
因为板子资源不够,不能层与层之间流水,只能一层计算完再计算下一层,latency会很大
然后这部分集成到Darknet,因为FINN是HLS的库函数,只需要在layer description中把函数指针重定向到库函数。

3.2 优化2:NEON向量化:2.5fps

开始一些跑在CPU的代码,Darknet并没有进行优化,就是简单的im2col然后变成矩阵乘法,这里用ARM的NEON进行优化,本周就是SIMD向量化的计算,然后把矩阵slice成竖直的条条,可以增加数据的局部性

3.3 优化3:网络结构tiny-yolo->tincy-yolo:5fps

文献阅读(44)

文献阅读(44)

3.4 优化4:并行化

开发板是Zynq UltraScale+ XCZU3EG,包括了四核ARM Cortex-A53和双核ARM Cortex-R5,而多核可以并行操作。通过线程池来实现并行

相关文章: