System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于FPGA的CNN加速系统技术方案_技高网

一种基于FPGA的CNN加速系统技术方案

技术编号:41237114 阅读:4 留言:0更新日期:2024-05-09 23:50
本发明专利技术提供了一种基于FPGA的CNN加速系统,包括:主处理器、外部存储器、片上缓存、存储器控制单元和基于FPGA构建的CNN模块,主处理器分别与片上缓存、存储器控制单元和CNN模块连接,以用于处理CNN模块的输入、输出并管理CNN模块的运行;外部存储器与存储器控制单元连接,以用于存储CNN模块的输入数据、CNN模块计算过程的中间数据以及CNN模块的最终计算结果;片上缓存用于CNN网络的输入、输出和权重的缓存,以及卷积计算中间结果和定点处理模块输入数据的缓存;存储器控制单元与CNN模块连接,以用于管理CNN模块的运行,实现各子模块对外部存储器访问的仲裁,并完成接口协议转换。本发明专利技术的技术方案能够解决现有技术无法满足卷积神经网络加速需求的技术问题。

【技术实现步骤摘要】

本专利技术涉及人工智能,尤其涉及一种基于fpga的cnn加速系统。


技术介绍

1、卷积神经网络(convolutionalneural networks,cnn)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的重要部分之一。卷积神经网络具有一定的表征学习能力,能够通过增加模型的深度来提高其提取图像特征的能力。近年来,卷积神经网络在图像分析、自动驾驶、自然语言处理和语音识别等领域取得了较大的成果,已成为各界研究的热点。最初,卷积神经网络的推理阶段在软件上实现,随着网络的深度增加,推理所需要的时间成倍增加,因为传统的冯诺依曼结构并不能充分的发挥神经网络并行处理的优势,这样也导致深度学习算法无法在一些便携式硬件平台上应用。

2、cnn模型中卷积层和全连接层包含大量卷积操作,导致网络规模、参数量和计算量大幅增加。gpu出色的浮点计算性能提高了卷积和分类的性能,同时又达到所需的精度。cnn需要很高的内在并行度、大量的浮点计算能力以及矩阵运算,而gpu可以提供这些能力,并在相同的精度下,相对传统cpu的方式,拥有更快的处理速度、更少的服务器投入和更低的功耗。虽然gpu具有多个流处理单元可以进行并行运算,但软件串行执行的特点限制了gpu在加速cnn时的并行度部署,而且gpu平台时存在并行计算性能差和不适用于移动设备环境的问题,需要对卷积参数做量化处理并结合硬件进行加速设计。


技术实现思路

1、本专利技术旨在至少解决现有技术中存在的技术问题之一。

2、本专利技术提供了一种基于fpga的cnn加速系统,该基于fpga的cnn加速系统包括:主处理器、外部存储器、片上缓存、存储器控制单元和基于fpga构建的cnn模块,主处理器分别与片上缓存、存储器控制单元和cnn模块连接,以用于处理cnn模块的输入、输出并管理cnn模块的运行;外部存储器与存储器控制单元连接,以用于存储cnn模块的输入数据、cnn模块计算过程的中间数据以及cnn模块的最终计算结果;片上缓存用于cnn网络的输入、输出和权重的缓存,以及卷积计算中间结果和定点处理模块输入数据的缓存;存储器控制单元与cnn模块连接,以用于管理cnn模块的运行,实现各子模块对外部存储器访问的仲裁,并完成接口协议转换。

3、进一步地,外部存储器和片上缓存均包括a区和b区,外部存储器、主处理器和cnn模块之间的数据传输采用乒乓机制。

4、进一步地,存储器控制单元包括spi控制器,spi控制器分为读和写两个部分,分别用于实现外部存储器的读取和写入。

5、进一步地,cnn模块包括卷积子模块、激活子模块、池化子模块和全连接子模块。

6、进一步地,卷积子模块包括mac模块和量化处理模块,mac模块由乘加阵列构成,用于将卷积核与对应输入特征映射的部分乘加结果与其对应通道的部分乘加结果累加;量化处理模块用于量化运算,包括移位、加偏置、舍入和截断处理。

7、进一步地,激活子模块用于激活函数的运算,实现cnn中的激活层。

8、进一步地,池化子模块用于实现cnn中的池化层,包括实现最大值池化、最小值池化以及平均值池化。

9、进一步地,全连接子模块用于实现cnn中的全连接层。

10、进一步地,cnn模块各子模块的配置方式配置为单独配置或流水线模式配置。

11、进一步地,cnn加速系统还包括外部协处理器,外部协处理器与cnn模块连接,用于进行寄存器的配置和中断的响应。

12、应用本专利技术的技术方案,提供了一种基于fpga的cnn加速系统,该cnn加速系统基于fpga硬件可编程的特性,结合主处理器、外部存储器、片上缓存和存储器控制单元,更好地匹配了cnn大量并行运算的特点,在计算结构上做到完全的并行化,实现了cnn的加速计算。与现有技术相比,本专利技术的技术方案能够解决现有技术无法满足卷积神经网络加速需求的技术问题。

本文档来自技高网...

【技术保护点】

1.一种基于FPGA的CNN加速系统,其特征在于,所述基于FPGA的CNN加速系统包括:主处理器、外部存储器、片上缓存、存储器控制单元和基于FPGA构建的CNN模块,

2.根据权利要求1所述的基于FPGA的CNN加速系统,其特征在于,所述外部存储器和所述片上缓存均包括A区和B区,所述外部存储器、所述主处理器和所述CNN模块之间的数据传输采用乒乓机制。

3.根据权利要求1所述的基于FPGA的CNN加速系统,其特征在于,所述存储器控制单元包括SPI控制器,所述SPI控制器分为读和写两个部分,分别用于实现外部存储器的读取和写入。

4.根据权利要求1所述的基于FPGA的CNN加速系统,其特征在于,所述CNN模块包括卷积子模块、激活子模块、池化子模块和全连接子模块。

5.根据权利要求4所述的基于FPGA的CNN加速系统,其特征在于,所述卷积子模块包括MAC模块和量化处理模块,所述MAC模块由乘加阵列构成,用于将卷积核与对应输入特征映射的部分乘加结果与其对应通道的部分乘加结果累加;所述量化处理模块用于量化运算,包括移位、加偏置、舍入和截断处理。

6.根据权利要求4所述的基于FPGA的CNN加速系统,其特征在于,所述激活子模块用于激活函数的运算,实现CNN中的激活层。

7.根据权利要求4所述的基于FPGA的CNN加速系统,其特征在于,所述池化子模块用于实现CNN中的池化层,包括实现最大值池化、最小值池化以及平均值池化。

8.根据权利要求4所述的基于FPGA的CNN加速系统,其特征在于,所述全连接子模块用于实现CNN中的全连接层。

9.根据权利要求4至8中任一项所述的基于FPGA的CNN加速系统,其特征在于,所述CNN模块各子模块的配置方式配置为单独配置或流水线模式配置。

10.根据权利要求1至9中任一项所述的基于FPGA的CNN加速系统,其特征在于,所述CNN加速系统还包括外部协处理器,外部协处理器与CNN模块连接,用于进行寄存器的配置和中断的响应。

...

【技术特征摘要】

1.一种基于fpga的cnn加速系统,其特征在于,所述基于fpga的cnn加速系统包括:主处理器、外部存储器、片上缓存、存储器控制单元和基于fpga构建的cnn模块,

2.根据权利要求1所述的基于fpga的cnn加速系统,其特征在于,所述外部存储器和所述片上缓存均包括a区和b区,所述外部存储器、所述主处理器和所述cnn模块之间的数据传输采用乒乓机制。

3.根据权利要求1所述的基于fpga的cnn加速系统,其特征在于,所述存储器控制单元包括spi控制器,所述spi控制器分为读和写两个部分,分别用于实现外部存储器的读取和写入。

4.根据权利要求1所述的基于fpga的cnn加速系统,其特征在于,所述cnn模块包括卷积子模块、激活子模块、池化子模块和全连接子模块。

5.根据权利要求4所述的基于fpga的cnn加速系统,其特征在于,所述卷积子模块包括mac模块和量化处理模块,所述mac模块由乘加阵列构成,用于将卷积核与对应输入特征映射的...

【专利技术属性】
技术研发人员:周文涛刘路王奕新
申请(专利权)人:北京自动化控制设备研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1