当前位置: 首页 > 专利查询>南京大学专利>正文

一种应用于片上训练的稀疏加速器制造技术

技术编号:33443644 阅读:39 留言:0更新日期:2022-05-19 00:30
本申请实施例提供的一种应用于片上训练的稀疏加速器,通过在不同的加速阶段动态调整输入数值缓冲模块中的多个输入数值、参考数值缓冲模块中的多个参考数值以及掩码缓冲模块中的掩码,以及使粗粒度单元以粗粒度对无效运算进行初步筛选,以及使处理模块中每个处理单元包括的细粒度单元以细粒度对无效运算进行进一步筛选,从而剔除片上训练三个训练阶段中全部的无效运算,此外,多个计算核可以进行并行加速处理,多个计算核中处理模块包括的多个处理单元也可以进行并行加速处理,进一步提高了稀疏加速器的硬件利用率。如此,本申请的一种应用于片上训练的稀疏加速器可以高效、准确地剔除片上训练三个阶段的所有无效运算。地剔除片上训练三个阶段的所有无效运算。地剔除片上训练三个阶段的所有无效运算。

【技术实现步骤摘要】
一种应用于片上训练的稀疏加速器


[0001]本申请涉及计算机及电子信息
,特别涉及一种应用于片上训练的稀疏加速器。

技术介绍

[0002]近些年来,卷积神经网络(ConvolutionalNeuralNetworks,CNN)在计算机视觉、语音识别和自然语言处理等领域表现出色,为了提高识别准确度,需要对CNN模型进行片上训练,片上训练指的是利用终端设备上的用户数据对CNN模型进行微调,进而提高CNN模型使用时的准确性的训练。
[0003]片上训练的过程包括三个阶段,分别是前向传播(forwardpropagation,FP)阶段、反向传播(backwardpropagation,BP)阶段和权重梯度计算(weight gradient,WG)阶段,在FP阶段,将前一层的激活值作为当前层的输入激活值,结合当前层对应的卷积核权重经过卷积运算,然后通过激活函数获取当前层的输出激活值,如此,从前往后逐层得到CNN模型中每一层的激活值,最终通过损失函数计算标签的预测值和真实值之间的偏差,并得到损失;在BP阶段,利用FP阶段得到的损失,将后一层的误差值作为当前层的输入误差值,结合当前层的卷积核权重进行卷积运算,得到当前层的误差值,如此,从后往前逐层得到CNN模型中每一层的误差值;在WG阶段,按照链式法则的要求,将前一层的输出激活值和当前层的误差值进行卷积运算,获得当前层的权重梯度,如此从前往后逐层得到CNN模型中每一层的权重。经过多次迭代优化,当模型收敛之后完成整个CNN模型的片上训练。
[0004]可以看出,片上训练每一个阶段的训练过程,都是输入数据和参考数据进行卷积得到输出数据,从而完成训练。卷积的过程包括获得多个输入值和多个参考值的乘积,再将乘积相加,得到输出数据中的多个输出值。然而,CNN模型的计算量大,但是终端设备资源和存储量有限,难以支持在终端设备上进行完整的片上训练。通过将用户数据传到云端服务器的方式,虽然可以在云端服务器和终端设备上进行完整的片上训练,但是传输用户数据的过程可能泄露用户隐私。因此,需要对片上训练进行加速,从而保证只在终端设备上高效的实施片上训练。
[0005]现有的加速器是通过剔除输入值为零或者参考值为零导致的无效运算来进行加速,然而,无效运算还包括输入值和参考值同时为负值时导致输出值为零的情况,因此,现有的加速器加速后,由于无法剔除片上训练中所有的无效运算,不能保证在终端设备上最高效的实施片上训练。

技术实现思路

[0006]本申请提供了一种应用于片上训练的稀疏加速器,用于解决现有的加速器加速后,由于无法剔除片上训练中所有的无效运算,不能保证在终端设备上最高效的实施片上训练的技术问题。
[0007]为了解决上述技术问题,本申请实施例公开了如下技术方案:
[0008]一种应用于片上训练的稀疏加速器,所述稀疏加速器包括多个计算核,所述计算核每次用于加速一个卷积运算过程,所述计算核包括输入数值缓冲模块、参考数值缓冲模块、掩码缓冲模块、粗粒度匹配模块、处理模块和累加模块,其中:
[0009]所述粗粒度匹配模块包括多个粗粒度匹配单元,所述处理模块包括阵列设置的多个处理单元,每行处理单元共享一个粗粒度匹配单元;其中:
[0010]所述输入数值缓冲模块,用于向每行处理单元分配当前加速阶段中的输入数值,所述当前加速阶段为前向传播阶段、反向传播阶段或者权重梯度计算阶段;
[0011]所述参考数值缓冲模块,用于向每个处理单元分配所述当前加速阶段中的参考数值;
[0012]所述掩码缓冲模块,用于存储所述当前加速阶段中对应的掩码,所述掩码的类别为输入掩码、参考掩码或者输出掩码;
[0013]所述粗粒度匹配单元,用于从所述掩码缓冲模块中获取多个有效掩码组,以及,根据对应行的任一目标处理单元发送的分配请求,将多个有效掩码组中任一目标有效掩码组分配至所述目标处理单元,所述有效掩码组为可以进行非零卷积运算的掩码组,所述掩码组包括所述输入掩码、所述参考掩码和所述输出掩码;
[0014]所述目标处理单元,用于根据所述目标有效掩码组从所述输入数值缓冲模块中获取目标输入数值,以及从所述参考数值缓冲模块中获取目标参考数值,并根据所述目标输入数值和所述目标参考数值获得目标输出数值;
[0015]所述累加模块,用于将所有处理单元输出的目标输出数值的和确定为累加输出值。
[0016]在一种可实现方式中,所述输入数值缓冲模块包括多个输入行缓冲,每个输入行缓冲对应一行所述处理单元,用于存储所述当前加速阶段中分配至对应行处理单元的输入数值。
[0017]在一种可实现方式中,所述粗粒度匹配单元包括:
[0018]仲裁器,用于接收对应行的任一目标处理单元发送的所述分配请求,并将所述分配请求转换为分配信息,所述分配信息包括分配地址和分配数据;
[0019]掩码匹配检测器,用于将所述掩码缓冲模块中的所述掩码进行预分组,获得多个掩码组,并对多个掩码组进行检测,进行所述预分组时,多个输入掩码和多个参考掩码共享一个输出掩码;
[0020]匹配信息寄存器堆,用于根据多个掩码组的检测结果,将多个掩码组中可以进行非零卷积运算的掩码组确定为有效掩码组,每个有效掩码组对应一个地址信息和一个数据信息,并根据所述分配信息将多个有效掩码组中的任意一个目标有效掩码组的目标数据信息分配至所述处理单元;
[0021]地址存储模块,用于存储多个有效掩码组的多个地址信息,并根据所述分配地址从多个地址信息中匹配目标地址信息;
[0022]数据存储模块,用于存储多个有效掩码组的多个数据信息,并根据所述目标地址信息选择所述目标数据信息;
[0023]掩码匹配更新器,用于更新所述匹配信息寄存器堆中每次分配后的剩余有效掩码组的分配信息。
[0024]在一种可实现方式中,所述处理单元包括:
[0025]细粒度掩码匹配单元,用于根据目标有效掩码组获取输入索引和参考索引,所述输入索引用于从对应的输入行缓冲中确定目标输入数值,所述参考索引用于从所述参考数值缓冲模块中确定目标参考数值;
[0026]参考数值寄存器堆,用于存储所述参考数值;
[0027]乘累加单元,用于将目标参考数值和目标输入数值的乘积确定为目标输出数值;
[0028]部分和寄存器堆,用于存储目标输出数值,并将目标输出数值输出至所述累加模块。
[0029]在一种可实现方式中,所述细粒度掩码匹配单元包括:
[0030]参考掩码寄存器堆,用于存储多个参考掩码;
[0031]第一优先编码器,用于从目标输出掩码中确定输出掩码索引,所述输出掩码索引用于从参考掩码寄存器堆中确定目标参考掩码,所述目标输出掩码为所述目标有效掩码组中的输出掩码;
[0032]相与运算器,用于将所述目标参考掩码和目标输入掩码进行相与运算,获得与运算结果,所述目标输入掩码为所述目标有效掩码组中的输入掩码;
[0033]第二优先编码器,用于根据所述与运算结本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于片上训练的稀疏加速器,其特征在于,所述稀疏加速器包括多个计算核,所述计算核每次用于加速一个卷积运算过程,所述计算核包括输入数值缓冲模块、参考数值缓冲模块、掩码缓冲模块、粗粒度匹配模块、处理模块和累加模块;所述粗粒度匹配模块包括多个粗粒度匹配单元,所述处理模块包括阵列设置的多个处理单元,每行处理单元共享一个粗粒度匹配单元;其中:所述输入数值缓冲模块,用于向每行处理单元分配当前加速阶段中的输入数值,所述当前加速阶段为前向传播阶段、反向传播阶段或者权重梯度计算阶段;所述参考数值缓冲模块,用于向每个处理单元分配所述当前加速阶段中的参考数值;所述掩码缓冲模块,用于存储所述当前加速阶段中对应的掩码,所述掩码的类别为输入掩码、参考掩码或者输出掩码;所述粗粒度匹配单元,用于从所述掩码缓冲模块中获取多个有效掩码组,以及,根据对应行的任一目标处理单元发送的分配请求,将多个有效掩码组中任一目标有效掩码组分配至所述目标处理单元,所述有效掩码组为可以进行非零卷积运算的掩码组,所述掩码组包括所述输入掩码、所述参考掩码和所述输出掩码;所述目标处理单元,用于根据所述目标有效掩码组从所述输入数值缓冲模块中获取目标输入数值,以及从所述参考数值缓冲模块中获取目标参考数值,并根据所述目标输入数值和所述目标参考数值获得目标输出数值;所述累加模块,用于将所有处理单元输出的目标输出数值的和确定为累加输出值。2.根据权利要求1所述的一种应用于片上训练的稀疏加速器,其特征在于,所述输入数值缓冲模块包括多个输入行缓冲,每个输入行缓冲对应一行所述处理单元,用于存储所述当前加速阶段中分配至对应行处理单元的输入数值。3.根据权利要求1所述的一种应用于片上训练的稀疏加速器,其特征在于,所述粗粒度匹配单元包括:仲裁器,用于接收对应行的任一目标处理单元发送的所述分配请求,并将所述分配请求转换为分配信息,所述分配信息包括分配地址和分配数据;掩码匹配检测器,用于将所述掩码缓冲模块中的所述掩码进行预分组,获得多个掩码组,并对多个掩码组进行检测,进行所述预分组时,多个输入掩码和多个参考掩码共享一个输出掩码;匹配信息寄存器堆,用于根据多个掩码组的检测结果,将多个掩码组中可以进行非零卷积运算的掩码组确定为有效掩码组,每个有效掩码组对应一个地址信息和一个数据信息,并根据所述分配信息将多个有效掩码组中的任意一个目标有效掩码组的目标数据信息分配至所述处理单元;地址存储模块,用于存储多个有效掩码组的多个地址信息,并根据所述分配地址从多个地址信息中匹配目标地址信息;数据存储模块,用于存储多个有效掩码组的多个数据信息,并根据所述目标地址信息选择所述目标数据信息;掩码匹配更新器,用于更新所述匹配信息寄存器堆中每次分配后的剩...

【专利技术属性】
技术研发人员:王中风黄健鲁金铭
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1