用于提高AI引擎MAC利用率的方法技术

技术编号:25710217 阅读:18 留言:0更新日期:2020-09-23 02:56
本发明专利技术实施例公开一种集成电路和用于提高人工智能(AI)引擎中的集成电路上的乘法和累加(MAC)单元的利用率的方法。在实施例中,集成电路可以包括调度器,用于分配MAC单元以执行部署在AI引擎上的神经网络模型以处理输入数据。调度器包括MAC单元的状态信息,并且可以基于状态信息选择一个或多个空闲的MAC单元用于处理特征映射片。集成电路可以动态地将空闲的MAC单元映射到输入特征映射,从而提高MAC单元的利用率。可以在静态随机存取存储器(SRAM)中提供一对链表,每个链表具有参考头部,以便仅存储用于当前正在处理的层的特征映射片和权重。当处理下一层时,两个参考头部可以交换,使得用于当前层的输出特征映射片可以用作用于下一层的输入特征映射。

【技术实现步骤摘要】
用于提高AI引擎MAC利用率的方法
本公开的实施例大体涉及人工智能(AI)引擎。更特别地,本公开的实施例涉及AI引擎中的乘法累加器(MAC单元)利用率。
技术介绍
作为人工智能(AI)的分支,机器学习可以执行任务而不使用为该任务特别编程的应用程序。相反,机器学习可以在训练过程期间从给定任务的过去示例中学习,训练过程通常涉及从数据集学习权重。机器学习模型(例如,神经网络模型)可以通过推断对输入数据执行任务。在推断期间,可以从输入数据中提取特征并使用分类器将特征与分数进行比较,以进行预测并提供结果。特征提取和分类可以是计算密集的,并且可以包括对于模型中的每层计算特征和权重的点积。因此,当机器学习模型在AI引擎上运行时,需要由AI引擎执行大量的乘法和累加(MAC)操作。AI引擎可以包括多个MAC单元,MAC单元是用于执行MAC操作的硬件单元或块。在机器学习模型被部署在AI引擎上用于执行之前,映射工具可被用于从模型生成图元文件以指定模型中的每层与AI引擎中的MAC单元之间的静态映射。静态映射可以导致AI引擎中MAC单元的较低利用率。例如,当输入特征映射的片需要并非AI引擎中的总MAC单元的倍数的MAC的数量时,一些MAC可能是空闲的。由于静态映射,空闲MAC不能被用于处理输入特征映射的下一片。对于另一示例,由于特征映射的稀疏性,MAC单元可能不均衡地完成任务,从而使一些MAC单元空闲。即使对于静态地映射到特征映射片的MAC单元,一个或多个MAC单元也可能由于数据提取或指令提取中的等待时间而需要等待。<br>
技术实现思路
本专利技术的实施例的第一方面提供一种集成电路,包括:多个乘法和累加MAC单元;以及调度器,耦接到MAC单元以管理并分配所述多个MAC单元的至少部分以执行被部署为人工智能AI引擎的一部分的神经网络模型以处理输入数据,所述调度器维护所述多个MAC单元的状态信息;其中响应于接收到从所述输入数据中提取的特征映射的片,所述调度器基于与MAC单元对应的状态信息,从所述多个MAC单元中选择一个或多个MAC单元以处理特征映射片。本专利技术的实施例的第二方面提供一种用于在集成电路内处理数据的方法,所述方法包括:由具有多个乘法和累加MAC单元的集成电路的调度器接收从提供至神经网络模型的输入数据中提取的特征映射的片,所述神经网络模型被部署为人工智能AI引擎的一部分,所述调度器维护所述集成电路上的多个MAC单元的状态信息;响应于接收特征映射片,由所述调度器从所述多个MAC单元中选择一个或多个MAC单元;以及使用一个或多个选择的MAC单元处理特征映射片。本专利技术的实施例的第三方面提供一种数据处理系统,包括:主机处理器;以及耦接到所述主机处理器的一个或多个数据处理器,数据处理器中的每个都是集成电路的形式,其中数据处理器中的每个都包括:多个乘法和累加MAC单元,以及调度器,耦接到MAC单元以管理并分配所述多个MAC单元的至少部分以执行被部署为人工智能AI引擎的一部分的神经网络模型以处理从所述主机处理器接收的输入数据,所述调度器维护所述多个MAC单元的状态信息;其中响应于接收到从所述输入数据中提取的特征映射的片,所述调度器基于与MAC单元对应的状态信息,从所述多个MAC单元中选择一个或多个MAC单元以处理特征映射片。附图说明本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中,相同的附图标记表示相似的元件。图1示出根据实施例的AI引擎的示例。图2示出根据实施例的用于提高示例AI引擎中的MAC单元的利用率的集成电路的示例。图3进一步示出根据实施例的用于提高示例AI引擎中的MAC单元的利用率的集成电路。图4A-4D示出根据实施例的由示例AI引擎对于层N的输入特征映射片的处理。图5示出根据实施例的示出提高AI引擎中的MAC单元的利用率的示例过程的流程图。图6是示出可与一个实施例一起使用的数据处理系统的示例的框图。具体实施方式将参考以下论述的细节描述本公开的各个实施例和方面,且附图将说明各个实施例。以下描述和附图是本公开的说明,而不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各个实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简明讨论,没有描述公知或常规的细节。说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。如上所述,神经网络模型的不同层与AI引擎中的MAC单元之间的静态映射可能导致MAC单元的低利用率。根据各个实施例,可以使用神经网络模型的不同层与AI引擎中的MAC单元之间的动态映射提高MAC单元的利用率。在一个实施例中,集成电路可以包括多个MAC单元;以及调度器,用于分配MAC单元以执行被部署为人工智能(AI)引擎的一部分的神经网络模型以处理输入数据,调度器维护用于多个MAC单元的状态信息。响应于接收从输入数据中提取的特征映射的片,调度器基于状态信息从MAC单元中选择一个或多个空闲的MAC单元,以用于处理特征映射片。在一个实施例中,一种用于提高AI引擎中的集成电路上的MAC单元的利用率的方法可以包括:由集成电路上的调度器接收从提供至部署在AI引擎上的神经网络模型的输入数据中提取的特征映射的片,调度器包括用于MAC单元的状态信息;响应于接收特征映射片,基于状态信息从MAC单元中选择一个或多个空闲的MAC单元;以及使用一个或多个选择的空闲的MAC单元处理特征映射片。在一个实施例中,调度器包括具有比特阵列的调度器映射,并且比特阵列的每个元素包括指示对应MAC单元是空闲还是忙碌的比特。调度器可以设置比特阵列中的对应比特,以便当MAC单元被分配给特征映射片时将该MAC单元标记为忙碌,并且当该MAC单元中的每个处理元件(PE)已经完成其被分配的计算时,重置对应比特以将该MAC单元标记为空闲。在AI引擎上调度特征映射片用于执行之前,调度器可以检查调度器映射以确定集成电路上的空闲的MAC单元的处理能力足以用于处理特征映射片。调度器是O(1)调度器,其可以是在多个MAC单元中实现的硬件调度器或者在集成电路上的双倍数据速率同步动态随机存取存储器(DDRDRAM)中实现的软件调度器。在一个实施例中,可以从集成电路上的最长连续空闲的MAC单元中选择一个或多个MAC单元。选择的MAC单元的连续性可以基于它们的对应比特在比特阵列中的位置,并且可以指示它们在集成电路上的物理接近性。在一个实施例中,集成电路包括静态随机存取存储器(SRAM),其存储输入特征映射、输出特征映射以及神经网络模型的当前层的权重。当前层是当前正由AI引擎处理的层。可以使用第一头部链接用于当前层的输入特征映射的片以创建第一链表。在AI引擎已经处理输入特征映射的片后,可以从第一链表中移除输入特征映射片。AI引擎在完成对输入特征映射片的处理后,可以生成对应的输出特征映射片。对应本文档来自技高网
...

【技术保护点】
1.一种集成电路,包括:/n多个乘法和累加MAC单元;以及/n调度器,耦接到MAC单元以管理并分配所述多个MAC单元的至少部分以执行被部署为人工智能AI引擎的一部分的神经网络模型以处理输入数据,所述调度器维护所述多个MAC单元的状态信息,/n其中响应于接收到从所述输入数据中提取的特征映射的片,所述调度器基于与MAC单元对应的状态信息,从所述多个MAC单元中选择一个或多个MAC单元以处理特征映射片。/n

【技术特征摘要】
20190314 US 16/354,1071.一种集成电路,包括:
多个乘法和累加MAC单元;以及
调度器,耦接到MAC单元以管理并分配所述多个MAC单元的至少部分以执行被部署为人工智能AI引擎的一部分的神经网络模型以处理输入数据,所述调度器维护所述多个MAC单元的状态信息,
其中响应于接收到从所述输入数据中提取的特征映射的片,所述调度器基于与MAC单元对应的状态信息,从所述多个MAC单元中选择一个或多个MAC单元以处理特征映射片。


2.如权利要求1所述的集成电路,其中所述调度器包括具有比特阵列的调度器映射,所述比特阵列的每个元素对应于所述多个MAC单元中的一个,以及包括指示对应的MAC单元是空闲还是忙碌的比特。


3.如权利要求2所述的集成电路,其中所述调度器在所述多个MAC单元中的一个MAC单元被分配给特征映射片时设置所述比特阵列中的对应比特以将所述MAC单元标记为忙碌,以及在所述MAC单元中的多个处理元件PE中的每个已经完成其被分配的计算时重置所述对应比特以将所述MAC单元标记为空闲。


4.如权利要求2所述的集成电路,其中所述调度器在调度特征映射片用于在所述AI引擎上执行之前检查所述调度器映射以确定所述集成电路中的空闲的MAC单元的处理能力足以处理特征映射片。


5.如权利要求2所述的集成电路,其中所述一个或多个MAC单元选自所述集成电路上的最长连续空闲的MAC单元,其中选择的MAC单元的连续性基于它们的对应比特在所述比特阵列中的位置,以及指示它们在所述集成电路上的物理接近性。


6.如权利要求1所述的集成电路,其中,所述调度器是在所述多个MAC单元中实现的O(1)硬件调度器,或者是在所述集成电路上的动态随机存取存储器中实现的O(1)软件调度器。


7.如权利要求1所述的集成电路,还包括:
静态随机存取存储器SRAM,用以存储用于所述神经网络模型的多个层中的每层的输入特征映射、输出特征映射以及权重。


8.如权利要求7所述的集成电路,其中用于所述神经网络模型的当前层的输入特征映射的多个片与第一头部链接以创建第一链表,以及其中在一个输入特征映射片已经被所述AI引擎处理后,将从所述第一链表中移除所述输入特征映射片。


9.如权利要求8所述的集成电路,其中与处理的输入特征映射片对应的输出特征映射片被链接到第二头部以创建用于当前层的第二链表。


10.如权利要求9所述的集成电路,其中当用于所述当前层的输入特征映射的多个片中的最后一片被处理时,所述第一头部将与所述第二头部交换,以便所述第二链表中的用于所述当前层的输出特征映射片将被提供作为用于所述神经网络模型的下一层的输入特征映射片。


11.一种用于在集成电路内处理数据的方法,所述方法包括:
由具有多个乘法和累加MAC单元的集成电路的调度器接收从提供至神经网络模型的输入数据中提取的特征映射的片,所述神经网络模型被部署为人工智能AI引擎的一部分,

【专利技术属性】
技术研发人员:郭敏
申请(专利权)人:百度美国有限责任公司
类型:发明
国别省市:美国;US

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

1