基于FPGA的卷积神经网络专用异构加速器的研究
发布时间:2023-08-06 12:37
近些年来,深度学习已经成为了一个热门的研究领域,其中卷积神经网络(Convolutional Neural Network,CNN)已经在诸如文字辨认、图片分类、目标检测等很多深度学习的领域上取得了巨大的成功。然而在一个CNN模型的前向推理计算过程中,往往需要百万次甚至上亿次浮点乘累加运算以及浮点参数的存储,使用传统的CPU或者GPU并不能充分挖掘CNN内部并行计算的特性。FPGA具有低功耗、灵活可编程和开发周期短的特点,其内部的逻辑单元能够以较低的功耗完成并行计算的任务,因此FPGA是CNN加速协处理器设计的理想选择。本课题基于Xilinx公司的Zynq系列FPGA,利用其CPU+FPGA的异构SoC开发平台,采用Verilog HDL硬件描述语言研究实现了 CNN专用异构加速协处理器。其中CPU完成软件程序部分的发送图片、轮询、中断、显示分类结果等任务,FPGA完成CNN模型的具体计算任务。本文首先对CNN的历史发展以及CNN加速协处理器的研究现状进行了介绍,然后通过对CNN前向推理的计算过程以及整体结构进行分析,详细探讨了计算过程中存在的并行性,并提出了不同并行性的实现方法及其相...
【文章页数】:86 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
缩略词表
第一章 绪论
1.1 课题研究背景与意义
1.2 国内外研究现状
1.2.1 卷积神经网络的研究现状
1.2.2 CNN加速协处理器的研究现状
1.3 本文的主要工作和组织结构
第二章 卷积神经网络及其并行性分析
2.1 神经元与激活函数
2.1.1 神经元
2.1.2 激活函数
2.2 卷积神经网络
2.2.1 卷积神经网络的整体结构
2.2.2 卷积算法
2.2.3 池化采样算法
2.2.4 全连接层算法
2.2.5 SoftMax分类函数
2.3 卷积神经网络的并行性分析
2.3.1 流水线技术
2.3.2 卷积核内的并行性
2.3.3 滑动窗口间的并行性
2.3.4 输入通道间的并行性
2.3.5 输出通道间的并行性
2.3.6 非线性函数的并行性
2.3.7 全连接神经网络的并行性
2.4 本章小结
第三章 CNN加速协处理器计算电路的设计
3.1 卷积神经网络的预处理
3.1.1 英特尔动态网络裁剪技术
3.1.2 英特尔增量网络量化技术
3.1.3 计算精度分析
3.2 计算电路的整体设计
3.2.1 并行性选择
3.2.2 软硬件划分
3.3 计算模块的设计
3.3.1 定点移位乘法器
3.3.2 乘累加阵列
3.3.3 池化采样计算电路
3.3.4 ReLU计算电路
3.3.5 四舍五入电路
3.4 本章小结
第四章 CNN加速协处理器SoC系统的设计
4.1 Zynq系列SoC简介
4.1.1 处理器系统
4.1.2 可编程逻辑
4.1.3 AXI总线
4.2 SoC系统的设计
4.2.1 SoC系统的整体架构
4.2.2 SoC系统的缓存策略
4.2.3 SoC系统PL部分的设计
4.2.4 SoC系统PS部分的设计
4.3 优化SoC系统的设计
4.3.1 优化SoC系统的整体架构
4.3.2 优化SoC系统的缓存策略
4.3.3 优化SoC系统PL部分的设计
4.3.4 优化SoC系统PS部分的设计
4.4 本章小结
第五章 仿真验证与性能分析
5.1 高级语言建模验证
5.2 异构SOC系统的仿真与验证
5.2.1 SOC系统的仿真与验证
5.2.2 优化SOC系统的仿真与验证
5.3 上板实测与性能分析
5.3.1 资源消耗和性能分析
5.3.2 实验结果对比
5.4 本章小结
第六章 总结与展望
6.1 总结
6.2 展望
参考文献
致谢
学位论文评阅及答辩情况表
本文编号:3839438
【文章页数】:86 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
缩略词表
第一章 绪论
1.1 课题研究背景与意义
1.2 国内外研究现状
1.2.1 卷积神经网络的研究现状
1.2.2 CNN加速协处理器的研究现状
1.3 本文的主要工作和组织结构
第二章 卷积神经网络及其并行性分析
2.1 神经元与激活函数
2.1.1 神经元
2.1.2 激活函数
2.2 卷积神经网络
2.2.1 卷积神经网络的整体结构
2.2.2 卷积算法
2.2.3 池化采样算法
2.2.4 全连接层算法
2.2.5 SoftMax分类函数
2.3 卷积神经网络的并行性分析
2.3.1 流水线技术
2.3.2 卷积核内的并行性
2.3.3 滑动窗口间的并行性
2.3.4 输入通道间的并行性
2.3.5 输出通道间的并行性
2.3.6 非线性函数的并行性
2.3.7 全连接神经网络的并行性
2.4 本章小结
第三章 CNN加速协处理器计算电路的设计
3.1 卷积神经网络的预处理
3.1.1 英特尔动态网络裁剪技术
3.1.2 英特尔增量网络量化技术
3.1.3 计算精度分析
3.2 计算电路的整体设计
3.2.1 并行性选择
3.2.2 软硬件划分
3.3 计算模块的设计
3.3.1 定点移位乘法器
3.3.2 乘累加阵列
3.3.3 池化采样计算电路
3.3.4 ReLU计算电路
3.3.5 四舍五入电路
3.4 本章小结
第四章 CNN加速协处理器SoC系统的设计
4.1 Zynq系列SoC简介
4.1.1 处理器系统
4.1.2 可编程逻辑
4.1.3 AXI总线
4.2 SoC系统的设计
4.2.1 SoC系统的整体架构
4.2.2 SoC系统的缓存策略
4.2.3 SoC系统PL部分的设计
4.2.4 SoC系统PS部分的设计
4.3 优化SoC系统的设计
4.3.1 优化SoC系统的整体架构
4.3.2 优化SoC系统的缓存策略
4.3.3 优化SoC系统PL部分的设计
4.3.4 优化SoC系统PS部分的设计
4.4 本章小结
第五章 仿真验证与性能分析
5.1 高级语言建模验证
5.2 异构SOC系统的仿真与验证
5.2.1 SOC系统的仿真与验证
5.2.2 优化SOC系统的仿真与验证
5.3 上板实测与性能分析
5.3.1 资源消耗和性能分析
5.3.2 实验结果对比
5.4 本章小结
第六章 总结与展望
6.1 总结
6.2 展望
参考文献
致谢
学位论文评阅及答辩情况表
本文编号:3839438
本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/3839438.html