用于脉动阵列计算的错误检查制造技术

技术编号:39053671 阅读:10 留言:0更新日期:2023-10-12 19:47
本公开的方面涉及一种计算单元,所述计算单元实施脉动阵列并且被配置用于在处理脉动阵列上的数据时检测错误。与脉动阵列通信的校验和电路被配置成在所述脉动阵列处理输入数据时计算校验和并且执行错误检测。代替在输入矩阵中预生成校验和,可以通过所述校验和电路将输入矩阵直接馈送到所述脉动阵列中。在输出侧,所述校验和电路可以生成校验和,并且将校验和与由所述脉动阵列生成的输出矩阵中的校验和进行比较。可以在不延迟所述脉动阵列的操作和不预处理所述输入矩阵的情况下对生成所述输出矩阵的操作进行错误检查。述输出矩阵的操作进行错误检查。述输出矩阵的操作进行错误检查。

【技术实现步骤摘要】
【国外来华专利技术】用于脉动阵列计算的错误检查
[0001]相关申请的交叉引用
[0002]本申请是2021年8月24日提交的第17/410,558号美国专利申请的延续,所述美国专利申请要求2021年7月16日提交的标题为“用于脉动阵列计算的错误检查(Error Checking For Systolic Array Computation)”的第63/222,549号美国临时申请的申请日的权益,这些申请的公开内容特此以引用方式并入本文中。

技术介绍

[0003]脉动阵列是处理元件的阵列,所述处理元件诸如处理器、微处理器,或配置成处理一些数据的专用电路。脉动阵列的相邻处理元件可以通过例如印刷电路板上的一个或多个互连,例如导线或其他物理连接进行连接。
[0004]基于算法的容错(ABFT)是指在执行不同类型的算术或逻辑算法——诸如矩阵乘法、傅立叶变换等——期间检测和校正错误的方案或技术。在矩阵乘法的情况下,例如,对于输入矩阵A、B和输出矩阵C,A
×
B=C,用于矩阵乘法的ABFT包括生成用于A的校验和行和用于矩阵B的校验和列。用于A的校验和行中的每个元素是对矩阵A的相应列中的元素执行的线性运算的结果,例如,将矩阵A的列中的每个元素相加以生成矩阵A的校验和行中的校验和值。类似地,列B中的每个校验和值是对矩阵B的相应行中的元素执行的线性运算的结果。
[0005]在矩阵A和B(与其对应校验和行/列)相乘之后,输出矩阵包括表示矩阵A和B相乘的乘积的子矩阵,以及校验和行与校验和列。作为矩阵乘法的ABFT的一部分,将矩阵C的校验和行和列中的校验和值与对矩阵A和B——但现在对C的子矩阵——执行相同线性运算的结果进行比较。如果对C的子矩阵的行或列执行线性运算的结果与C中的对应校验和值不匹配,则不匹配指示在矩阵乘法期间已经出现错误。

技术实现思路

[0006]本公开的方面涉及一种计算单元,所述计算单元实施脉动阵列并且被配置用于在处理脉动阵列上的数据时检测错误。与脉动阵列通信的校验和电路被配置成在脉动阵列处理输入数据时计算校验和并且执行错误检测。代替在输入矩阵中预生成校验和,可以通过校验和电路将输入矩阵直接馈送到脉动阵列中。在输出侧,根据一个方面,当脉动阵列完成对应操作以生成输出时,或者当从脉动阵列流式传输输出时,校验和电路可以生成用于脉动阵列的输出的校验和。根据另一方面,在输出侧,校验和电路可以生成校验和,并且将校验和与由脉动阵列生成的输出矩阵中的校验和进行比较。
[0007]本公开的方面提供许多技术优点。可以通过对操作数和脉动阵列的输出的校验和执行错误检测,而无需对输入进行预处理以生成校验和,也无需进行后处理操作以比较校验和的正确性。可以根据各种随机或伪随机测试模式快速地测试芯片上的脉动阵列,以确定阵列中或阵列的个别处理元件中是否存在硬件故障。不需要已知的输入或输出,也不必需伪随机测试的签名,允许根据测试需要生成和部署许多不同的测试模式。此外,可以在不
延迟脉动阵列的操作和不预处理输入矩阵的情况下对生成输出矩阵的操作进行错误检查。
[0008]在运行时,根据本公开的方面实施的处理器可以检测软错误或硬错误,例如不是由硬件缺陷造成的错误以及由硬件缺陷造成的错误。当处理器是执行关键和时间敏感任务的加速器的一部分时,快速识别错误可能特别重要。例如,当处理器正在处理机器学习模型的输入时,软错误检测可能特别重要,所述机器学习模型被训练为执行与银行、自动驾驶汽车导航/控制、飞机或航天器导航等相关的任务。
[0009]在一些示例中,如本文所描述的计算单元可以被配置成检测定时违规错误,所述定时违规错误可以被检测并寻址以向脉动阵列提供更好的能量效率。可以实施用于执行错误检测的电路以减少定时错误的机会,使得即使当脉动阵列在低于预定临界电压的供电电压下操作时也可以继续进行准确的错误检测。本公开的方面还提供用于检测包括矩阵乘法的一些类型的运算中的错误,可以对这些错误进行校正以改进处理器的准确性和可靠性。可以将不同的计算单元调谐到不同的电压和/或频率水平,以调谐单元以获得更好的性能,例如在由计算单元执行的机器学习模型的推断期间。检测错误可以全面改进计算的准确性。
[0010]本公开的方面可以以最小的开销实施并且不会影响计算单元的脉动阵列的性能。不必需对输入进行预处理,与对输入进行预处理的其他方法相比进一步改进在计算单元上进行错误检查的效率。此外,如本文所述的用于执行错误检测的校验和电路的输入不会延迟用于处理的脉动阵列的输入。
[0011]“宽松”容错也可以被应用于进一步减少开销,并且尤其是与计算单元的软件交互,这仅应用于实际上检测到错误的情况。在一些示例中,当主要用例是检测错误的存在,而不需要精确指出错误的确切源时,宽松容错可能是有益的。
[0012]利用将错误检测应用于如本文所描述的计算单元,可以实施错误校正机构,例如基于矩阵乘法的ABFT的错误校正过程,以在计算单元的运行期间从检测到的硬错误中恢复。
[0013]本公开的方面涉及一种计算单元,所述计算单元包括:处理元件的二维脉动阵列,所述脉动阵列被配置成沿着脉动阵列的第一方向从第一输入矩阵接收第一输入元素,并且沿着脉动阵列的第二方向从第二输入矩阵接收第二输入元素;第一校验和电路,所述第一校验和电路被配置成在脉动阵列接收第一输入元素时从第一输入元素生成一组或多组第一校验和;第二校验和电路,所述第二校验和电路被配置成在脉动阵列接收第二输入元素时生成一组或多组第二校验和;所述脉动阵列进一步被配置成从第一输入矩阵、第二输入矩阵、一组或多组第一校验和以及一组或多组第二校验和生成输出矩阵;以及输出校验和电路,所述输出校验和电路被配置成接收输出矩阵并且从输出矩阵确定在生成输出矩阵时出现一个或多个错误。
[0014]前述方面可以单独或以任何组合包括以下特征中的一个或多个。在一些示例中,前述方面一起包括所有以下特征。
[0015]输出矩阵包括:数据子矩阵,所述数据子矩阵包括由脉动阵列使用第一输入元素和第二输入元素生成的值;输出校验和行;以及输出校验和列;并且其中为了确定在生成输出矩阵时出现一个或多个错误,输出校验和电路被配置成:从数据子矩阵的至少一行生成行校验和;将行校验和与输出校验和列中的校验和相比较;以及从行校验和与输出校验和
列中的校验和的比较来确定在生成输出矩阵时出现错误。
[0016]为了确定在生成输出矩阵时出现一个或多个错误,输出校验和电路进一步被配置成:从数据子矩阵的至少一个列生成列校验和;将列校验和与输出校验和行中的校验和相比较;以及从列校验和与输出校验和行中的校验和的比较确定在生成输出矩阵时出现错误。
[0017]为了确定在生成输出矩阵时出现一个或多个错误,输出校验和电路进一步被配置成:从数据子矩阵的至少一个行生成行校验和;将行校验和与输出校验和列中的校验和相比较;以及从行校验和与输出校验和列中的校验和的比较确定在生成输出矩阵时出现错误。
[0018]为了将行校验和与输出校验和列中的校验和相比较,输出校验和电路本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算单元,包括:处理元件的二维脉动阵列,所述脉动阵列被配置成沿着所述脉动阵列的第一方向从第一输入矩阵接收第一输入元素,并且沿着所述脉动阵列的第二方向从第二输入矩阵接收第二输入元素;第一校验和电路,所述第一校验和电路被配置成当所述脉动阵列接收所述第一输入元素时从所述第一输入元素生成一组或多组第一校验和;第二校验和电路,所述第二校验和电路被配置成当所述脉动阵列接收所述第二输入元素时生成一组或多组第二校验和;所述脉动阵列进一步被配置成从所述第一输入矩阵、所述第二输入矩阵、所述一组或多组第一校验和以及所述一组或多组第二校验和来生成输出矩阵;以及输出校验和电路,所述输出校验和电路被配置成接收所述输出矩阵,并且从所述输出矩阵确定在生成所述输出矩阵时出现一个或多个错误。2.根据权利要求1所述的计算单元,其中,所述输出矩阵包括:数据子矩阵,所述数据子矩阵包括由所述脉动阵列使用所述第一输入元素和所述第二输入元素生成的值;输出校验和行;以及输出校验和列;以及其中,为了确定在生成所述输出矩阵时出现一个或多个错误,所述输出校验和电路被配置成:从所述数据子矩阵的至少一行生成行校验和;将所述行校验和与所述输出校验和列中的校验和相比较;以及从所述行校验和与所述输出校验和列中的所述校验和的所述比较来确定在生成所述输出矩阵时出现错误。3.根据权利要求2所述的计算单元,其中,为了确定在生成所述输出矩阵时出现一个或多个错误,所述输出校验和电路进一步被配置成:从所述数据子矩阵的至少一列生成列校验和;将所述列校验和与所述输出校验和行中的校验和相比较;以及从所述列校验和与所述输出校验和行中的所述校验和的所述比较来确定在生成所述输出矩阵时出现错误。4.根据权利要求3所述的计算单元,其中,为了确定在生成所述输出矩阵时出现一个或多个错误,所述输出校验和电路进一步被配置成:从所述数据子矩阵的至少一行生成行校验和;将所述行校验和与所述输出校验和列中的校验和相比较;以及从所述行校验和与所述输出校验和列中的所述校验和的所述比较来确定在生成所述输出矩阵时出现错误。5.根据权利要求2所述的计算单元,其中,为了将所述行校验和与所述输出校验和列中的所述校验和相比较,所述输出校验和电路进一步被配置成确定所述行校验和与所述输出校验和列中的所述校验和之间的绝对差是否在预定阈值内。6.根据权利要求1所述的计算单元,其中,所述计算单元进一步包括一个或多个校验和处理元件,所述一个或多个校验和处理元件被配置成从所述第一与第二校验和电路中的一个或两个接收校验和。
7.根据权利要求1所述的计算单元,其中,所述第一与第二校验和电路中的一个或两个被配置成基于控制信号将第一或第二校验和发送到所述脉动阵列以进行处理。8.根据权利要求7所述的计算单元,其中,所述第一与第二校验和电路中的所述一个或两个的所述控制信号的定时基于跨所述脉动阵列加载第一或第二输入值的时间步数。9.根据权利要求1所述的计算单元,其中,所述计算单元进一步被配置成响应于确定在生成所述输出矩阵时出现一个或多个错误,向连接到所述计算单元的一个或多个装置发送出现一个或多个错误的指示。10.根据权利要求9所述的计算单元,其中,所述脉动阵列进一步被配置成:在发送出现一个或多个错误的所述指示之后,从所述一个或多个装置接收调整电压,所述调整电压高于所述计算单元的临界电压。11.根据权利要求10所述的计算单元,其中,所述脉动阵列进一步被配置成接收低于所述计算单元的所述临界电压的第一电压,直到响应于发送所述指示而接收到所述调整电压。12.根据权利要求11所述的计算单元,其中,所述第一与第二校验和电路中的一个或两个被配置成接收高于所述临界电压的第二电压。13.根据权利要求10所述的计算单元,其中,所述第一与第二校验和电路中的一个或两个包括2输入2级流水线式加法器电路,所述加法器电路被配置成延迟所述第一与第二校验和中的一个或两个的...

【专利技术属性】
技术研发人员:尹度铉诺曼
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

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

1