AI算法架构的实现装置、稀疏卷积运算方法及相关设备制造方法及图纸

技术编号:37181636 阅读:20 留言:0更新日期:2023-04-20 22:47
本申请提供一种AI算法架构的实现装置、稀疏卷积运算方法及相关设备,装置包括:数据预处理单元,用于根据待运算数据的数据类型将待运算数据按位拆分为对应不同位区间的子数据;权重预处理单元,用于按照数据类型对应的复制数量对权重掩码进行复制,复制后的权重掩码的数量等于单个待运算数据拆分得到的子数据数量;卷积计算单元,包括数据选择器和卷积运算电路;数据选择器用于根据各权重掩码分别从每n个不同待运算数据的同一位区间的子数据中选出m个目标子数据;卷积运算电路用于根据权重数据对各目标子数据进行卷积运算。本申请可以将多套稀疏选择逻辑统一为了1套,可以节约大量高位宽数据选择逻辑开销,并减小面积开销。并减小面积开销。并减小面积开销。

【技术实现步骤摘要】
AI算法架构的实现装置、稀疏卷积运算方法及相关设备


[0001]本申请涉及数据处理
,具体而言,涉及一种AI算法架构的实现装置、稀疏卷积运算方法及相关设备。

技术介绍

[0002]为了降低权重内存开销,降低计算开销和提升推理效率,AI(Artificial Intelligence,人工智能)算法中通过压缩模型(例如模型剪枝)等方法降低weight(权重)中非0参数值的数量(即增加权重中0的数量)。因此AI算法中存在大量的sparsity Convolution(稀疏卷积)运算。根据运算精度的需求,稀疏卷积运算需要支持不同类型的数据,如fp32/tf32/fp16/bf16/int8/int4等。其中稀疏卷积运算普遍采用的压缩算法为sparsity4:2压缩,即每2个weight有4bits(比特)的mask(掩码),每4bits mask指示卷积运算时从4个data(数据)中选择2个有效的data和weight进行卷积运算,使得参与运算的数据减少一半,达到降低计算开销和提升推理效率的目的。
[0003]但是,目前不同的数据类型在进行sparsity4:2数据选择时,每种数据位宽都需要单独的硬件选择逻辑:对于fp32/tf32数据类型每4bits mask对应的数据选择范围4
×
b32为128bits;对于bf16/bf16数据类型每4bits mask对应的数据选择范围4
×
b16为64bits;对于int8/uint8数据类型每4bits mask对应的数据选择范围4
×
b8为32bits;对于int4/uint4数据类型每4bits mask对应的数据选择范围4
×
b4为16bits。这就导致目前需要为不同位宽的数据类型分别配置不同的mux(数据选择器),从而会存在较大的面积开销。

技术实现思路

[0004]本申请实施例的目的在于提供一种AI算法架构的实现装置、稀疏卷积运算方法及相关设备,用以解决相关技术存在着的面积开销和功耗大的问题。
[0005]本申请实施例提供了一种稀疏卷积运算方法,包括:获取待运算数据、权重数据、数据类型以及权重掩码;其中,所述待运算数据为需要进行稀疏处理的数据;按照所述数据类型对应的权重掩码复制数量N,对所述权重掩码进行N次复制;按照所述待运算数据的数据类型,将所述待运算数据按位拆分为对应不同位区间的子数据;其中,复制后的权重掩码的数量等于单个所述待运算数据拆分得到的子数据数量;根据各所述权重掩码分别从每n个不同待运算数据的同一位区间的子数据中,选出m个目标子数据;所述n为大于等于2的常数,所述m为大于等于1的常数,且所述m小于所述n;根据所述权重数据对各所述目标子数据进行卷积运算。
[0006]在上述实现过程中,通过对稀疏数据进行拆分以及按照数据类型对权重掩码进行复制,从而将不同数据类型的稀疏数据选择操作统一为从同一尺寸大小的子数据中选择出所需的目标子数据的稀疏选择操作,避免了需要为不同位宽的数据类型分别配置不同的mux以实现不同数据类型的稀疏选择操作的问题,将多套稀疏选择逻辑统一为了1套,可以节约大量高位宽数据选择逻辑开销,并减小面积开销。
[0007]进一步地,获取所述待运算数据包括:获取待运算的dense(密集)数据;按照预设稀疏方式,对所述dense数据进行稀疏,得到所述待运算数据;获取所述权重掩码包括:按照预设生成方式生成所述权重掩码;其中,所述权重掩码中数值1所在的位置对应所述待运算数据中所述dense数据的位置。
[0008]在上述实现过程中,通过采用统一的稀疏方式和生成方式,可以将dense convolution(非稀疏卷积)运算统一成sparsity convolution运算,从而可以保证后续运算是针对稀疏数据进行的运算,从而给可以在进行AI算法的硬件设计时,无需在后续的每一个卷积计算单元(用于进行卷积运算的硬件单元)中再设计判断是否为稀疏数据的电路,可以简化卷积计算中数据选择单元的设计,节约面积开销,节约对dense数据和sparsity数据(即稀疏数据)的数据选择逻辑开销,提高AI算法的运算效率。
[0009]进一步地,按照预设第一排序方式对待运算数据拆分得到的各所述子数据进行排序;按照预设第二排序方式对各所述权重数据进行排序;其中,在排序后的各所述权重数据与排序后的各所述子数据中相同排序位置处的权重数据和子数据具有正确对应关系。
[0010]在上述实现过程中,通过对拆分得到的子数据进行排序,以及对各权重数据进行排序,使得排序后的各所述权重数据与排序后的各所述子数据中,相同排序位置处的权重数据和子数据具有正确对应关系,从而保证卷积运算的正确性。
[0011]进一步地,所述按照预设第一排序方式对拆分得到的各所述待运算数据的子数据进行排序,包括:将各所述子数据按照位区间由大到小的顺序进行排序,且具有相同位区间的各所述子数据,按照各所述子数据所属的待运算数据之间的排列顺序进行排序。
[0012]在上述实现过程中,通过将相同位区间的各子数据排序在一起,从而可以很方便的从相同位区间的各子数据选出该位区间对应的目标子数据。同时,由于各子数据是按照位区间由大到小的顺序进行排序的,因此选出各目标子数据后,各目标子数据也是按照位区间由大到小的顺序进行排序的,从而可以保证卷积运算的数据准确,从而保证卷积运算的准确性。
[0013]进一步地,在选出所述目标子数据后,所述方法还包括:将选出的各所述目标子数据按位区间重排序为目标数据;所述目标数据为所支持的最大位宽数据类型的数据;根据所述权重数据对各所述目标子数据进行卷积运算,包括:采用各所述目标子数据对应的权重数据对各所述目标数据的各所述目标子数据进行卷积运算。
[0014]在上述实现过程中,通过将选出的各目标子数据按位区间排列成目标类型的目标数据后才进行卷积运算,而目标类型为支持的最大位宽数据类型,这就使得每一次进行卷积运算时,都是针对目标类型的数据进行运算,从而无需为不同数据类型分别配置对应的卷积运算数据选择电路,从而可以节约面积开销,提高AI算法的运算效率。
[0015]进一步地,按照预设第二排序方式对各所述权重数据进行排序,包括:将各所述权重数据按照所对应的目标子数据的排序顺序进行排序。
[0016]在上述实现过程中,可以保证相同排序位置处的权重数据和目标子数据具有正确对应关系,从而保证卷积运算的正确性。同时,考虑到在AI运算过程中,一组权重数据可能会持续被多组待运算数据使用,也即在AI运算过程中,待运算数据的变化频率会高于权重数据的变化频率,因此在上述方式中,通过对权重数据进行排序,就可以减少后续对待运算数据的排序处理开销。
[0017]进一步地,所述权重掩码为4bit的掩码,所述子数据为4bit的数据,所述n为4,所述m为2;根据各所述权重掩码分别从每n个不同待运算数据的同一位区间的子数据中,选出m个目标子数据,包括:将所述每个4bits权重掩码转换本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种AI算法架构的实现装置,其特征在于,包括:数据预处理单元,用于根据待运算数据的数据类型,将所述待运算数据按位拆分为对应不同位区间的子数据;权重预处理单元,用于按照所述数据类型对应的复制数量,对权重掩码进行复制;其中,复制后的权重掩码的数量等于单个所述待运算数据拆分得到的子数据数量;卷积计算单元,包括数据选择器和卷积运算电路;所述数据选择器用于根据各所述权重掩码分别从每n个不同待运算数据的同一位区间的子数据中,选出m个目标子数据;所述n为大于等于2的常数,所述m为大于等于1的常数,且所述m小于所述n;所述卷积运算电路用于根据权重数据对各所述目标子数据进行卷积运算。2.如权利要求10所述的AI算法架构的实现装置,其特征在于,所述AI算法架构的实现装置还包括:存储单元,用于存储待运算的密集dense数据;访存控制单元,用于从所述存储单元获取所述dense数据和所述数据类型;所述数据预处理单元,还用于按照预设稀疏方式,对所述dense数据进行稀疏,得到所述待运算数据;所述权重预处理单元,还用于按照预设生成方式生成所述权重掩码;其中,所述权重掩码中数值1所在的位置对应所述待运算数据中所述dense数据的位置。3.如权利要求1所述的AI算法架构的实现装置,其特征在于,所述数据预处理单元,还用于按照预设第一排序方式对待运算数据拆分得到的各所述子数据进行排序;所述权重预处理单元,还用于按照预设第二排序方式对各所述权重数据进行排序;其中,在排序后的各所述权重数据与排序后的各所述子数据中,相同排序位置处的权重数据和子数据具有正确对应关系。4.如权利要求3所述的AI算法架构的实现装置,其特征在于,所述数据预处理单元具体用于,将各所述子数据按照位区间由大到小的顺序进行排序,且具有相同位区间的各所述子数据,按照各所述子数据所属的待运算数据之间的排列顺序进行排序。5.如权利要求4所述的AI算法架构的实现装置,其特征在于,所述数据选择器输出目标数据;所述目标数据为各所述目标子数据按位区间排列成的数据,所述目标数据为所述AI算法架构的实现装置所支持的最大位宽数据类型的数据。6.如权利要求3所述的AI算法架构的实现装置,其特征在于,所述权重预处理单元具体用于,将各所述权重数据按照所对应的目标子数据的排序顺序进行排序。7.如权利要求1

6任一项所述的AI算法架构的实现装置,其特征在于,所述权重掩码为4bit的掩码,所述子数据为4bit的数据,所述n为4,所述m为2;所述权重预处理单元具体用于,将所述权重掩码转换为一个3bit的第一权重掩码mask_l和一个3bit的第二权重掩码mask_h;其中:mask_l和mask_h中均最多有1个bits的数
值为1;所述数据选择器具体用于根据所述mask_l和mask_h从4个不同待运算数据的同一位区间的子数据中,选出2个目标子数据。8.如权利要求7所述的AI算法架构的实现装置,其特征在于,所述mask_l为:{mask[2]&(mask[1:0]==0),mask[1]&!mask[0],mask[0]};所述mask_h为:{mask[3],mask[2]&!mask[3],mask[1]&(mask[3:2]==0)};其中,mask[3]、mask[2]、mask[1]、mask[0]、mask[1:0]、mask[3:2]分别表征4bit的所述权重掩码的第3位数据、第2位数据、第1位数据、第0位数据、第1位和第0位构成的2bit数据、第3位和第2位数据构成的2bit数据,&表征与运算,&!表征与非运算,==表征判断两端的值是否相等,相等则值为1,不相等则值为0。9.如权利要求7所述的AI算法架构的实现装置,其特征在于,所述数据选择器具体用于:将所述mask_l的第0位数据与第一个子数据进行与运算,将所述mask_l的第1位数据与第二个子数据进行与运算,将所述mask_l的第2位数据与第三个子数据进行与运算,将三次与运算的值进行或运算,得到第一个所述目标子数据;将所述mask_...

【专利技术属性】
技术研发人员:赵芮王震宇李国嵩
申请(专利权)人:杭州登临瀚海科技有限公司
类型:发明
国别省市:

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

1