用于芯片间通信的处理单元、处理系统及方法技术方案

技术编号:37890698 阅读:25 留言:0更新日期:2023-06-18 11:54
本公开提供了一种用于芯片间通信的处理单元、处理系统及方法。该处理单元包括:多个处理核;多个存储器,与处理核耦合;多个互连,被配置为将处理单元通信耦合到包括第二处理单元的多个其他处理单元,其中,多个互连包括在一端连接到处理单元的端口且在另一端连接到第二处理单元的端口的互连;以及通信控制器,通信控制器耦合到处理核,且通信控制器基于存储器访问请求中的地址,将输出的存储器访问请求映射到多个互连中的选定互连。本公开通过高带宽芯片间网络,在不使用常规网络(例如,以太网)的情况下实现系统中的神经网络处理单元之间的通信,从而避免常规网络的带宽限制和相对速度不足,从而提高芯片间通信的数据传输速率和传输带宽。和传输带宽。和传输带宽。

【技术实现步骤摘要】
用于芯片间通信的处理单元、处理系统及方法


[0001]本公开涉及数据处理技术,尤其涉及用于芯片间通信的处理单元、处理系统及方法。

技术介绍

[0002]图1是说明用于加速神经网络的常规系统100的框图。通常,系统100包括多个服务器,并且每个服务器包括多个并行计算单元。在图1的示例中,系统100包括服务器101和服务器102。服务器101包括连接到外围组件互连高速(Peripheral Component Interconnect Express,PCIe)总线111的神经网络处理单元(neural network processing unit,NPU),即NPU_0至NPU_n,且服务器102包括连接到PCIe总线112的类似的NPU阵列。每个NPU例如包括但不限于包括诸如处理核和存储器(未示出)之类的元件。如图1所示,系统100中的每个服务器包括主机中央处理单元(CPU),且通过相应的网络接口控制器或网络接口卡(network interface card,NIC)连接到网络130。
[0003]系统100包括例如使用分区全局地址空间(partitioned global address space,PGAS)编程模型的统一的存储器寻址空间。因此,在图1的示例中,服务器101的每个NPU可以从服务器101或服务器102的任何其他NPU上的存储器读取数据或向服务器101或服务器102的任何其他NPU上的存储器写入数据,反之亦然。例如,为了将数据从服务器101的NPU_0写入NPU_n,通过PCIe总线111将数据从NPU_0发送到NPU_n;且为了将数据从服务器101的NPU_0写入服务器102的NPU_m上的存储器,通过PCIe总线111将数据从NPU_0发送到NIC121,然后通过网络130将数据发送到NIC122,然后通过PCIe总线112将数据发送到NPU_m。
[0004]系统100可用于诸如但不限于图分析和图神经网络的应用,更具体地,系统100可以用于诸如但不限于在线购物引擎、社交网络、推荐引擎、映射引擎、故障分析、网络管理和搜索引擎的应用。这些应用执行大量的存储器访问请求(例如,读和写请求),且因此还传送(例如,读和写)大量的用于处理的数据。虽然PCIe带宽和数据传输速率相当可观,但它们对这些应用来说仍然是有限的。对于这些应用来说,PCIe确实太慢且其带宽太窄。

技术实现思路

[0005]根据本公开的实施例提供了上述问题的解决方案。概括而言,根据本公开的实施例提供了计算系统和诸如但不限于神经网络和人工智能(AI)工作负载的应用的运行的改进。更具体地,根据本公开的实施例提供了方法、系统和编程模型,通过提高发送和接收系统元件之间的存储器访问请求(例如,读请求和写请求)以及完成结果数据传输的速度,来提高诸如神经网络和AI工作负载等应用的执行速度。本公开的系统、方法和编程模型允许系统中的处理单元在不使用常规网络(例如,以太网)的情况下通信,该常规网络使用相对窄且慢的外围组件互连高速(PCIe)总线。
[0006]在一些实施例中,系统包括高带宽芯片间网络(ICN),ICN允许系统中神经网络处理单元之间通信。例如,ICN允许NPU与位于相同计算节点或服务器的其他NPU通信,也允许
NPU与位于其他计算节点或服务器的NPU通信。在一些实施例中,可以在命令级(例如,在直接存储器访问级)和指令级(例如,在更细粒度的加载/存储指令级)通信。ICN允许系统中的NPU在不使用PCIe总线的情况下进行通信,从而避免其带宽限制和相对的速度不足。
[0007]可以在推送模式(push mode)或拉取模式(pull mode)下在NPU之间传送数据。当在命令级推送模式下操作时,第一NPU将数据从第一NPU的存储器复制到第二NPU的存储器,然后在第二NPU设置标志,且第二NPU等待直到该标志被设置为使用从第一NPU推送的数据。当在命令级拉取模式下操作时,第一NPU分配第一NPU的存储器,然后在第二NPU设置标志以指示第一NPU的存储器已分配,且第二NPU等待直到该标志被设置为从第一NPU的分配的存储器中读取数据。当在指令级推送模式下操作时,由第一处理单元正在执行的处理任务相关联的操作数被存储在第一处理单元的缓冲器中,并且处理任务的结果被写入第二处理单元的缓冲器中。
[0008]通过上述方案,使得可以在不使用常规网络(例如,以太网)的情况下实现系统中的神经网络处理单元之间的通信,从而避免其带宽限制和相对速度不足,从而提高芯片间通信的数据传输速率和传输带宽。
[0009]本领域普通技术人员在阅读在各附图中示出的实施例的以下详细描述后,将认识到本公开的各种实施例的这些和其他目的和优点。
附图说明
[0010]包含在本说明书中且形成本说明书的一部分的附图示出了本公开的实施例,并且与详细描述一起用于解释本公开的原理,其中类似的编号描述了类似的元件。
[0011]图1示出了示例常规系统。
[0012]图2A示出了根据本公开实施例的示例系统的框图。
[0013]图2B示出了根据本公开实施例的示例ICN拓扑结构的框图。
[0014]图2C示出了根据本公开实施例的示例神经网络处理单元(NPU)的框图。
[0015]图3A示出了根据本公开实施例的NPU的框图。
[0016]图3B示出了根据本公开实施例的NPU中交换机的元件。
[0017]图4示出了根据本公开实施例的在命令级数据推送模式下操作的NPU的元件。
[0018]图5示出了根据本公开实施例的在命令级数据拉取模式下操作的NPU的元件。
[0019]图6示出了根据本公开实施例的在指令级推送模式下操作的NPU的元件。
[0020]图7示出了根据本公开实施例的用于芯片间通信的示例方法的流程图。
[0021]图8示出了根据本公开实施例的用于命令级推送操作的示例方法的流程图。
[0022]图9示出了根据本公开实施例的用于命令级拉取操作的示例方法的流程图。
[0023]图10示出了根据本公开实施例的用于指令级推送操作的示例方法的流程图。
具体实施例
[0024]现在将详细参考本公开的各种实施例,其示例在附图中示出。尽管结合这些实施例进行描述,但将理解,它们并不旨在将本公开限制到这些实施例。相反,本公开旨在涵盖可包括在所附权利要求所定义的本公开的精神和范围内的替代、修改和等同物。此外,在本公开的以下详细描述中,为了提供对本公开的透彻理解,阐述了许多具体细节。然而,将理
解,本公开可以在没有这些特定细节的情况下实施。在其他实例中,未详细描述公知的方法、过程、组件和电路,以便避免不必要地模糊本公开的方面。
[0025]以下详细描述的某些部分以过程、逻辑块、处理和对计算机存储器中的数据位的操作的其他符号表示的方式呈现。这些描述和表示是数据处理
的技术人员使用的手段,以最有效地将其工作的实质传达给本领域的其他技术人员。在本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理单元,所述处理单元位于第一服务器,包括:多个处理核;多个存储器,与所述处理核耦合;多个互连,被配置为将所述处理单元通信耦合到包括第二处理单元的多个其他处理单元,其中,所述多个互连包括在一端连接到所述处理单元的端口且在另一端连接到所述第二处理单元的端口的互连;以及通信控制器,所述通信控制器耦合到所述处理核,且所述通信控制器基于所述存储器访问请求中的地址,将输出的存储器访问请求映射到所述多个互连中的选定互连。2.根据权利要求1所述的处理单元,其中,所述第二处理单元位于所述第一服务器,且所述处理单元和所述第二处理单元还通过所述第一服务器上的总线彼此通信耦合。3.根据权利要求1所述的处理单元,其中,所述第二处理单元位于第二服务器,所述处理单元和所述第二处理单元还通过以下方式彼此通信耦合:位于所述第一服务器的第一总线和第一网络接口卡、位于所述第二服务器的第二总线和第二网络接口卡、以及耦合到所述第一网络接口卡和所述第二网络接口卡的网络。4.根据权利要求1所述的处理单元,还包括:交换机,耦合到所述多个互连;所述通信控制器包括:第一功能块,用于第一数据量相关联的第一类型的存储器访问请求;以及第二功能块,用于第二数据量相关联的第二类型的存储器访问请求,所述第二数据量小于所述第一数据量;其中,所述第一类型的存储器访问请求由所述多个处理核中的处理核向耦合到所述第一功能块的缓冲器发出,并且所述第二类型的存储器访问请求由所述多个处理核中的处理核经由片上网络向所述第二功能块发出。5.根据权利要求1所述的处理单元,其中,所述处理单元用于在推送模式下将数据推送到所述第二处理单元,其中,在推送模式下,所述处理单元将数据从所述处理单元上的存储器复制到所述第二处理单元上的存储器,然后在所述第二处理单元设置标志,以指示从所述处理单元推送的数据可用。6.根据权利要求1所述的处理单元,其中,在拉取模式下由所述第二处理单元从所述处理单元拉取来自所述处理单元的数据,其中,在拉取模式下,所述处理单元分配所述处理单元上的存储器,然后在所述第二处理单元设置标志,以指示所述处理单元上的存储器已分配,并且来自所述处理单元上的存储器的数据可读取。7.根据权利要求1所述的处理单元,其中,所述处理单元用于在推送模式下将数据推送到所述第二处理单元,其中,在推送模式下,将由所述处理单元正在执行的处理任务相关联的操作数存储在所述处理单元上的缓冲器中,并且将所述处理任务的结果写入所述第二处理单元上的缓冲器中;所述处理任务包括多个线程,其中选择所述多个线程中的线程且选择的线程与运行在所述第二处理单元上的线程通信,以在所述第二处理单元上设置标志,以向所述第二处理单元指示所述第二处理单元上的缓冲器以及所述处理任务相关联的所有写操作已完成。8.一种处理系统,包括:
多个节点,其中所述多个节点中的每个节点包括多个处理单元,所述多个处理单元包括第一处理单元和第二处理单元,并且所述多个处理单元中的每个处理单元包括多个端口;以及芯片间网络,耦合到所述多个节点,其中所述芯片间网络包括多个互连,所述多个互连被配置为通信耦合所述多个处理单元,并且通过所述多个互连中的互连将所述第一处理单元的所述多个端口中的端口和所述第二处理单元的多个端口中的端口连接,所述多个互连中的互连在一端连接到所述第一处理单元的端口且在另一端连接到所述第二处理单元的端口。9.根据权利要求8所述的处理系统,其中,所述第一处理单元和所述第二处理单元位于所述多个节点中的同一节点上,并且所述第一处理单元和所述第二处理单元还通过所述同一节点上的总线彼此通信耦合。10.根据权利要求8所述的处理系统,其中,所述第一处理单元位于所述多个节点中的第一节点上,所述第二处理单元位于所述多个节点中的第二节点上,且所述第一处理单元和所述第二处理单元还通过以下方式彼此通信耦合:位于所述第一节点的第一总线和第一网络接口卡、位于所述第二节点的第二总线和第二网络接口卡以及耦合到所述第一网络接口卡和所述第二网络接口卡的网络。11.根据权利要求8所述的处理系统,其中,当在推送模式下操作时,所述...

【专利技术属性】
技术研发人员:韩亮吴政原朱国瑜钟嵘焦阳陆叶吴炜邹云晓尹莉
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1