The invention discloses a binary neural network acceleration system based on FPGA, which uses the convolution kernel parameter acquisition module, binary convolution neural network structure and cache module formed by FPGA. The cache module is the on-chip memory of FPGA. Each module obtains the input characteristic diagram of the image to be processed, obtains the convolution calculation logic rules and conducts binary convolution calculation according to the Convolution calculation logic rules traverse the convolution calculation of multiple threads to get the output characteristic graph data of the image to be processed. Through the overall architecture, the calculation amount of each layer in the binary neural network is unloaded to the on-chip memory without relying on the interaction between the off-chip memory and on-chip memory, thus reducing the communication cost between the memories, greatly improving the calculation efficiency and improving the waiting for inspection Measure the detection speed of the image.
【技术实现步骤摘要】
一种基于FPGA的二值神经网络加速方法及系统
本专利技术属于图像处理领域,具体涉及一种基于FPGA的二值神经网络加速方法及系统。
技术介绍
人工智能技术的重大进步已经开始惠及人类生活的方方面面。从家居的真空机器人到工厂里的整套智能生产设备,世界上的许多任务都已经达到高度自动化。而深度学习在这场伟大的技术革命中发挥着举足轻重的作用,其在人脸识别、对象检测、图像处理、等领域有着广泛的应用。其中主要采用的算法就是卷积神经网络,这种性能较优的深度学习算法已经在大量的PC端、手机移动端和嵌入式专用加速器中进行了部署,用来实现多种智能计算任务,并取得了较好的加速效果。卷积神经网络(CNN,ConvolutionalNeuralNetwork)作为深度学习发展最重要的分支之一,它的发展是最为成熟的,并广泛应用于各种图形图像视频处理的任务中。卷积神经网络发展如此迅速,除训练数据规模增长和计算能力提升外,还得益于各种卷积神经网络框架。现有的卷积神经网络应用大多是部署在服务器或桌面机平台上,而移动端才是应用最广泛、用户量最多的应用平台,将卷积神经网络应用移动化才能最大限度推动深度学习应用的发展。然而所有这样的移动端和嵌入式计算设备都只能提供有限的计算能力,以及容量并不算大的片上存储。随着卷积神经网络的模型结构越来越复杂、模型层数越来越深、模型参数量越来越大,使得卷积神经网络在移动端和嵌入式端上的部署变得越来越困难。庞大的计算量全部采用32bit浮点数作为操作数运行在轻量级芯片上,无疑是对计算资源的巨大消耗,同时也很难达到 ...
【技术保护点】
1.一种基于FPGA的二值神经网络加速系统,该系统包括利用FPGA形成的卷积核参数获取模块、二值化卷积神经网络结构和缓存模块,所述缓存模块为FPGA的片上内存,其特征在于,/n所述卷积核参数获取模块用于获取待处理图片的输入特征图,利用卷积神经网络模型在已有的数据集上进行二值化训练,得到卷积计算逻辑规则和多个卷积核参数,所述卷积计算逻辑规则包括多个线程的卷积计算;/n所述缓存模块用于调取所述卷积计算逻辑规则和多个卷积核参数,依据卷积计算逻辑规则将多个卷积核参数存储于FPGA的片上内存,缓存模块还用于缓存卷积基本计算模块的计算结果和待处理图片数据;/n所述二值化卷积神经网络结构用于调取卷积计算逻辑规则生成多个卷积基本计算模块,多个卷积基本计算模块依据卷积计算逻辑规则建立相应的连接关系,一个线程的卷积计算对应多个卷积基本计算模块,多个卷积核参数与多个卷积基本计算模块一一对应;/n所述卷积基本计算模块用于依据卷积计算逻辑规则,读取缓存模块中的当前线程的上一卷积基本计算模块的计算结果、当前滑动窗口内的待处理图像的输入特征图和FPGA的片上内存中的对应卷积核数据,依次进行预设的卷积计算顺序得到当前 ...
【技术特征摘要】
1.一种基于FPGA的二值神经网络加速系统,该系统包括利用FPGA形成的卷积核参数获取模块、二值化卷积神经网络结构和缓存模块,所述缓存模块为FPGA的片上内存,其特征在于,
所述卷积核参数获取模块用于获取待处理图片的输入特征图,利用卷积神经网络模型在已有的数据集上进行二值化训练,得到卷积计算逻辑规则和多个卷积核参数,所述卷积计算逻辑规则包括多个线程的卷积计算;
所述缓存模块用于调取所述卷积计算逻辑规则和多个卷积核参数,依据卷积计算逻辑规则将多个卷积核参数存储于FPGA的片上内存,缓存模块还用于缓存卷积基本计算模块的计算结果和待处理图片数据;
所述二值化卷积神经网络结构用于调取卷积计算逻辑规则生成多个卷积基本计算模块,多个卷积基本计算模块依据卷积计算逻辑规则建立相应的连接关系,一个线程的卷积计算对应多个卷积基本计算模块,多个卷积核参数与多个卷积基本计算模块一一对应;
所述卷积基本计算模块用于依据卷积计算逻辑规则,读取缓存模块中的当前线程的上一卷积基本计算模块的计算结果、当前滑动窗口内的待处理图像的输入特征图和FPGA的片上内存中的对应卷积核数据,依次进行预设的卷积计算顺序得到当前卷积基本计算模块的计算结果,并将当前卷积基本计算模块的计算结果存储于对应的缓存区;所述预设的卷积计算顺序为依次进行卷积、PRelu激活、正则归一化和二值激活计算,或者依次进行卷积、PRelu激活、池化、正则归一化和二值激活计算;
FPGA依据卷积计算逻辑规则遍历多个线程的卷积计算,得到待处理图像的输出特征图数据,以提高待检测图像的检测速度。
2.根据权利要求1所述的一种基于FPGA的二值神经网络加速系统,其特征在于,FPGA通过ARM端配置相应的控制寄存器,通过AXI总线从外部存储器DDR3中加载图像到片上内存的缓冲区;FPGA为卷积基本计算模块分配多个处理引擎,所述处理引擎包括算术运算组件、逻辑运算组件、位运算组件和存储资源。
3.根据权利要求2所述的一种基于FPGA的二值神经网络加速系统,其特征在于,依据预设的卷积计算顺序将卷积计算层分类为卷积层、PRelu激活层、池化层、正则归一化层和二值激活层,分别用于卷积、PRelu激活、池化、正则归一化和二值激活计算,利用位于同一个卷积计算层的多个计算引擎形成一个卷积加速阵列,一个卷积加速阵列利用FPG...
【专利技术属性】
技术研发人员:李开,邹复好,祁迪,
申请(专利权)人:武汉魅瞳科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。