一种面向大模型的数据缓存压缩方法及解压方法
本发明属于集成电路设计领域,涉及一种面向大模型的数据缓存压缩方法及解压方法。
背景技术:
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解压缩流程如下:
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com