基于图像识别技术的硬件加速器实现与应用 2022 广东工业

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 81
















与 基于图像识别技术的硬件加速器


实现与应用
作 者 姓 名 : 毕顺翔


翔 导 师 姓 名 : 熊晓明

学科(专业)或领域名称 : 控制工程

论 文 答 辩 年 月 : 2022 年 5 月






万方数据
分类号: 学校代码:11845
UDC: 密级: 学 号:2111904230

广东工业大学硕士学位论文
(工程硕士)

基于图像识别技术的硬件加速器

实现与应用

毕顺翔

导 师 姓 名 ( 职 称 ) : 熊晓明 教授

黄沫 高级工程师

学科(专业)或领域名称 : 控制工程

学 生 所 属 学 院 : 自动化学院

答 辩 委 员 会 主 席 : 蔡述庭 教授

论 文 答 辩 日 期 : 2022 年 5 月 23 日

万方数据
A Dissertation Submitted to Guangdong University of Technology for

the Degree of Master

(Master of Engineering)

Implementation and Application of Hardware Accelerator


Based on Image Recognition Technology

Candidate: Shunxiang Bi
Supervisor: Prof. Xiaoming Xiong

May 2022
School of Automation
Guangdong University of Technology
Guangzhou, Guangdong, P. R. China, 510006

万方数据
摘要

摘 要
近年来,卷积神经网络的发展达到了前所未有的高度。卷积神经网络
可应用于多个领域中,如计算机视觉、自然语言处理、医疗设备等领域。
当前,随着应用范围的扩大,对卷积神经网络的要求越来越高,不仅需要
在大型服务器中应用,也需要在边缘端的嵌入式系统中应用,对实时性、
低功耗、高精度等条件的要求越来越苛刻。论文从神经网络部分结构、硬
件 架 构 、 性 能 、 功 耗 等 方 面 出 发 , 对 基 于 FPGA 的 硬 件 加 速 器 系 统 进 行 设
计与实现,并将其应用到实际场景中,取得了较好的研究成果。
主要工作内容如下:
( 1)合 理 利 用 板 上 的 资 源 搭 建 了 高 吞 吐 量 的 片 内 外 数 据 传 输 方 案 ,设
计了数据分块与数据复用方案减少片内外数据传输的延迟,保证片内数据
的最大化利用。
( 2)设 计 了 硬 件 加 速 器 的 运 算 核 心 ,利 用 流 水 线 的 设 计 思 路 ,设 计 五
个 不 同 的 功 能 层 提 高 了 计 算 效 率 ,同 时 提 升 了 DSP 资 源 的 利 用 率 ,获 得 了
较高的计算性能。
( 3)将 神 经 网 络 中 的 激 活 函 数 与 批 标 准 化 结 构 面 向 硬 件 设 计 进 行 了 优
化 , 探 索 了 软 硬 件 协 同 设 计 的 方 案 , 充 分 发 挥 本 文 所 使 用 异 构 SoC 平 台 的
性能。软硬件协同设计可以缩减设计周期、减小设计难度,充分利用现有
资源实现更高的性能。
( 4)对 硬 件 加 速 器 进 行 仿 真 与 实 现 。基 于 定 制 的 硬 件 加 速 器 设 计 并 搭
建了加速器系统,该系统可实现实时的视频目标检测功能。将硬件加速器
与摄像头、缩放等模块集成为加速器系统,以在实际场景中应用。
加 速 器 系 统 在 Zynq-ZC706 开 发 平 台 上 完 成 设 计 与 实 现 , 主 频 为
200MHz,运 行 YOLO-v2-tiny 神 经 网 络 的 平 均 实 际 性 能 为 108.78GOPS,单
位 DSP 性 能 比 达 到 0.2754GOPS/DSP,单 位 功 耗 性 能 比 达 到 21.613GOPS/W
SoC 片 上 功 耗 为 5.034W。 与 Intel I7 8700 和 GTX1080 平 台 实 现 的 可 视 化
功 能 相 比 , 本 加 速 器 系 统 功 耗 优 势 明 显 , 识 别 帧 率 最 高 可 达 20.7FPS。

关 键 词 : FPGA; 卷 积 神 经 网 络 ; 硬 件 架 构 ; 硬 件 加 速 器

万方数据
广东工业大学硕士专业学位论文

ABSTRACT
In recent years, the development of convolutional neural networks has
reached unprecedented heights. Convolutional Neural Networks can be
applied in many fields, such as computer vision, natural language processing,
medical equipment and other fields. At present, with the expansion of the
application range, the requirements for convolutional neural networks are
getting higher and higher, not onl y in large-scale servers, but also in
embedded s ystems at the edge. The requirements for other conditions are
becoming more and more stringent. This thesis designs and implements a
hardware accelerator system based on FPGA from the aspects of neural
network structure, hardware architecture, performance, power consumption,
etc., and applies it to practical scenarios, and has achieved good research
results.
The main work contents are as follows:
(1) A high-throughput on- and off-chip data transmission scheme is built
by rational use of the resources on the board, and a data block and data
multiplexing scheme is designed to reduce the delay of on-chip data
transmission and ensure the maximum utilization of on-chip data.
(2) The computing core of the hardware accelerator is designed, and five
different functional layers are designed by using the pipeline design idea,
which improves the computing efficiency, improves the utilization rate of DSP
resources, and obtains higher computing performance.
(3) The activation function and batch standardized structure in the neural
network are optimized for hardware design, and the scheme of software and
hardware co-design is explored to give full play to the performance of the
heterogeneous SoC platform used in this thesis. Software and hardware
co-design can shorten the design cycle, reduce the design difficulty, and make
full use of existing resources to achieve higher performance.
(4) Simulation and implementation of the hardware accelerator. Based on

II

万方数据
ABSTRACT

the customized hardware accelerator, an accelerator s ystem is designed and


built, which can realize the real-time video object detection function.
Integrate hardware accelerators with camera, zoom and other modules into an
accelerator s ystem for application in practical scenarios.
The accelerator s ystem is designed and implemented on the Zynq-ZC706
development platform, the main frequency is 200MHz, the average actual
performance of the YOLO-v2-tiny neural network is 108.78GOPS, the unit
DSP performance ratio reaches 0.2754GOPS/DSP, and the unit power
consumption performance ratio The on-chip power consumption of
21.613GOPS/W SoC is 5.034W. Compared with the visualization function
implemented by the Intel I7 8700 and GTX1080 platforms, the accelerator
system has obvious advantages in power consumption, and the recognition
frame rate can reach up to 20.7FPS.

Key words: FPGA; Convolutional Neural Network; Hardware Architecture;


Hardware Accelerator

III

万方数据
广东工业大学硕士专业学位论文

目录
摘 要 ...................................................................................................... I
ABSTRACT .......................................................................................... II
目 录 ..................................................................................................... IV
CONTENTS ........................................................................................ VII
第 一 章 绪 论 .......................................................................................... 1
1.1 研 究 背 景 及 意 义 ......................................................................... 1
1.2 国 内 外 研 究 现 状 ......................................................................... 2
1.2.1 卷 积 神 经 网 络 研 究 现 状 ..................................................... 2
1.2.2 卷 积 神 经 网 络 加 速 器 研 究 现 状 ........................................... 4
1.3 本 文 研 究 内 容 ............................................................................ 5
1.4 论 文 组 织 结 构 ............................................................................ 5
第 二 章 基 础 概 念 介 绍 ............................................................................ 7
2.1 神 经 网 络 的 演 变 与 发 展 .............................................................. 7
2.1.1 神 经 网 络 的 起 源 ................................................................ 7
2.1.2 卷 积 神 经 网 络 .................................................................. 10
2.2 YOLO 神 经 网 络 ......................................................................... 14
2.2.1 YOLO 神 经 网 络 算 法 ......................................................... 14
2.2.2 YOLO-v2-tiny 网 络 结 构 .................................................... 15
2.3 流 水 线 ...................................................................................... 16
2.4 开 发 平 台 介 绍 ........................................................................... 18
2.5 本 章 小 结 .................................................................................. 19
第 三 章 硬 件 加 速 器 设 计 ........................................................................ 20
3.1 硬 件 加 速 器 架 构 ........................................................................ 21
3.2 片 内 外 传 输 设 计 ........................................................................ 22
3.2.1 读 写 特 性 ......................................................................... 22
3.2.2 方 案 设 计 ......................................................................... 24
3.2.3 MIG 控 制 器 ...................................................................... 28
3.3 数 据 分 块 与 复 用 ........................................................................ 28

IV

万方数据
目录

3.3.1 数 据 分 块 ......................................................................... 29
3.3.2 数 据 复 用 ......................................................................... 30
3.3.3 数 据 传 输 ......................................................................... 31
3.4 核 心 计 算 组 件 ........................................................................... 32
3.4.1 核 心 计 算 组 件 的 架 构 ........................................................ 32
3.4.2 卷 积 计 算 ......................................................................... 35
3.4.3 PE 单 元 ............................................................................ 37
3.5 卷 积 数 据 后 处 理 ........................................................................ 41
3.5.1 方 案 设 计 ......................................................................... 41
3.5.2 模 块 设 计 ......................................................................... 42
3.6 本 章 小 结 .................................................................................. 43
第 四 章 加 速 器 系 统 仿 真 与 实 现 ............................................................. 44
4.1 加 速 器 系 统 应 用 设 计 ................................................................. 44
4.1.1 加 速 器 系 统 架 构 ............................................................... 45
4.1.2 加 速 器 系 统 集 成 ............................................................... 46
4.1.3 软 硬 件 协 同 设 计 ............................................................... 49
4.2 硬 件 加 速 器 模 块 仿 真 ................................................................. 51
4.2.1 DDR 传 输 仿 真 .................................................................. 51
4.2.2 核 心 计 算 组 件 仿 真 ........................................................... 52
4.2.3 DP 模 块 仿 真 ..................................................................... 53
4.2.4 硬 件 加 速 器 仿 真 ............................................................... 55
4.3 加 速 器 系 统 展 示 ........................................................................ 56
4.4 实 验 结 果 .................................................................................. 57
4.4.1 资 源 消 耗 ......................................................................... 57
4.4.2 性 能 和 功 耗 分 析 ............................................................... 57
4.5 本 章 小 结 .................................................................................. 60
总 结 与 展 望 ........................................................................................... 61
参 考 文 献 ............................................................................................... 62
攻 读 学 位 期 间 的 科 研 成 果 ...................................................................... 67

万方数据
广东工业大学硕士专业学位论文

学 位 论 文 独 创 性 声 明 ............................................................................. 68
学 位 论 文 版 权 使 用 授 权 声 明 ................................................................... 68
致 谢 ...................................................................................................... 69

VI

万方数据
CONTENTS

CONTENTS
ABSTRACT(CHINESE) ........................................................................... I
ABSTRACT(ENGLISH) ........................................................................ II
CONTENTS(CHINESE) ...................................................................... IIV
CONTENTS(ENGLISH) ...................................................................... VII
Chapter 1 Introduction .......................................................................... 1
1.1 Research background and significance ........................................... 1
1.2 Research status at home and abroad .............................................. 2
1.2.1 Research Status of Convolutional Neural Networks ............... 2
1.2.2 Research Status of Convolutional Neural Network Accelerators
................................................................................................. 4
1.3 The research content of this paper ................................................. 5
1.4 Organizational structure of the paper ............................................ 5
Chapter 2 Introduction to Basic Concepts .............................................. 7
2.1 Evolution and Development of Neural Networks ............................ 7
2.1.1 Origin of neural network ..................................................... 7
2.1.2 Convolutional Neural Networks .......................................... 10
2.2 YOLO neural network ................................................................. 14
2.2.1 YOLO neural network algorithm ......................................... 14
2.2.2 YOLO-v2-tiny network structure ......................................... 15
2.3 Pipeline ..................................................................................... 16
2.4 Introduction to the development platform ..................................... 18
2.5 Chapter Summary ....................................................................... 19
Chapter 3 Hardware Accelerator Design ................................................ 20
3.1 Hardware Accelerator Architecture ............................................... 21
3.2 On-chip and off-chip transmission design ..................................... 22
3.2.1 Read and write characteristics ............................................ 22
3.2.2 Scheme design ................................................................... 24
3.2.3 MIG Controller.................................................................. 28

VII

万方数据
广东工业大学硕士专业学位论文

3.3 Data Blocking and Multiplexing .................................................. 28


3.3.1 Data Blocking ................................................................... 29
3.3.2 Data Multiplexing .............................................................. 30
3.3.3 Data transmission .............................................................. 31
3.4 Core Computing Components ....................................................... 32
3.4.1 Architecture of Core Computing Components ....................... 32
3.4.2 Convolution calculation ..................................................... 35
3.4.3 PE unit ............................................................................. 37
3.5 Post-processing of convolutional data .......................................... 41
3.5.1 Scheme Design .................................................................. 41
3.5.2 Module Design .................................................................. 42
3.6 Chapter Summary ....................................................................... 43
Chapter 4 Accelerator System Simulation and Implementation .............. 44
4.1 Application Design of Accelerator S ystem .................................... 44
4.1.1 Accelerator S ystem Architecture ......................................... 45
4.1.2 Accelerator S ystem Integration ........................................... 46
4.1.3 Software and hardware co-design ........................................ 49
4.2 Hardware Accelerator Module Simulation ..................................... 51
4.2.1 DDR transfer simulation .................................................... 51
4.2.2 Simulation of core computing components ........................... 52
4.2.3 DP module simulation ........................................................ 53
4.2.4 Hardware Accelerator Emulation ......................................... 55
4.3 Accelerator S ystem Demonstration ............................................... 56
4.4 Experimental results ................................................................... 57
4.4.1 Resource consumption ....................................................... 57
4.4.2 Performance and Power Anal ysis ........................................ 57
4.5 Chapter Summary ....................................................................... 60
Summary and Prospect .......................................................................... 61
References ............................................................................................ 62

VIII

万方数据
CONTENTS

Scientific research achievements during degree study ............................ 67


Statement of originality of dissertation ................................................. 68
Dissertation copyright use authorization statement ............................... 68
Acknowlegements .................................................................................. 69

IX

万方数据
第一章 绪论

第一章 绪论
研究背景及意义
近年来,随着人工智能[1](Artificial Intelligence, AI)的快速发展和不断应用,促进
了许多行业领域的技术革新,比如计算机视觉[2](Computer Vision, CV)、自然语言处理
[3]
(Natural Language Processing, NLP)、医疗[4]等领域。
人工智能的出现并不是偶然,此概念早在 1956 年就已经被提出,提出这个概念的
科学家们希望用计算机来模拟并实现一个能够和人类大脑相媲美的机器。但是由于计
算机技术发展还未成熟等因素,这个概念始终是“空中楼阁”
,并没有真正的实现。进
入 21 世纪之后,随着计算机技术、互联网大数据技术的发展,以及超大算力的 GPU
(Graphics Processing Unit)等硬件单元的出现,满足了人工智能技术快速发展的各项
条件,往日的“空中楼阁”逐渐变为现实。
传统的图像识别技术例如 BP(Back Propagation)神经网络[5],通过大量的全连接
层将所有的神经元相连,每条连接都有一个权重参数,因此对于比较复杂的系统来说
BP 神经网络的计算量是十分庞大的,其典型结构如图 1-1。

图 1-1 BP 神经网络结构图

Fig.1-1 BP neural network structure

人工智能的实现离不开计算机和大数据。简单来说,人工智能使用某种算法对数

万方数据
广东工业大学硕士专业学位论文

据进行解析从中获取新的知识,反过来利用新获取的知识改善自身的过程叫机器学习[6]
(Machine Learning),是一种模拟人类学习行为的方式。目前众多机器学习技术中,
最为成功的技术之一叫深度学习[7](Deep Learning)。
众多深度学习技术中最为常用的网络是卷积神经网络 [8~9] (Convolution Neural
Network, CNN),它的出现推动了计算机视觉领域的发展。卷积神经网络可以轻易地从
大量的图像数据中提取出相对较少的特征进行学习。
卷积神经网络通过卷积计算的方式将图片一步一步地提取出抽象化的特征,可以
极大地减少数据运算量。卷积神经网络提升网络精度的方式主要有两种类型:一种是
从纵向加深网络的层数,另一种是横向扩展每一层网络的参数量。这样的方式保证了
卷积神经网络能够处理越来越复杂的场景,保证了其性能的卓越。但无论哪种类型,
提升性能的同时都带来了巨大的运算成本。专用的硬件加速器应运而生。
卷积神经网络的卷积过程是由乘法和加法运算组成的。对于卷积神经网络来说,
如何加速运算的速度是决定加速器性能好坏的主要因素。目前市面上主流的加速器有
GPU (Graphics Processing Unit)、FPGA 等几种平台,各有优点。GPU 的架构相对固
定,资源的利用率受到其本身架构的限制,大部分情况下其内部资源利用率并不能达
到最优;GPU 的峰值性能高于 FPGA,但是在相同效率下 GPU 比 FPGA 的功耗更高。
FPGA 的架构自由、可定制性较强,与此同时带来的是设计难度的挑战。FPGA 设计硬
件加速器的难点在于:如何合理运用片内有限的资源、合理调度片内各模块的算力以
及合理地进行数据传输。
本文基于 XILINX 的 Zynq 系列芯片进行开发,利用其内部 ARM 核与 FPGA 的异
构平台,探索一种软硬件协同的加速器系统实现。

国内外研究现状

卷积神经网络研究现状
卷积神经网络是一种常见的深度学习网络架构,也是目前最重要的神经网络类型
之一。过去几年,卷积神经网络的发展十分迅速,在图像识别、语音识别等领域的发
展尤为突出。其最大的优点在于对特征的提取和泛化能力。但是对于我们研究者来说,
内部的实现逻辑是不可见的,相当于一个黑盒;以图像识别应用举例:对一张输入图
片进行卷积,卷积神经网络卷积层深度不断增加,每一层卷积后得到的图像都是难以
理解的,这是因为卷积神经网络对输入图像的特征不断地抽象化,最终得到一个可以
2

万方数据
第一章 绪论

被卷积神经网络自身学习到的特征元素。
1959 年 Hubel 和 Wiesel 受到生物的自然视觉认识机制启发,发现了生物视觉识别
的过程:眼睛首先接收到视觉信号,将其映射到视网膜上形成光刺激,视网膜上的细
胞受到刺激后,经过一系列变化形成神经信号,最终由视神经传递到大脑皮层的视觉
中枢,经过大脑的分析与处理最终识别出我们看到的物体[10~11]。这一系列的处理与分析
过程就是抽象化的过程。
20 世纪 90 年代,Lecun 等人发表了论文,建立了初代 CNN 的基本结构模型:卷
积、池化(Pooling)、激活函数、全连接;根据此框架开发了一种人工神经网络 LeNet-5,
并将其应用于手写数字的分类功能上[12]。LeNet-5 在小数据集上有很好的性能,但是由
于早期缺乏训练集数据和计算机算力的不足,想要训练出高性能的神经网络是极其困
难的,LeNet-5 也不例外;随着待解决问题的复杂化 LeNet-5 的效果并不理想。
2005 年美籍华裔李飞飞在其大学任职期间,被机器学习中的过拟合和泛化问题困
扰已久;数据集中如果有与其他图片内容相差较大的数据时,神经网络几乎无法识别,
出现了过拟合的现象;如果神经网络没有将现有数据集正确处理,就出现了过度泛化
的问题。李飞飞发现数据集并不是最理想的数据集,有许多特殊的情况无法从数据集
中直接反应。从此李飞飞致力于建造一个能够反应真正世界多样性的数据集。
2009 年李飞飞和团队正式发布了 ImageNet 数据集[13],连续七年举办了 ILSVRC
(ImageNet Large Scale Visual Recognition Challenge)大赛,成为了近年来计算机视觉
领域最受关注的学术竞赛,代表了领域最高水平。2012 年 ILSVRC 竞赛冠军 AlexNet[14]
以超越第二名 10.9%的正确率夺冠。AlexNet 首次使用双 GPU 对网络进行加速训练,
从而可以从深度和广度对神经网络进行调整;通过使用 ReLU 激活函数代替 Tanh 解决
了梯度消失的问题,有效缩减了网络的收敛时间[15];使用了 Dropout 避免网络的过拟合
[16~17]
。以上的改进思路对之后神经网络的发展起到了积极的作用,掀起了深度学习的热
潮。
2016 年 Joseph Redmon 等人提出了 YOLO(You Only Look Once)神经网络,只需
要“看”一次就可以识别出图片中的物体位置和类别。YOLO 神经网络直接利用回归
的方法实现分类和识别的功能,极大地加快了识别速度。YOLO 神经网络广泛应用于
自动驾驶,安防等领域。直至今天 YOLO 神经网络已经从第一代(YOLOv1)发展到
了第五代(YOLOv5)[18~21]。

万方数据
广东工业大学硕士专业学位论文

此外还有 GoogLeNet[22~23]、VGG[24]、ResNet[25]等一系列优秀神经网络。

卷积神经网络加速器研究现状
完成并应用一个优秀的神经网络需要两个方向的研究,第一个是模型的训练,第
二个是模型的推理。模型的训练通常在大型的 GPU 组群中进行。首先通过神经网络训
练框架 Tensorflow,Pytorch[26~27]等将网络结构构建出来,之后通过 CUDA(Compute
Unified Device Architecture)映射到 GPU 上进行并行运算,提高网络训练的速度和效
率。模型的推理通常用于完成模型训练后对模型进行部署或应用,此过程会直接使用
模型训练完成后的权重参数,也就是说模型的推理并不会更改模型的参数。其难点在
于如何更加快速地执行模型的推理。
过去神经网络更多依赖于云端中心服务器的算力保证,随着当下应用场景的变化
和神经网络的普及,导致了中心服务器的压力过大,传输延迟较高,数据传输安全问
题无法保证[28]。为了缓解中心服务器的压力并减少数据传输的问题,越来越多的神经
网络推理直接部署在边缘端[29],也就是边缘计算,此方式对神经网络的实时性和低功
耗方面要求更为严格,一般有两种实现方式,分别是 ASIC(Application Spicecific
Integrated Circuit)和 FPGA 。
ASIC 芯片是针对专用计算任务而设计的,对于一个专用任务其能效比与通用处理
器相比更具有优势,例如中国科学院的陈云霁团队在 2014 年提出了名为 DianNao 的深
度学习芯片,性能超越当时主流 CPU 的数十倍,功耗面积也仅为 CPU 的 1/9.7,此芯
片利用了数据的局部重用性,减少了对内存的访问,从而大大提升了处理性能[30]。
Google 在 2017 年发布的 TPU(Tensor Processing Unit),其中 Matrix Multiply Unit
为计算核心,采用了256 × 256的脉动矩阵单元阵列[31]。核心是利用大规模脉动阵列结
合大容量片上存储,高效加速深度神经网络中最为常见的卷积运算,峰值算力达到
92TOPS,芯片面积约 331 平方毫米。其性能比当时高性能显卡高出近 30 倍以上,充
分体现了 ASIC 的优势。脉动阵列主要用来加速卷积神经网络的推理计算,还可以用来
完成除了卷积神经网络以外的其他一系列工作,比如线性回归、逻辑回归、分类与视
频编码和图像处理等。
1999 年汪光森等人成功在 FPGA 上实现了具有 64 个神经元节点的 BP 神经网络,
学习速度达到了三千万次每秒[32]。为之后研究 FPGA 实现卷积神经网络提供了思路。
ASIC 与 FPGA 相比更加具有专用性,功耗比更加有优势。但是 ASIC 从提出设计

万方数据
第一章 绪论

方案到大规模流片的开发周期大约需要 1 年左右,一个神经网络的更新换代周期仅为 7
个月左右,因此 ASIC 的定制化方案对于更新换代较快的神经网络来说并不是最优的选
择。FPGA 同样拥有并行化执行的特点,且可定制化以及可重构能力极大地缩短了神经
网络的研发周期。随着半导体技术的发展 FPGA 片上资源越来越丰富,对于一些大规
模的神经网络也可以轻松实现,同时丰富的资源带来了更多设计方案的探索,如何合
理利用片上资源成为 FPGA 设计的关键问题。
XILINX 的 Zynq 系列 FPGA 内部集成了双核 ARM-A9 处理器实现了异构平台,对
于设计人员来说可以更加灵活的对神经网络进行实现,软硬件协同设计的方式进一步
加快了 FPGA 设计的周期。

本文研究内容
本文通过分析卷积神经网络的部分特性,对其进行硬件实现的优化,探索一种软
硬件协同设计的方法。使用 XILINX 的 ZC706 开发平台,平台内具有 FPGA+ARM 核
的异构 SoC。文主要研究内容如下:
(1)首先充分学习 YOLO-v2-tiny 神经网络的结构,对神经网络中的卷积、池化、
激活函数、Softmax 等结构有针对性的进行学习。
(2)评估硬件加速器的带宽,设计高吞吐量的片内外数据传输方案;同时设计数
据分块与复用方案,减少片内外数据传输的延迟,保证片内数据的最大化利用。
(3)利用流水线的方法设计了硬件加速器的运算核心,设计了五个功能层以提高
核心计算组件的计算效率与硬件使用率。
(4)根据神经网络并行性、激活函数、批标准化计算的特点,面向硬件设计进行
优化,探索了软硬件协同设计方案。
(5)完成整个加速器系统的设计,将硬件加速器与摄像头、缩放等模块集成,并
通过前仿测试和 FPGA 板级测试,完成硬件加速器的应用。最后与前人研究的硬件加
速器的各项指标进行对比。

论文组织结构
本文共分为四个章节,内容安排如下:
第一章是绪论,主要介绍本课题所研究方向的意义、背景及近年来发展情况,之
后介绍本文主要研究内容,最后说明本文各章节安排。
第二章介绍了常见图像识别神经网络以及卷积神经网络,对本文涉及到的网络结
5

万方数据
广东工业大学硕士专业学位论文

构进行了介绍。阐述了流水线概念。最后介绍了本文所使用的异构开发平台 ZC706。
第三章介绍硬件加速器的片内外数据传输方案。设计了具有五层结构的核心计算
组件。最后通过面向硬件设计的思路将神经网络架构中的部分结构进行优化,探索了
最优方案。
第四章介绍了硬件加速器的仿真及实现。通过软硬件协同设计的方法,将硬件加
速器与摄像头、缩放等模块集成为加速器系统,实现硬件加速器的可视化应用,并对
实验结果进行分析与对比。
最后总结本文内容,提出当前设计的不足并对未来进行合理的展望。

万方数据
第二章 基础概念介绍

第 二章 基 础概 念 介绍
神经网络的演变与发展

神经网络的起源
神经网络的起源要从回归问题说起。回归是数学领域中的一种研究方

法 , 意 指 寻 找 一 组 随 机 变 量 (𝐴 , 𝐴 , 𝐴 … 𝐴 )与 另 一 组 随 机 变 量 (𝐵 , 𝐵 , 𝐵 … 𝐵 )

之间的关系,并建立出一个关系模型,简单来说就是寻找输入和输出之间
的某种关系。
19 世 纪 初 ,线 性 回 归 [ 3 4 ] 在 回 归 的 各 种 实 现 方 式 中 是 最 流 行 最 简 便 的 一

种 方 法 ,假 设 自 变 量 𝓍 , 𝓍 和 因 变 量 𝓎之 间 有 某 种 线 性 关 系 ,则 𝓍 , 𝓍 与 𝓎之

间的关系可以表示为:
𝓎 =𝜔 𝓍 +𝜔 𝓍 +𝑏 ( 2.1)

其 中 𝜔 , 𝜔 分 别 为 自 变 量 𝓍 , 𝓍 的 权 重( Weight),𝑏称 为 偏 置( Bias);

权 重 𝜔 , 𝜔 决 定 了 自 变 量 𝓍 , 𝓍 对 因 变 量 𝓎的 影 响 大 小 ; 𝑏表 示 当 两 个 权 重

为 0 时 𝓎的 取 值 大 小 , 目 的 是 提 高 模 型 的 表 达 能 力 , 因 为 现 实 中 的 事 物 往
往 都 不 是 理 想 状 态 。 如 下 图 2-1 所 示 是 一 种 简 单 的 分 类 问 题 , 使 用 线 性 回
归 的 方 式 可 以 对 其 进 行 分 类 ,直 线 上 方 的 均 为 圆 圈 ,直 线 下 方 的 均 为 方 块 。

图 2 -1 线 性 回 归 实 例

Fig. 2 -1 Li near regr e ssi o n e xa mp le

万方数据
广东工业大学硕士专业学位论文

图 2 -2 非 线 性 回 归 实 例

Fig. 2 -2 Non - li near regr e ssi o n e xa mp le

但 线 性 回 归 无 法 解 决 所 有 的 问 题 。 如 图 2-2 所 示 , 无 法 简 单 使 用 一 条
直线去分割圆圈和方块,现实中的多数情况也都是非线性问题。

图 2 -3 生 物 神 经 元 结 构

Fig. 2 -3 B i ologi c al neur o n st r uct ure

控 制 学 、神 经 生 物 学 研 究 者 Warren McCulloch 和 Walter Pitts 以 生 物 神


经 元 结 构 为 基 础 , 共 同 研 发 了 世 界 上 第 一 个 神 经 元 模 型 [35]。 一 个 生 物 神 经
元 的 结 构 如 图 2-3 所 示 , 神 经 元 的 冲 动 传 递 来 自 于 细 胞 核 , 由 轴 突 传 至 突
触向外释放,树突则用来接收其他神经元突触传来的冲动,这样所有的神
经元就连接到了一起。两位学者将神经元传到轴突的信息称为𝓍 ,该信息
通 过 突 触 上 的 权 重 因 子 𝜔 进 行 加 权 得 到 加 权 信 号 𝓍 𝜔 ,来 自 多 个 神 经 元 的 加

万方数据
第二章 基础概念介绍

权信号传入同一个神经元的树突得到加权信号:
𝓎 = ∑𝜔 𝓍 +𝑏 ( 2.2)
这个加权信号最终会在细胞核内进行一种非线性处理,再从突触传入
到下一个神经元。
需要在传统的线性回归模型中添加非线性因子。在方程中引入了激活
函 数 σ(𝑧), 方 程 变 为 :
𝓎 = 𝜎(∑ 𝜔 𝓍 + 𝑏) ( 2.3)
常 见 激 活 函 数 如 下 表 2-1 所 示 。
表 2 -1 常 见 的 激 活 函 数

Tab le. 2 -1 Co mmon ac ti vat ion f unc t ions

函数 表法式 图形 描述

1 𝑓(𝑥)的 取 值 范 围 是 (0 ,1);𝑥在 (−∞, −6)


Sig mo id 𝑓(𝑥) =
1+𝑒 和 (−6, −∞)区 间 的 导 数 无 限 趋 近 0 。

𝑓(𝑥)的 取 值 范 围 是 ( -1,1) ; 输 出 以 原
𝑒 −𝑒
T a nh 𝑓(𝑥) = 点中心对称;使用效果优于
𝑒 +𝑒
Sig mo id 。

随着待解决问题的复杂化,人们发现简单的非线性回归方法渐渐失去
了 作 用 。在 生 物 学 研 究 中 ,人 类 的 大 脑 大 概 有 接 近 一 千 亿 个 神 经 元 的 存 在 ,
科学家受此启发。想要解决更复杂的问题,必须增加更多的神经元模型。
如 下 图 2-4 所 示 , 称 为 多 层 感 知 机 ( Multilayer Perceptron) [ 3 6 ] , 主 要 特 点
就 是 在 输 入 层 与 输 出 层 之 间 增 加 了 多 层 隐 藏 层 ,以 此 提 高 模 型 的 非 线 性 度 。

图 2 -4 多 层 感 知 机

Fig. 2 -4 M ul ti l a yer per cept ron


9

万方数据
广东工业大学硕士专业学位论文

1986 年 Rumelhart 和 McClelland 等 人 提 出 了 BP 神 经 网 络 结 构 , 在 多


层 感 知 机 的 基 础 上 增 加 了 BP 算 法 也 叫 做 误 差 反 向 传 播 算 法 。 BP 解 决 了 多
层感知机网络中隐藏层连接权重优化的问题,具有严格的数学理论推导。
BP 神 经 网 络 从 输 入 层 接 收 元 素 ,传 递 到 下 一 层 ,也 就 是 隐 藏 层 ,隐 藏 层 可
以 有 很 多 层 也 可 以 只 有 单 层 ;之 后 再 从 隐 藏 层 传 递 到 输 出 层 最 后 得 出 结 果 ,
这个过程叫信息正向传播过程,其中每一层的权值均是随机设置的。假如
所得结果与预设结果相同则进行下一组元素的输入;假如不相同,则会把
误差值反向传递回上一层也就是隐藏层,再返回输入层,达到优化权值的
效果。
BP 神 经 网 络 ,曾 经 广 泛 应 用 在 各 大 领 域 ,比 如 手 写 数 字 识 别 [ 3 7 ] 、车 牌
识 别 [ 3 8 ] 等 。BP 神 经 网 络 最 大 的 弊 端 在 于 所 有 神 经 元 模 型 之 间 是 一 种 全 连 接
( Full Connect layer, FC) [ 3 9 ] 的 形 式 , 导 致 了 计 算 量 的 成 倍 增 长 。

卷积神经网络
随着现实问题的复杂化,多层感知机因为全连接结构带来的巨大计算
开销与实际性能提升的不匹配而渐渐淡出了人们的视野,随之而来的是卷
积神经网络的蓬勃发展。
在 1.2.1 小 节 已 经 介 绍 了 卷 积 神 经 网 络 的 一 般 结 构 ,但 是 针 对 计 算 机 视
觉 领 域 的 卷 积 神 经 网 络 还 有 填 充 ( Padding)、 步 幅 ( Stride) 等 概 念 。
( 1)卷 积 :卷 积 神 经 网 络 依 赖 于 卷 积 运 算 ,特 点 是 卷 积 核 在 输 入 数 据
上 进 行 划 窗 的 运 动 ,这 种 方 式 利 用 了 卷 积 核 的 权 值 共 享 和 局 部 感 知 的 策 略 ,
有 效 地 减 少 了 参 数 量 过 大 的 影 响 。 假 设 图 像 是 二 维 的 , 如 下 图 2-5 所 示 ,
输 入 图 像( Input)的 尺 寸 为 3 × 3的 二 维 张 量 ,卷 积 核( Kernel)的 尺 寸 为 2 × 2,
由 于 感 知 范 围 与 卷 积 核 尺 寸 相 同 ,因 此 本 次 卷 积 的 局 部 感 知 范 围 就 是 2 × 2。
根 据 卷 积 运 算 方 法 可 知 输 入 图 像 ( 0,1,3,4 ) 的 卷 积 结 果 为 0 × 0 + 1 × 1 +
3 × 2 + 4 × 3 = 19; 以 此 类 推 卷 积 核 向 右 移 动 一 步 ( 1,2,4,5) 的 卷 积 结 果 为
25; 卷 积 核 向 下 移 动 一 步 ( 4,5,7,8) 的 卷 积 结 果 为 43; 卷 积 核 向 左 移 动 一
步 ( 3,4,6,7) 的 卷 积 结 果 为 37。

10

万方数据
第二章 基础概念介绍

图 2-5 卷 积 运 算

Fig. 2 -5 Co nvolu tio n ope r ati on

假 设 输 入 图 像 的 尺 寸 为 H × L, 卷 积 核 大 小 为 K × K, 卷 积 后 的 图 像 尺 寸
为 R × C, 且 卷 积 核 每 次 只 移 动 一 步 , 则 :
R=H −K+1 ( 2.4)
C=L −K +1 ( 2.5)
卷积后的图像尺寸小于输入的图像尺寸,这是因为卷积核需要在一定
大小的输入图像上进行滑动。由以上描述可知,卷积运算后输出图像的尺
寸大小与输入图像和卷积核的尺寸有关,此外与输出图像大小有关的因数
还有填充和步幅。
( 2) 填 充
随着卷积层数的增加,输出图像的尺寸越来越小,分辨率的降低意味
着 边 缘 像 素 的 丢 失 , 为 了 解 决 这 个 问 题 引 入 了 填 充 的 概 念 。 如 下 图 2-6 所
示 , 将 尺 寸 为 3 × 3的 输 入 图 像 填 充 一 圈 0 元 素 , 变 为 5 × 5的 图 像 , 经 过 同
样 的 卷 积 核 卷 积 得 到 输 出 图 像 为 4 × 4, 实 现 了 输 出 图 像 的 扩 大 同 时 保 留 了
边 缘 信 息 。 一 般 情 况 下 𝒫的 大 小 设 置 为 K − 1, 假 设 像 素 增 加 了 𝒫行 0 元 素 ,
则输出图像的尺寸为:
R=H −K+𝒫+1 ( 2.6)
C=L −K +𝒫+1 ( 2.7)

图 2-6 填 充 后 卷 积

Fig. 2 -6 Co nvolu tio n a ft e r fill ing

11

万方数据
广东工业大学硕士专业学位论文

通常卷积神经网络经过卷积层后不需要变为比输入图像更大的图像,
且卷积核的尺寸选择通常为奇数,这样可以保证输出图像的大小与原图像
大小尺寸相同。
( 3) 步 幅
在 介 绍 卷 积 层 和 填 充 时 ,默 认 卷 积 核 的 移 动 步 幅 为 1 步 ,如 下 图 2-7 (a)
图所示,左边虚线方框为卷积核第一次所在的位置,右边虚线方框为卷积
核第二次所在的位置,两次卷积有大量的重叠部分,卷积的效率较低;为
了 更 高 效 的 卷 积 ,可 以 调 整 卷 积 核 的 步 幅 ,每 次 滑 动 多 个 元 素 ,如 下 图 2-7
(b)图 所 示 。 假 设 步 幅 为 S, 且 P = K − 1则 输 出 图 像 的 尺 寸 为 :
R = (H − K + 𝒫 + S) ÷ S → R = (H − 1 + S) ÷ S ( 2.8)
C = (L − K + 𝒫 + S) ÷ S → C = (L − 1 + S) ÷ S ( 2.9)

(a ) (b )

图 2-7 卷 积 核 移 动

Fig. 2 -7 Co nvolu tio n ker nel mov e

( 4) 池 化
池化又称作下采样,池化的计算方式类似于卷积运算,同样通过一个
N × N的 区 域 在 数 据 上 进 行 滑 动 。 科 学 家 们 发 现 在 多 层 卷 积 运 算 的 神 经 网 络
中 ,减 少 卷 积 层 之 间 的 数 据 维 度 后 ,不 但 可 以 减 少 模 型 规 模 提 升 计 算 速 度 ,
还可以减少神经网络过拟合的情况。
池 化 的 方 式 有 两 种 , 第 一 种 是 最 大 值 池 化 如 图 2-8 所 示 , 只 取 阴 影 部
分 中 的 最 大 值 ; 第 二 种 是 平 均 池 化 如 图 2-9 所 示 , 取 阴 影 部 分 所 有 值 的 平
均 数 。 两 种 方 式 都 是 将 3 × 3大 小 的 图 像 抽 象 成 2 × 2的 图 像 , 同 时 池 化 也 有
步长的概念。

12

万方数据
第二章 基础概念介绍

图 2 -8 最 大 值 池 化

Fig. 2 -8 M a xi mu m pool i ng

图 2 -9 平 均 值 池 化

Fig. 2 -9 Aver a ge p ooli ng

( 5) 激 活 函 数
在 2.1.1 小 节 中 介 绍 了 两 种 激 活 函 数 ,本 小 节 继 续 补 充 三 种 在 卷 积 神 经
网 络 中 更 加 常 用 的 激 活 函 数 , 如 下 表 2-2 所 示 。
表 2 -2 其 他 常 见 的 激 活 函 数

Tab le. 2 -2 Othe r co mmo n act iva t ion f unct io ns

函数 表法式 图形 描述

正 数 保 持 不 变 , 负 数 置 0;
𝑥, 𝑥 ≥ 0
Re LU 𝑓(𝑥) =
0, 𝑥 < 0
只更新正输入的权重。

Re LU 激 活 函 数 的 变 体 之
Lea ky
𝑥, 𝑥 ≥ 0
𝑓= 一 ;保 留 了 负 输 入 的 部 分 特
0.1𝑥, 𝑥 < 0
Re LU
征。

𝑓(𝑥)的 均 值 近 似 为 0 ; 与
𝑥, 𝑥≥0
ELU 𝑓= Lea ky Re LU 相 比 , E LU 对
𝛼(𝑒 − 1), 𝑥 < 0
噪声的容忍度更高。

激活函数通常放在卷积神经网络的卷积层之后,非线性的激活函数增
强了神经网络模型的非线性度,提升模型的表达能力。
13

万方数据
广东工业大学硕士专业学位论文

ReLU 函 数 的 负 激 励 始 终 保 持 为 0,在 某 些 情 况 下 会 导 致 神 经 网 络 中 的
部 分 神 经 元 失 效 , 丢 失 重 要 的 神 经 元 数 据 。 Leaky ReLU 与 ELU 函 数 作 为
ReLU 函 数 的 变 体 ,解 决 了 ReLU 函 数 对 负 数 神 经 元 的 屏 蔽 ,从 上 表 的 图 中
可以看出,在出现负激励时会有输出存在,保留负激励的部分特征。
( 6) Softmax
Softmax 常 用 作 卷 积 神 经 网 络 中 的 分 类 器 , 通 常 放 在 所 有 网 络 结 构 的
最 后 一 层 , 其 计 算 公 式 见 ( 2.10), 𝑥为 输 入 , 𝑦为 输 出 概 率 , Softmax 将 所
有 输 入 映 射 到 ( 0, 1) 之 间 , 对 所 有 输 入 数 据 进 行 归 一 化 , 保 证 和 为 1。
传 统 的 分 类 器 功 能 类 似 于 If-else 语 句 , 非 1 即 0; 而 Softmax 并 不 是
一个绝对的分类器,所有的输入都有一定的概率被输出,输入较大被输出
的概率也会较大,输入较小被输出的概率也会较小。

𝑦 =∑ ( 2.10)

YOLO 神 经 网 络

YOLO 神 经 网 络 算 法
YOLO( You Onl y Look Once)神 经 网 络 是 Joseph Redmon 等 人 在 2016
年提出的一种利用回归原理的图像识别神经网络,根据其名字“只需要看
一 次 ” 可 知 YOLO 是 一 种 单 阶 段 的 图 像 识 别 神 经 网 络 , 相 比 较 于
Fast-RCNN [ 4 0 ] 神 经 网 络 , 虽 然 在 精 度 上 还 有 差 距 , 但 是 在 同 一 硬 件 平 台 上
YOLO 的 目 标 检 测 速 度 极 快 , 达 到 了 45FPS, 轻 量 化 YOLO 神 经 网 络 更 是
可 以 达 到 155FPS。
YOLO 神 经 网 络 需 要 大 量 带 有 标 签 的 图 像 进 行 训 练 学 习 , 因 此 它 属 于
有监督神经网络。本文研究的硬件加速器只关注神经网络的推理过程,其
实 现 过 程 如 下 图 2-10 所 示 。首 先 将 输 入 图 片 划 分 为 S × S个 固 定 大 小 的 方 格 ,
假如某个方格内包含了预测物体的中心点,那么这个方格就将负责该物体
的 预 测 ;每 个 格 子 都 会 生 成 B 个 物 体 框( Bounding Box),每 个 Bounding Box
包 含 五 个 参 数 :物 体 的 中 心 点 坐 标( x,y)、Bounding Box 的 尺 寸( w,h)、
物体置信度。与此同时每个格子还需要预测 C 个类别,因此一个网格输出
的 参 数 量 为 5 × B + C; 例 如 PASCAL VOC [ 4 1 ] 数 据 集 一 共 有 20 个 类 , 一 个 网

14

万方数据
第二章 基础概念介绍

格 输 出 的 参 数 量 为 5 × B + 20。

图 2 -10 YO LO 原 论 文 示 意 图

Fig.2 -10 Sc he mat ic di a gr a m of Y O LO o ri gi nal p ap er

每 个 Bounding Box 的 置 信 度 参 数 表 示 了 该 Bounding Box 中 是 否 含 有


待识别的物体以及对物体识别的准确程度两个关键信息,其表达式如下:

置 信 度 = P 物 体 × 𝐼𝑂𝑈 ( 2.11)

当 Bounding Box 中 存 在 待 识 别 的 物 体 时 P 物 体 = 1, 否 则 为 0。 IOU

则 表 示 该 Bounding Box 坐 标 所 围 成 的 区 域 与 带 标 签 训 练 集 中 标 准 坐 标 围 成
区 域 的 重 合 度 , 重 合 度 越 高 置 信 度 越 高 , Bounding Box 识 别 越 准 确 ; 当 重
合度小于某一预设大小时本次识别无效,会通过非极大值抑制算法将
Bounding Box 去 除 , 只 留 下 置 信 度 最 高 的 Bounding Box。

YOLO-v2-tiny 网 络 结 构
YOLO-v2-tiny 是 YOLO-v2 的 轻 量 化 版 本 , 精 度 上 有 较 少 的 损 失 , 但
是在同平台上运行速度提升了三倍多,适合在移动端或边缘端进行部署。
网 络 结 构 的 参 数 如 下 表 2-3 所 示 , 整 个 网 络 由 9 个 卷 积 层 和 6 个 池 化 层 组
成 ,其 中 输 入 图 像 维 度 为 H × L × N,输 出 图 像 维 度 为 R × C × M,卷 积 核 大 小
为 K × K, 卷 积 步 幅 为 S。

15

万方数据
广东工业大学硕士专业学位论文

表 2 -3 YO LO - v2 -ti ny 网 络 结 构

Tab le. 2 -3 YOLO - v2 - ti ny net wor k s tr uct ur e

层 类别 K,S H ,L,N R,C,M

1 卷积 3,1 4 18,418 ,3 41 6,416,1 6

2 最大池化 2, 2 416 ,416,16 208,2 08,16

3 卷积 3,1 2 10,210 ,1 6 20 8,208,3 2

4 最大池化 2, 2 208 ,208,32 104,1 04,32

5 卷积 3,1 1 06,106 ,3 2 10 4,104,6 4

6 最大池化 2, 2 104 ,104,64 52,5 2,64

7 卷积 3,1 54,54,64 5 2,52,128

8 最大池化 2, 2 52,5 2,128 26,26 ,128

9 卷积 3,1 2 8,28,12 8 2 6,26,256

10 最大池化 2, 2 26,2 6,256 13,13 ,256

11 卷积 3,1 1 5,15,25 6 1 3,13,512

12 最大池化 2, 1 13,1 3,512 13,13 ,512

13 卷积 3,1 1 5,15,51 2 13 ,13,102 4

14 卷积 3,1 1 5,15,102 4 13 ,13,102 4

15 卷积 1,1 1 3,13,102 4 1 3,13,125

流水线
流水线设计是指将一个复杂的逻辑运算,分解为若干个简单运算并插
入寄存器的过程。在数字电路设计中,流水线一般用于解决设计中的时序
问题。当时序电路之间的组合逻辑过长时,可以将组合逻辑划分为长度相
近的几个阶段,在每个阶段中间插入寄存器保证每一级时序电路的时序情
况。流水线设计的优点是可以缩短一个时钟周期内组合逻辑信号的长度,
增 加 了 吞 吐 率( Throughput Rate),从 而 达 到 优 化 时 序 的 效 果 。但 并 不 是 流
水线级数越多电路设计就越合理,流水线越长电路面积也越大,对于复杂
流水线来说还会出现数据冲突等问题。因此如何合理设计流水线需要权衡
考虑。
如 下 图 2-11 是 一 个 流 水 线 设 计 的 示 例 ,该 运 算 的 第 一 个 数 据 需 要 6 个
16

万方数据
第二章 基础概念介绍

时钟周期后才能够输出,当开始流水后每 1 个时钟周期就可以输出 1 个数
据 。 因 此 对 于 有 N 个 数 据 , X 级 流 水 ( N 远 大 于 X) 的 设 计 来 说 , 流 水 线
填 充 时 间 为 X 个 时 钟 周 期 , 输 出 N 个 数 据 需 要 总 时 钟 周 期 为 : N + X − 1,
而 不 使 用 流 水 线 设 计 输 出 N 个 数 据 需 要 X × N个 时 钟 周 期 。

图 2 -11 流 水 线 设 计 实 例

Fig. 2 -11 P ip eli ne des ign e xa mple

流水线设计的合理性可以通过计算实际吞吐率与理想吞吐率的比值来
衡 量 。 假 设 流 水 线 如 下 图 2-12 所 示 。

clk
第1级流水
第2级流水
第3级流水
第4级流水
第5级流水
第6级流水

图 2 -12 流 水 线 各 部 分 时 钟 周 期 数

Fig.2 -12 T h e number o f cl ock c yc le s of eac h par t of t he pi pel i ne

流 水 线 稳 定 流 水 , 流 水 线 中 最 慢 的 一 段 耗 时 为 ∆𝑡 , 最 大 吞 吐 率 为 :

𝑇𝑅 =∆ ( 2.12)

每 一 级 流 水 的 时 间 均 为 一 个 时 钟 周 期 ∆𝑡,假 设 有 m条 流 水 ,每 条 流 水 的
任 务 数 为 n, 则 实 际 吞 吐 率 为 :
𝑇𝑅同 = = ∆ ( )∆
= ( 2.13)
总时间 ( )∆

17

万方数据
广东工业大学硕士专业学位论文

最大吞吐率与实际吞吐率的比值为:

= = ( 2.14)

上述公式的推理是基于每级流水的时间均相同且为一个时钟周期的条
件下,当流水线每级的时间不全为一个时钟周期时,实际吞吐率为:

𝑇𝑅不 同 = ∑ ∆ ( )∆ ( 2.15)

流 水 线 每 级 最 小 的 消 耗 时 间 为 一 个 时 钟 周 期 , 根 据 公 式 ( 2.15) 可 知
当流水线每级消耗的时间不同时,会造成吞吐率的下降。

开发平台介绍
本 文 使 用 的 FPGA 开 发 平 台 是 XILINX 的 Zynq-ZC706 开 发 板 ,其 板 上
搭 载 一 块 集 成 了 双 核 ARM Cortex-A9 与 XC7Z045 FPGA 逻 辑 的 SoC 芯 片 ,
是一款异构开发平台,有利于充分发挥软硬件协同设计的优势,更进一步
发 挥 了 FPGA 的 灵 活 性 与 系 统 性 , 对 于 部 署 神 经 网 络 有 着 重 要 的 意 义 。
Zynq 由 PS( Processing S ystem) 和 PL( Programmable Logic) 两 个 部
分 组 成 。 其 中 PS 部 分 如 下 图 2-13 所 示 , 包 括 双 核 ARM 应 用 处 理 器
( Application Processer Unit)、 片 内 存 储 控 制 器 接 口 、 外 设 I/O 接 口 以 及
Interconnect 互 联 接 口 。 其 中 外 设 I/O 接 口 包 括 SD 卡 、 USB、 I2C、 SPI、
UART 等 常 用 接 口 , 满 足 绝 大 多 数 需 求 ; SoC 采 用 的 是 AXI4 总 线 协 议 。

Memory
Processing Programmable
Interfaces
System Logic
(PS) (PL)

Application Common
Input Output Processor Unit (APU) Peripherals
Peripherals
(IOP) Custom
Interconnect
Peripherals
High-Bandwidth
AMBA AXI Interfaces

Common Accelerators

Custom Accelerators

图 2 -13 Zynq P S 端 架 构

Fig. 2 -13 Zynq P S si de a rchi tec ture

18

万方数据
第二章 基础概念介绍

PL 端 与 传 统 FPGA 结 构 类 似 ,基 本 电 路 结 构 由 CLB
( Configurable Logic
Block)、嵌 入 块 RAM( Block RAM,BRAM)、PLL、MMCM 以 及 众 多 XILINX
自 带 的 IP 组 成 。

本章小结
本 章 节 介 绍 了 神 经 网 络 的 发 展 历 程 , 简 述 了 YOLO 神 经 网 络 原 理 以 及
网络结构,介绍了流水线技术及其评估方法,最后介绍了本文所使用的开
发 平 台 。通 过 对 神 经 网 络 发 展 的 探 究 有 利 于 理 解 YOLO 卷 积 神 经 网 络 算 法 ,
为之后的研究设计打下基础。

19

万方数据
广东工业大学硕士专业学位论文

第 三章 硬 件 加 速 器 设 计
近年来卷积神经网络的发展对计算机视觉领域的推进起到了巨大作用。
通 过 回 顾 2012~2017 年 历 届 ILSVRC 比 赛 冠 军 神 经 网 络 可 以 发 现 , 识 别 精
度逐年上升,分类准确率甚至已经超过人类。当下卷积神经网络的应用不
仅需要在服务器上部署,更需要在可移动的终端进行部署。但是卷积神经
网络高性能背后需要巨大算力与超大存储支撑,因此研究开发专用的卷积
神 经 网 络 加 速 器 是 必 然 趋 势 。 目 前 有 三 大 类 硬 件 加 速 器 : 基 于 GPU, 基 于
ASIC, 基 于 FPGA。 GPU 具 有 非 常 强 大 的 算 力 , 但 是 其 功 耗 非 常 大 , 用 于
卷 积 神 经 网 络 的 训 练 以 及 神 经 网 络 推 理 过 程 ,GPU 通 常 存 在 于 大 型 的 服 务
器 环 境 中 ; 对 于 移 动 终 端 来 说 , 功 耗 是 主 要 限 制 因 素 , 因 此 基 于 ASIC 与
基 于 FPGA 的 硬 件 加 速 器 更 加 合 适 部 署 在 移 动 端 或 边 缘 端 。 总 而 言 之 , 设
计 周 期 更 短 、 具 有 高 灵 活 性 的 FPGA 卷 积 硬 件 加 速 器 是 更 加 顺 应 时 代 发 展
的产物。
卷 积 神 经 网 络 的 设 计 一 般 通 过 深 度 学 习 框 架 实 现 如 Pytorch 、
Tensorflow、 MXnet 等 , 设 计 者 通 常 利 用 其 中 的 函 数 设 计 更 加 合 理 的 神 经
网络架构,不会关注底层运算实现的方式。打个比方:神经网络设计者只
需要清楚卷积运算是众多乘法和加法的组合,而不会去关注如何在当前硬
件中实现众多的乘法和加法。设计一款优秀的硬件加速器,需要深入了解
卷积神经网络实现过程,并对其中的部分算法进行优化,在保证功能和性
能的同时使其更加符合硬件电路的运行方式;对于不需要进行硬件优化的
算法利用软件实现。需要对卷积神经网络的实现过程进行软硬件划分的探
究,将更加耗时、复杂、可并行的运算利用硬件实现,简单串行的运算利
用软件实现,软硬件协同设计的方式可以同时发挥两者优势。本文选择的
Zynq-ZC706 异 构 开 发 平 台 同 时 具 有 ARM 核 与 FPGA 逻 辑 , 可 以 很 好 的 满
足软硬件协同设计的需求。
本 章 将 在 3.1 设 计 硬 件 加 速 器 的 架 构 ,在 3.2 到 3.5 节 完 成 硬 件 加 速 器
各个模块的设计。

20

万方数据
第三章 硬件加速器设计

硬件加速器架构
图 3-1 所 示 为 硬 件 加 速 器 架 构 示 意 图 。
Zynq-ZC706 平 台 的 异 构 SoC 芯 片 中 有 两 种 CPU 可 供 选 择 , 第 一 个 是
XILINX 开 发 的 软 核 MicroBlaze CPU, 其 优 点 是 具 有 较 大 的 灵 活 性 , 可 自
主 修 改 微 处 理 器 的 功 能 和 参 数 , 但 该 CPU 会 消 耗 FPGA 片 上 大 量 的 LUT、
RAM 等 资 源 ,且 主 频 相 较 与 同 类 别 CPU 较 低 ;第 二 个 是 Zynq 系 列 集 成 的
ARM Cortex-A9,该 CPU 是 以 硬 核 的 形 式 集 成 于 SoC 芯 片 中 ,其 稳 定 性 较
好、开发难度较低,同时也具有丰富的接口和功能,但微处理器功能固定
不 可 自 定 义 修 改 核 内 功 能 。 本 文 的 重 点 是 加 速 器 系 统 的 研 究 , 而 不 是 CPU
设计的研究,因此从设计目标以及稳定性、开发难度方面考虑,最终选择
Zynq-ZC706 平 台 SoC 内 的 ARM Cortex-A9 硬 核 作 为 主 控 CPU 。 与
MicroBlaze 软 核 CPU 相 比 , 硬 核 具 有 更 加 丰 富 稳 定 的 接 口 、 更 好 的 性 能 ,
也 不 占 用 板 上 的 LUT 等 硬 件 资 源 , 并 且 该 异 构 SoC 中 具 有 两 个 ARM
Cortex-A9 核 心 , 可 以 实 现 双 核 ARM 核 同 时 运 行 。

ARM Cortex-
FIFO Instruction Parser
A9
H
P

DMA DMA
PS DDR CTR
Masters
64

DMA
PL DDR

512 32 320 PE0_0 PE0_1 PE0_13


DMA IBUF

PE1_0
DDR Controller

32 512
Arbiter

64 512
(MIG)

512
AXI4

DMA WBUF
AXI4 MAC0 PE13_1
PE13_0
3

512 32 32 448 MAC1


DMA DP OBUF

核心计算组件

图 3 -1 硬 件 加 速 器 架 构

Fig. 3 -1 Har d ware Accel era tor Ar c hi tect ure

系 统 中 使 用 了 两 个 DDR3 ( Double Data Rate S ynchronous Dynamic

21

万方数据
广东工业大学硕士专业学位论文

Random Access Memory, DDR3 SDRAM), 一 个 是 PS 端 的 DDR3, 一 个 是


PL 端 的 DDR3。 PS 端 DDR3 主 要 受 控 于 ARM 核 的 控 制 , 按 照 需 求 将 SD
卡 中 的 权 重 数 据 、 特 征 图 数 据 、 验 证 数 据 等 文 件 写 入 , 之 后 通 过 DMA 将
其 从 ARM 核 的 HP 接 口 传 输 到 PL 端 DDR3 进 行 保 存 , 为 硬 件 加 速 器 提 供
数 据 。 PL 端 DDR3 的 最 大 带 宽 大 于 PS 端 的 DDR3, 因 此 可 以 提 高 整 个 硬
件加速器系统的最大带宽,系统设计时将会有更大的设计空间。
此 系 统 中 设 计 了 控 制 器 CTR , 输 入 数 据 模 块 IBUF , 权 重 缓 存 模 块
WBUF,数 据 卷 积 后 处 理 模 块 DP,以 及 数 据 输 出 模 块 OBUF。ARM 核 传 输
的 指 令 首 先 通 过 FIFO 进 行 缓 存 , 等 待 控 制 器 CTR 的 下 级 所 有 模 块 均 为 空
闲 时 ,再 由 控 制 器 申 请 从 FIFO 读 取 下 一 条 指 令 ;控 制 器 CTR 接 收 来 自 FIFO
缓 存 的 指 令 , 负 责 解 析 并 传 递 ARM 核 对 整 个 硬 件 加 速 器 所 有 模 块 的 配 置
信 息 , 同 时 监 控 所 有 模 块 的 空 闲 状 态 , 当 处 于 空 闲 状 态 时 可 从 FIFO 中 接
收 下 一 条 指 令 ; IBUF 负 责 缓 存 输 入 数 据 传 送 给 MAC, 当 硬 件 加 速 器 内 存
在 多 个 MAC 时 , 所 有 的 MAC 共 享 IBUF 的 输 入 数 据 ; WBUF 负 责 将 指 定
权 重 数 据 传 输 给 卷 积 核 ; 数 据 处 理 模 块 DP 负 责 处 理 MAC 运 算 后 的 数 据 ,
包 括 激 活 、四 舍 五 入 、数 据 截 断 等 功 能 ;OBUF 负 责 接 收 从 DP 模 块 中 处 理
好的数据,并将其进行组合向外输出。
硬 件 加 速 器 的 设 计 是 围 绕 核 心 计 算 组 件 MAC ( Multiplying and
Accumulate ) 进 行 搭 建 的 。 本 文 每 一 个 MAC 模 块 内 有 14 × 14 个 PE
( Processing Elements) 单 元 。 MAC 模 块 接 收 来 自 上 一 级 IBUF 和 WBUF
输 入 的 数 据 和 权 重 , 在 PE 内 部 进 行 运 算 , 输 出 结 果 到 OBUF 中 , 之 后 经
过 DP 模 块 对 数 据 进 行 后 处 理 , 完 成 一 次 完 整 的 运 算 。 MAC 模 块 执 行 硬 件
加速器九成以上的计算量,因此其计算效率直接影响硬件加速器的最终效
率。

片内外传输设计

读写特性
双 倍 速 率 同 步 动 态 随 机 存 储 器( Double Data Rate SDRAM),一 般 称 之
为 DDR, 其 中 SDRAM 是 Synchronous Dynamic Random Access Memory
的 缩 写 , 即 同 步 动 态 随 机 存 取 存 储 器 。 DDR SDRAM 优 点 是 可 以 在 同 一 个
22

万方数据
第三章 硬件加速器设计

时 钟 的 上 升 沿 和 下 降 沿 都 进 行 数 据 的 收 发 ,因 此 DDR 在 同 一 个 时 钟 周 期 内
的效率是普通存储器的两倍。
普 通 RAM 存 储 器 一 般 都 是 使 用 直 接 寻 址 的 方 式 读 取 内 部 不 同 地 址 上
的 数 据 ,而 DDR 寻 址 的 内 部 结 构 比 较 复 杂 ,DDR 存 储 器 内 部 有 许 多 个 Bank
块 , 所 有 Bank 块 是 平 行 的 关 系 , Bank 块 之 间 可 以 并 行 读 取 数 据 。
DDR 存 储 器 的 寻 址 需 要 分 两 次 查 找 , 以 一 个 具 有 8 个 Bank 块 的 DDR
作 为 样 例 , 如 下 图 3-2 所 示 , 其 读 写 流 程 如 下 :
 首 先 控 制 器 发 送 Bank( 块 ) +Row( 行 ) 指 令 , 激 活 某 一 个 Bank
某 一 行 , 这 个 指 令 叫 做 Activate 指 令 。 如 激 活 到 Bank1 的 第 1 行 。
 之 后 再 发 送 Column( 列 )指 令 ,最 终 寻 找 到 某 Bank1 中 的 某 一 列 。
如寻找到第 1 列。

Bank8
Bank7
Row Decoder

Bank6
Row Decoder

Bank5
Row Decoder

Bank4
Row Decoder

Bank3
Row Decoder

Bank2
Row Decoder

R=1
C=1
Row Decoder

Column Decoder
Row Decoder

Column Decoder
Memory cell array
Column Decoder
Bank1
Column Decoder
Column Decoder
Column Decoder
Column Decoder
Column Decoder

图 3-2 DD R 内 部 存 储 结 构

Fig. 3 -2 DD R i nter nal st o rage st r uc t ur e

当 前 我 们 选 中 了 Bank1 的 第 1 行 第 1 列 的 数 据 ,但 是 DDR 存 储 器 每 次
只 能 激 活 一 个 Bank 中 的 某 一 行 存 储 空 间 ,不 能 同 时 激 活 Bank 的 多 行 存 储
空 间 。 因 此 若 想 要 激 活 Bank1 的 第 2 行 数 据 需 要 进 行 预 充 电 ( Precharge)
操 作 , 如 下 图 3-3 所 示 :
 第 一 个 指 令“ act”是 上 述 提 到 的 寻 址 Activate 指 令 ,之 后 两 个“ nop”

23

万方数据
广东工业大学硕士专业学位论文

是 DDR 存 储 器 内 部 的 空 闲 周 期 ,“ read” 指 令 表 示 我 们 需 要 读 取
DDR 内 部 的 数 据 ,因 为 DDR 为 双 边 沿 触 发 ,所 以 之 后 的 四 个“ nop”
的时钟周期表示我们要读取到的八个数据;
 中 间 方 框 里 的“ pre”代 表 上 述 提 到 的 Precharge 操 作 ,关 闭 现 在 开
启 的 Bank1 的 第 1 行 第 1 列 , 并 等 待 两 个 “ nop” 周 期 ;
 最 后 再 次 给 出 “ act” 指 令 , 并 等 待 两 个 “ nop”。
clk
cmd
dq

图 3 -3 切 换 B a nk

Fig.3 -3 S wi tc h B ank

经 过 以 上 三 步 , DDR 内 部 成 功 激 活 Bank1 的 第 2 行 。 分 析 可 知 DDR


读 取 数 据 中 需 要 许 多 的 “ nop” 空 周 期 , 这 些 空 闲 周 期 DDR 并 没 有 执 行 任
何 功 能 ,只 是 在 等 待 。DDR 为 了 利 用 空 闲 周 期 的 时 间 提 高 其 读 写 效 率 提 出
了 交 织 ( InterLeave) 功 能 。 虽 然 在 同 一 时 刻 只 能 激 活 同 一 个 Bank 中 的 某
一 行 数 据 , 但 是 可 以 同 时 开 启 不 同 Bank 的 某 一 行 数 据 。 因 此 DDR 内 部 需
要 将 存 储 空 间 划 分 为 不 同 的 Bank 块 。交 织 技 术 将 读 写 的 数 据 分 别 放 入 不 同
Bank 块 中 , 这 样 就 形 成 了 类 似 于 流 水 线 读 写 的 形 式 , 提 高 了 DDR 的 传 输
效率。

方案设计
Zynq-ZC706 开 发 板 中 搭 载 了 四 块 板 载 BGA 封 装 的 DDR3 芯 片 , 是 开
发 板 中 PS 部 分 的 DDR 存 储 器 ; 同 时 还 有 一 块 直 插 型 DDR3 内 存 条 , 是 开
发 板 中 PL 部 分 的 DDR 存 储 器 。
两 块 DDR 大 小 均 为 1GB。PS 部 分 DDR 由 SoC 内 部 集 成 的 DDR 控 制
器 控 制 , 主 频 最 高 为 533MHz, Memory Map 最 大 位 宽 为 32bit。
PL 部 分 DDR 最 大 主 频 可 达 800MHz, Memory Map 位 宽 最 大 512bit,
Stream 数 据 流 的 位 宽 最 大 为 64bit。 PS、 P L 端 的 DDR 最 大 带 宽 计 算 如 下 :
533 × 2 × (32 ÷ 8) ÷ 1024 ≈ 4.2 𝐺𝐵/𝑠 ( 3.1)
800 × 2 × (64 ÷ 8) ÷ 1024 = 12.5 𝐺𝐵/𝑠 ( 3.2)

24

万方数据
第三章 硬件加速器设计

加 速 器 系 统 的 传 输 带 宽 需 求 可 以 由 DMA 的 传 输 带 宽 估 算 而 来 。 本 文
设 计 的 硬 件 加 速 器 至 少 需 要 使 用 4 个 DMA: 权 重 缓 存 使 用 1 个 DMA, 输
出 缓 存 使 用 2 个 DMA,输 入 缓 存 使 用 1 个 DMA。DMA 的 Stream Data Width
为 32bit, 因 此 一 个 DMA 的 传 输 带 宽 为 :
(32 ÷ 8) × 200 ÷ 1024 = 0.78125 𝐺𝐵/𝑠 ( 3.3)
共 使 用 了 4 个 DMA,一 个 DMA 同 时 具 有 读 、写 两 个 通 道 带 宽 翻 两 倍 ,
因此加速器系统估算带宽上限为:
0.78125 × 4 × 2 = 6.25 𝐺𝐵/𝑠 ( 3.4)
通 过 上 面 两 部 分 计 算 可 知 , PS 端 DDR 的 带 宽 不 足 以 满 足 加 速 器 内 部
的 最 大 理 论 带 宽 需 求 ,而 PL 端 的 DDR 可 以 满 足 。因 此 我 们 选 择 先 利 用 ARM
核 将 数 据 从 外 部 SD 卡 搬 运 到 PS 端 DDR 存 储 ,之 后 再 使 用 CDMA 或 DMA
将 数 据 搬 运 到 PL 端 DDR 中 , 如 下 图 3-4 所 示 。

ARM Cortex-A9
PS DDR
(CPU)

DDR Controller
DMA/CDMA
(MIG)

PL DDR

图 3-4 DD R 的 数 据 流

Fig.3 -4 DD R da ta fl o w

本 设 计 中 PL 端 DDR 的 位 宽 选 择 了 512bit,ARM 核 HP 接 口 的 位 宽 是
64bit。 从 PS 端 DDR 搬 运 数 据 至 PL 端 DDR 中 有 两 种 方 案 可 以 选 择 :
( 1) 利 用 CDMA: CDMA 是 XILINX 官 方 的 IP, 通 过 S_AXI_LITE
接 口 配 置 CDMA, 可 以 将 片 上 存 储 的 数 据 从 一 个 存 储 地 址 搬 运 到 另 一 个 存
储 地 址 ,当 CDMA 完 成 一 次 数 据 传 输 后 cdma_introut 将 会 触 发 一 次 中 断 信
号 , 以 此 告 知 ARM 核 完 成 传 输 。 完 整 测 试 工 程 如 下 图 3-5 所 示 :

25

万方数据
广东工业大学硕士专业学位论文

图 3 -5 使 用 CD M A 的 测 试 工 程

Fig. 3 -5 Test pro j ec t usin g C DM A

综 合 与 实 现 后 , 查 看 报 告 可 知 时 序 较 差 , 如 下 图 3-6 所 示 , 经 过 研 究
CDMA 中 只 有 一 个 Datamover 结 构 ,需 要 ps2pl-interconnect 负 责 大 量 512bit
与 64bit 数 据 的 位 宽 转 换 ,同 时 还 需 要 兼 顾 PL 与 PS 端 DDR 互 联 接 口 的 实
现,造成此模块的时序较差,出现时序违例情况。

图 3 -6 时 序 情 况

Fig. 3 -6 Timing s it uati o n

26

万方数据
第三章 硬件加速器设计

( 2)利 用 DMA:DMA 同 样 也 是 XILINX 官 方 的 IP,通 过 S_AXI_LITE


接 口 进 行 配 置 ; M_AXI 接 口 负 责 与 DDR 和 加 速 器 等 具 有 AXI 协 议 的 接 口
进 行 数 据 传 输 ;M_AXIS_MM2S 和 S_AXIS_S2MM 是 将 AXI 协 议 的 数 据 转
换 为 AXI-Stream 协 议 的 数 据 ,在 不 同 的 存 储 地 址 上 进 行 传 输 。此 方 案 利 用
两 个 DMA 进 行 分 别 负 责 PL 到 PS 与 PS 到 PL 的 数 据 传 输 , 每 个 DMA 传
输 完 成 后 都 会 通 过 触 发 mm2s_introut 和 s2mm_introut 中 断 信 号 告 知 ARM
核 。 完 整 测 试 工 程 如 下 图 3-7 所 示 :

图 3 -7 使 用 DM A 的 测 试 工 程

Fig. 3 -7 Test p ro j ec t usin g DM A

利 用 两 个 DMA 替 换 CDMA,两 个 DMA 在 内 部 进 行 位 宽 转 换 能 够 满 足


时 序 要 求 ,板 级 测 试 后 时 序 改 善 明 显 ,虽 然 使 用 了 两 个 DMA,但 是 综 合 后
实 际 资 源 消 耗 量 与 第 一 种 方 案 差 距 较 小 ,如 下 图 3-8 (a)所 示 为 DMA 方 案 ,
(b)为 CDMA 方 案 。 综 合 考 虑 最 终 选 择 使 用 DMA 传 输 数 据 的 方 案 。

(a ) DM A 方 案 (b) CDM A 方 案

图 3 -8 两 种 方 案 资 源 消 耗 量 对 比

Fig.3 -8 Co mp aris o n o f reso urce c o ns u mp tio n of t he t wo sc he me s

27

万方数据
广东工业大学硕士专业学位论文

MIG 控 制 器
DDR 的 控 制 时 序 十 分 复 杂 ,开 发 者 一 般 会 使 用 成 熟 的 控 制 器 进 行 开 发 ,
MIG( Memory Interface Generator) 是 控 制 PL 端 DDR 的 控 制 器 IP, 是
XILINX 官 方 的 IP 之 一 , 管 脚 示 意 如 下 图 3-9 所 示 , S_AXI 为 AXI4 总 线
协 议 的 数 据 传 输 路 径 , 可 以 与 DMA 等 IP 进 行 数 据 交 互 ; clk_ref_i 与
sys_clk_i 是 MIG 控 制 器 需 要 输 入 的 外 部 参 考 时 钟 , 一 般 通 过 SoC 直 接 生
成 ; MIG 控 制 器 启 动 时 需 要 先 内 部 进 行 自 校 准 , 完 成 自 校 准 后
init_calib_complete 信 号 将 会 置 高 ,通 过 VCS 仿 真 可 知 校 准 时 间 大 约 为 50us
( 不 建 议 使 用 VIVADO 对 MIG 进 行 仿 真 );ui_clk 信 号 是 用 来 读 取 MIG 控
制 器 地 址 生 成 的 时 钟 , 大 小 由 M IG 控 制 器 内 部 的 最 大 工 作 频 率 分 频 得 到 ,
MIG 控 制 器 最 大 频 率 为 800MHz,分 频 比 例 为 4:1 因 此 ui_clk 最 大 为 200MHz。
本 设 计 将 以 ui_clk 作 为 全 局 时 钟 。

图 3 -9 M IG 控 制 器

Fig.3 -9 M IG co ntr oll er

MIG 控 制 器 的 配 置 参 数 还 有 DDR 类 型 、 差 分 时 钟 输 出 、 管 脚 电 压 阻
抗等参数,此处不再赘述。

数据分块与复用
对 于 一 个 输 入 特 征 图 大 小 为 X( H,L,N),输 出 特 征 图 大 小 为 Y( R,
C, M), M 个 F( K, K, N) 大 小 的 卷 积 核 、 卷 积 步 长 为 s 的 卷 积 运 算 来
说其伪代码表达为:

𝑂𝑢𝑡𝑝𝑢𝑡 = 𝑊𝑒𝑖𝑔ℎ𝑡(𝑚, 𝑛, 𝑖, 𝑗)
( 3.5)
× (𝑟 × 𝑠 + 𝑝, 𝑐 × 𝑠 + 𝑞, 𝑛)
28

万方数据
第三章 硬件加速器设计

数据分块
基 于 FPGA 的 卷 积 神 经 网 络 硬 件 加 速 器 需 要 处 理 的 一 个 难 点 是 片 内 与
片 外 数 据 的 交 互 与 存 储 。FPGA 内 部 的 存 储 资 源 有 BRAM 与 Distribute RAM,
BRAM 是 单 独 的 存 储 器 件 ,而 Distribute RAM 需 要 消 耗 LUT 资 源 ,无 论 是
哪 种 RAM 都 有 其 存 储 上 限 。 相 比 卷 积 神 经 网 络 较 大 的 参 数 量 , 存 储 资 源
远 远 不 够 ,如 下 表 3-1 表 中 可 以 看 出 YOLO-v2-tiny 的 网 络 卷 积 结 构 和 参 数
数 量 , 表 格 中 分 别 列 出 了 输 入 特 征 图 像 素 个 数 ( Total Input)、 输 出 特 征 图
像 素 个 数 ( Total Output) 和 权 重 的 数 量 ( Total Weight)。 卷 积 神 经 网 络 单
层 最 大 的 参 数 量 达 到 了 4718.5 千 个 ,巨 大 的 数 据 量 无 法 一 次 性 加 载 到 片 内
存储,因此需要按块传输到硬件加速器内部,再进行卷积运算产生部分和
( Partial Sum)数 据 ,当 所 有 分 块 均 被 计 算 完 成 后 ,得 出 一 层 卷 积 的 结 果 。
表 3 -1 YO LO - v2 -ti ny 各 层 参 数 量

Tab le.3 -1 T he pa ramet er s of eac h la ye r of YO LO - v2 -t iny

YO LO v2
1 2 3 4 5 6 7 8 9
ti ny

Type 卷积 卷积 卷积 卷积 卷积 卷积 卷积 卷积 卷积

I map
416 208 104 52 26 13 13 13 13
Siz e(H, L)
I map
3 16 32 64 128 256 512 102 4 512
Number (N)
O map
416 208 104 52 26 13 13 13 13
Siz e(R, C)
O map
16 32 64 128 256 512 102 4 512 425
Ne mber (M )
Ker nel
3 3 3 3 3 3 3 3 1
Siz e(K)

Str ide (S) 1 1 1 1 1 1 1 1 1

Tot al
519 .1 6 92 . 2 346 . 1 173 . 0 86.5 43.2 86.5 173 86.8
Inp ut( k)
Tot al
276 8.8 13 8 4. 4 692 . 2 346 . 1 173 86.5 173 .0 86.5 71.8
Outp ut( k)
Tot al
0.4 4. 6 18. 4 73.7 294 .9 1179.6 471 8.5 471 8.5 217 .6
We igt h( k)

29

万方数据
广东工业大学硕士专业学位论文

输 入 输 出 特 征 图 分 块 的 三 维 示 意 图 如 3-10 所 示 ,每 次 传 入 的 数 据 大 小

仅为 × × 个 𝑇𝑛 × 𝑇ℎ × 𝑇𝑙大 小 的 数 据 组 , 传 出 的 数 据 仅 为 × × 个

𝑇𝑚 × 𝑇𝑟 × 𝑇𝑐大 小 的 数 据 组 ,卷 积 核 为 𝑇𝑚个 𝑇𝑛 × 𝑘 × 𝑘大 小 的 数 据 组 。分 块 处
理 之 后 根 据 上 述 伪 代 码 描 述 , 分 块 输 入 的 卷 积 过 程 需 要 分 别 在 M, N, R,

C 四个维度上额外增加 、 、 、 次循环。

图 3 -10 数 据 分 块 大 小

Fig. 3 -10 Da ta bl oc k si ze

数据复用
影 响 硬 件 加 速 器 效 率 的 原 因 有 两 个 :( 1) 数 据 输 入 量 充 足 , 但 硬 件 加
速 器 处 理 效 率 较 低 ;( 2) 数 据 输 入 量 较 少 , 硬 件 加 速 器 处 于 空 闲 状 态 。 第
一种情况将会在核心计算组件部分进行设计讨论;而出现第二种情况的原
因之一可能是没有对现有数据进行充分的利用,导致重复读取相同或部分
相同数据。本小节主要研究如何更好地利用现有数据。
为 了 提 高 片 内 数 据 的 复 用 次 数 , 根 据 论 文 [42]的 讨 论 关 于 如 何 充 分 利 用
片 内 已 有 数 据 的 方 式 , 本 文 拟 采 用 输 入 复 用 ( Input Reuse, IR) 的 方 法 。
输 入 复 用 实 现 过 程 : 从 输 入 缓 存 读 入 输 入 特 征 图 的 一 个 Th × Tl × Tn大 小 的
分 块 ,同 时 读 入 Tn × Tm个 卷 积 核 参 数 ,得 到 Tm个 卷 积 结 果 ,将 本 次 卷 积 结
果 存 放 至 输 出 特 征 图 的 片 内 缓 存 中 , 完 成 一 次 片 内 卷 积 运 算 , 如 图 3-11;
第 二 次 由 于 输 入 特 征 图 可 以 复 用 , 只 需 要 加 载 Tn × Tm个 卷 积 核 参 数 即 可 ,
计算出第二次卷积结果后需要与第一次运算存储在片内输出缓存中的卷积
数 据 进 行 相 加 ; 如 此 往 复 进 行 , 直 至 Tn = N时 , 得 到 最 终 的 输 出 特 征 图 。
输 入 复 用 的 伪 代 码 下 图 3-12 所 示 。
30

万方数据
第三章 硬件加速器设计

图 3 -11 输 入 复 用 片 内 操 作

Fig. 3 -11 Inpu t mul tipl e xe d on-c hi p ope rat ion

图 3 -12 输 入 复 用 伪 代 码

Fig. 3 -12 I np ut multi ple xin g pse udo cod e

数据传输
在 3.2 节 中 , 详 细 设 计 了 外 部 数 据 从 SD 卡 到 PS 端 DDR, 再 到 PL 端
DDR 的 传 输 方 案 。最 终 片 内 外 数 据 交 换 的 双 方 是 硬 件 加 速 器 与 PL 端 DDR。
本设计在实现前期对整个设计的硬件资源消耗量进行评估,同时对硬
件 加 速 器 的 带 宽 上 限 与 DDR 的 带 宽 上 限 进 行 评 估 ,决 定 将 硬 件 加 速 器 内 部
的 核 心 计 算 组 件 设 计 为 两 个 。 在 数 据 交 互 时 利 用 多 个 DMA 并 行 传 输 。 保
证 MAC 算 力 足 够 的 情 况 下 , 以 此 方 式 提 高 硬 件 加 速 器 的 数 据 传 输 效 率 ,
同 时 也 充 分 利 用 了 DDR 的 传 输 带 宽 。

31

万方数据
广东工业大学硕士专业学位论文

核心计算组件
硬件加速器中的核心计算组件是执行整个卷积神经网络的核心部分。
卷 积 神 经 网 络 的 基 本 结 构 由 五 个 功 能 层 组 成 ,分 别 是 输 入 数 据 层 、卷 积 层 、
池化层、全连接层、输出数据层,下一层会承接上一层的数据继续进行运
算,宏观角度属于顺序执行。但将每一个功能层独立分析不难发现,同层
之间的运算并不会相互依赖,也就是说同层运算可以实现并行化。此外具
有 相 同 功 能 的 不 同 层 之 间 具 有 相 似 性 ,例 如 YOLO- v2-tiny 有 9 个 卷 积 层 ,
6 个池化层,针对重复出现的功能层可以将其设计为可复用的硬件结构,
减少资源的消耗。最终的硬件加速器会在性能(并行性)和资源(复用结
构)方面做出折中,以求在有限资源下达到更高的性能。
本 设 计 利 用 了 FPGA 中 的 DSP 资 源 实 现 卷 积 运 算 ,设 计 了 核 心 计 算 组
件 ( MAC), 每 个 MAC 中 有 14 × 14个 PE, 每 个 PE 中 带 有 一 个 DSP 模 块 ,
通 过 对 PE 的 合 理 布 局 实 现 了 MAC 部 分 可 配 置 。

核心计算组件的架构
在前两节中设计了数据传输到片内的具体实现方式:首先数据存放在
PS 端 DDR 中 , 之 后 通 过 ARM 核 控 制 DMA 将 PS 端 DDR 的 数 据 搬 运 到
PL 端 DDR 中 , 之 后 硬 件 加 速 器 与 PL 端 DDR 的 数 据 进 行 交 互 , 硬 件 加 速
器 片 内 数 据 存 放 在 BRAM 块 中 , 输 入 数 据 、 权 重 数 据 会 从 BRAM 送 到 核
心 计 算 组 件 中 进 行 卷 积 运 算 , 运 算 完 成 后 再 送 回 BRAM 中 进 行 存 储 。
本文设计的核心计算组件由五个部分组成,分别是:输入数据层、数
据移位层、缓存共享层、卷积计算层、输出数据层,每个层都有其相应的
功 能 阵 列 , 且 每 一 层 均 为 一 级 流 水 , 如 图 3-13 所 示 。
本文设计的核心计算组件针对卷积运算中卷积核的运动进行了优化处
理,将卷积核在输入数据阵列的滑动变为相邻寄存器阵列的赋值操作。核
心计算组件的五层流水结构减小了时序违例出现的概率,同时最大化流水
线的吞吐率。

32

万方数据
第三章 硬件加速器设计

输入数据层
(20*20)

数据移位层
(20*26)

输入数据共享层 权重数据共享层

缓存共享层
(14*14)

PE PE PE
卷积计算层 PE PE PE
(14*14)
PE PE PE

输出数据层
(14*14)

图 3-1 3 五 级 流 水 线 示 意 图

Fig. 3 -13 Sc he mat ic di a gr a m of fi ve - sta ge pip eli ne

( 1)第 一 层 为 输 入 数 据 层 ,由 维 度 为 20 × 20的 寄 存 器 阵 列 组 成 ,用 于
从 BRAM 中 读 取 输 入 数 据 并 寄 存 。本 设 计 支 持 卷 积 核 K=7 的 情 况 ,当 卷 积
核 的 步 长( S)为 1 时 ,输 入 数 据 的 维 度 为 (14 + K − 1) × (14 + K − 1)= 20 × 20,
因 此 本 层 的 寄 存 器 阵 列 大 小 设 计 为 20 × 20。 从 图 中 可 知 本 层 的 数 据 从 左 侧
输 入 , 每 个 时 钟 周 期 输 入 一 列 , 填 充 时 间 为 20 个 时 钟 周 期 。
( 2)第 二 层 为 数 据 移 位 层 ,由 维 度 为 20 × 26的 寄 存 器 阵 列 组 成 ,将 从
输 入 层 获 取 数 据 并 寄 存 。 由 于 本 设 计 支 持 卷 积 核 大 小 最 大 为 7 的 情 况 , PE
阵 列 的 大 小 为 14 × 14,整 个 卷 积 计 算 层 需 要 面 对 (14 × 14) × (7 × 7) = 9604个
数据的选择问题,如果使用多路选择器显然不是合理的设计方案。为了解
33

万方数据
广东工业大学硕士专业学位论文

决 大 量 数 据 选 择 的 问 题 , 增 加 了 数 据 移 位 层 , 将 PE 与 寄 存 器 一 一 对 应 ,
PE 获 取 的 数 据 将 通 过 本 层 的 数 据 移 位 进 行 指 定 。同 时 为 了 保 证 本 层 数 据 移
位 时 不 丢 失 ,本 层 维 度 至 少 要 比 输 入 数 据 层 多 𝐾 − 1 = 7 − 1 = 6 列 ,所 以 本
层 寄 存 器 阵 列 维 度 为 20 × 26。数 据 移 位 层 的 思 路 如 图 3-14 所 示 :图 中 阴 影
覆 盖 区 域 为 2 × 2卷 积 核 大 小 , 输 入 数 据 维 度 为 3 × 3, 卷 积 步 长 为 1, 执 行
一次卷积需要四个时钟周期。第一个时钟周期,移位层从输入层获取 9 个
输 入 数 据 1~9, 同 时 向 下 一 层 输 出 ( 1,2,4,5) 四 个 数 据 ; 第 二 个 时 钟 周 期
数据移位层九个数据均向左边的寄存器进行赋值,同时向下一层输出
( 2,3,5,6) 四 个 数 据 ; 第 三 个 时 钟 周 期 数 据 移 位 层 的 数 据 整 体 向 上 赋 值 ,
溢 出 的 数 据 ( 1,2,3) 直 接 丢 弃 , 同 时 向 下 一 层 输 出 ( 5,6,8,9) 四 个 数 据 ;
第 四 个 时 钟 周 期 数 据 整 体 向 右 边 的 寄 存 器 赋 值 ,同 时 向 下 一 层 输 出( 4,5,7,8)
四 个 数 据 。 卷 积 核 维 度 为 2 × 2时 , 用 4 个 时 钟 周 期 将 所 有 的 数 据 输 出 到 下
一层。数据移位层的所有寄存器有“上,左,右”三个赋值方向。同时本
层能够提高片内数据的复用性。

图 3-1 4 移 位 层 数 据 移 动

Fig. 3 -14 S hi ft la yer dat a move me nt

( 3)第 三 层 为 缓 存 共 享 层 ,由 两 个 维 度 为 14 × 14 的 寄 存 器 阵 列 组 成 ,
一个是直接从数据移位层接收数据的输入数据共享层,另一个是直接从权
重缓存获取数据的权重数据共享层,输入和权重数据将会直接提供给第四
层 卷 积 计 算 层 。 本 层 提 供 数 据 给 卷 积 运 算 层 采 用 寄 存 器 与 PE 一 一 对 应 的
形 式 。 当 卷 积 步 长 ( S) 为 1 时 PE 的 利 用 率 为 100%, 但 是 当 S > 1时 , 无
法 将 寄 存 器 与 PE 一 一 对 应 。 图 3-13 缓 存 共 享 层 所 示 的 是 S=2 时 , 数 据 共
享层将数据复制到了相邻的三个寄存器中,同时权重数据共享层将会从权
重 缓 存 中 得 到 四 个 不 同 的 权 重( 图 3-13 彩 色 部 分 ),以 此 方 式 将 PE 的 利 用
率 提 升 到 100%。
( 4)第 四 层 为 卷 积 计 算 层 ,由 维 度 为 14 × 14 的 PE 阵 列 组 成 ,是 硬 件

34

万方数据
第三章 硬件加速器设计

加 速 器 的 核 心 , 负 责 卷 积 运 算 的 乘 累 加 工 作 。 每 个 PE 模 块 内 部 都 例 化 了
一 个 DSP48E1 模 块 , 接 收 缓 存 共 享 层 传 输 的 输 入 数 据 和 权 重 数 据 。
( 5) 第 五 层 为 输 出 数 据 层 , 由 维 度 为 14 × 14 的 寄 存 器 阵 列 组 成 , 为
保 证 硬 件 加 速 器 输 出 数 据 时 序 情 况 ,在 第 五 层 对 第 四 层 计 算 结 果 进 行 缓 存 。

卷积计算
卷积神经网络由多层卷积层组成,上下层之间有依赖关系,因此并行
化并不能跨越不同层进行设计,需要针对同一层内的计算做并行化处理。
硬件加速器设计理念是围绕着卷积运算单元进行设计,卷积运算占整个卷
积神经网络计算量的九成以上,卷积运算效率的提升对硬件加速器来说是
重中之重。
如 图 3-15 是 同 一 层 中 的 一 次 卷 积 过 程 ,左 边 输 入 三 维 数 据 与 中 间 三 维
卷积核对应位置相乘再分别相加,得到三个乘累加结果,最后将三个乘累
加 结 果 相 加 , 就 得 到 了 一 次 卷 积 结 果 。 在 此 过 程 中 一 共 进 行 了 27 次 乘 法 ,
26 次 加 法 。可 以 发 现 乘 法 和 加 法 在 一 定 程 度 上 可 以 并 行 处 理 。因 此 在 同 一
层卷积运算中对乘法与加法的并行优化将是提高硬件加速器性能的关键。

图 3 -15 二 维 卷 积

Fig. 3 -15 Two -di me nsi o nal convo lut io n

35

万方数据
广东工业大学硕士专业学位论文

单独拿出一层数据的卷积过程进行研究,假设执行卷积的硬件架构如
下 图 3-16 所 示 ,从 空 间 上 展 开 的 树 形 结 构 [ 4 3 ] ,第 一 个 时 钟 周 期 进 行 9 次 乘
法运算,之后利用加法树的方式将 9 个乘法结果进行累加完成卷积运算。
但 是 如 果 将 加 法 树 压 缩 在 一 个 时 钟 周 期 内 进 行 ,对 时 序 的 要 求 将 太 过 严 苛 ,
有可能会导致时序违例,拉低整个硬件加速器的主频,不是最优选择。按
照流水线的方式对本次卷积运算一共需要 5 个时钟周期,乘法 1 个时钟周
期,加法树 4 个时钟周期,其中流水线的填充时间为 5 个时钟周期。

图 3 -16 树 形 卷 积 结 构

Fig. 3 -16 Tree convol ut i on st r uct ure

基 于 FPGA 设 计 的 硬 件 加 速 器 , 乘 法 和 加 法 的 运 算 单 元 使 用 内 置 的
DSP 模 块 是 更 优 的 选 择 ,但 内 部 DSP 模 块 的 数 量 是 有 限 的 ,需 要 尽 量 满 足
两 个 条 件 :使 用 最 少 的 DSP 发 挥 最 大 的 性 能 ,满 足 一 些 常 见 情 况 。假 设 基
于 DSP 模 块 的 卷 积 硬 件 架 构 是 树 形 结 构 , 有 以 下 几 种 实 现 方 式 :
( 1)DSP 内 部 无 流 水 :无 法 保 证 每 次 乘 法 与 每 次 加 法 之 间 的 流 水 关 系 ,
如 下 图 3-17。 在 一 个 时 钟 周 期 内 , 第 一 个 DSP 只 做 乘 法 , 第 二 个 DSP 做
乘 法 和 加 法 。 会 造 成 第 二 个 DSP 模 块 内 部 组 合 逻 辑 过 长 , 影 响 时 序 。

图 3 -17 DSP 分 工 示 意 图

Fig.3 -17 Sc he mat ic di a gr a m of DSP divi sio n of l abo r

( 2)DSP 内 部 无 流 水 且 只 使 用 加 法 或 乘 法 功 能 :部 分 DSP 只 做 加 法 ,

36

万方数据
第三章 硬件加速器设计

另 一 部 分 DSP 只 做 乘 法 ,虽 然 保 证 了 DSP 内 部 时 序 的 稳 定 ,但 是 会 浪 费 过
多 的 DSP 模 块 , DSP 模 块 本 身 的 功 能 利 用 率 不 高 。 图 3-16 的 架 构 是 基 于
卷 积 核 大 小 为 3 × 3的 情 况 , 假 如 卷 积 核 大 小 为 5 × 5, 就 无 法 保 证 当 前 架 构
DSP 模 块 都 被 合 理 使 用 , 也 会 造 成 DSP 资 源 的 浪 费 。 此 架 构 缺 乏 灵 活 性 。
( 3) 摆 脱 树 形 结 构 从 时 间 上 展 开 [ 4 2 ] : 兼 顾 DSP 使 用 率 、 时 序 以 及 设
计 的 灵 活 性 , 需 要 将 卷 积 计 算 从 时 间 上 进 行 展 开 , DSP 内 部 同 时 使 用 到 加
法 和 乘 法 , 如 下 图 3-18 所 示 。

图 3 -18 单 DSP 功 能 结 构

Fig. 3 -18 F unc t iona l str uct ure o f a si ngle D SP

DSP 模 块 输 入 数 据 经 过 第 一 个 时 钟 周 期 的 乘 法 运 算 后 , 与 上 一 次 的 乘
法运算寄存在 P 端的数据,在第二个时钟周期相加,最后再次从 P 端输出
或 继 续 与 下 一 条 流 水 线 中 的 乘 法 继 续 相 加 ,因 此 使 用 一 个 DSP 模 块 计 算 一
次 3 × 3的 卷 积 需 要 9 个 时 钟 周 期 。
P =P +A×B ( 3.6)
DSP 模 块 实 现 卷 积 运 算 的 方 式 是 将 多 个 DSP 模 块 绑 定 为 一 个 计 算 层 也
就是上节提到的卷积计算层,对应卷积核运算,将不同卷积核运算之间并
行 化 。 从 底 层 运 算 逻 辑 的 角 度 来 考 虑 对 于 执 行 一 个 3 × 3的 卷 积 计 算 并 没 有
时 间 上 的 优 势 , 通 过 多 个 DSP 模 块 并 行 计 算 的 方 式 提 升 卷 积 运 算 的 效 率 ,
当流水线填充完毕后每个时钟周期都可输出有效数据。从整体的运算结构
考 虑 , 多 DSP 并 行 化 的 结 构 能 够 最 大 限 度 的 提 升 流 水 线 吞 吐 率 。

PE 单 元
卷 积 计 算 层 是 由 PE 单 元 组 成 的 ,每 个 PE 单 元 内 部 都 有 一 个 DSP 模 块 。
本 文 所 使 用 的 SoC 中 共 有 DSP48E1 模 块 900 个 , 其 内 部 完 整 架 构 如 下 图
3-19 所 示 ,该 模 块 具 有 众 多 的 可 控 寄 存 器 ,可 以 按 设 计 需 求 在 DSP 内 部 根
据 不 同 功 能 设 置 不 同 的 流 水 线 。 本 设 计 DSP 内 部 实 现 了 三 级 流 水 线 。 DSP
内 部 每 级 流 水 线 时 间 均 相 同 , 根 据 公 式 ( 2.15) 可 知 DSP 内 部 流 水 线 吞 吐
率将达到最高。

37

万方数据
广东工业大学硕士专业学位论文

DSP 内 部 具 有 较 为 重 要 的 计 算 器 件 分 别 是 :
( 1) 预 加 器 ( Dual A,D, and Pre-adder) 可 以 实 现 30bit 与 25bit 的 加
法 计 算 并 输 出 结 果 的 低 25bit。 该 模 块 可 被 旁 路 。
( 2) 预 加 器 后 是 18bit 与 25bit 的 乘 法 器 ( MULT 25 × 18)。 该 模 块 可
被旁路。
( 3 ) 可 选 多 输 入 的 计 算 模 块 , 通 过 配 置 OPMODE 、 ALUMODE 、
CARRYINSEL 三 个 信 号 可 被 设 置 为 加 法 器 、 累 加 器 、 逻 辑 运 算 器 。
( 4) 多 路 选 择 器 ( 图 中 X, Y, Z), 通 过 OPMODE 信 号 配 置 多 路 选
择器的选通。
( 5) DSP 内 部 的 OPMODE、 ALUMODE 等 信 号 均 可 动 态 配 置 , 具 有
极强的灵活性。
CARRYCASCOUT*
ACOUT* MULTSIGNOUT* PCOUT*
BCOUT* 48 A:B
18 30 ALUMODE
18 4 P 48
B 18 18
Dual B Register
X
18 MULT 0 4
M P
A 30 25x18 CARRYOUT
30
ALU
25 0
Dual A, D, and Y 48
1 P
30 Pre-adder P
D 25
0
C 48
C P PATTERNDETECT
4 17-Bit Shift PATTERNBDETECT
1
Z
INMODE 5 17-Bit Shift CREG/C Bypass/Mask
3 MULTSIGNIN*
CARRYIN
OPMODE 7 CARRYCASCIN*
CARRYINSEL
48
BCIN* ACIN* PCIN*

图 3-1 9 DSP 内 部 结 构

Fig. 3 -19 DSP in terna l st ruc t ur e

DSP 内 部 功 能 众 多 , 本 设 计 中 使 用 到 的 DSP 功 能 为 乘 累 加 、 偏 置 加 。
( 1) 当 实 现 乘 累 加 功 能 时 其 内 部 路 线 如 下 图 3-20 虚 线 所 示 : DSP 公
式 为 P = A × B + P。 第 一 次 计 算 时 , A, B 两 个 端 口 分 别 接 受 输 入 数 据 与 权
重 数 据 , 并 旁 路 预 加 器 直 接 输 出 A 数 据 的 低 25bit 在 下 一 级 做 乘 法 运 算 结
果 记 为 𝑃 ,因 为 是 第 一 次 运 算 ,P 端 口 上 一 次 的 数 据 为 0,无 需 进 行 累 加 操
作;第二次计算,左侧的加法器与乘法器功能与第一次相同,右侧的加法
38

万方数据
第三章 硬件加速器设计

器将会累加第一次计算出的𝑃 值。之后的计算方法均与上述表述相同。
CARRYCASCOUT*
ACOUT* MULTSIGNOUT* PCOUT*
BCOUT* 48 A:B
18 30 ALUMODE
18 4 P 48
B 18 18
Dual B Register
X
18 MULT 0 4
M P
A 30 25x18 CARRYOUT
30
ALU
25 0
Dual A, D, and Y 48
1 P
30 Pre-adder P
D 25
0
C 48
C P PATTERNDETECT
4 17-Bit Shift PATTERNBDETECT
1
Z
INMODE 5 17-Bit Shift CREG/C Bypass/Mask
CARRYIN 3 MULTSIGNIN*
OPMODE 7 CARRYCASCIN*
CARRYINSEL
48
BCIN* ACIN* PCIN*

图 3-2 0 乘 累 加 功 能 DS P 内 数 据 路 径

Fig.3 -20 M ul tip l y a nd acc umu lat e fu ncti o n DSP dat a pat h

深 度 学 习 神 经 网 络 的 训 练 和 收 敛 十 分 困 难 , 批 标 准 化 ( Batch
Normalization) [ 4 5 ] 的 出 现 改 善 了 这 一 现 状 。 卷 积 神 经 网 络 输 入 数 据 的 分 布
是不均匀的,模型权重参数的更新会向输入变量分布的区域偏移,对预测
结果产生较大影响。同时对于更深的神经网络来说,对单次输入数据(或
所有输入数据)进行批标准化处理可以减少过拟合现象。但是无需为批标
准化单独设置计算单元,可以将卷积运算与批标准化运算进行融合,其推
理过程如下所示。
批 标 准 化 实 现 公 式 如 下 ( 3.7):

BN(𝑥) = 𝛾 ⊙ +β ( 3.7)
∑ ∈
𝜇̂ = | |
( 3.8)
∑ ∈ ( )
𝜎 = | |
+𝜖 ( 3.9)

其 中 Β表 示 一 次 输 入 数 据 且 𝑥 ∈ 𝛣; 𝜇̂ 是 样 本 均 值 ; 𝜎 是 输 入 数 据 𝛣的 标
准 差 , 𝜖 > 0为 一 个 的 极 小 值 , 保 证 批 标 准 化 的 分 母 不 为 0 ; 𝛾为 缩 放 参 数
( Scale), β为 偏 移 参 数 ( Shift ), 两 个 参 数 的 值 会 随 着 模 型 的 训 练 不 断 更
新。为了保证输入数据分布的区域不能相差太大,对每次的输入数据都通

39

万方数据
广东工业大学硕士专业学位论文

过标准差和样本均值进行调整。当模型训练完成后,类似于卷积的权重参
数,批标准化中的各项参数也会保持不变。
批标准化一般作用在卷积计算后与激活函数之前,可通过与卷积层进
行 融 合 的 方 法 简 化 批 标 准 化 操 作 。 卷 积 输 入 数 据 x, 权 重 为 w, 偏 置 为 b,
卷 积 后 输 出 为 𝑎, 之 后 𝑎输 入 到 批 标 准 化 层 , 得 到 BN(𝑎) , 如 图 3- 21 所 示 。

图 3-2 1 卷 积 与 批 标 准 化

Fig. 3 -21 Co nvol ut i on a nd batc h sta ndard izat io n

卷积计算公式为:
𝑎 =∑ 𝑤 ×𝑥 +𝑏 ( 3.10)
将 批 标 准 化 公 式 ( 3.7) 改 写 为 如 下 结 构 :
×
BN(𝑎) = 𝑎 × + 𝛽− ( 3.11)

其 中 𝛾,𝛽,𝜎 ,𝜇̂ 均 为 常 数 ,可 以 观 察 到 批 标 准 化 计 算 方 法 与 卷 积 层
的计算方法类似,因此将卷积计算公式带入批标准化计算公式:
×
BN(𝑥) = (∑ 𝑤 × 𝑥 + 𝑏) × + 𝛽− ( 3.12)

化简得到批标准化与卷积融合后的计算过程:
× ×( )
BN(𝑎) = ∑ ×𝑎 + 𝛽+ ( 3.13)

新的融合层卷积计算的权重和偏置分别为:
×
𝑤 = ( 3.14)
×( )
b =𝛽+ ( 3.15)

( 2) 当 实 现 偏 置 加 功 能 时 其 内 部 路 线 如 下 图 3-22 虚 线 所 示 : DSP 公
式 为 P = A: B + C。 偏 置 通 过 C 端 口 输 入 , 输 入 数 据 P 通 过 A, B 端 口 输 入 ,
A 端 口 的 数 据 与 B 端 口 的 数 据 拼 接 成 {A: B}, A 作 为 符 号 位 , 最 终 送 入 最 右
侧加法器与偏置 C 进行累加即可。

40

万方数据
第三章 硬件加速器设计

CARRYCASCOUT*
ACOUT* MULTSIGNOUT* PCOUT*
BCOUT* 48 A:B
18 30 ALUMODE
18 4 P 48
B 18 18
Dual B Register
X
18 MULT 0 4
M P
A 30 25x18 CARRYOUT
30 ALU
25 0
Dual A, D, and Y 48
1 P
30 Pre-adder P
D 25
0
C 48
C P PATTERNDETECT
4 17-Bit Shift PATTERNBDETECT
1
Z
INMODE 5 17-Bit Shift CREG/C Bypass/Mask
3 MULTSIGNIN*
CARRYIN
OPMODE 7 CARRYCASCIN*
CARRYINSEL
48
BCIN* ACIN* PCIN*

图 3 -22 偏 置 加 功 能 DS P 内 数 据 路 径

Fig. 3 -22 Da ta pa t h i n D SP wit h bi a s pl us f unc ti on

卷积数据后处理
神 经 网 络 运 行 在 FPGA 上 首 先 需 要 对 大 量 的 浮 点 数 进 行 量 化 , 本 文 所
设 计 的 硬 件 加 速 器 可 适 配 量 化 精 度 为 16bit 与 8bit 的 部 分 神 经 网 络 。 经 过
核心计算组件计算后的数据,还需要进行激活函数、截断、四舍五入等操
作 , 本 文 将 其 设 计 为 “ 卷 积 后 处 理 ” 模 块 ( DP)。

方案设计
MAC 单 元 计 算 完 成 后 ,数 据 传 输 到 OBUF 模 块 中 ,最 终 由 OBUF 模 块
经 过 FIFO 缓 存 传 输 到 DMA 模 块 中 。 其 中 MAC 单 元 计 算 的 数 据 均 需 要 进
行 DP 模 块 处 理 , 从 硬 件 设 计 的 角 度 考 虑 , 有 如 下 两 种 方 案 :

MAC OBUF
DATA
PE+DP PE+DP 1

14x32 AXI- DMA


stream
DATA
PE+DP PE+DP 14

图 3 -23 DP 模 块 在 P E 内 部

Fig. 3 -23 T he DP modul e i s i nsi de t he P E

41

万方数据
广东工业大学硕士专业学位论文

( 1) 如 图 3-23, 将 DP 模 块 设 计 在 PE 内 部 , 卷 积 运 算 后 同 时 处 理 所
有 数 据 , 后 续 模 块 无 需 做 额 外 处 理 。 假 设 加 速 器 内 部 有 N 个 MAC 单 元 ,
每 个 M AC 单 元 内 有 14 × 14个 P E, 最 终 将 会 使 用 到 N × 14 × 14个 DP 模 块 。
( 2) 如 图 3-24 所 示 , 卷 积 后 的 数 据 以 列 的 形 式 进 行 输 出 , 每 次 输 出
到 OBUF 的 数 据 位 宽 为 14 × 32bit , 数 据 从 OBUF 传 输 到 DMA 是 以
AXI-stream 流 的 形 式 , 将 DP 模 块 放 在 OBUF 与 DMA 中 间 , 只 需 要 一 个
DP 模 块 即 可 完 成 所 有 数 据 的 卷 积 后 处 理 。

MAC OBUF
DATA
PE PE 1

AXI- DP AXI- DMA


14x32
stream stream
DATA
PE PE 14

图 3 -24 DP 模 块 在 OB U F 后

Fig. 3 -24 DP modul e a ft e r OB UF

第 二 种 方 案 相 比 较 于 第 一 种 方 案 将 会 节 省 大 量 硬 件 面 积 , DP 模 块 从
N × 14 × 14 个 减 少 到 只 需 要 1 个 。 除 流 水 线 填 充 时 间 外 , 没 有 降 低 整 个 硬
件 加 速 器 的 运 行 效 率 , 充 分 释 放 了 MAC 模 块 的 内 部 功 能 , 使 其 专 注 于 卷
积运算,减少模块设计难度与时序压力。因此选择第二种方案。

模块设计
DP 模 块 需 要 具 备 三 个 功 能 :激 活 函 数 、四 舍 五 入 、数 据 截 断 。模 块 的
功 能 如 下 图 3-25 所 示 :

AXI- AXI-
判断数据正负 四舍五入 截断 激活函数
stream stream

图 3 -25 DP 模 块 内 部 功 能

Fig. 3 -25 DP modul e int e r nal func t ion s

( 1)四 舍 五 入 :有 符 号 二 进 制 的 四 舍 五 入 首 先 要 区 分 是 正 数 还 是 负 数 。

42

万方数据
第三章 硬件加速器设计

对 于 正 数 来 说 , 丢 弃 数 据 的 最 高 位 为 1 时 , 原 数 据 将 会 进 位 +1; 如 果 丢 弃
的 最 高 位 为 0 则 无 需 进 位 ,如 1.10110 截 断 低 2bit 变 为 1.110。对 于 负 数 来
说 , 丢 弃 数 据 的 最 高 位 为 1, 且 最 高 位 以 外 同 时 也 有 1 存 在 时 , 原 数 据 需
要 +1, 其 他 情 况 则 无 需 +1, 如 1.101101 截 断 低 3bit 变 为 1.110。 但 是 负 数
情 况 下 对 于 “ 除 最 高 位 以 外 其 他 位 也 有 1” 的 实 现 较 为 困 难 。 改 变 思 路 ,
负数在硬件系统中是以补码的形式存在,可以先将补码取反加一,转化成
原码,之后就可以按照正数的规则进行四舍五入,完成后再次取反加一变
为补码。
( 2) 截 断 : 截 断 利 用 数 据 移 位 即 可 实 现 。
( 3) 激 活 函 数 : 本 文 所 研 究 的 YOLO-v2-tiny 神 经 网 络 使 用 的 激 活 函
数 为 Leaky ReLU 其 表 达 式 如 下 : 当 输 入 大 于 等 于 0 时 保 持 原 数 值 不 变 ,
当 输 入 小 于 0 时 将 会 乘 以 一 个 系 数 0.1。 Leaky ReLU 与 ReLU 相 比 最 大 的
特点就是可以保留负数的部分特征。
𝑥, 𝑥 ≥ 0
𝑓= ( 3.16)
0.1𝑥, 𝑥 < 0
乘法操作对硬件设计来说是比较慢的运算,同时硬件的二进制特性导
致 某 个 数 乘 以 0.1 是 一 个 浮 点 运 算 , 将 会 增 大 计 算 量 减 慢 计 算 速 度 , 系 统
设 计 复 杂 也 度 变 高 。Leaky ReLU 激 活 函 数 需 要 作 出 相 应 优 化 。本 设 计 优 化
方 式 为 量 化 处 理 : 对 0.1 进 行 量 化 处 理 , 由 于 本 文 硬 件 加 速 器 是 基 于 16bit
数 据 进 行 设 计 的 ,分 配 给 整 数 部 分 1bit,剩 下 15bit 分 配 给 浮 点 表 达 ,根 据
如下公式可得量化精度 q 的取值范围:
0.1 × 2 ≤ 2 , q ≤ 18 ( 3.17)
本 设 计 使 用 量 化 的 方 式 将 Leaky ReLU 函 数 实 现 , q 值 选 择 15。 当 输
入 数 据 大 于 0 时 , 保 持 原 数 据 ;当 数 据 小 于 0 时 ,利 用 DSP 模 块 计 算 输 入
数 据 a × (2 × 0.1) ≈ a × 3277 = 𝑎 × (CCD) 得 到 输 出 数 据 。

本章小结
本章利用总分的方式,首先设计了硬件加速器的架构,之后分别设计
了 硬 件 加 速 器 的 数 据 流 走 向 、DDR 传 输 、数 据 分 块 及 复 用 、核 心 计 算 组 件 、
卷积后数据处理模块的设计。

43

万方数据
广东工业大学硕士专业学位论文

第 四章 加 速 器 系 统 仿 真 与 实 现
本 章 节 将 第 三 章 设 计 的 硬 件 加 速 器 与 可 视 化 组 件 、中 间 组 件 进 行 集 成 ,
实 现 加 速 器 系 统 和 应 用 。4.1 节 利 用 软 硬 件 协 同 的 方 式 设 计 实 现 了 加 速 器 系
统 架 构 , 4.2 节 对 硬 件 加 速 器 内 部 各 个 模 块 进 行 仿 真 验 证 , 4.3 节 展 示 加 速
器 系 统 的 实 际 应 用 ,4.4 节 从 资 源 、功 耗 、性 能 等 方 面 与 当 前 主 流 平 台 以 及
其他论文的系统进行对比分析。

加速器系统应用设计
本 设 计 应 用 的 开 发 平 台 为 Zynq-ZC706。平 台 SoC 内 部 的 FPGA 关 键 资
源 量 如 表 4-1 所 示 。
表 4 -1 ZC70 6 硬 件 资 源

Tab le. 4 -1 Har d ware Re s our ces o f ZC706

Reso urce LU T FF B RAM DS P

21 8600 437 200 54 5 900

图 4 -1 Zynq - ZC706 开 发 平 台

Fig. 4 -1 Z ynq - ZC706 d evel op me nt plat for m

44

万方数据
第四章 加速器系统仿真与实现

图 4-1 方 框 内 是 本 次 实 现 所 用 到 的 板 上 资 源 : ① 为 外 接 电 源 ; ② 为 串
口 与 JTAG 下 载 接 口 ; ③ 为 XILINX Zynq XC7Z045 SoC 芯 片 ; ④ 为 SD 卡
模 块 , 所 有 的 数 据 存 放 在 SD 卡 的 txt 文 档 中 ; ⑤ 为 PS 端 DDR; ⑥ 为 PL
端 DDR; ⑦ 为 本 设 计 使 用 到 的 Sony 摄 像 头 模 组 , 使 用 FMC 接 口 ; ⑧ 为
HDMI 输 出 接 口 , 另 一 端 连 接 显 示 器 。
加 速 器 系 统 是 由 可 视 化 组 件 与 硬 件 加 速 器 的 集 成 ,整 个 系 统 采 用 AXI4
协 议 进 行 互 联 ,分 别 使 用 到 了 AXI-full,AXI-stream,AXI-LITE 三 种 总 线 。
其 中 各 个 模 块 将 通 过 Block Design 的 FIFO 接 口 进 行 数 据 交 互 。 系 统 集 成
的难点在于对数据流走向的清晰理解以及系统互联的合理性,合理利用
XILINX 的 AXI-interconnect、 DMA、 FIFO 等 模 块 。
基 于 FPGA 的 设 计 并 不 是 完 成 仿 真 阶 段 就 代 表 系 统 再 无 问 题 , 板 级 测
试 是 将 “ 理 想 变 为 现 实 ” 的 过 程 , 无 论 是 FPGA 设 计 还 是 在 ASIC 设 计 流
程中都是极为重要的一环,在板级测试时会遇到更多问题。
本 设 计 硬 件 加 速 器 全 模 块 同 步 时 钟 200MHz; VIVADO 与 SYNPLIFY
软 件 负 责 S ynthesis;VIVADO 进 行 Implementation。最 终 在 XILINX-ZC706
开发平台实现了整个系统。

加速器系统架构

CSI- CCM颜 Scaler-缩放模块 PL


Sony-IMX214
Lane 色校正 (1280x720) DDR

AXI_LITE AXI
Stream
BUF0
HDMI Stream
OSD VDMA BUF1
(1280x720) to Video 硬
BUF2

可视化组件 加
DMA R 速
数据前处 器
DMA G

DMA B

AXI_LITE
FIFO Result

中间组件

图 4 -2 加 速 器 系 统 架 构

Fig. 4 -2 Acc eler ato r s ys t e m ar c hi tec ture

45

万方数据
广东工业大学硕士专业学位论文

加 速 器 系 统 架 构 如 图 4-2 所 示 , 一 共 分 为 三 个 部 分 : 硬 件 加 速 器 、 可
视化组件与中间组件。主要流程如下:
( 1)Sony 摄 像 头 采 集 一 帧 图 像 的 RGB 数 据 ,通 过 可 视 化 组 件 的 各 个
模 块 将 其 从 HDMI 接 口 输 出 摄 像 头 采 集 的 图 像 数 据 到 显 示 器 。
( 2) 中 间 组 件 从 可 视 化 组 件 的 VDMA 模 块 中 提 取 出 一 帧 图 像 的 RGB
数 据 , 经 过 数 据 前 处 理 , 送 入 DDR 的 R、 G、 B 三 块 内 存 区 域 , 之 后 由 硬
件加速器访问三块内存区域读取数据。
( 3) 从 硬 件 加 速 器 中 推 理 得 出 图 像 识 别 的 数 据 放 在 DDR 的 Result 内
存 区 域 , 由 AXI-LITE 总 线 配 置 到 可 视 化 组 件 的 OSD 模 块 中 ( On-Screen
Display), 最 终 在 显 示 器 上 显 示 。
第一帧图像与图像识别的可视化成功之后,就需要将其连续执行。可
视化组件不断地从摄像头采集帧数据输出到显示器;硬件加速器完成一帧
图像数据的运算后会再次采集下一帧数据,并且不断地送出推理后的识别
结 果 反 回 OSD 模 块 , 最 终 将 OSD 的 数 据 与 摄 像 头 采 集 的 数 据 叠 加 输 出 到
显示器。完成从图像采集、图像识别到图像显示的完整应用流程。

加速器系统集成
( 1) 可 视 化 组 件
可 视 化 组 件 设 计 如 下 图 4-3 所 示 。

IIC-Config

CSI- CCM颜 PL
Scaler-缩放模块
Sony-IMX214 DDR
Lane 色校正 (1280x720)

AXI_LITE AXI
Stream BUF0
BUF1
HDMI Stream
OSD VDMA BUF2
(1280x720) to Video

可视化组件

图 4 -3 可 视 化 组 件

Fig. 4 -3 Vis ual co mpone nt

摄 像 头 使 用 SONY 的 IMX-214 传 感 器 模 组 , 通 过 IIC 接 口 进 行 配 置 。

46

万方数据
第四章 加速器系统仿真与实现

摄 像 头 数 据 会 通 过 CSI( Camera Serial Interface) 接 口 转 换 到 物 理 层 MIPI


接 口 , 通 过 MC20901 芯 片 将 数 据 信 号 转 化 为 FPGA 可 采 样 的 LVDS 信 号 。
FPGA 采 样 到 摄 像 头 模 组 的 数 据 后 ,通 过 模 块 CCM 对 图 像 数 据 进 行 校
正 ; 之 后 将 输 入 的 1920 × 1080的 数 据 经 过 图 像 缩 放 模 块 ( Scaler ) 裁 剪 为
1280 × 720大 小 送 入 VDMA 中 ,与 DDR 进 行 数 据 的 三 帧 缓 存 输 出 。硬 件 加
速 器 运 算 结 果 通 过 AXI-LITE 总 线 传 输 至 OSD 模 块 , 此 模 块 是 为 了 在 图 像
数 据 上 叠 加 硬 件 加 速 器 的 推 理 结 果 。 最 终 图 像 输 出 到 HDMI 接 口 , 连 接 显
示器进行显示。
VDMA 是 XILINX 官 方 提 供 的 IP 模 块 , 用 于 实 现 Stream 流 数 据 与
Memory Map 格 式 数 据 的 相 互 转 换 。 借 此 可 以 实 现 将 数 据 直 接 读 写 在 DDR
存 储 器 中 , 利 用 DDR 与 VDMA 实 现 了 三 级 缓 存 机 制 , 大 大 减 小 了 图 像 撕
裂的情况,使得输出图像更加稳定。
CCM 模 块 为 提 高 图 像 质 量 的 IP 核 , 此 处 不 再 赘 述 。
OSD 模 块 用 于 视 频 叠 加 处 理 。OSD 模 块 的 输 出 由 AXI-LITE 总 线 配 置 ,
当硬件加速器计算完某一帧图像的数据后,输出图像识别的坐标及类别,
通 过 AXI-LITE 总 线 传 输 到 OSD 模 块 , 模 块 即 可 把 输 出 叠 加 显 示 在 显 示 器
上 ; 当 OSD 无 配 置 指 令 时 , 不 影 响 原 图 像 输 出 。
( 2) 中 间 组 件 与 硬 件 加 速 器
中 间 组 件 与 硬 件 加 速 器 的 连 接 如 下 图 4-4 所 示 :

DMA-master PL
DDR

R
DMA R
数据 G 硬
VDMA输入 DMA G 件
前处理

DMA B 速
B

AXI_LITE
FIFO Result
中间组件

图 4-4 中 间 组 件 与 硬 件 加 速 器

Fig.4 -4 I n ter me di a te Co mp one nt s a nd Ha rd war e Acc e ler ator s

47

万方数据
广东工业大学硕士专业学位论文

中 间 组 件 从 可 视 化 组 件 的 VDMA 中 截 取 一 帧 图 像 ,输 入 到 数 据 前 处 理
模 块 , 前 处 理 模 块 将 RGB 数 据 分 成 三 路 单 独 的 数 据 , 并 将 数 据 缩 放 为
416 × 360大 小 , 分 别 存 储 在 DDR 的 R、 G、 B 三 个 内 存 段 。
硬 件 加 速 器 能 处 理 的 图 像 大 小 为 416 × 416,因 此 在 放 入 DDR 时 不 能 简
单 的 按 顺 序 摆 放 , 需 要 将 416 × 360大 小 的 图 像 先 填 充 为 416 × 416, 这 样 才
能 保 证 加 速 器 读 取 的 图 像 是 正 确 的 大 小 。 由 于 图 像 填 充 的 数 据 均 为 0, 为
了 减 小 传 输 的 数 据 量 , 在 写 入 DDR 前 , 先 将 DDR 存 放 图 像 的 区 域 全 部 清
0, 然 后 将 416 × 360的 数 据 填 充 进 DDR 中 。
如 下 图 4-5 所 示 ,计 算 DDR 存 放 三 个 部 分 填 充 数 据 的 首 地 址 。假 设 存
放 R 通 道 ( 第 一 条 虚 线 处 ) 数 据 的 地 址 为 为 0𝑥12000000, 则 第 一 处 写 入 数
据 的 地 址 为 : 0𝑥12000000 + (28 × 416 × 2) = 0𝑥12005𝐵00。
本 次 填 充 的 数 据 长 度 为 : 416 ∗ 360 = 149760。
另外两个通道的首地址计算同上。

416x28

416x360

416x28

416x360

416x360

图 4-5 图 像 填 充 示 意 图

Fig. 4 -5 Sc he mati c di agr a m o f i mag e fi lli ng

硬件加速器正确读取图像数据并且计算出图像推理的结果后,将结果
放 入 到 DDR 的 Result 内 存 地 址 中 , 此 时 通 过 FIFO 将 推 理 后 的 数 据 通 过
AXI-LITE 接 口 配 置 到 视 频 采 集 组 件 的 OSD 模 块 中 , 完 成 这 一 帧 图 像 的 整
个展示过程。

48

万方数据
第四章 加速器系统仿真与实现

软硬件协同设计
本 设 计 基 于 的 是 异 构 SoC 平 台 ,硬 件 和 软 件 需 要 各 自 分 配 符 合 软 硬 件
特性的计算任务。硬件需要实现高度的并行化计算,软件则需要执行串行
化操作,同时软件具有可以快速设计并修改的优点。
异 构 平 台 的 ARM 核 将 作 为 加 速 器 系 统 的 主 控 核 心 , 需 要 实 现 的 功 能
如下:
( 1)负 责 卷 积 神 经 网 络 中 部 分 功 能 的 实 现 :对 于 卷 积 神 经 网 络 来 说 卷
积 计 算 已 经 在 第 三 章 中 设 计 了 核 心 计 算 组 件 进 行 计 算 ,YOLO-v2-tiny 卷 积
神 经 网 络 进 行 完 卷 积 与 池 化 计 算 后 , 在 最 终 输 出 之 前 进 行 Softmax 分 类 器
运 算 , 本 设 计 将 利 用 C 语 言 编 程 代 码 的 形 式 实 现 Softmax 功 能 。
( 2) 负 责 加 速 器 系 统 数 据 的 读 入 : Zynq-ZC706 平 台 集 成 了 SD 卡 模
块 , 加 速 器 系 统 的 所 有 数 据 都 预 先 存 放 在 SD 卡 中 。 系 统 首 先 要 通 过 ARM
核 控 制 从 外 部 SD 卡 中 读 取 , 再 通 过 ARM 核 的 HP 接 口 传 输 进 DDR 内 保
存,最后才可以进行片上数据的交互。
( 3)负 责 控 制 硬 件 加 速 器 各 硬 件 单 元 的 执 行 与 调 度 :本 文 研 究 的 硬 件
加速器中具有多个运算、存储模块,在进行硬件设计时对每个硬件模块单
独 配 置 控 制 寄 存 器 , 通 过 start、 finish、 reset 位 信 号 控 制 模 块 启 动 、 停 止
和复位。面对众多模块的调度问题,利用 C 语言编写代码相比较于硬件控
制具有更大的灵活性,代码设计及修改时间大大缩减,同时省略了硬件综
合 布 局 布 线 的 时 间 。 硬 件 系 统 内 部 模 块 互 联 依 靠 AXI4 协 议 , ARM 核 将 C
代 码 所 描 述 的 功 能 通 过 GP 接 口 连 接 的 AXI-Interconnect 互 联 模 块 传 输 到 各
个 模 块 的 AXI-LITE 接 口 中 , 实 现 软 件 对 硬 件 模 块 的 控 制 。
( 4)负 责 控 制 加 速 器 系 统 中 可 视 化 组 件 的 实 现 :可 视 化 组 件 中 一 般 通
过 IIC 接 口 对 摄 像 头 模 块 进 行 配 置 。 除 此 之 外 , 可 视 化 组 件 中 同 样 具 有 众
多 的 硬 件 模 块 需 要 配 置 与 调 度 ,包 括 图 像 色 彩 增 强 模 块( CCM),屏 幕 显 示
模 块 ( OSD) 等 , 同 样 需 要 C 代 码 进 行 控 制 。
( 5)双 核 特 点 :Zynq-ZC706 异 构 平 台 内 部 具 有 双 核 ARM-CortexA9,
两 个 ARM 核 可 以 独 立 工 作 , 并 且 有 一 段 共 同 的 内 存 区 域 ( OCM) 用 于 两
个 ARM 核 数 据 的 交 互 , 因 此 软 件 代 码 也 可 以 实 现 并 行 运 行 。 将 控 制 硬 件

49

万方数据
广东工业大学硕士专业学位论文

加 速 器 的 代 码 与 Softmax 的 代 码 按 照 乒 乓 操 作 的 形 式 执 行 , 进 一 步 提 升 软
件代码运行的效率。
由于加速器的设计采用的是分层计算,每一层的开始与停止都需要
ARM 核 的 配 合 。加 速 器 系 统 中 可 视 化 组 件 、中 间 组 件 和 硬 件 加 速 器 的 执 行
为弱耦合,可视化组件不依赖中间组件和硬件加速器的执行;硬件加速器
也不受可视化组件和中间组件的约束。中间组件只需要从可视化组件的
VDMA 中 获 取 某 一 帧 传 输 到 DDR 中 ,再 由 硬 件 加 速 器 从 DDR 中 读 取 数 据
进行处理。为了保证视觉动态识别效果的实时性,需要将两个核心模块与
两 个 ARM 核 的 运 行 调 度 进 行 优 化 , 过 程 如 下 :
① ARM 核 1 运 行 , ARM 核 2 等 待 : 当 硬 件 加 速 器 空 闲 时 , 数 据 前 处
理 模 块 从 视 频 流 主 数 据 路 径 获 取 第 一 帧 图 像 的 RGB 数 据 , 通 过 三 个 DMA
传 输 到 DDR 的 指 定 存 储 位 置 , 交 由 硬 件 加 速 器 处 理 。
② ARM 核 1 通 知 ARM 核 2 运 行 : 三 个 DMA 传 输 完 成 触 发 中 断 , 同
时 硬 件 加 速 器 完 成 处 理 后 也 触 发 中 断 , 均 由 ARM 核 1 接 收 中 断 。 当 两 个
中 断 均 触 发 后 在 软 件 代 码 中 利 用 OCM 区 域 通 知 ARM 核 2 开 始 运 行 Softmax。
③ ARM 核 1 与 ARM 核 2 同 时 运 行 :ARM 核 2 执 行 Softmax 后 将 结 果
通 过 AXI-LITE 传 输 到 OSD 模 块 , 覆 盖 到 视 频 流 主 数 据 路 径 进 行 显 示 。 此
时 ARM 核 1 无 需 等 待 ARM 核 2 完 成 ,可 同 时 从 视 频 流 主 数 据 路 径 获 取 第
二 帧 图 像 的 RGB 数 据 , 重 复 ① 、 ② 过 程 。
上 述 三 个 过 程 的 描 述 , 如 下 图 4-6 所 示 。

T0 T1 T2 T3 ……

CPU0 第一帧图像 第二帧图像 第三帧图像 第四帧图像 ……

CPU1 第一帧后处理 第二帧后处理 第三帧后处理 ……

图 4-6 双 ARM 核 调 度 示 意 图

Fig.4 -6 Sc he mati c di agr a m o f dual ARM cor e sc he duli ng

( 6)系 统 调 试 :硬 件 加 速 器 的 实 现 并 不 是 通 过 仿 真 就 真 的 解 决 了 所 有
问 题 ,实 际 板 级 测 试 时 会 有 更 多 的 问 题 出 现 。ARM 核 可 以 通 过 串 口 调 试 的
方 法 打 印 出 必 要 的 调 试 信 息 , 再 与 FPGA 的 逻 辑 分 析 仪 配 合 使 用 , 加 快 系

50

万方数据
第四章 加速器系统仿真与实现

统板级调试的进度。

硬件加速器模块仿真
本 节 将 对 第 三 章 设 计 的 模 块 进 行 仿 真 。仿 真 环 境 为 Redhat-4.4.7 系 统 ,
硬 件 配 置 为 64 核 Intel( R)Xeon( R)E7-4809 CPU,256G 内 存 ,4T 硬 盘 。
使 用 VIVADO2018.3 与 VCS2018 软 件 联 合 仿 真 。

DDR 传 输 仿 真
首 先 进 行 PS 端 DDR 与 PL 端 DDR 数 据 通 路 的 仿 真 测 试 。 由 于 DDR
是 FPGA 板 上 的 实 体 器 件 ,在 仿 真 时 无 法 直 接 访 问 DDR 内 部 地 址 上 的 信 息 。
根 据 VIVADO 中 VIP 的 官 方 指 导 手 册 可 知 , 在 编 写 Testbench 时 指 令
ZYNQ.write_mem 、 ZYNQ.read_mem 可 以 模 拟 DDR 内 存 地 址 的 读 写 ;
ZYNQ.write_data、 ZYNQ.read_data 可 以 对 IP 核 的 控 制 寄 存 器 进 行 读 写 。
需 要 在 Testbench 中 配 置 两 个 DMA 的 控 制 寄 存 器 。 具 体 仿 真 流 程 如 下 :
( 1) 对 PS 端 DDR 的 地 址 0𝑥10000000 写 入 64 个 32bit 数 据 ( 写 入 数
据 为 偏 移 地 址 的 大 小 ), 再 按 照 写 入 偏 移 地 址 的 顺 序 读 出 数 据 到 寄 存 器 i,
验 证 是 否 成 功 写 入 64 个 数 据 。 结 果 如 图 4-7: 上 图 offset 为 偏 移 地 址 , 同
时 也 是 写 入 数 据 ; 下 图 可 以 看 到 读 出 值 i 与 offset 地 址 的 值 相 同 , 说 明 64
个数据成功写入。

图 4 -7 读 写 数 据 仿 真

Fig. 4 -7 Rea d a nd wr ite data si mul ati o n

( 2)等 待 MIG 控 制 器 初 始 化 完 成 。M IG 控 制 器 的 初 始 化 时 间 为 50us,


若 使 用 VIVADO 仿 真 则 会 等 待 较 长 时 间 。
( 3) 配 置 两 个 DMA 的 控 制 寄 存 器 、 传 输 长 度 及 传 输 地 址 , 并 等 待

51

万方数据
广东工业大学硕士专业学位论文

DMA 完 成 传 输 后 触 发 中 断 信 号 。 DMA0 负 责 将 数 据 从 PS 端 DDR 的


0𝑥10000000地 址 数 据 传 输 到 PL 端 DDR 的 0𝑥80000000地 址 上 ; DMA1 负 责
再 将 数 据 从 PL 端 DDR 的 0𝑥80000000地 址 上 的 数 据 传 输 到 PS 端 DDR 的
0𝑥10000000地 址 。

图 4 -8 DM A 配 置 代 码

Fig. 4 -8 DM A con fi g urat ion c ode

( 4) 从 PS 端 DDR 的 0𝑥10000000地 址 读 出 写 入 的 64 个 数 据 , 观 察 是
否 与 ( 1) 中 写 入 数 据 一 致 。 如 图 4-9 所 示 即 为 仿 真 成 功 。

图 4 -9 读 写 数 据 仿 真 结 果 对 比

Fig.4 -9 Co mp aris o n o f s i mul at i on re sul ts o f read ing a nd wr i ti ng dat a

核心计算组件仿真
核 心 计 算 组 件 依 赖 于 控 制 寄 存 器 的 控 制 , conv_start 为 高 脉 冲 时 触 发 ,
MAC 按 照 数 据 分 块 复 用 的 模 式 对 片 内 数 据 进 行 卷 积 计 算 ,完 成 一 个 分 块 的
卷 积 后 将 拉 高 conv_finish 信 号 告 知 总 控 卷 积 计 算 完 成 , 如 图 4-10。

52

万方数据
第四章 加速器系统仿真与实现

图 4 -10 核 心 计 算 组 件 控 制 信 号 波 形

Fig.4 -10 Co ntr ol si gnal wa ve for m o f c ore c o mp ut ing co mp o ne nt

核 心 计 算 组 件 的 关 键 是 内 部 14 × 14个 PE 单 元 的 计 算 。 PE 模 块 分 为 三
种 模 式 , 分 别 是 乘 累 加 模 式 、 偏 置 加 模 式 与 保 持 模 式 , 由 SEL 信 号 控 制 ,
当 SEL 信 号 为 1 时 进 行 乘 累 加 , SEL 信 号 为 2 时 进 行 偏 置 加 , SEL 信 号 为
其它情况时保持数据。
如 下 图 4-11 方 框 所 示 为 乘 累 加 模 式 , 输 入 数 据 0𝑥1FFF81F送 入 DSP 的
A 端 , 权 重 数 据 0𝑥80送 入 DSP 的 B 端 , 得 到 乘 法 结 果 为 0𝑥FFFFFFFC0F80。
该 数 据 在 核 心 计 算 组 件 内 部 由 移 位 寄 存 器 直 接 裁 剪 为 32bit 输 出 到 模 块 外 ,
由 于 本 设 计 运 行 的 卷 积 神 经 网 络 量 化 为 16bit,因 此 核 心 计 算 组 件 输 出 的 数
据 将 一 并 交 由 卷 积 数 据 后 处 理 模 块 ( DP) 进 行 处 理 。

图 4 -11 DSP 内 部 计 算 波 形

Fig. 4 -11 DSP i nte rna l ca l cula tio n wavefor m

DP 模 块 仿 真
DP 模 块 在 系 统 中 需 要 符 合 AXI-stream 协 议 且 需 要 在 内 部 做 8 级 流 水
以完成所有的数据处理功能。

53

万方数据
广东工业大学硕士专业学位论文

传 输 协 议 具 有 master 与 slave 两 端 , 在 设 计 基 于 该 协 议 的 模 块 时 , 需
要 特 别 注 意 *_tread y,*_tvalid,*_tlast 与 *_tdata 信 号( 共 8 条 ),S 开 头 的
信 号 为 外 部 输 入 到 模 块 内 的 信 号 ,M 开 头 的 为 模 块 内 部 输 出 的 信 号 ,如 4-12
所示。

AXI-stream协议
模块A 模块B
模块C

图 4 -12 AXI - st rea m 总 线 信 号

Fig. 4 -12 AXI - st rea m bu s si gna l

模 块 C 是 我 们 设 计 的 DP 模 块 , 数 据 从 模 块 A 传 输 到 模 块 C, 再 从 模
块 C 传 输 到 模 块 B。*_tlast 信 号 拉 高 代 表 一 次 stream 传 输 中 的 最 后 一 个 数
据 ; S_axis_tready 信 号 表 示 模 块 C 准 备 好 接 收 模 块 A 的 数 据 , 同 时
M_axis_tready 表 示 模 块 B 准 备 好 接 收 模 块 C 的 数 据 。前 后 模 块 均 为 stream
流数据,因此模块 C 内部的所有流水线的运行,均需要模块 B 的
M_axis_tready 信 号 控 制 , 当 ready 信 号 为 低 时 暂 停 向 模 块 B 传 输 数 据 , 并
且 寄 存 所 有 流 水 线 的 数 据 。 如 图 4-13 方 框 所 示 , 为 了 保 证 模 块 功 能 完 善 ,
在 仿 真 时 将 ready 信 号 随 机 拉 低 , 出 现 了 每 级 流 水 时 间 不 相 同 的 情 况 。

图 4 -13 DP 模 块 仿 真 波 形

Fig. 4 -13 DP modul e si m ulat ion wa ve fo r m

图 4-13 中 的 前 八 个 方 框 代 表 了 内 部 的 八 级 流 水 ,每 级 流 水 分 别 执 行 不
54

万方数据
第四章 加速器系统仿真与实现

同 的 功 能 :例 如 输 入 数 据 s_data 为 0𝑥00006B8A;s_data_judge 判 断 该 数 据 是
否为负数,若为负数将其取反加一变为原码,若为正数则保持,该处对数
据 的 正 负 判 断 将 会 随 着 流 水 线 向 下 一 级 传 递 ; s_data_rnd 按 照 正 数 规 则 将
数据四舍五入处理,完成后若为负数再次取反加一,若为正数保持即可;
s_data_cut 将 数 据 直 接 按 位 截 断 为 16bit, 因 为 加 速 器 量 化 精 度 为 16bit;
s_data_cut_reg 将 数 据 寄 存 一 拍 , 为 了 等 待 Leaky ReLU 在 DSP 中 的 计 算 ;
s_data_relu 为 经 过 Leaky ReLU 计 算 的 数 据 ; s_data_output 即 为 最 终 输 出
数 据 ;m_axis_tdata 输 出 到 stream 协 议 。至 此 完 成 8 级 流 水 线 的 数 据 处 理 。
图 4-13 最 后 两 个 方 框 为 Testbench 中 的 数 据 对 比 情 况 ,当 fix 与 m_data
数 据 相 同 时 equ 为 1, 否 则 为 0, 可 以 看 到 所 有 的 数 据 对 比 均 通 过 。

硬件加速器仿真
硬件加速器的仿真过程需要实际的图像数据作为输入。将提前准备好
的图像通过神经网络进行推理,同时将神经网络内部每一层卷积结果以及
权重数据提取到文本文件中,作为硬件加速器仿真对比数据。
通 过 图 4-14 Testbench 将 图 像 输 入 数 据 读 取 到 硬 件 加 速 器 的 DDR 中 保
存 ;每 层 卷 积 运 算 完 成 后 都 将 本 层 数 据 保 存 到 DDR 中 ,与 提 取 的 文 本 文 件
数据进行对比,验证硬件加速器运算过程是否有误。

图 4 -14 Tes tbench 部 分 代 码

Fig. 4 -14 Tes tbench par ti a l cod e

如 图 4-15 所 示 , ddr_res 是 DDR 中 保 存 计 算 后 的 数 据 , veri_res 是 文


本 文 件 中 的 对 比 数 据 ,diff 为 两 者 的 差 值 ,可 以 观 察 所 有 数 据 均 通 过 对 比 ,
前仿真通过。

55

万方数据
广东工业大学硕士专业学位论文

图 4 -15 硬 件 加 速 器 仿 真 结 果

Fig. 4 -15 Ha rd war e acce l er ato r si mul at io n r es ul t s

加速器系统展示
完成硬件加速器的设计,加速器系统设计、应用设计和板级测试后,
可 以 对 系 统 进 行 展 示 。 本 文 中 YOLO-v2-tiny 神 经 网 络 使 用 了 COCO 数 据
集 [ 4 6 ] , 可 以 识 别 80 个 不 同 类 别 , 实 际 展 示 效 果 如 下 图 4-16 所 示 , 可 视 化
组件通过摄像头采集的图像数据显示在显示器上,并通过硬件加速器识别
出 的 物 体 , 将 识 别 出 的 物 体 信 息 通 过 AXI-LITE 传 输 到 OSD, OSD 将 物 体
用白色方框圈出,并在左上角显示物体类别,同时叠加到原图像上进行输
出,就实现了可视化的实时加速器系统应用。

图 4 -16 硬 件 加 速 器 系 统 应 用

Fig. 4 -16 Ha rd war e acce l er ato r s ys te m app lic ati o n

56

万方数据
第四章 加速器系统仿真与实现

实验结果

资源消耗
本 设 计 的 资 源 使 用 量 及 比 例 如 表 4-2 所 示 :
表 4 -2 资 源 使 用 量

Tab le.4 -2 Reso urce s

Reso urce LU T FF B RAM DSP

Avai lab le 218 600 4372 00 545 900

Uti liz a ti on 1 219 80 1204 49 268 .5 395

Uti liz a ti on( %) 55. 8 2 7.55 4 9.27 43 .89

整 个 加 速 器 系 统 LUT 使 用 量 为 121980 个 , 占 片 上 总 资 源 的 55.8%;


内 部 寄 存 器 使 用 量 为 120449 个 ,占 片 上 资 源 27.55%;BRAM 使 用 量 268.5,
占 片 上 资 源 49.27%; DSP 使 用 量 为 395, 占 片 上 资 源 43.89%。 其 中 DSP
主 要 消 耗 在 核 心 计 算 组 件( MAC)与 卷 积 后 处 理( DP)中 ,硬 件 加 速 器 共
有 两 个 MAC, 每 个 MAC 有 14 × 14个 PE, 每 个 PE 内 部 有 一 个 DSP 模 块 ,
DP 模 块 使 用 到 3 个 DSP, 因 此 一 共 消 耗 14 × 14 × 2 + 3 = 395 个 DSP。

性能和功耗分析
本文加速器系统的核心功能为硬件加速器,硬件加速器中使用了两个
核 心 计 算 组 件( MAC), 每 个 MAC 中 包 含 14 × 14个 PE,每 个 PE 内 部 都 具
有 一 个 DSP 模 块 , MAC 通 过 单 时 钟 周 期 的 操 作 数 与 时 钟 频 率 进 行 性 能 评
估 : 一 个 时 钟 周 期 可 执 行 加 法 与 乘 法 两 个 操 作 , 主 频 为 200MHz, 因 此 本
硬 件 加 速 器 的 理 论 性 能 为 : 14 × 14 × 2 × 2 × 200 = 156.8 GOPS。
由 于 DDR 数 据 传 输 带 宽 、 ARM 核 的 影 响 以 及 数 据 传 输 延 迟 等 其 他 不
可控因素的影响,实际性能一定低于理论性能。
DDR 数 据 传 输 带 宽 的 影 响 已 经 进 行 过 分 析 , 当 前 设 计 的 DDR 带 宽 大
于 系 统 需 求 。 本 加 速 器 实 测 性 能 如 下 表 4-3 所 示 。

57

万方数据
广东工业大学硕士专业学位论文

表 4 -3 YO LO - v2 -ti ny 性 能

Tab le. 4 -3 P e rfor ma nce o f YO LO - v2 -ti ny

计 算 量 (1 0^6 ) 系统实际性能
卷积层 实 际 时 间 ( ms)
( 𝟐 × 𝑵 × 𝐊 × 𝐊 × 𝐌 × 𝐑 × 𝐂) (GO PS)

1 14 9. 5 20384 1.7 6 4.54

2 39 8. 7 21024 3.3 1 23.49

3 39 8. 7 21024 3.2 1 26.92

4 39 8. 7 21024 3.5 1 17.78

5 39 8. 7 21024 3.2 1 26.92

6 39 8. 7 21024 3.7 9 6.36

7 15 94 . 88409 6 14 .7 9 7.75

8 15 94 . 88409 6 13 .9 1 15.55

9 7 3. 5 48800 1.1 1 09.69

本设计的性能主要依赖于核心计算组件的性能,实际系统平均性能为
108.78GOPS, 实 际 系 统 平 均 性 能 占 核 心 计 算 组 件 理 论 性 能 的 69.38%。
根 据 VIVADO 的 Report Power 报 告 可 知 ,不 统 计 开 发 板 外 设 的 情 况 下 ,
片 内 SoC 动 态 功 耗 为 4.767W, 总 功 耗 5.034W, 如 图 4-17。

图 4 -17 So C 功 耗 报 告

Fig. 4 -17 So C po wer c onsu mp tio n rep ort

58

万方数据
第四章 加速器系统仿真与实现

加 速 器 系 统 内 部 的 所 有 功 能 受 ARM 核 的 控 制 ,因 此 ARM 核 的 指 令 影
响 加 速 器 系 统 内 部 运 行 调 度 。ARM 核 控 制 开 启 摄 像 头 系 统 ,触 发 数 据 前 处
理模块从视频流主数据路径中采集数据送入硬件加速器运算;硬件加速器
计 算 完 成 后 需 要 经 过 ARM 核 的 软 件 Softmax,之 后 将 物 体 坐 标 与 类 别 通 过
ARM 核 的 AXI-LITE 配 置 到 OSD 模 块 。 如 下 表 4-4 所 示 , 其 中 单 核 ARM
核 12.8FPS, 双 核 ARM 核 可 达 到 20.7FPS。
表 4-4 不 同 平 台 参 数 对 比

Tab le.4-4 Co mp ari so n of par a meter s o f d iffe re nt pla tfor ms

I ntel I7- 8700 G TX1080 Zy nq- ZC70 6 Zy nq- ZC7 06

网络 YO LO -v2 -t in y YO LO -v2 -t i ny YO LO -v2 -t iny YO LO -v2 -t i ny

ARM 核 数 - - ARM 单 核 ARM 双 核

FP S - 26.1 12 .8 20.7

功耗 65W 180W 5.03 4W 5 .034W

基 于 FPGA 平 台 实 现 的 加 速 器 系 统 与 GTX1080 相 比 FPS 略 有 降 低 ;但


功 耗 比 Intel I7-8700 和 GTX1080 相 比 优 势 巨 大 。
为了进一步与其他文献所研究的硬件加速器作比较,拟从两个维度进
行对比:
( 1) 单 位 DSP 性 能 比 : 硬 件 加 速 器 的 性 能 在 带 宽 足 够 大 的 情 况 下 ,
DSP 与 实 际 性 能 应 成 正 相 关 。利 用 实 际 性 能( Perf.)与 DSP 个 数 比 值 作 为
第一个对比参数。
.
D1 = ( 4.1)

( 2) 单 位 功 耗 性 能 比 : 实 际 性 能 ( Perf.) 与 实 现 硬 件 加 速 器 的 FPGA
芯 片 或 带 有 可 编 程 逻 辑 阵 列 的 SoC 芯 片 功 耗 ( Power) 的 比 值 , 作 为 第 二
个对比参数。
.
D2 = ( 4.2)

表 4-5 所 示 为 本 文 硬 件 加 速 器 与 其 他 文 献 的 对 比 情 况 , 本 文 设 计 的 硬
件 加 速 器 虽 然 性 能 不 是 最 优 ,约 为 108.8GOPS,但 是 在 单 位 DSP 性 能 上 达
到 较 高 的 水 平 ,单 位 DSP 性 能 比 约 为 0.2754;从 单 位 功 耗 性 能 方 面 比 较 同
样 具 有 较 大 优 势 , 单 位 功 耗 性 能 比 约 为 21.613。
59

万方数据
广东工业大学硕士专业学位论文

表 4 -5 各 文 献 实 现 对 比

Tab le. 4 -5 Co mpa riso n of va rio us doc ume nt s

文 献 [4 7] 文 献 [4 8] 文 献 [4 9] 文 献 [5 0] 本文

Zynq Zynq Vir tex Zynq


平台 I ntel Arri a10
XC7 Z04 5 XC7 Z04 5 690 t XC7 Z04 5

网络 M ob ileNe t -V2 VGG16 AlexNe t VGG16 YO LO -v2 -t i ny

精度 16 b it 16 bit 16bi t 1 6bi t 16 bit

频率 1 33 M Hz 1 5 0 M Hz 10 0 M Hz 150 M Hz 2 00 M Hz

LUT - 18 2.6 K 14 9 K 350 K 1 21 K

DSP 消 耗 量 12 78 780 784 283 3 395

性 能 ( GOP S ) 17 0 . 6 1 37 100.7 354 1 08.8

功耗 27. 2 W 9.6 3 W 5.90 5 W 26 W 5 .0 34 W

Perf.
0.13 35 0 .1756 0.128 4 0.125 0 0 .2 754
DSP
Perf.
6. 27 2 1 4.226 17.05 3 13.615 21 .613
Power

本章小结
本 章 完 成 了 整 个 加 速 器 系 统 的 仿 真 与 实 现 。4.1 节 将 硬 件 加 速 器 、可 视
化 组 件 和 中 间 组 件 集 成 为 加 速 器 系 统 。4.2 节 将 第 三 章 设 计 的 模 块 和 整 个 硬
件 加 速 器 进 行 仿 真 验 证 。 4.3 节 对 设 计 完 成 的 加 速 器 系 统 进 行 展 示 。 4.4 节
详 细 列 出 整 个 加 速 器 系 统 的 资 源 功 耗 情 况 ,测 试 了 硬 件 加 速 器 的 实 际 性 能 ,
最 终 从 单 位 DSP 性 能 比 与 单 位 功 耗 性 能 比 的 角 度 和 其 他 文 献 成 果 进 行 比 较 ,
本文加速器系统具有较大的优势。

60

万方数据
总结与展望

总 结与 展 望
本文在第一章调研了卷积神经网络与硬件加速器的国内外研究现状。
第二章介绍了神经网络如何从线性模型到非线性模型,最终一步一步
到 卷 积 神 经 网 络 的 历 程 ,探 索 此 过 程 有 助 于 深 度 理 解 神 经 网 络 的 实 现 原 理 。
介 绍 了 本 文 所 采 用 的 YOLO 神 经 网 络 的 算 法 原 理 与 YOLO-v2-tiny 神 经 网
络的基本结构。最后介绍了流水线设计及评估方法。
第三章设计了硬件加速器的数据传输方案、数据使用策略、核心计算
( 1)通 过 实 验 探 索 了 Zynq-ZC706 平 台 上 两 块 DDR
组件与卷积后处理模块。
的带宽并且将其与本设计的带宽进行对比,设计了合理的数据传输方案。
( 2)通 过 数 据 分 块 与 数 据 复 用 的 策 略 减 少 了 片 内 外 数 据 交 换 的 次 数 ,有 效
( 3)设 计 了 具 有 5 层 结 构 的 核 心 计 算 组 件 ,利 用 DSP
减少了数据传输时间。
模块提升了运算效率,进一步解决了卷积步长不同时核心计算组件利用率
低 的 问 题 , 并 将 批 标 准 化 操 作 与 卷 积 操 作 合 并 。( 4) 设 计 了 独 立 的 卷 积 数
据后处理模块,负责卷积后数据的四舍五入、截断、激活函数等处理,并
对卷积神经网络中的激活函数进行量化处理,使其达到较高的精度。
第四章对整个加速器系统进行集成与仿真实现。本文设计的硬件加速
器 使 用 了 395 个 DSP 模 块 ,实 测 平 均 性 能 达 到 108.8GOPS,单 位 DSP 性 能
比 达 到 0.2754GOPS/DSP,单 位 功 耗 性 能 比 达 到 21.613GOPS/W。最 终 实 现
的 应 用 展 示 帧 率 达 到 20.7FPS。
本文所实现的硬件加速器已经取得了较好的性能,在不更换开发平台
的情况下还有三点提升空间:
( 1)Zynq-ZC706 平 台 具 有 900 个 DSP,本 文 加 速 器 系 统 使 用 DSP 模
块 395 个 , 可 以 通 过 增 加 核 心 计 算 组 件 的 方 式 提 升 本 系 统 的 性 能 。
( 2) 本 文 加 速 器 系 统 运 行 的 神 经 网 络 为 16bit 定 点 数 , 可 以 对 神 经 网
络 进 一 步 量 化 实 现 8bit 定 点 数 或 更 低 位 数 。
( 3) 进 一 步 量 化 完 成 后 , 可 以 使 DSP48E1 实 现 SIMD 功 能 , DSP 性
能将翻倍。

61

万方数据
广东工业大学硕士专业学位论文

参考文献
[1] 郑 南 宁 . 人 工 智 能 新 时 代 [J]. 智 能 科 学 与 技 术 学 报 , 2019, 1(1): 1-3.

[2] Fors yth D, Ponce J. Computer vision: A modern approach[M]. Prentice


hall, 2011.
[3] Issa D, Demirci M F, Yazici A. Speech emotion recognition with deep
convolutional neural networks[J]. Biomedical Signal Processing and
Control, 2020, 59: 101894.
[4] Esteva A, Kuprel B, Novoa R A, et al. Dermatologist-level
classification of skin cancer with deep neural networks[J]. nature, 2017,
542(7639): 115-118.
[5] Hecht-Nielsen R. Theory of the backpropagation neural network[M].
Neural networks for perception. Academic Press, 1992: 65-93.
[6] 周 志 华 , 王 珏 . 机 器 学 习 及 其 应 用 2009[M]. 清 华 大 学 出 版 社 , 2009.

[7] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press,


2016.
[8] Gu J, Wang Z, Kuen J, et al. Recent advances in convolutional neural
networks[J]. Pattern Recognition, 2018, 77: 354-377.
[9] Yu W, Sun X, Yang K, et al. Hierarchical semantic image matching
using CNN feature pyramid[J]. Computer Vision and Image
Understanding, 2018, 169: 40-51.
[10] Hubel D H, Wiesel T N. Earl y exploration of the visual cortex[J].
Neuron, 1998, 20(3): 401-412.
[11] Venturelli A N. Conceptual Change in Visual Neuroscience: The
Receptive Field Concept[J]. International Studies in the Philosophy of
Science, 2021, 34(1): 41-57.
[12] LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to
document recognition[J]. Proceedings of the IEEE, 1998, 86(11):
2278-2324.
[13] Deng J , Dong W , Socher R , et al. ImageNet: a Large-Scale

62

万方数据
参考文献

Hierarchical Image Database[C]. 2009 IEEE Computer Society


Conference on Computer Vision and Pattern Recognition (CVPR 2009),
20-25 June 2009, Miami, Florida, USA. IEEE, 2009.
[14] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with
deep convolutional neural networks[J]. Advances in neural information
processing s ystems, 2012, 25: 1097-1105.
[15] Glorot X , Bordes A , Bengio Y . Deep Sparse Rectifier Neural
Networks[C]. Proceedings of the 14th International Conference on
Artificial Intelligence and Statistics (AISTATS). 2011:315-323.
[16] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural
networks b y preventing co-adaptation of feature detectors[J]. arXiv
preprint arXiv:1207.0580, 2012.
[17] Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: a simple way to
prevent neural networks from overfitting[J]. The journal of machine
learning research, 2014, 15(1): 1929-1958.
[18] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified,
real-time object detection[C]. Proceedings of the IEEE conference on
computer vision and pattern recognition. 2016: 779-788.
[19] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C].
Proceedings of the IEEE conference on computer vision and pattern
recognition. 2017: 7263-7271.
[20] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv
preprint arXiv:1804.02767, 2018.
[21] Bochkovski y A, Wang C Y, Liao H Y M. Yolov4: Optimal speed and
accuracy of object detection[J]. arXiv preprint arXiv:2004.10934, 2020.
[22] Szeged y C, Liu W, Jia Y, et al. Going deeper with convolutions[C].
Proceedings of the IEEE conference on computer vision and pattern
recognition. 2015: 1-9.
[23] Szeged y C, Vanhoucke V, Ioffe S, et al. Rethinking the inception
architecture for computer vision[C]. Proceedings of the IEEE

63

万方数据
广东工业大学硕士专业学位论文

conference on computer vision and pattern recognition. 2016:


2818-2826.
[24] Simonyan K, Zisserman A. Very deep convolutional networks for
large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[25] He K, Zhang X, Ren S, et al. Deep residual learning for image
recognition[C]. Proceedings of the IEEE conference on computer vision
and pattern recognition. 2016: 770-778.
[26] Bahrampour S, Ramakrishnan N, Schott L, et al. Comparative study of
deep learning software frameworks[J]. arXiv preprint arXiv:1511.06435,
2015.
[27] Chen T, Li M, Li Y, et al. Mxnet: A flexible and efficient machine
learning library for heterogeneous distributed s ystems[J]. arXiv
preprint arXiv:1512.01274, 2015.
[28] Chen F. Data Transmission Securit y in Computer Network
Communication[C]. Journal of Physics: Conference Series. IOP
Publishing, 2021, 1881(4): 042014.
[29] 施 巍 松 , 张 星 洲 , 王 一 帆 , 等 . 边 缘 计 算 : 现 状 与 展 望 [J]. 计 算 机 研

究 与 发 展 , 2019, 56(1): 69.

[30] Chen T, Du Z, Sun N, et al. Diannao: A small-footprint high-throughput


accelerator for ubiquitous machine-learning[J]. ACM SIGARCH
Computer Architecture News, 2014, 42(1): 269-284.
[31] Jouppi N P, Young C, Patil N, et al. In-datacenter performance anal ysis
of a tensor processing unit[C]. Proceedings of the 44th annual
international s ymposium on computer architecture. 2017: 1-12.
[32] 汪 光 森 , 伍 行 键 , 李 誉 . 基 于 FPGA 的 神 经 网 络 的 硬 件 实 现 [J]. 电

子 技 术 应 用 , 1999, 25(12): 23-25.

[33] Shen Y, Ferdman M, Milder P. Maximizing CNN accelerator efficiency


through resource partitioning[C]. 2017 ACM/IEEE 44th Annual
International S ymposium on Computer Architecture (ISCA). IEEE, 2017:
535-547.
64

万方数据
参考文献

[34] Bibas K, Fogel Y, Feder M. A new look at an old problem: A universal


learning approach to linear regression[C]. 2019 IEEE International
Symposium on Information Theory (IS IT). IEEE, 2019: 2304-2308.
[35] McCulloch W S, Pitts W. A logical calculus of the ideas immanent in
nervous activit y[J]. The bulletin of mathematical bioph ysics, 1943, 5(4):
115-133.
[36] Minsky M, Papert S A. Perceptrons: An introduction to computational
geometry[M]. MIT press, 2017.
[37] 李 望 晨 . BP 神 经 网 络 改 进 及 其 在 手 写 数 字 识 别 中 的 应 用 [D]. 黑 龙 江 :

哈 尔 滨 工 业 大 学 计 算 数 学 , 2006.

[38] 郭 荣 艳 , 胡 雪 惠 . BP 神 经 网 络 在 车 牌 字 符 识 别 中 的 应 用 研 究 [J]. 计

算 机 仿 真 , 2010 (9): 299-301.

[39] Basha S H S, Dubey S R, Pulabaigari V, et al. Impact of full y connected


layers on performance of convolutional neural networks for image
classification[J]. Neurocomputing, 2020, 378: 112-119.
[40] Girshick R. Fast r-cnn[C]. Proceedings of the IEEE international
conference on computer vision. 2015: 1440-1448.
[41] Shetty S. Application of convolutional neural network for image
classification on Pascal VOC challenge 2012 dataset[J]. arXiv preprint
arXiv:1607.03785, 2016.
[42] Tu F, Yin S, Ouyang P, et al. Deep convolutional neural network
architecture with reconfigurable computation patterns[J]. IEEE
Transactions on Very Large Scale Integration (VLSI) Systems, 2017,
25(8): 2220-2233.
[43] Zhang C, Li P, Sun G, et al. Optimizing fpga-based accelerator design
for deep convolutional neural networks[C]. Proceedings of the 2015
ACM/SIGDA international symposium on field-programmable gate
arrays. 2015: 161-170.
[44] Yin S, Ouyang P, Tang S, et al. A high energy efficient reconfigurable
hybrid neural network processor for deep learning applications[J]. IEEE
65

万方数据
广东工业大学硕士专业学位论文

Journal of Solid-State Circuits, 2017, 53(4): 968-982.


[45] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network
training b y reducing internal covariate shift[C]. International
conference on machine learning. PMLR, 2015: 448-456.
[46] Lin T Y, Maire M, Belongie S, et al. Microsoft coco: Common objects in
context[C]. European conference on computer vision. Springer, Cham,
2014: 740-755.
[47] Bai L, Zhao Y, Huang X. A CNN accelerator on FPGA using depthwise
separable convolution[J]. IEEE Transactions on Circuits and Systems II:
Express Briefs, 2018, 65(10): 1415-1419.
[48] Guo K, Sui L, Qiu J, et al. Angel-eye: A complete design flow for
mapping cnn onto embedded fpga[J]. IEEE transactions on
computer-aided design of integrated circuits and s ystems, 2017, 37(1):
35-47.
[49] Hu X, Zeng Y, Li Z, et al. A resources-efficient configurable accelerator
for deep convolutional neural networks[J]. IEEE Access, 2019, 7:
72113-72124.
[50] Zhang C, Sun G, Fang Z, et al. Caffeine: Toward uniformed
representation and acceleration for deep convolutional neural
networks[J]. IEEE Transactions on Computer-Aided Design of
Integrated Circuits and Systems, 2018, 38(11): 2072-2085.
[51] Qiu J, Wang J, Yao S, et al. Going deeper with embedded fpga platform
for convolutional neural network[C]. Proceedings of the 2016
ACM/SIGDA International Symposium on Field-Programmable Gate
Arrays. 2016: 26-35.
[52] Moini S, Alizadeh B, Emad M, et al. A resource-limited hardware
accelerator for convolutional neural networks in embedded vision
applications[J]. IEEE Transactions on Circuits and Systems II: Express
Briefs, 2017, 64(10): 1217-1221.

66

万方数据
攻读学位期间的科研成果

攻 读 学 位 期 间的 科 研 成 果
专利和软著:
[1] 熊 晓 明 、 毕 顺 翔 、 黄 泽 武 . 一 种 指 纹 电 子 锁 的 加 密 、解 密 认 证 方 法
和 指 纹 电 子 锁 :中 国 ,CN202010565102.3,2021-11-16.( 发 明 专 利
第二作者,已授权)
[2] 毕 顺 翔 、 高 倾 健 、 詹 瑞 典 、 郭 靖 、 熊 晓 明 .一 种 数 据 加 密 卡 的 加 密
方 法 及 装 置 :中 国 ,CN202110174434.3,2021-06-03.( 发 明 专 利 第
一作者,实质审查)
[3] 毕 顺 翔 , 基 于 BP 和 Kmeans 方 法 的 识 别 系 统 V1.0 。 登 记 号 :
2021SR0978356, 广 东 工 业 大 学 ( 软 件 著 作 权 -已 授 权 , 第 一 作 者 )
[4] 毕 顺 翔 , 基 于 视 觉 神 经 网 络 的 图 像 识 别 应 用 系 统 V1.0。 登 记 号 :
2021SR0978594, 广 东 工 业 大 学 ( 软 件 著 作 权 -已 授 权 , 第 一 作 者 )

67

万方数据
广东工业大学硕士专业学位论文

学位论文独创性声明
本人郑重声明:所呈交的学位论文是我个人在导师的指导下进行的研究工作及取
得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其
他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均
已在论文中作了明确的说明,并表示了谢意。本人依法享有和承担此论文所产生的权
利和责任。


论文作者签名:务次丸]日期:立 刀 y`沙

学位论文版权使用授权声明
本学位论文作者完全了解学校有关保存、使用学位论文的规定:“研究生在广东工
业大学学习和工作期间参与广东工业大学研究项目或承担广东工业大学安排的任务所
完成的发明创造及其他技术成果,除另有协议外,归广东工业大学享有或特有”。同意
授权广东工业大学保留并向国家有关部门或机构送交该论文的印刷本和电子版本,允
许该论文被查阅和借阅。同意授权广东工业大学可以将本学位论文的全部或部分内容
编入有关数据库进行检索,可以采用影印、缩印、扫描或数字化等其他复制手段保存
和汇编本学位论文。保密论文在解密后遵守此规定。

冗力 。上~.乃
论文作者签名:分的爪期:
° 乃
指导教师签名:杠立目期:访九 },

68

万方数据
致谢

致谢
研究生阶段一晃而过,回顾自己走过的路,收获良多,遇到了良师益
友助我成长。在这里由衷的感谢各位指导过我的老师、一起交流成长的同
门师兄弟、我的舍友以及帮助过我的各位好友。
感谢熊晓明老师,来到您的团队非常幸运,当初您的肯定使我得到莫
大的鼓励与信心。进入团队后给予了我充分的发挥空间,研究生期间接触
到许多不同的项目,学习到多方面的知识,扩展了我的知识面,丰富了知
识体系。在学习、生活和职业发展规划上,您总是能引导我进入正确的方
向;同时培养我考虑问题更加全面的思维,这将是我一生的财富。
感谢詹瑞典师兄、胡湘宏师兄和郑欣师姐对我的帮助和指导,为我提
出新的想法和建议,使我在研究生期间快速的融入团队,同时教会我做人
做事的智慧。
感谢刘祥、胡恩、董海涛、邱亚飞、蒲佳铭师兄和庄敏师姐,在佛山
学习时是你们带我进入到了温馨与美好的团队中。
感谢硬件加速组的师兄弟们,与你们的坚实合作才成就了今天的我。
感谢黄宏敏、陈淘生、刘梓豪师兄,是你们的人格魅力与实力促使我向你
们靠近。感谢李学铭、秦亚东、张鸿儒师弟在项目上合作,三人行必有我
师,感谢你们对我的帮助。
感谢一直支持我的家人,让我有机会替你们看看不一样的世界。
感谢薛静文同学对我的陪伴与鼓励,很幸运可以与你一同成长。
感谢与我同届的各位同门,三年时间转瞬即逝,友谊永远长存。
感谢舍友在生活中的包容与帮助。
最后,感谢各位评审老师、答辩组老师、合作过的企业人员以及所有
在读研期间帮助过我的人。

69

万方数据

You might also like