【技术实现步骤摘要】
一种基于FPGA的卷积神经网络加速系统
本专利技术属于神经网络计算
,具体涉及一种基于FPGA的卷积神经网络加速系统。
技术介绍
随着深度学习技术的不断成熟,卷积神经网络被广泛用于计算机视觉、语音识别、自然语言处理等领域,并且在人脸检测、语音识别等实际应用场景中取得了不错的效果。近年来,由于规模不断壮大的可训练数据集和不断创新的神经网络结构,卷积神经网络的准确度和性能都得到了显着提高,但是随着卷积神经网络网络结构变得越来越复杂,在实际应用场景中对高实时性、低成本的要求越来越高,对于运行神经网络的硬件的计算能力和能耗的要求也越来越高。FPGA具有计算资源丰富、灵活性较高和能源效率高等特点,而且与传统数字电路系统相比,具有可编程、高集成度、高速和高可靠性等优点,已不断被尝试用来加速神经网络。OpenCL是基于传统C语言的异构计算语言,可运行在CPU、GPU、PFGA和DSP等加速处理器上,具有较高的语言抽象层次,程序员不必了解硬件电路及底层细节就可以开发出高性能的应用程序,大大减少了编程过程的复杂性。2012年11月,Altera公司正式推出了集FPGA的强大并行体系结构以及OpenCL并行编程模型于一体,用于在FPGA上进行OpenCL开发的软件开发套件(SDK),熟悉C语言的程序员利用该软件开发套件能够很快的适应并掌握在OpenCL高级语言环境下实现高性能、低功耗、高功效的开发FPGA应用的方法。采用AlteraOpenCLSDK在FPGA上加速卷积神经网络的计算,FPGA作为宿主机的外部加速器,能够实现宿主机与外部FPGA加速器的协同工作。专利技术 ...
【技术保护点】
1.一种基于FPGA的卷积神经网络加速系统,其特征在于,包括数据预处理模块、卷积神经网络计算模块、数据后处理模块、数据存储模块和网络模型配置模块;所述数据预处理模块、卷积神经网络计算模块和数据后处理模块基于FPGA实现,数据存储模块基于FPGA片外存储实现,网络模型配置模块基于FPGA的片上存储实现;所述数据预处理模块用于根据当前所处的计算阶段从数据存储模块中读取相应的卷积核参数和输入特征图,并对卷积核参数和输入特征图进行预处理:将4维卷积核参数整理成3维,并对输入特征图利用滑动窗口展开并复制,使得滑动窗口中的局部特征图与卷积核参数一一对应,获得便于直接计算的卷积核参数序列和局部特征图系列;预处理完成后将处理好的卷积核参数和输入特征图发送到卷积神经网络计算模块;所述网络模型配置模块用于对卷积神经网络计算模块进行参数配置;所述卷积神经网络计算模块将卷积神经网络中的卷积层、激活函数层、池化层和全连接层独立设置,通过参数配置来构建多种不同的网络结构,并根据配置参数对接收自数据预处理模块的卷积核参数和输入特征图进行卷积、激化、池化和全连接计算的层间流水处理,处理结果发送到数据后处理模块;所述数 ...
【技术特征摘要】
1.一种基于FPGA的卷积神经网络加速系统,其特征在于,包括数据预处理模块、卷积神经网络计算模块、数据后处理模块、数据存储模块和网络模型配置模块;所述数据预处理模块、卷积神经网络计算模块和数据后处理模块基于FPGA实现,数据存储模块基于FPGA片外存储实现,网络模型配置模块基于FPGA的片上存储实现;所述数据预处理模块用于根据当前所处的计算阶段从数据存储模块中读取相应的卷积核参数和输入特征图,并对卷积核参数和输入特征图进行预处理:将4维卷积核参数整理成3维,并对输入特征图利用滑动窗口展开并复制,使得滑动窗口中的局部特征图与卷积核参数一一对应,获得便于直接计算的卷积核参数序列和局部特征图系列;预处理完成后将处理好的卷积核参数和输入特征图发送到卷积神经网络计算模块;所述网络模型配置模块用于对卷积神经网络计算模块进行参数配置;所述卷积神经网络计算模块将卷积神经网络中的卷积层、激活函数层、池化层和全连接层独立设置,通过参数配置来构建多种不同的网络结构,并根据配置参数对接收自数据预处理模块的卷积核参数和输入特征图进行卷积、激化、池化和全连接计算的层间流水处理,处理结果发送到数据后处理模块;所述数据后处理模块用于将卷积神经网络计算模块的输出数据写入到数据存储模块中;所述数据存储模块用于存储卷积神经网络的模型参数caffemodel、中间特征图计算结果和最终计算结果,该模块通过PCIe接口与外部宿主机进行数据交换。2.如权利要求1所述的卷积神经网络加速系统,其特征在于,所述卷积神经网络计算模块包括卷积计算子模块、激活函数计算子模块、池化计算子模块和全连接计算子模块;卷积神经网络计算模块内部的这些子模块之间根据所述网络模型配置模块预定义的网络模型配置参数来连接;所述卷积计算子模块利用输入的卷积核参数和特征图进行卷积计算,完成后将结果发送到激活函数计算子模块;所述激活函数计算子模块根据网络模型参数配置模块预定义的激活函数配置参数选择激活函数;利用选定的激活函数对特征图进行激活计算,完成后根据参数配置将结果发送到池化计算子模块或者全连接计算子模块中;所述池化计算子模块用于对接收的特征图进行池化计算,并根据网络模型配置模块预定义的配置参数将池化结果发送到全连接计算模块,或直接发送到数据后处理模块;所述全连接计算子模块用于对接收的特征图进行全连接计算,将全连接结果发送到数据后处理模块。3.如权利要求2所述的卷积神经网络加速系统,其特征在于,所述卷积神经网络计算模块由卷积计算子模块、激活函数计算子模块、池化计算子模块、全连接计算子模块根据网络模型配置参数级联而成,这些子模块间使用OpenCLChannel进行数据传输,这些子模块内的计算是并行执行的,这些子模块间的计算是流水进行的。4.如权利要求2或3所述的卷积神经网络加速系统,其特征在于,所述卷积计算子模块包...
【专利技术属性】
技术研发人员:李开,邹复好,孙浩,李全,祁迪,贺坤坤,
申请(专利权)人:武汉魅瞳科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。