一种面向大模型的数据缓存压缩方法及解压方法

摘要: 本发明属于集成电路设计领域,涉及一种面向大模型的数据缓存压缩方法及解压方法。背景技术:1、现有国外技术采用通用bdi(basedeltaimmediate)残差...
一种面向大模型的数据缓存压缩方法及解压方法

本发明属于集成电路设计领域,涉及一种面向大模型的数据缓存压缩方法及解压方法。

背景技术:

1、现有国外技术采用通用bdi(base delta immediate)残差压缩和zvc(zero valuecompress)零值检测压缩。这两种方法存在如下缺陷:1)需要提供base值,并使用减法计算残差,存储和硬件开销较大;2)特定应用场景,压缩效果一般。

技术实现思路

1、为了克服已有技术的不足,本发明提供了一种面向大模型的数据缓存压缩方法及解压方法,分析大模型数据缓存数据结构特点,总结可被利用的规律;硬件更友好xor的残差计算,采用改进cacheline长度zvc算法,固定压缩校验子位置,减少硬件开销,提高压缩效率。

2、本发明解决其技术问题所采用的技术方案是:

3、一种面向大模型的数据缓存压缩方法,包括以下步骤:

4、1)写入数据以双字节为单位,并行与首双字节以及用户指定双字节亦或;

5、2)判断数据本身、首双字节亦或和用户指定双字节亦或后零值数量;

6、3)选择零值超过预设阈值字节方式,并对应编码成过零检测(zvc)、亦或(xor)或用户定义(usr),存储在该缓存行对应缓存标签(tag)状态位中;同时在压缩后的数据尾部增加设定位数比特状态位指示零值位置;

7、4)如果三种方式均无大于预设阈值字节零值,则编码成未压缩的原生(raw)状态,存储在该缓存行对应tag状态位中。

8、进一步,所述3)中,zvc压缩流程如下:

9、步骤3.1.1:cache数据写入前,各字节整体或操作,并统计整体或后1的个数,也即统计设定位数字节数据中零值个数;

10、步骤3.1.2:若零值个数小于预设阈值,则不进行压缩,若大于预设阈值进行压缩;

11、步骤3.1.3:将zvc压缩编码标记到tag的type段,若对应tag0无效优先更新到tag0,若tag0/1都有效,根据cache更新算法,踢出后更新对应tag0;

12、步骤3.1.4:计算非零值数据位置,并在sym[63:0]标记;

13、步骤3.1.5:将非零值和sym[63:0]写入步骤3.1.3中tag对应的半cl中;

14、步骤3.1.6:直接压缩写入及tag更新过程完成。

15、再进一步,所述3)中,xor/usr压缩流程如下:

16、步骤3.2.1:cache写入前,各字节亦或首双字节或用户指定偏置双字节,亦或后的各字节整体或操作,并统计整体或后1的个数,也即统计设定位数字节数据中零值个数;

17、步骤3.2.2:若零值个数小于预设阈值,则不进行压缩,若大于预设阈值进行压缩;

18、步骤3.2.3:将xor或usr压缩编码标记到tag的type段,若对应tag0无效优先更新到tag0,若tag0/1都有效,根据cache更新算法,踢出后更新对应tag0;

19、步骤3.2.4:计算非零值数据位置,并在sym[63:0]标记;

20、步骤3.2.5:将非零值和sym[63:0]写入步骤3中tag对应的半cl中;

21、步骤3.2.6:直接压缩写入及tag更新过程完成。

22、一种面向大模型的数据缓存解压方法,包括以下步骤:

23、1)缓存行命中,读取数据和缓存标签;

24、2)根据缓存标准压缩状态标识,判断数据压缩类型;

25、3)若为raw模式,则直接输出;

26、4)若为其zvc、xor或usr,则先进行亦或操作,还原压缩数据;

27、5)根据数据最后设定位数位零值指示,对压缩后数据对应位置补零;

28、恢复出设定位数字节完整缓存行,并输出。

29、进一步,所述4)中, zvc解压缩流程如下:

30、步骤4.1.1:cache命中后,读取各路tag的type及valid状态位,type[1:0]=raw为直接压缩cl数据;

31、步骤4.1.2:读取步骤1中tag对应半cl数据,最低64位为sym[63:0];

32、步骤4.1.3:根据sym[63:0]指示,将半cl对应的零值位置补零,还原成设定位数字节全cl;

33、步骤4.1.4:输出设定位数字节cl,完成cache命中对应数据输出。

34、再进一步,所述4)中,xor/usr解压缩流程如下:

35、步骤4.2.1:cache命中后,读取各路tag的type及valid状态位,type[1:0]=xor/usr为亦或压缩半cl数据;

36、步骤4.2.2:读取步骤1中tag对应半cl数据,最低预设阈值(如64)位为sym[63:0];

37、步骤4.2.3:根据步骤1中type[1:0]将半cl数据高设定位数字节(如24)进行对应亦或操作还原数据;

38、步骤4.2.4:根据sym[63:0]指示,将半cl对应的零值位置补首双字节或用户指定双字节,还原成设定位数字节全cl;

39、步骤4.2.5:输出设定位数字节cl,完成cache命中对应数据输出。

40、本发明的技术构思为:统计和分析发现大模型权重和中间数据存在统计学规律,这些数据按照设定位数字节标准缓存行分块,用首双字节或用户指定字节值与后续设定位数字节进行亦或操作后,该缓存行内出现大量零值,再使用过零检查方法进行压缩,将原设定位数字节全cl无损压缩成设定位数字节一半的cl,减少数据缓存占用,或相同缓存容量下缓存双倍cl,提高缓存命中率。该方法仅在传统缓存写入前增加亦或电路编码电路,并在缓存标签(tag)中标识压缩方式,同时在缓存读取后增加缓存标签压缩状态判断和对应解码电路,cache命中、替换和维护等关键操作与经典cache完全相同,兼容极好。写入和读取个引入1个周期额外延时。

41、本发明的有益效果主要表现在:

42、1)算法对硬件电路友好,只需要亦或操作,无复杂的加减偏置计算,硬件面积开销较小,该部分面积相对于l2或l3缓存总面积可忽略不计,新增tag标识段占总比他位的4.29%;

43、2)算法不修改传统缓存架构,仅在缓存写入和读取处增加相对独立的压缩和解压电路,实用性强,且仅引入写入和读取各1个周期的延时,相对于典型l2的8周期写入或读取延时,增加12.5%的延时开销,相对于典型l3的16周期写入或读取延时仅增加6.25%的延时;

44、3)算法在稀疏权重压缩时达到最佳的50%压缩效率,在全随机权重时达到最差0%压缩效率,不会出现负值压缩率情况;实测常规稀疏化后fp16、fp8和int8等大模型各层权重压缩在10%到30%之间。

1.一种面向大模型的数据缓存压缩方法,其特征在于,包括以下步骤:

2.如权利要求1所述的一种面向大模型的数据缓存压缩方法,其特征在于,所述3)中,zvc压缩流程如下:

3.如权利要求1所述的一种面向大模型的数据缓存压缩方法,其特征在于,所述3)中,xor/usr压缩流程如下:

4.一种面向大模型的数据缓存解压方法,其特征在于,包括以下步骤:

5.如权利要求4所述的一种面向大模型的数据缓存解压方法,其特征在于,所述4)中,zvc解压缩流程如下:

6.如权利要求4所述的一种面向大模型的数据缓存解压方法,其特征在于,所述4)中,xor/usr解压缩流程如下: