【技术实现步骤摘要】
基于FPGA的卷积神经网络加速处理系统、方法以及终端
本申请涉及一种人工智能
,特别是涉及一种基于FPGA的卷积神经网络加速处理系统、方法以及终端。
技术介绍
近年来,随着人工智能技术的持续发展和数据量的爆发式增长,以卷积神经网络(CNN)为代表的深度学习技术被广泛运用到视觉分析(目标检测、分类、跟踪)等类人脑认知任务中,并取得了令人瞩目的成果。由于应用场景的复杂度与日俱增,网络模型的结构变得越来越复杂、深度也在不断增加,给通用计算平台的实时处理带来了非常严峻的挑战。针对嵌入式平台苛刻的性能、能效要求,使得卷积神经网络在移动端的部署受到巨大的限制。在这种计算需求下,基于专用集成电路(ASIC)和现场可编程门阵列(FPGA)的硬件加速方法已普遍应用到对卷积神经网络的硬件加速部署中。FPGA由于其具有高并行度、可配置、灵活度高和低功耗等优势,是一个更合适的硬件加速平台。与传统大数据算法相似的是,卷积神经网络兼具计算密集性和访存密集性,而FPGA平台本身计算资源和存储资源都有限,在实际应用中对卷积神经网络的前馈计算实 ...
【技术保护点】
1.一种基于FPGA的卷积神经网络加速处理系统,其特征在于,应用于流水线架构,包括:/n片外储存模块,用于发送片外输入数据,其中,所述片外输入数据包括卷积神经网络的输入特征图数据以及与所述特征图数据相对应的权值数据;/n片换储存器接口,连接所述片外储存模块,用于接收并发送多的片外输入数据以实现片上与片外进行的数据交互;/n片上缓存模块,连接所述片换储存器接口,用于在所述片外输入数据上读取卷积神经网络的输入特征图数据以及与所述输入特征值对应的权值数据;/n卷积核心计算模块,连接所述片上缓存模块,包括:中间值计算单元以及中间值片上缓存单元,所述卷积核心计算模块用于对接收到的所述 ...
【技术特征摘要】
1.一种基于FPGA的卷积神经网络加速处理系统,其特征在于,应用于流水线架构,包括:
片外储存模块,用于发送片外输入数据,其中,所述片外输入数据包括卷积神经网络的输入特征图数据以及与所述特征图数据相对应的权值数据;
片换储存器接口,连接所述片外储存模块,用于接收并发送多的片外输入数据以实现片上与片外进行的数据交互;
片上缓存模块,连接所述片换储存器接口,用于在所述片外输入数据上读取卷积神经网络的输入特征图数据以及与所述输入特征值对应的权值数据;
卷积核心计算模块,连接所述片上缓存模块,包括:中间值计算单元以及中间值片上缓存单元,所述卷积核心计算模块用于对接收到的所述卷积神经网络的输入特征图数据以及与所述输入特征图数据对应的权值数据分别进行卷积运算、非线性激活运算以及池化操作得到输出特征值的中间结果,并将所述中间结果进行缓存。
2.根据权利要求1所述的基于FPGA的卷积神经网络加速处理方法,其特征在于,所述中间值计算单元包括:窗口生成子单元、乘法阵列子单元、加法树子单元、激活子单元以及池化子单元;其中,
所述窗口生成子单元加载接收到的所述输入特征图数据以及与所述输入特征图数据相对应的权值数据;所述乘法阵列子单元与所述加法树子单元分别对加载的特征图数据相对应的权值数据进行乘法与加法计算得到卷积计算结果;所述激活子单元根据所述卷积计算结果进行非线性激活运算得到激活运算值;所述池化子单元根据所述激活运算值进行池化操作得到输出特征值的中间结果。
3.根据权利要求2所述的基于FPGA的卷积神经网络加速处理方法,其特征在于,所述池化子单元包括:
第一比较器,用于将奇数行的奇数列的激活运算值与奇数行的偶数列的激活运算值进行对比得到奇数行较大值;
第二比较器,用于将偶数行的奇数列的激活运算值与偶数行的偶数列的激活运算值进行对比得到偶数行较大值;
Linebuffer缓存器,用于储存所述奇数行较大值和/或偶数行较大值,以得到所述输出特征值的中间结果。
4.根据权利要求1所述的基于FPGA的卷积神经网络加速处理方法,其特征在于,所述中间值片上缓存单元包括:第一缓存子单元和第二缓存子单元;其中,
当所述第一缓存子单元输出所述中间结果,所述第二缓存子单元加载另外的中间结果;
或者,
当所述第二缓存子单元输出所述中间结果,所述第一缓存子单元加载另外的中间结果。
5.根...
【专利技术属性】
技术研发人员:汪辉,夏铭,刘天洋,田犁,黄尊恺,祝永新,封松林,
申请(专利权)人:中国科学院上海高等研究院,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。