The invention discloses a multi parallel acceleration method of CNN full connection layer operation. By using the sparsity feature of convolution neural network operation result, the value of convolution neural network convolution layer processing result can be read in advance, which greatly reduces the reading operation of full connection layer parameters, effectively saves energy consumption and improves the system energy efficiency ratio; the hardware resources of FPGA and other programmable logic devices can be reused With strong expansibility and other features, it can effectively save processing time and improve processing efficiency by building a parallel pipeline multiplication accumulation architecture; by comprehensively analyzing the factors such as target type data, target feature differences and error tolerance in the application process, it can reasonably set the processing data format, effectively improve the access efficiency of data and parameters while ensuring the processing accuracy, and achieve full connectivity The purpose of multi layer parallel acceleration.
【技术实现步骤摘要】
一种CNN全连接层运算的多并行加速方法
本专利技术属于计算机体系结构
,具体涉及一种CNN全连接层运算的多并行加速方法。
技术介绍
卷积神经网络(CNN)作为深度学习的重要代表,在目标分类、识别、视频分析以及自然语言处理等方面应用越来越广泛。CNN主要由卷积层、池化层、激活函数以及全连接层组成。CNN全连接层运算由于参数数据量大,精度要求高,对外部存储速度要求高等特点,一直是制约CNN加速的瓶颈。如当前典型的分类网络VGG-16全连接层参数个数就达138M。目前CNN全连接层运算的方法主要优化方式是参数压缩、并行运算等。其中,并行运算主要以下三种方式,第一种是采用GPU多线程计算实现加速;第二种是采用FPGA等可编程逻辑电路用硬件资源扩展换取速度的方式实现加速;第三种采用深度学习专用处理器或ASIC实现加速。西安交通大学CN201710331078.5公开了一种参数化可扩展的神经网络全连接层互联结构,包括若干层全连接层,每层全连接层例化了若干个基本单元;一个基本单元连接一个路由器,同一全连接层中的基本单元经过路由器相连,形成全连接环;全连接环的路由器上下相连形成一种参数化可扩展的神经网络全连接层多层互连结构,支持双向的数据传递(前向推理,反向学习)。采用可配置的全连接基本单元作为全连接层硬件实现的基础,用户可以根据实际使用的神经网络的需求通过设置参数控制生成多个基本单元并互连的方式完成其网络中全连接层的设计实现和并行加速;该专利技术的设计考虑了数据流水线,缩短了系统运行时钟周期,灵活配置全连接层
【技术保护点】
1.一种CNN全连接层运算的多并行加速方法,其特征在于,包括如下步骤:/n步骤1、根据目标类型种类及特征选取运算数据格式:/n步骤2、根据全连接层参数数据数量和数据格式位宽确定所需的存储资源,由存储资源和计算硬件资源确定运算并行度k;/n步骤3、将全连接层权重参数数据格式转换为步骤1确定的数据格式;/n假设格式转换后的权重参数数据长度为N,卷积层的数据长度为L;/n从权重参数数据的第一个数据点开始,共抽取长度为L的数据点,得到第一份数据;开始,再抽取长度为L的数据点,得到第二份数据;/n以此类推,直到得到第k份数据;/n再将每份数据的同一位置的数据顺序取出拼接成一组数据,最后得到ceil(N/L/k)组数据,并将其存储至存储器中;其中,ceil函数表示向上取整;/n步骤4、将运算数据输入到CNN全连接层进行运算,其中,每次得到的卷积层运算结果与存储的一组权重参数数据进行乘累加计算,乘累加一次则计数一次;其中,在乘累加计算之前,先对卷积层运算结果进行判定:如果卷积层运算结果为0,不读取该卷积结果对应的权重参数数据,即不进行乘累加计算,但乘法计算计数累计一次;如果卷积层运算结果不为0,读取 ...
【技术特征摘要】
1.一种CNN全连接层运算的多并行加速方法,其特征在于,包括如下步骤:
步骤1、根据目标类型种类及特征选取运算数据格式:
步骤2、根据全连接层参数数据数量和数据格式位宽确定所需的存储资源,由存储资源和计算硬件资源确定运算并行度k;
步骤3、将全连接层权重参数数据格式转换为步骤1确定的数据格式;
假设格式转换后的权重参数数据长度为N,卷积层的数据长度为L;
从权重参数数据的第一个数据点开始,共抽取长度为L的数据点,得到第一份数据;开始,再抽取长度为L的数据点,得到第二份数据;
以此类推,直到得到第k份数据;
再将每份数据的同一位置的数据顺序取出拼接成一组数据,最后得到ceil(N/L/k)组数据,并将其存储至存储器中;其中,ceil函数表示向上取整;
步骤4、将运算数据输入到CNN全连接层进行运算,其中,每次得到的卷积层运算结果与存储的一组权重参数数据进行乘累加计算,乘累加一次则计数一次;其中,在乘累加计算之前,先对卷积层运算结果进行判定:如果卷积层运算结果为0,不读取该卷积结果对应的权重参数数据,即不进行乘累加计算,但乘法计算计数累计一次;如果卷积层运算结果不为0,读取计数值指向的权重参数数据的列数,卷积层运算结果与该组权重参数数据同时进行乘累加计算并进行累积一次计数,得到当前的k个乘累加计算结果,当乘累加计算计数次数达到L时,则表示此组k个全连接层计算完成,开始下一组全连接层计算,直到完成所有ceil(N/L/k)组数据的乘累加计算;完成全连接层运算后,将运算结果按制定好...
【专利技术属性】
技术研发人员:李宗凌,汪路元,禹霁阳,程博文,李珂,蒋帅,庞亚龙,郝梁,牛跃华,刘伟伟,
申请(专利权)人:北京空间飞行器总体设计部,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。