咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >面向FPGA加速器的神经网络编译器设计与实现 收藏
面向FPGA加速器的神经网络编译器设计与实现

面向FPGA加速器的神经网络编译器设计与实现

作     者:王阳 

作者单位:北京交通大学 

学位级别:硕士

导师姓名:王东

授予年度:2023年

学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)] 080902[工学-电路与系统] 0809[工学-电子科学与技术(可授工学、理学学位)] 08[工学] 081104[工学-模式识别与智能系统] 0835[工学-软件工程] 0811[工学-控制科学与工程] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:神经网络编译器 内存资源管理 FPGA 

摘      要:随着深度学习算法的普及和应用,越来越多的研究人员开始致力于解决深度学习算法在多种硬件设备上的部署问题,神经网络编译器应运而生,但不同的编译器生成的代码类型不尽相同。因此本文面向FPGA流式结构设计了神经网络编译器,主要针对的硬件处理平台为基于Open CL的FPGA神经网络加速器。其设计目标是将网络模型转换为一个FPGA可处理的目标文件,并将目标文件映射到FPGA的逻辑单元和存储单元中,以实现将深度学习模型映射到底层硬件的需求。但在之前的网络模型转换中,目标文件主要为开发人员手动输入,因此会遇到以下几方面问题:(1)当遇到规模较大、网络结构复杂的模型时难免出现错误。(2)对相同的网络结构使用不同分辨率时,目标文件便需要重写,耗时又耗力。(3)对于网络中不同操作并未进行内存类型分类,因此在初始设置内存大小时均为所需最大内存,会造成内存资源的浪费。(4)为了寻找硬件运行时的最优性能,需要配置不同硬件参数和软件参数,但不同参数在FPGA上编译时间过长,导致开发周期变长。针对上述问题,本文设计了一个神经网络编译器,可自动化编译出适用于FPGA神经网络加速器所需的目标文件,以缩短开发周期。本文的主要工作内容及贡献如下:(1)首先,在分析不同网络结构的重要组成部分及处理方式的基础上,设计了一种网络数据流/内存资源管理算法。该算法能够自动解析不同参数下的神经网络模型和生成加速器适配的数据流文件,并且可以合理地选择并分配内存资源以实现内存资源的重复利用。此外,为了方便开发人员检查错误和非开发人员了解网络,还对网络模型进行了可视化设计,提供了整个网络结构的全局视图。(2)其次,在编译器中嵌入了对加速器的性能评估模型和资源评估模型。通过性能评估模型,对不同深度学习模型的性能进行评估,以了解在资源受限的情况下,网络中哪些层可以被优化。通过资源评估模型,统计不同深度学习模型的内存使用情况,为加速器合理分配内存大小,避免资源浪费。(3)最后,为了增强易用性和可扩展性,将设计的算法和模型进行了封装,使得该编译器解析新出现的网络结构时可以直接进行调用,为非开发人员的使用提供了便利。这些算法的封装还能够方便编译器的维护和更新。完成编译器设计后,对多种不同网络结构的模型进行了结果验证,实验结果表明,该编译器可以实现不同节点在不同组成方式下的正确解析,表明本文神经网络编译器中设计的算法具有较高的准确性,以及解析不同网络结构的通用性,进一步提高了开发效率。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分