利用特定数检测的多流水线架构制造技术

技术编号:25608925 阅读:19 留言:0更新日期:2020-09-12 00:03
本公开涉及具有多流水线架构的计算设备。所述多流水线架构包括并发运行的第一流水线和第二流水线,其中所述第一流水线比所述第二流水线提前至少一个周期运行。在所述第一流水线上利用特定数检测,其中特定数是产生可预测结果的数值。在检测到特定数后,计算得以优化。

【技术实现步骤摘要】
【国外来华专利技术】利用特定数检测的多流水线架构相关申请的交叉引用本公开要求2017年12月22日提交的美国临时申请No.62/610,077和2018年12月10日提交的美国专利申请No.16/215,553的优先权权益,上述申请的全部内容通过引用合并于此。
技术介绍
开发神经网络处理器以加速基于神经网络的深度学习应用已在许多业务领域获得了重大关注,包括成熟的芯片制造商、初创公司以及大型互联网公司。单指令多数据(SIMD)架构能应用于芯片以加速深度学习应用的操作。随着基于神经网络的深度学习应用(例如图像识别、语言/语音识别和机器翻译)呈指数增长,希望保持并提高系统的计算强度。
技术实现思路
本公开涉及用于具有特定数检测能力以简化操作并提高计算强度的多管道流水线(pipeline)的方法和系统。与公开的一些实施例一致,提供了一种计算方法,用于在利用多流水线架构的计算设备中、并带有特定数检测。所述计算设备包括用于存储指令的存储器和用于执行所述指令以执行所述方法的处理单元。所述方法包括针对来自所述存储器的数据并发地运行第一流水线和第二流水线。所述第一流水线被配置为从所述存储器接收第一操作数,所述第二流水线被配置为从所述存储器接收第二操作数。所述第一流水线比所述第二流水线提前至少一个周期操作。所述方法还包括针对所述第一操作数在所述存储器中生成存储器地址,并在所述第一流水线上从生成的存储器地址读取所述第一操作数。所述方法还包括:通过检测器检测所述第一操作数是否为特定数,其中,特定数是产生预定或可预测操作结果的数值。如果所述第一操作数是特定数,则所述方法还包括检索(retrieve)与检测到的特定数相关联的结果,并将检索到的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。如果所述第一操作数不是特定数,则所述方法还包括针对所述第二操作数在所述存储器中生成存储器地址,在所述第二流水线上从生成的存储器地址读取所述第二操作数,对所述第一操作数和所述第二操作数执行操作,并将执行的操作的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。本文公开的一些实施例针对用于利用特定数检测进行计算的计算设备。所述计算设备包括存储器以及第一流水线和第二流水线。所述第一流水线被配置为从所述存储器接收第一操作数,所述第二流水线被配置为从所述存储器接收第二操作数。所述第一流水线比所述第二流水线提前至少一个周期操作。所述设备还包括处理单元,用于针对所述第一操作数在所述存储器中生成存储器地址。所述第一流水线从生成的存储器地址读取所述第一操作数。此后,检测器检测所述第一操作数是否为特定数。特定数是产生预定或可预测运算结果的数值。如果所述第一操作数是特定数,则所述处理单元检索与检测到的特定数相关联的预定或可预测操作结果,并将检索到的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。如果所述第一操作数不是特定数,则所述处理单元针对所述第二操作数在所述存储器中生成存储器地址。此后,所述第二流水线从生成的存储器地址读取所述第二操作数。然后,所述处理单元对所述第一操作数和所述第二操作数执行操作,并将执行的操作的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。与公开的一些实施例一致,公开了一种用于计算设备中具有特定数检测能力的多管道流水线的方法,每个计算设备包括存储指令的一个或多个存储器和执行所述指令以执行所述方法的一个或多个处理器。所述方法包括:针对来自所述一个或多个存储器的数据并发地运行一对流水线,其中,所述对中的一个流水线接受广播操作数,所述对中的另一个流水线接受私有操作数;针对所述广播操作数在所述一个或多个存储器中生成存储器地址;从生成的存储器地址读取所述广播操作数;通过检测器检测所述广播操作数是否为0;如果所述广播操作数为0,则停止针对所述私有操作数在所述一个或多个存储器中生成存储器地址,如果所述广播操作数为1,则针对所述私有操作数更新所述一个或多个存储器中的存储器地址;通过另一检测器检测所述广播操作数是否为1;计算所述广播操作数和所述私有操作数的结果;以及将所述结果存储到针对数据的该对流水线的所述一个或多个存储器中的存储器地址。与公开的一些实施例一致,提供了一种用于多管道流水线的系统,其具有特定数检测能力,以简化操作并提高计算强度。与公开的一些实施例一致,提供了一种计算机可读存储介质,其包括可由至少一个处理器执行以执行上述方法的指令集。与公开的其他实施例一致,一种非暂时性计算机可读存储介质可以存储由至少一个处理设备执行并执行本文描述的前述方法的程序指令。附图说明图1示出了与本公开的实施例一致的示例性神经网络处理单元(NPU)架构。图2A示出了与本公开的实施例一致的神经网络处理器的层的示例性功能。图2B示出了与本公开的实施例一致的示例性硬件神经网络处理器。图3示出了与本公开的实施例一致的多层网络中的数据共享。图4A示出了与本公开的实施例一致的包括存储器模块的统一组织的示例性硬件的示意图。图4B示出了与本公开的实施例一致的统一存储介质的示例性存储单元。图5示出了与本公开的实施例一致的在计算设备中实现的多流水线配置。图6是与本公开的实施例一致的图5的多流水线配置的操作周期图。图7是与本公开的实施例一致的以图5的多流水线配置为特征的计算设备采取的示例操作的处理流程图。具体实施方式现在将详细参考示例性实施例,其示例在附图中示出。以下描述参考附图,其中除非另外表示,否则不同附图中的相同数字表示相同或相似的元素。在示例性实施例的以下描述中阐述的实现并不代表与本专利技术一致的所有实现。相反,它们仅是与如所附权利要求中所述的本专利技术的相关方面一致的装置和方法的示例。在包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理单元(DSP)、神经网络处理器等的计算设备(例如台式机、笔记本电脑、服务器、诸如蜂窝电话的蜂窝设备、PDA、平板电脑等)中,计算强度通常定义为设备快速执行操作的能力。设备检测特定数(例如0、1等)的能力可提高计算强度。对于具有矢量、SIMD或阵列计算的计算机架构,这种检测以及基于检测执行操作的能力可能甚至进一步提高计算强度。所公开的实施例涉及用于具有特定数检测能力以简化操作并提高计算强度的多管道流水线的方法和系统。应当理解,术语“多个”在本文中应解释为表示两个或更多个。特定数是在操作中使用时产生预定或可预测结果的数字。预定或可预测的结果是无需执行操作即可获得的操作结果。这样的数字的示例可以是乘法运算中的数字1或0。具体地,将第一数字乘以数字1将总是产生等于第一数字的结果,而将任何数字乘以数字0将总是产生0的结果。因此,由于如本文描述的检测这种数字的能力,可以优化此类操作的性能,因为可基于特定数的检测确定结果。因此,能够识别这样的数字可由于计算时间将减少而提高计算强度,因为如果检测到特定数,则无需执行完整操作即可确定结果。将使用神经网络来说明本文本文档来自技高网...

【技术保护点】
1.一种计算方法,用于在具有利用多流水线架构的核的计算设备中、并带有特定数检测,所述方法包括:/n针对来自存储器的数据,并行地运行第一流水线和第二流水线,其中,所述第一流水线被配置为从所述存储器接收第一操作数,所述第二流水线被配置为从所述存储器接收第二操作数,并且其中,所述第一流水线比所述第二流水线提前至少一个周期操作;/n针对所述第一操作数在所述存储器中生成存储器地址;/n在所述第一流水线上从生成的存储器地址读取所述第一操作数;和/n检测所述第一操作数是否为特定数,其中,特定数是产生可预测操作结果的数值;和/n基于所述第一操作数是否为特定数的检测,将结果存储在所述存储器中。/n

【技术特征摘要】
【国外来华专利技术】20171222 US 62/610,077;20181210 US 16/215,5531.一种计算方法,用于在具有利用多流水线架构的核的计算设备中、并带有特定数检测,所述方法包括:
针对来自存储器的数据,并行地运行第一流水线和第二流水线,其中,所述第一流水线被配置为从所述存储器接收第一操作数,所述第二流水线被配置为从所述存储器接收第二操作数,并且其中,所述第一流水线比所述第二流水线提前至少一个周期操作;
针对所述第一操作数在所述存储器中生成存储器地址;
在所述第一流水线上从生成的存储器地址读取所述第一操作数;和
检测所述第一操作数是否为特定数,其中,特定数是产生可预测操作结果的数值;和
基于所述第一操作数是否为特定数的检测,将结果存储在所述存储器中。


2.根据权利要求1所述的方法,其中,一旦确定所述第一操作数是特定数:
检索与检测到的特定数相关联的结果;并且
将检索到的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。


3.根据权利要求2所述的方法,其中,所述多流水线架构被配置为执行乘法运算,并且其中,所述第一操作数被检测为是包括数值0的特定数,所述方法还包括:
防止针对所述第二操作数生成存储器地址。


4.根据权利要求2所述的方法,其中,所述多流水线架构被配置为执行乘法运算,并且其中,所述第一操作数被检测为是包括数值1的特定数,所述方法还包括:
针对所述第二操作数生成存储器地址;
在所述第二流水线上从生成的存储器地址读取所述第二操作数;和
将所述结果的值分配为等于所述第二操作数的值。


5.根据权利要求1所述的方法,其中,一旦确定所述第一操作数不是特定数:
针对所述第二操作数在所述存储器中生成存储器地址;
在所述第二流水线上从生成的存储器地址读取所述第二操作数;
对所述第一操作数和所述第二操作数执行操作;并且
将执行的操作的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。


6.一种计算设备,用于执行特定数检测操作,所述计算设备包括:
核,所述核具有被配置为执行操作的多个处理单元,所述核包括:
存储器,被配置为存储操作数;
第一流水线,被配置为基于针对第一操作数生成的存储器地址从所述存储器读取所述第一操作数;
第二流水线,被配置为从所述存储器接收第二操作数,其中,所述第一流水线比所述第二流水线提前至少一个周期操作;
检测器,被配置为检测所述第一操作数是否为特定数,其中,所述特定数是产生可预测操作结果的数值,并且其中,所述核还被配置为基于所述第一操作数是否为特定数的检测将结果存储在所述存储器中。


7.根据权利要求6所述的计算设备,其中,如果所述第一操作数是特定数,则:
所述核还被配置为检索与检测到的特定数相关联的可预测操作结果;并且
所述核还被配置为将检索到的结果存储在针对所述第一流水线和所述第二流水线的所述存储器中。


8.根据权利要求7所述的计算设备,其中,所述计算是乘法运算,并且其中,所述第一操作数被检测为是包括数值0的特定数:
所述核还被配置为停止针对所述第二操作数生成存储器地址。


9.根据权利要求7所述的计算设备,其中,所述计算是乘法运算,并且其中,所述第一操作数被检测为是包括数值1的特定数:
所述核还被配置为针对所述第二操作数生成存储器地址;
所述第二流水线被配置为从...

【专利技术属性】
技术研发人员:韩亮蒋晓维
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1