多线程脉动阵列制造技术

技术编号:24133676 阅读:57 留言:0更新日期:2020-05-13 07:17
提供了一种多线程脉动阵列300,包括:多个处理元件302,分别包括处理器308,其中,每个处理元件302用于:从相应的第一输入源304接收多个第一输入,从相应的第二输入源306接收多个第二输入,其中,多个第一输入和多个第二输入布置为与多个线程相对应的多对;为处理器的每个操作周期调度多个线程中的线程;对该线程执行计算操作。

Multithreaded pulse array

【技术实现步骤摘要】
【国外来华专利技术】多线程脉动阵列
技术介绍
本专利技术在其一些实施例中涉及矩阵乘法,更具体但非排他地,涉及用于一个或多个矩阵的乘法的系统和方法。矩阵和向量乘法是各种处理方法中使用的基本运算,例如,用于进行神经网络推导和/或训练神经网络。目前正寻求计算高效的系统和/或方法,从而使用合理数量的计算资源(即,存储器和/或处理硬件)在合理的时间内快速执行矩阵乘法。例如,神经网络硬件加速器需要具有高数据吞吐量和高效的能耗,才能基于大量不同的输入对不同的神经网络进行处理。
技术实现思路
本专利技术的目的在于提供一种多线程脉动阵列,以及用于操作该多线程脉动阵列的装置、方法、计算机程序产品和系统。通过独立权利要求的特征实现前述和其他目的。进一步的实施形式在从属权利要求、具体说明和附图中显而易见。根据第一方面,一种多线程脉动阵列包括:多个处理元件,分别包括处理器,其中,每个所述处理元件用于:从相应的第一输入源接收多个第一输入,从相应的第二输入源接收多个第二输入,其中,所述多个第一输入和所述多个第二输入布置为与多个线程相对应的多对,为所述处理器的每个操作周期调度所述多个线程中的线程,对所述线程执行计算操作。根据第二方面,一种操作多线程脉动阵列的方法包括:针对所述多线程脉动阵列的多个处理元件中的每个处理元件,执行:从相应的第一输入源接收多个第一输入,从相应的第二输入源接收多个第二输入,其中,所述多个第一输入和所述多个第二输入布置为与多个线程相对应的多对,为每个操作周期调度所述多个线程中的线程,对所述线程执行计算操作。当输入数据表现出例如如现实生活中的神经网络所表现出的高权重稀疏性和/或高输入稀疏性时,与其他实现(例如,单线程脉动阵列)相比,多线程脉动阵列提高了处理元件的利用率。不同于一次只处理一个矩阵运算(例如,如单线程脉动阵列实现所执行的),多线程脉动阵列的计算资源还用于其他矩阵运算,而不是对当前矩阵运算执行无意义的运算,从而提高了计算效率。与神经网络处理系统的其他实现相比,例如,在数据吞吐量和/或能耗效率的提高方面,将多线程脉动阵列纳入神经网络处理系统中提高了基于大量的不同输入执行多个不同的神经网络的效率。在第一和第二方面的另一实施形式中,所述多个处理元件布置为二维阵列,从而将第一处理元件的多个第一输出作为多个第一输入提供给第二相邻处理元件,将所述第一处理元件的多个第二输出作为多个第二输入提供给第三相邻处理元件。在第一和第二方面的另一实施形式中,根据所述线程的可用非影响值执行所述调度,其中,所述非影响值为不会显著影响所述处理器计算的值的输入值。在第一和第二方面的另一实施形式中,所述处理器用于:当相应线程的值中的至少一个是非影响值时,并行执行针对所述线程的所述计算操作和针对其他线程中的每个相应线程的跳过操作;或者,当相应线程的值中的至少一个是影响值时,并行执行针对所述线程的所述计算操作和针对其他线程中的每个相应线程的停顿操作。通过并行处理,多线程脉动阵列的计算性能得以提高,这是因为并行执行两个或更多线程所花费的时间大约是各线程依次执行(例如,由单线程脉动阵列实现执行)时所需时间的一半或更短。在第一和第二方面的另一实施形式中,所述计算操作由计算组件执行,所述跳过操作由移动路径组件执行,所述停顿操作由停顿组件执行,其中,所述计算组件的所述计算操作的执行独立于所述移动路径组件的所述跳过操作和所述停顿组件的所述停顿操作。在第一和第二方面的另一实现形式中,所述处理器用于当所述多个线程包括非影响值时,并行处理针对所述多个线程的多个跳过操作。在第一和第二方面的另一实现形式中,所述处理器用于针对相应的第一输入和/或第二输入,对每个包括非影响值的线程执行跳过操作。在第一和第二方面的另一实施形式中,所述处理器用于将神经网络的不同层分配给不同线程,根据相应层的带宽在所述不同线程之间进行选择,其中,所述第一输入表示所述神经网络的激活输入,所述第二输入表示所述神经网络的权重。所述多线程脉动阵列的计算效率随着变化的神经网络保持在较高水平。与不考虑和/或适应带宽差异的其他实现(例如,单线程脉动阵列实现)相比,所述多线程脉动阵列适应输入和/或权重(例如,全连接层和/或卷积层等神经网络的不同网络层的输入和/或权重)的不同带宽要求,从而提高了计算效率和/或能源利用率。例如,对于大多数现实生活的神经网络,单线程脉动阵列实现一次只能处理一个网络层,因而在等待权重和/或输入数据时,其没有得到充分的利用,和/或,阵列速度太慢,无法实现所需的性能。因此,与所述适应带宽的多线程脉动阵列相比,单线程脉动阵列无法匹配神经网络加速器存储器子系统带宽,从而导致计算性能和/或能源利用率降低。在第一和第二方面的另一实施形式中,所述多个处理元件分别包括:至少一个第一延迟缓冲器,当相应处理元件的所述处理器处理所述线程时存储所述多个第一输入的数据;至少一个第二延迟缓冲器,当相应处理元件的所述处理器处理所述线程时存储所述多个第二输入的数据。在第一和第二方面的另一实施形式中,所述处理器用于将非影响值输入从所述多个第一输入移动到所述多个第一输出,从所述多个第二输入到所述多个第二输出。在第一和第二方面的另一实施形式中,移动所述非影响值输入而不计算所述非影响值输入的乘法。在第一和第二方面的另一实施形式中,当所述多个第一输入和所述多个第二输入具有影响值时,对执行所述计算操作的所述计算组件的时钟进行门控。针对非影响值关闭所述处理器的电源(可选地,关闭所述处理器的计算组件的电源),从而减少能耗。如本文所讨论的,对于非影响值不执行计算操作。在第一和第二方面的另一实施形式中,所述多线程脉动阵列用于根据所述多个线程提供的数据计算多个矩阵乘法。在第一和第二方面的另一实施形式中,所述计算操作的结果为以下之一:分别存储在所述多个处理元件本地,并且作为输出移动到所述第二和第三相邻处理元件;用作根据相应的第一输入和相应的第二输入进行下一次计算的部分和输入。除非另有定义,否则本文所用的所有技术和科学术语都具有与本专利技术普通技术人员公知的含义相同的含义。尽管与本文描述的那些类似或等同的方法和材料可以用于本专利技术的实施例的实践或测试中,下面将对示例性的方法和/或材料进行描述。在有冲突的情况下,以专利说明书及其定义为准。另外,材料、方法和示例仅是说明性的,并不用于进行必要的限制。附图说明此处仅作为示例,结合附图描述了本专利技术一些实施例。现在具体结合附图,需要强调的是所示的项目作为示例,为了说明性地讨论本专利技术的实施例。这样,根据附图说明,如何实践本专利技术实施例对本领域技术人员而言是显而易见的。在附图中:图1为用于帮助理解本专利技术一些实施例的标准脉动阵列的示例性实现的示意图;图2为根据本专利技术一些实施例的多线程脉动阵列的操作方法的流程图;图3A为根据本专利技术一些实施例的包括多个处理元件的多线程脉动阵列的框图,该处理元件均设计用于并行执行多个操作;图3B为根据本专利技术一本文档来自技高网...

【技术保护点】
1.一种多线程脉动阵列(300),其特征在于,包括:/n多个处理元件(302),分别包括处理器(308),其中,每个所述处理元件(302)用于:/n从相应的第一输入源(304)接收多个第一输入;/n从相应的第二输入源(306)接收多个第二输入,/n其中,所述多个第一输入和所述多个第二输入布置为与多个线程相对应的多对;/n为所述处理器的每个操作周期调度所述多个线程中的线程;/n对所述线程执行计算操作。/n

【技术特征摘要】
【国外来华专利技术】1.一种多线程脉动阵列(300),其特征在于,包括:
多个处理元件(302),分别包括处理器(308),其中,每个所述处理元件(302)用于:
从相应的第一输入源(304)接收多个第一输入;
从相应的第二输入源(306)接收多个第二输入,
其中,所述多个第一输入和所述多个第二输入布置为与多个线程相对应的多对;
为所述处理器的每个操作周期调度所述多个线程中的线程;
对所述线程执行计算操作。


2.根据权利要求1所述的多线程脉动阵列(300),其特征在于,所述多个处理元件(302)布置为二维阵列,从而将第一处理元件(302)的多个第一输出(316)作为多个第一输入(312)提供给第二相邻处理元件(302),将所述第一处理元件的多个第二输出(318)作为多个第二输入(314)提供给第三相邻处理元件。


3.根据前述权利要求中的任一项所述的多线程脉动阵列(300),其特征在于,根据所述线程的可用非影响值执行所述调度,其中,所述非影响值为不会显著影响所述处理器(308)计算的值的输入值。


4.根据前述权利要求中的任一项所述的多线程脉动阵列(300),其特征在于,所述处理器(308)用于:当相应线程的值中的至少一个是非影响值时,并行执行针对所述线程的所述计算操作和针对其他线程中的每个相应线程的跳过操作;或者,当相应线程的值中的至少一个是影响值时,并行执行针对所述线程的所述计算操作和针对其他线程中的每个相应线程的停顿操作。


5.根据权利要求4所述的多线程脉动阵列(300),其特征在于,所述计算操作由计算组件(308A)执行,所述跳过操作由移动路径组件(308B)执行,所述停顿操作由停顿组件(308C)执行,其中,所述计算组件(308A)的所述计算操作的执行独立于所述移动路径组件(308B)的所述跳过操作和所述停顿组件(308C)的所述停顿操作。


6.根据前述权利要求中的任一项所述的多线程脉动阵列(300),其特征在于,所述处理器(308)用于当所述多个线程包括非影响值时,并行处理针对所述多个线程的多个跳过操作。


7.根据前述权利要求中任一项所述的多线程脉动阵列(300),其特征在于,所述处理器(308)用于针对相应的第一输入和/或第二输入,对每个包括非影响值的线程执行跳过操作。


8.根据前述权利要求...

【专利技术属性】
技术研发人员:塔尔·霍洛维茨乌里·韦泽吴祖光罗会斌约尼·乔克伦
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1