CN117993452A - 一种基于深度学习的ai加速器混合量化方法及硬件设计 - Google Patents

一种基于深度学习的ai加速器混合量化方法及硬件设计 Download PDF

Info

Publication number
CN117993452A
CN117993452A CN202410149739.2A CN202410149739A CN117993452A CN 117993452 A CN117993452 A CN 117993452A CN 202410149739 A CN202410149739 A CN 202410149739A CN 117993452 A CN117993452 A CN 117993452A
Authority
CN
China
Prior art keywords
dimensional tensor
weight
quantized
tensor
dimensional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410149739.2A
Other languages
English (en)
Inventor
胡湘宏
符善森
林元妙
李学铭
黄宏敏
熊晓明
蔡述庭
詹瑞典
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202410149739.2A priority Critical patent/CN117993452A/zh
Publication of CN117993452A publication Critical patent/CN117993452A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于深度学习的AI加速器混合量化方法及硬件设计,该方法包括根据经验值、卷积核的尺寸参数以及需要量化的比特数确定初始的基二维张量;基于初始的基二维张量设置阈值二维张量;提取所述原始权重的符号值,并保存在第一三维张量中;基于阈值二维张量和量化的权重值得到第二三维张量。该硬件设计包括卷积计算单元、处理阵列单元、乘累加模块和加法树模块。通过使用本发明能够实现一个网络内不同层参数的混合量化,合理的将影响程度不同的网络参数量化为不同比特,提高轻量化网络的性能和准确率。本发明可广泛应用于芯片技术领域。

Description

一种基于深度学习的AI加速器混合量化方法及硬件设计
技术领域
本发明涉及芯片技术领域,尤其涉及一种基于深度学习的AI加速器混合量化方法及硬件设计。
背景技术
随着深度学习的发展,各种高性能、深层次的卷积神经网络涌现出来,广泛运用在语义分割、图像识别和目标检测等领域,但高性能也带来了高昂的计算和内存成本,而边缘端部署卷积神经网络已经目前深度学习的热门趋势,但是边缘端的嵌入式设备资源受限,对能耗也有很高的要求,且有相应的实时性要求,直接部署大型的卷积神经网络不太现实,需要在保证网络模型准确率的前提下,尽量压缩模型,减少模型的尺寸大小和网络参数的存储空间,将模型轻量化,提高神经网络模型部署到嵌入式设备后的应用效果。
实现模型的轻量化的方法有很多,包括剪枝、量化、低秩分解和知识蒸馏等,其中量化可以通过减少神经网络中权重和激活的维数,将原本使用较多比特表示的参数量化为使用较少比特表示,近年来,随着模型轻量化的发展,多种量化方法也被提出,它们能够与硬件优化相结合,有效减少硬件乘法器资源和加法器资源的消耗。2011年,研究者成功将神经网络中32位浮点数表示的网络参数用8位定点数表示,成功将网络的存储需求减小为原来的四分之一,达到了模型压缩的目标。后来又发展出了二值化量化方法,二值化量化是将权重和激活值量化为1和-1两个值表示,这种方法虽然可以大幅降低存储开销和计算复杂度,但是会带来很大的精度损失,后来又衍生出三值化量化方法,将神经网络参数压缩为-1,0和1三个值表示,相对于二值化网络,三值化量化方法在一些场景具有更高的准确度。
但是这些量化方法都会在不同程度上对网络的准确率造成一定影响,因为一个卷积神经网络不同层的权重参数的重要程度不同,所以把它们量化为同一比特的定点数会造成网络精度和性能的下降,从而影响边缘端部署的实时性和准确度。
发明内容
为了解决上述技术问题,本发明的目的是提供一种基于深度学习的AI加速器混合量化方法及硬件设计,实现一个网络内不同层参数的混合量化,合理的将影响程度不同的网络参数量化为不同比特,提高轻量化网络的性能和准确率。
本发明所采用的第一技术方案是:一种基于深度学习的AI加速器混合量化方法,包括以下步骤:
根据场景任务获取神经网络模型的卷积核参数;
根据经验值、卷积核的尺寸参数以及需要量化的比特数确定初始的基二维张量;
根据需要量化的比特数确定0和1的所有组合可能,得到第一二维张量;
设置量化的阈值,并保存在第二二维张量中;
基于第一二维张量和初始的基二维张量的矩阵乘积,得到第三二维张量;
对第三二维张量进行排序,得到第四二维张量和序号张量;
基于第四二维张量和第二二维张量的矩阵乘法,得到第五二维张量;
对需要被量化的原始权重进行转换,得到第六二维张量;
提取所述原始权重的符号值,并保存在第一三维张量中;
取所述原始权重的绝对值,并结合第五二维张量的所有值在第四二维张量中选择量化的权重,保存到第七二维张量中;
基于所述选择量化的权重值在第一二维张量中找到对应位置的值,得到第二三维张量;
将第一三维张量进行降维,并基于得到的第八二维张量对第七二维张量的权重符号进行修改,得到修正的第七二维张量。
进一步,所述基二维张量表示卷积核所有权重共用的一组基底;所述第一三维张量表示符号位的数据;所述第二三维张量为一个卷积核中每个权重数据独有的线性张量。
进一步,所述取所述原始权重的绝对值,并结合第五二维张量的所有值在第四二维张量中选择量化的权重,保存到第七二维张量中这一步骤,其具体包括:
取所述量化权重的绝对值,从小到大排序后分别与第五二维张量的所有值进行比较,得到比较结果;
基于比较结果在第四二维张量的对应位置选择量化的权重值,并将量化的权重值保存到第七二维张量中。
进一步,所述将第一三维张量进行降维,并基于得到的第八二维张量对第七二维张量的权重符号进行修改,得到修正的第七二维张量这一步骤,其具体包括:
对第一三维张量进行降维,得到第八二维张量;
基于第八二维张量里的符号值对第七二维张量的的权重符号进行修改,得到修正的第七二维张量。
本发明所采用的第二技术方案是:一一种基于深度学习的AI加速器的硬件设计,设计的卷积计算单元包含若干个处理阵列单元,其中:
所述处理阵列单元包含若干个乘累加模块;
所述乘累加模块包含加法树模块;
所述加法树模块用于对输入激活和修正后的向量位进行累加操作;
所述乘累加模块基于加法树模块的输出与基底数据进行乘积操作,并对乘积结果进行累加,输出乘累加的中间值结果;
所述处理阵列单元对乘累加模块输出的中间值结果进行累加,直到一个卷积核和对应区域内部的输入激活的卷积操作完成;
所述卷积计算单元用于同时进行多个卷积操作。
进一步,所述修正后的向量位,其获取方式如下:
对权重数据进行调整,得到计算标志位和向量位;
基于符号位数据对向量位的数据正负性进行调整,得到修正后的向量位。
本发明方法、系统的有益效果是:本发明用权重量化算法将权重参数由浮点数量化成定点数,并且可以根据权重数据的大小,把每个权重数据量化成不同的比特,大大减少了权重数据所需的存储空间;通过把权重数据量化成基二维张量和第二三维张量,针对卷积神经网络每一层层内的所有权重数据进行量化,可以将所有权重数据量化至不同比特,大大减少了权重参数所需存储空间,同时网络的精度的损失很小;通过设计的乘累加模块,提高了硬件加速器计算效率和性能;通过并行处理阵列单元设计的卷积计算单元能够同时进行多个卷积操作,提高了整个卷积计算单元的计算效率。
附图说明
图1是本发明一种基于深度学习的AI加速器混合量化方法的步骤流程图;
图2是本发明一种基于深度学习的AI加速器的硬件设计的权重数据图;
图3是本发明一种基于深度学习的AI加速器的硬件设计的乘累加模块示意图;
图4是本发明一种基于深度学习的AI加速器的硬件设计的乘累加操作示意图;
图5是本发明一种基于深度学习的AI加速器混合量化方法及硬件设计的完整流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
参照图1,本发明提供了一种基于深度学习的AI加速器混合量化方法,该方法包括以下步骤:
本发明具体实施为了将目标检测模型部署在边缘端,选择YOLOv7、EfficientDet、R-CNN作为目标检测模型的框架,通过训练集数据对目标检测模型进行训练,得到训练后的目标检测模型,获取训练后的目标检测模型的卷积核参数及权重参数,接着再对所提取的卷积核参数和权重参数进行量化,权重量化算法的本质是根据量化的比特数将权重数据量化成多个基二维张量Basis和第二三维张量V的内积,其中基二维张量Basis是由多个位宽为16bit的定点数,第二三维张量V是由0和1组成的向量,可以实现卷积神经网络内所有层之间和单个层之内权重参数的任意量化。
首先,根据经验值、卷积核的尺寸参数以及需要量化的比特数确定初始的基二维张量Basis;具体地,如果要将32位浮点数量化成8位定点整数,就要将32位浮点数用K个基向量表示,即:
Basis=[b0,b1,…,bk]
其中,bk表示位宽为16的定点数。
接着根据需要量化的比特数确定0和1的所有组合可能,得到第一二维张量Quan_Mult,其大小为[2bits-1,bits];具体地,如果需要量化的比特数为4bit,那么0和1的所有组合可能共有2bits种。
接着设置量化的阈值,并保存在第二二维张量Threshold中,其大小为[2bits-1,2bits];
具体地,本实施例采用的阈值为0.5,当bits=2时,第二二维张量Threshold具体如下:
接着基于第一二维张量Quan_Mult和初始的基二维张量Basis的矩阵乘积,得到第三二维张量Level,其大小为[out_channels,bits],其中out_channels是卷积神经网络一层的输出激活的通道数,也就是卷积核的个数。
接着对第三二维张量Level进行排序,按照从最小值到最大值进行排序,得到一个有序的第四二维张量Level_New和序号张量Ser;
接着基于第四二维张量Level_New和第二二维张量Threshold进行矩阵乘法,得到第五二维张量Level_Threshold,其大小为[out_channels,2bits],第五二维张量Level_Threshold中的每个值是第四二维张量Level_New两两相邻值的中间值。
然后对需要被量化的原始权重进行转换,得到第六二维张量Init_Weights,其大小为[out_channels,k*k*in_channels],其中k是卷积核的大小,in_channels是卷积核的通道数;
然后提取每个原始权重的符号值,并保存在第一三维张量Weights_Sign中,其大小为[out_channels,k*k*in_channels,bits],保存规则如下:
当第六二维张量Init_Weights的原始权重值为负数时,保存符号值为1;当第六二维张量Init_Weights的原始权重值为正数时,保存的符号值为0。
接着取所述原始权重的绝对值,即第六二维张量Init_Weights的绝对值,得到绝对值Weights,将绝对值Weights按照从最小到最大的顺序排列,同时遍历第五二维张量Level_Threshold的所有值,将绝对值Weights与第五二维张量Level_Threshold的所有值进行比较,当绝对值Weights的值大于第五二维张量Level_Threshold相应位置的值,说明量化的权重大于量化阈值,得到对应量化的权重的值为第四二维张量Level_New两两相邻值的右边的值,即较大的值;当绝对值Weights的值小于第五二维张量Level_Threshold相应位置的值,说明量化的权重小于量化阈值,得到对应量化的权重的值为第四二维张量Level New两两相邻值的左边的值,即较小的值,然后将量化的权重保存到第七二维张量Quan_Weights中,其大小为[out_channels,k*k*in_channels],其具体演化的实例如下:
Level_New=[a,b,c,d],(a<b<c<d)
Weights=[x0,x1,x2,x3,x4]
Quan_Weights=[y0,y1,y2,y3,y4]
yk=yk3,[k=0,1,2,3,4]
其中,a,b,c,d,x0,x1,x2,x3,x4,y0,y1,y2,y3,y4是随机选取的参数。
然后根据第七二维张量Quan_Weights中的量化后的权重所取到的第四二维张量Level_New的值,在第一二维张量Quan_Mult中找到对应位置的值,将其保存到第二三维张量V中,其大小为[out_channels,k*k*in_channels,bits]。
然后将第一三维张量Weights_Sign进行降维,得到第八二维张量Reshape_Weights_Sign,接着比较第八二维张量Reshape_Weights_Sign和第七二维张量Quan_Weights,当第八二维张量Reshape_Weights_Sign对应的值为1时,第七二维张量Quan_Weights对应位置量化权重调整为负数;当第八二维张量Reshape_Weights_Sign对应的值为0时,第七二维张量Quan_Weights对应位置量化权重y保持为正数,得到修正的第七二维张量。
根据以上步骤,将原始的权重量化到了对应的位宽,并且得到了表示量化后权重的两个张量Basis和V以及硬件计算所需要的符号位张量Weights_Sign,将量化后的数据以硬件方式实现,以此实现对应的目标检测功能的同时,量化得到的Basis、V以及符号位张量Weights_Sign可以灵活应用于多种网络结构和特定网络的优化,这种量化方式不会带来过多的精度损失并且大大减少了权重参数存储所需的内存空间,然后根据量化的权重数据格式,设计了AI加速器的乘累加计算模块,可以在硬件上用有效的资源实现高效的卷积计算,提高了在加速器上运行卷积神经网络的性能和效率。通过本发明的量化方法,可以将网络的权重参数量化至1到8任意比特,有效减少模型的尺寸和网络参数的存储空间需求,然后根据量化后的数据格式在硬件上设计乘累加模块,实现高效且低资源消耗的加速器卷积操作。
本发明提供了一种基于深度学习的AI加速器的硬件设计,设计的卷积计算单元包含若干个处理阵列单元,其中:
所述处理阵列单元包含若干个乘累加模块;
所述乘累加模块包含加法树模块;
所述加法树模块用于对输入激活和修正后的向量位进行累加操作;
所述乘累加模块基于加法树模块的输出与基底数据进行乘积操作,并对乘积结果进行累加,输出乘累加的中间值结果;
所述处理阵列单元对乘累加模块输出的中间值结果进行累加,直到一个卷积核和对应区域内部的输入激活的卷积操作完成;
所述卷积计算单元用于同时进行多个卷积操作。
所述修正后的向量位,其获取方式如下:
对权重数据进行调整,得到计算标志位和向量位;
基于符号位数据对向量位的数据正负性进行调整,得到修正后的向量位。
针对权重量化算法量化得到的权重数据格式,设计合理卷积计算单元,完成高效的混合精度的卷积操作,上述量化过程中,经过原始的32位浮点数原始权重经过量化算法量化之后,会得到三个数据,第一个是表示符号位的数据,Weights_Sign,其中1表示对应权重为负数,0表示对应位置权重为正数;第二个是一个卷积核所有权重共用的一组基底Basis,Basis内部包含8个值,每个值的位宽是16比特;第三个是一个卷积核中每个权重数据独有的线性向量V,由0和1组成,每个V中包含8个0或1。
参照图2及图5,首先是对权重数据进行调整,为了更高效的进行卷积计算,硬件是一次性计算8个通道输入激活和权重数据的乘累加操作,首先将8个权重数据所对应的V进行处理,从高位开始统计这8个V是否有全0数据,当8个V的最高位都是0,其余位都至少有一个1,则统计得到这8个V需要被计算7次,将7这个数据存入计算标志位Flag中,然后从将8个V的最低位存入向量位Vector0中,依次类推直到将8个V的第7位存入向量位Vector6中;当8个V的最高位和次高位都是0,其余位都至少有一个1,则统计得到这8个V需要被计算6次,将8这个数据存入计算标志位Flag中,然后从将8个V的最低位存入向量位Vector0中,依次类推直到将8个V的第6位存入向量位Vector6中;依次统计出所有8个通道的权重V的计算标志位Flag和向量位Vector。
接着对调整后的权重数据(计算标志位Flag和向量位Vector)进行预处理,根据计算标志位Flag的大小,确定每个Basis里的数据有几个需要被用到,当计算标志位Flag为4的时候,Basis低4位的数据将被取出用于计算。然后向量位Vector被放在缓存模块中,通过计算标志位Flag的大小,依次传入乘累加模块和8通道的输入激活做累加计算,还要根据8个通道的权重数据对应的符号位Weights_Sign来确定向量位Vector中的数据1是正数还是负数。
参照图3,将8个通道的输入激活和每个向量位Vector的8个数据做与操作,然后将与之后的结果进行累加,得到加法树模块;将加法树输出的结果和Basis的数据一次相乘,并对乘积结果进行累加,最后输出8通道权重和激活乘累加的中间值结果,得到乘累加模块(MAC);然后在乘累加模块内部进行中间值的累加,直到一个卷积核和对应区域内部的输入激活的卷积操作完成,输出一个完整的输出激活结果,得到处理阵列单元(PE)。因此,一个乘累加模块可以根据计算标志位Flag的大小,在不同的时钟周期内完成一次完整的卷积操作并输出结果。
参照图4,为了更高效的计算,设计的卷积计算单元包含16个处理阵列单元(PE),每个处理阵列单元内部有10个乘累加模块(MAC),因此,一个卷积计算单元包含160个乘累加模块MAC,一次可以同时进行多个卷积操作,得到160个输出激活结果。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (6)

1.一种基于深度学习的AI加速器混合量化方法,其特征在于,包括以下步骤:
根据场景任务获取神经网络模型的卷积核参数;
根据经验值、卷积核的尺寸参数以及需要量化的比特数确定初始的基二维张量;
根据需要量化的比特数确定0和1的所有组合可能,得到第一二维张量;
设置量化的阈值,并保存在第二二维张量中;
基于第一二维张量和初始的基二维张量的矩阵乘积,得到第三二维张量;
对第三二维张量进行排序,得到第四二维张量和序号张量;
基于第四二维张量和第二二维张量的矩阵乘法,得到第五二维张量;
对需要被量化的原始权重进行转换,得到第六二维张量;
提取所述原始权重的符号值,并保存在第一三维张量中;
取所述原始权重的绝对值,并结合第五二维张量的所有值在第四二维张量中选择量化的权重,保存到第七二维张量中;
基于所述选择量化的权重值在第一二维张量中找到对应位置的值,得到第二三维张量;
将第一三维张量进行降维,并基于得到的第八二维张量对第七二维张量的权重符号进行修改,得到修正的第七二维张量。
2.根据权利要求1所述一种基于深度学习的AI加速器混合量化方法,其特征在于,所述基二维张量表示卷积核所有权重共用的一组基底;所述第一三维张量表示符号位的数据;
所述第二三维张量为一个卷积核中每个权重数据独有的线性张量。
3.根据权利要求1所述一种基于深度学习的AI加速器混合量化方法,其特征在于,所述取所述原始权重的绝对值,并结合第五二维张量的所有值在第四二维张量中选择量化的权重,保存到第七二维张量中这一步骤,其具体包括:
取所述量化权重的绝对值,从小到大排序后分别与第五二维张量的所有值进行比较,得到比较结果;
基于比较结果在第四二维张量的对应位置选择量化的权重值,并将量化的权重值保存到第七二维张量中。
4.根据权利要求1所述一种基于深度学习的AI加速器混合量化方法,其特征在于,所述将第一三维张量进行降维,并基于得到的第八二维张量对第七二维张量的权重符号进行修改,得到修正的第七二维张量这一步骤,其具体包括:
对第一三维张量进行降维,得到第八二维张量;
基于第八二维张量里的符号值对第七二维张量的的权重符号进行修改,得到修正的第七二维张量。
5.一种基于深度学习的AI加速器的硬件设计,其特征在于,设计的卷积计算单元包含若干个处理阵列单元,其中:
所述处理阵列单元包含若干个乘累加模块;
所述乘累加模块包含加法树模块;
所述加法树模块用于对输入激活和修正后的向量位进行累加操作;
所述乘累加模块基于加法树模块的输出与基底数据进行乘积操作,并对乘积结果进行累加,输出乘累加的中间值结果;
所述处理阵列单元对乘累加模块输出的中间值结果进行累加,直到一个卷积核和对应区域内部的输入激活的卷积操作完成;
所述卷积计算单元用于同时进行多个卷积操作。
6.根据权利要求5所述一种基于深度学习的AI加速器的硬件设计,其特征在于,所述修正后的向量位,其获取方式如下:
对权重数据进行调整,得到计算标志位和向量位;
基于符号位数据对向量位的数据正负性进行调整,得到修正后的向量位。
CN202410149739.2A 2024-02-02 2024-02-02 一种基于深度学习的ai加速器混合量化方法及硬件设计 Pending CN117993452A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410149739.2A CN117993452A (zh) 2024-02-02 2024-02-02 一种基于深度学习的ai加速器混合量化方法及硬件设计

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410149739.2A CN117993452A (zh) 2024-02-02 2024-02-02 一种基于深度学习的ai加速器混合量化方法及硬件设计

Publications (1)

Publication Number Publication Date
CN117993452A true CN117993452A (zh) 2024-05-07

Family

ID=90890206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410149739.2A Pending CN117993452A (zh) 2024-02-02 2024-02-02 一种基于深度学习的ai加速器混合量化方法及硬件设计

Country Status (1)

Country Link
CN (1) CN117993452A (zh)

Similar Documents

Publication Publication Date Title
US20220012593A1 (en) Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization
Wu et al. Easyquant: Post-training quantization via scale optimization
CN108765247B (zh) 图像处理方法、装置、存储介质及设备
CN109543830B (zh) 一种用于卷积神经网络加速器的拆分累加器
CN110880038B (zh) 基于fpga的加速卷积计算的系统、卷积神经网络
CN111062472B (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN107340993B (zh) 运算装置和方法
CN109934331B (zh) 用于执行人工神经网络正向运算的装置和方法
EP3657398A1 (en) Weight quantization method for a neural network and accelerating device therefor
EP3355247A1 (en) A method of operating neural networks, corresponding network, apparatus and computer program product
CN111832719A (zh) 一种定点量化的卷积神经网络加速器计算电路
CN112200300B (zh) 卷积神经网络运算方法及装置
CN110555516B (zh) 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法
EP3637327B1 (en) Computing device and method
CN113033794B (zh) 基于深度可分离卷积的轻量级神经网络硬件加速器
CN113283587B (zh) 一种Winograd卷积运算加速方法及加速模块
Kala et al. UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN106682258B (zh) 一种高层次综合工具中的多操作数加法优化方法及系统
CN115130672B (zh) 一种软硬件协同优化卷积神经网络计算的方法及装置
CN117993452A (zh) 一种基于深度学习的ai加速器混合量化方法及硬件设计
CN113283591B (zh) 基于Winograd算法和近似乘法器的高效卷积实现方法及装置
CN112836793B (zh) 浮点可分离卷积计算加速装置、系统以及图像处理方法
CN114065923A (zh) 一种卷积神经网络的压缩方法、系统及加速装置
CN114154621A (zh) 一种基于fpga的卷积神经网络图像处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination