Project Review-4 本科毕业设计

该项目是我的本科毕业设计,主要设计了一种卷积神经网络(用于手写数字识别)推理的硬件加速器,使用 16 位定点数对网络参数进行量化,实验基于ZYNQ(XC7Z010)硬件平台,完成了加速器的实现与测试,最终使用 MNIST 测试集的准确率为 98.42%,与Tensorflow 32 位浮点数计算结果仅相差 0.05%;与CPU(i5-6200U)推理速度相比,单张图片推理加速比达到了84.8倍,10000 张图片推理加速比达到了43.6倍。

项目回顾

项目大纲

首先是整个项目的总体回顾,整体工作的内容大纲如下:

实验平台搭建

最终的实验平台是基于以下设计方案搭建,主要包括主要围绕 PC 与 ZYNQ、ARM 与 FPGA 这两组设备的通信展开,信号传输包括数据流和控制流。其中,PC 与 ZYNQ 之间的数据采用基于 UDP 协议的网口进行传输,而 ARM 与 ZYNQ 之间的数据采用片内的 AXI 总线和接口传输。
图1:测试平台的架构设计
图2:加速器SoC框图
图3:实际测试平台的搭建

加速器的实验测试

功能测试

加速器的功能测试是基于图3搭建的软硬件协同工作平台,实验中使用 10000 张测试集图片进行测试,最终识别正确的图片为 9842 张,即测试集的识别准确率为 98.42%,而 Tensorflow 32 位浮点数计算的识别准确率为 98.47%,两者仅相差 0.05%。其 PC 终端显示的结果如图4所示:
图4:MNIST准确率测试结果

Tensorflow准确率 加速器准确率 准确率误差
98.47% 98.42% 0.05%

性能测试

实验测试内容包括单张图片计算时间测试和10000张图片计算时间测试,并与笔记本CPU(i5-6200U)计算时间进行了对比。最终计算性能对比如下:

测试案例 CPU CNN加速器 加速比
单张图片/${\mu}s$ 3985 47 84.8
10000张图片/$ms$ 21455 497 43.2

硬件资源消耗方面,该加速器的资源消耗情况如下表所示。其中 DSP 和LUT 资源消耗最多,DSP 资源利用率达到了 100%,这是因为在卷积计算单元中需要消耗较多的硬件乘法器,而加法树中的加法器硬件都是由LUT实现的。

Resource Utilization Available Utilization / %
LUT 13619 17600 77.38
LUTRAM 678 6000 11.3
FF 12594 35200 35.78
BRAM 29 60 48.33
DSP 80 80 100

功耗方面,利用 Vivado 功耗估计器(XPE) 进行功耗的评估,最终得到加速器的总功耗为 1.991W。各部分的功耗分布如图5所示。其中,动态功耗包括时钟、信号、逻辑、片上存储、DSP 和 PS 端等资源消耗的功率,共计 1.863W,占整个加速器功耗的94%;静态功耗表示正常工作时晶体管漏电流消耗的功率,主要由芯片的设计本身决定,共计 0.129W,占整个加速器功耗的6%。加速器的功耗为总功耗减去PS侧的功耗,故实际加速器的功耗为0.458W。

图5:加速器功耗分布情况

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×