一种面向液体状态机的神经形态处理器片上存储压缩方法技术

技术编号:27937645 阅读:27 留言:0更新日期:2021-04-02 14:18
本发明专利技术公开了一种面向液体状态机的神经形态处理器片上存储压缩方法,首先将神经元的所有入度权值分成相等的组,之后所有非零权值传输到处理器存储器中相应的组里存储,然后使用高位地址生成标签,将一个权值与同组中其它权值区分开,和所有连接信息一并存储,片上存储器被组织为只读组相联缓存,在计算过程中,根据请求权值的索引,生成组号,访问目标组取出组中所有标签并与请求权值的标签进行比较,本发明专利技术通过利用液体状态机的稀疏性来压缩存储,可以降低处理器的功耗,也可以使单个处理器在不增加额外存储的情况具有更多的逻辑神经元以处理更复杂的任务,在不同权值数据宽度下,与无压缩的实现相比,CSSAC最多可使处理器存储减少14%‑55%,功耗减少5%‑46%。

【技术实现步骤摘要】
一种面向液体状态机的神经形态处理器片上存储压缩方法
本专利技术涉及面向液体状态机的神经形态处理器片上存储压缩方法
,具体为一种面向液体状态机的神经形态处理器中神经元之间的连接的权值的片上存储压缩方法。
技术介绍
脉冲神经网络和类脑处理器因其能模拟大脑神经元的行为和高能效的特点而受到广泛关注和迅速发展。作为脉冲神经网络的一种,液体状态机在图像识别和语音识别领域显示出了巨大的潜力。因为使用液体状态机来识别各种新型传感器的输出,例如动态视觉传感器(DVS)和动态音频传感器(DAS),所产生的脉冲序列是很契合的。新兴传感器能够捕捉传感器视野范围内的动态变化并以脉冲序列的形式进行输出,而液体状态机可以直接处理这种脉冲序列。此外,与其它脉冲神经网络相比,液体状态机的训练更简单。液体状态机包含输入层,液体层和读出层,而它的训练只涉及它的读出层,并且读出层一般是单层全连接层的结构。此外,不同的读出层可以共享同一个通用的负责数据预处理的水库层,以完成不同的任务。在像TrueNorth和Loihi这样的类脑处理器中,所有的突触和权值都保留在处理器上存储,以支持不同种类的具有稠密或稀疏连接的脉冲神经网络的部署。然而,如果在类脑处理器上部署的网络是稀疏的液体状态机,则为权值和突触预留的存储是冗余的。它限制了固定面积的单处理器所能支持的液体状态机逻辑神经元的数量,从而影响了液体状态机的处理能力和最佳精度。另外,在像TrueNorth这样的神经态处理器中,用于存储的功耗是计算和通信的几倍。因此,压缩权值和突触的存储可以减少处理器功耗或在一个处理器上增加逻辑神经元的数量而无需增加存储空间。这对于单核类脑处理器处理更复杂的任务和研制下一代多核类脑处理器以模拟更大规模的生物神经网络是至关重要的。因此,亟待一种改进的技术来解决现有技术中所存在的这一问题。
技术实现思路
本专利技术的目的在于提供一种面向液体状态机的神经形态处理器片上存储压缩方法,它能够开发和利用液体状态机的稀疏性和鲁棒性,其特点是不会引入太多的元数据开销从而确保压缩效果,也不会降低液体状态机的精度或类脑处理器的性能,本专利技术还实现了一个使用CSSAC压缩方法组织其存储结构的神经元硬件电路,它既实现了面向液体状态机的类脑处理器片上存储压缩,又可以完成液体状态机计算,实验结果表明,在MNIST、NMNIST、DVS128手势数据集上,在不同权值量化位宽下,CSSAC最多可使处理器存储减少14%-55%,处理器功耗减少5%-46%,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种面向液体状态机的神经形态处理器片上存储压缩方法,包括以下步骤:步骤一:生成并初始化一个液体状态机网络,训练它的读出层的权值,直到网络的准确率收敛,之后保持读出层的权值不变,随机将一定比例的非零权值替换为液体层中的非零值,把这种操作定义为随机扰动;步骤二:对液体状态机的液体层网络进行前述的随机扰动实验,即按照一定的比例将网络中神经元的非零权值随机替换为另一个非零值,这个比例称为随机扰动率,然后使用扰动后的网络进行推理测试,得到网络的推理精度,通过尝试不同的随机扰动率,就可以获得无精度损失下的最大随机扰动率,这将作为之后确定压缩空间的依据;步骤三:在随机扰动实验之后,在软件上进行模拟存储实验,首先确定一个分组数,将一个神经元的原始的所有入度权值等分为若干组,同时片上存储器中的分组数也其保持一致,之后根据权值的高位地址生成将权值与组内其他权值唯一区别开来的数据标签,然后确定一个片上存储器的组内项数,此时就已经确定了片上存储器的大小以及组织形式,接着将原始权值中的非零权值和其生成的数据标签传输到片上存储器上,放入对应的组中,其中一部分权值可能因为受到存储的限制而被丢弃,统计这些被丢弃的权值的数量占据所有非零权值的数量的比重,并称之为丢弃率,特别需要注意的是,由于在方法中,这些被丢弃的权值在需要使用时将会被组内的其他权值代替,所以可以将这个丢弃率与前述随机扰动实验中得到的随机扰动率视作近似相等,由大到小,依次尝试不同的片上存储器的组内项数,组内项数越少代表压缩率越大,并统计该配置下的丢弃率,通过尝试可以找到不超过无精度损失最大随机扰动率下的最大压缩率,由此,就能够确定真实的硬件存储器上的分组数以及组内项数的实际大小了;步骤四:将所有非零权值传输到片上存储器中对应的组中进行存储,并根据其原始地址生成对应的数据标签与权值一并存放,注意,这里生成的数据标签可以在传输时动态由硬件生成,也可在软件上生成并传输到片上,除此之外,所有权值的突触连接信息会保存在处理器上的邻接向量寄存器中,以便在后续使用过程中对不同的权值类型加以区分,完成初始化;步骤五:在完成初始化后,片上存储器被组织为只读组相联缓存;步骤六:在计算过程中,对权值的请求会同时访问权值存储器和邻接向量寄存器,通过请求的权值索引与组数之间的模数运算,生成相应的组号,读出目标组中的所有标签,并与请求权值的标签进行比较;步骤七:如果请求权值的标签命中了组中的一个标签,则读出相应的权值以供使用,如果不是,且邻接向量中请求权值对应的位为“1”,表示该连接存在但是在初始化时被丢弃了,则读取同一组中的第一项替换请求权值,如果邻接向量中请求权值对应的位为0则说明该突触连接不存在,直接跳过该次计算。优选的,所述步骤一中权值包括零和非零项。优选的,所述步骤二中每组中压缩空间由无精度损失条件下的最大随机扰动率决定。优选的,所述步骤二中每个神经元都是dw+tw长,其中dw和tw分别是权值及其标签的位宽。优选的,所述步骤三中没有地方存储的非零权值及其标签将被丢弃,但是其突触信息仍然会保存在处理器的邻接向量里,丢弃的权值可以在需要时被存储在处理器上的权值所替代。与现有技术相比,本专利技术的有益效果是:通过利用液体状态机的稀疏性,采用存储压缩,可以降低处理器的功耗,也可以使单个处理器在不增加额外存储的情况具有更多的逻辑神经元以处理更复杂的任务。本专利技术利用液体状态机的稀疏性和鲁棒性,实现了一种有损存储压缩方法——压缩稀疏组相联缓存(CSSAC)方法,其中还实现了一种用于面向液体状态机类脑处理器的神经元硬件电路,它支持CSSAC存储压缩方法并且能完成液体状态机计算,CSSAC压缩方法不会引入太多的元数据开销以确保压缩效果,也不会降低液体状态机的精度或处理器的性能,结果表明,在实验中,在MNIST、NMNIST、DVS128手势数据集上,在不同权值数据宽度下,CSSAC最多可使处理器存储减少14%-55%,功耗减少5%-46%。附图说明图1为CSSAC压缩存储方法存储过程示意图。图2为随机扰动率与精度损失线性示意图。图3为CSSAC压缩方法示意图。图4为在CSSAC存储方法下,请求访问权值的流程示意图。图5为神经元硬件电路示意图。图6为神经元的初始化以及CSSAC存储过程示意图。图7为使用CSSAC存储方法的神经元工作本文档来自技高网
...

【技术保护点】
1.一种面向液体状态机的神经形态处理器片上存储压缩方法,其特征在于:包括以下步骤:/n步骤一:生成并初始化一个液体状态机网络,训练它的读出层的权值,直到网络的准确率收敛,之后保持读出层的权值不变,随机将一定比例的非零权值替换为液体层中的非零值,把这种操作定义为随机扰动;/n步骤二:对液体状态机的液体层网络进行前述的随机扰动实验,即按照一定的比例将网络中神经元的非零权值随机替换为另一个非零值,这个比例称为随机扰动率,然后使用扰动后的网络进行推理测试,得到网络的推理精度,通过尝试不同的随机扰动率,就可以获得无精度损失下的最大随机扰动率,这将作为之后确定压缩空间的依据;/n步骤三:在随机扰动实验之后,在软件上进行模拟存储实验,首先确定一个分组数,将一个神经元的原始的所有入度权值等分为若干组,同时片上存储器中的分组数也其保持一致,之后根据权值的高位地址生成将权值与组内其他权值唯一区别开来的数据标签,然后确定一个片上存储器的组内项数,此时就已经确定了片上存储器的大小以及组织形式,接着将原始权值中的非零权值和其生成的数据标签传输到片上存储器上,放入对应的组中,其中一部分权值可能因为受到存储的限制而被丢弃,统计这些被丢弃的权值的数量占据所有非零权值的数量的比重,并称之为丢弃率,特别需要注意的是,由于在方法中,这些被丢弃的权值在需要使用时将会被组内的其他权值代替,所以可以将这个丢弃率与前述随机扰动实验中得到的随机扰动率视作近似相等,由大到小,依次尝试不同的片上存储器的组内项数,组内项数越少代表压缩率越大,并统计该配置下的丢弃率,通过尝试可以找到不超过无精度损失最大随机扰动率下的最大压缩率,由此,就能够确定真实的硬件存储器上的分组数以及组内项数的实际大小了;/n步骤四:将所有非零权值传输到片上存储器中对应的组中进行存储,并根据其原始地址生成对应的数据标签与权值一并存放,注意,这里生成的数据标签可以在传输时动态由硬件生成,也可在软件上生成并传输到片上,除此之外,所有权值的突触连接信息会保存在处理器上的邻接向量寄存器中,以便在后续使用过程中对不同的权值类型加以区分,完成初始化;/n步骤五:在完成初始化后,片上存储器被组织为只读组相联缓存;/n步骤六:在计算过程中,对权值的请求会同时访问权值存储器和邻接向量寄存器,通过请求的权值索引与组数之间的模数运算,生成相应的组号,读出目标组中的所有标签,并与请求权值的标签进行比较;/n步骤七:如果请求权值的标签命中了组中的一个标签,则读出相应的权值以供使用,如果不是,且邻接向量中请求权值对应的位为“1”,表示该连接存在但是在初始化时被丢弃了,则读取同一组中的第一项替换请求权值,如果邻接向量中请求权值对应的位为0则说明该突触连接不存在,直接跳过该次计算。/n...

【技术特征摘要】
1.一种面向液体状态机的神经形态处理器片上存储压缩方法,其特征在于:包括以下步骤:
步骤一:生成并初始化一个液体状态机网络,训练它的读出层的权值,直到网络的准确率收敛,之后保持读出层的权值不变,随机将一定比例的非零权值替换为液体层中的非零值,把这种操作定义为随机扰动;
步骤二:对液体状态机的液体层网络进行前述的随机扰动实验,即按照一定的比例将网络中神经元的非零权值随机替换为另一个非零值,这个比例称为随机扰动率,然后使用扰动后的网络进行推理测试,得到网络的推理精度,通过尝试不同的随机扰动率,就可以获得无精度损失下的最大随机扰动率,这将作为之后确定压缩空间的依据;
步骤三:在随机扰动实验之后,在软件上进行模拟存储实验,首先确定一个分组数,将一个神经元的原始的所有入度权值等分为若干组,同时片上存储器中的分组数也其保持一致,之后根据权值的高位地址生成将权值与组内其他权值唯一区别开来的数据标签,然后确定一个片上存储器的组内项数,此时就已经确定了片上存储器的大小以及组织形式,接着将原始权值中的非零权值和其生成的数据标签传输到片上存储器上,放入对应的组中,其中一部分权值可能因为受到存储的限制而被丢弃,统计这些被丢弃的权值的数量占据所有非零权值的数量的比重,并称之为丢弃率,特别需要注意的是,由于在方法中,这些被丢弃的权值在需要使用时将会被组内的其他权值代替,所以可以将这个丢弃率与前述随机扰动实验中得到的随机扰动率视作近似相等,由大到小,依次尝试不同的片上存储器的组内项数,组内项数越少代表压缩率越大,并统计该配置下的丢弃率,通过尝试可以找到不超过无精度损失最大随机扰动率下的最大压缩率,由此,就能够确定真实的硬件存储器上的分组数以及组内项数的实际大小了;
步骤四:将所有非零权值传输到片上存储器中对应的组中进行存储,并根据其原始...

【专利技术属性】
技术研发人员:王蕾杨智杰曲连华龚锐石伟丁东李石明罗莉铁俊波徐炜遐
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

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

1