论文部分内容阅读
近几年来,人工智能进入了如火如荼的发展时期。深度学习领域的算法在不断推陈出新的同时,其功能和适用性也在一直扩展并且应用在各种实际场景中,包括计算机视觉、自然语言处理、智能驾驶、智能医疗和智能安防等领域。但是,随着人们对人工智能设备功能和性能上的需求不断增加,传统的GPU、CPU等计算平台无法满足实际应用高能效、小体积和低成本的要求,需要更多的解决方案。本文根据卷积神经网络(Convolutional Neural Network,CNN)计算密度高、数据规模大的特点,研究了“可编程片上系统(System on Programmable Chip,SOPC)”的嵌入式设计方法,充分发挥硬件高性能和软件灵活性两方面的优势,提出了软硬件结合的高能效CNN应用系统实现方案。主要研究内容如下:首先,本文在硬件电路中实现了卷积神经网络中最为关键的几个模块,并针对各模块的运算特点做了相应的优化。对卷积层,利用循环分块和交换、并行化、复用等策略,设计了FPGA片上并行化的计算架构和流水线的计算单元。并利用层次化和乒乓策略,设计了与计算架构相配合的“多维存储映射”缓存方案和“双缓冲缓存”的数据传输方案。对池化层,设计了“并转串”的比较计算结构。对激活层,针对不同的激活函数,分别采用并优化了查找表映射或分段线性拟合的设计方案。其次,本文将可配置的Nios Ⅱ软核嵌入到FPGA中,将CNN计算中的部分环节交由Nios Ⅱ核处理。Nios Ⅱ核中不仅实现了图像的获取和预处理功能,还设计了软件代码以控制系统的计算流程,同时利用丰富的外设接口与外部设备进行通信。除此之外,本文结合DMA控制器、Avalon总线和各种存储结构,设计了片内和片外存储之间高速稳定的数据传输路径。最后,本文在Altera公司的FPGA上实现了软硬件协同工作的CNN嵌入式系统,改进并训练了YOLO目标检测模型,识别精度为96.74%,进而在系统中实现了该网络的CNN部分。在完成系统运行过程中几个关键节点测试的基础上,结合网络的原始C模型验证了整个系统的功能正确性。在性能方面,本系统在Stratix V平台上以180MHz的工作频率可以达到最高峰值吞吐率89.28GOPS。而在Cyclone IV平台上的功耗仅为1.35W,能效最高可以达到44.09GOPS/W。