片间通信的电路、方法和系统技术方案

技术编号:33999086 阅读:12 留言:0更新日期:2022-07-02 11:40
本公开提供一种片间通信的电路、方法和系统,该方法可以实现在计算装置中,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。据。据。

【技术实现步骤摘要】
片间通信的电路、方法和系统


[0001]本公开涉及人工智能领域,更具体地,涉及多处理器的片间通信领域。

技术介绍

[0002]在神经网络的训练中,如果单机训练规模为X的神经网络耗时T,那么当有N台相同机器训练该神经网络时,理想状态下,训练耗时应该为T/N,这也被称为理想线性加速比。但是,理想线性加速是不现实的,因为引入了通信开销。虽然计算部分是可以线性加速的;但是通信部分(如AllReduce算法)是客观存在且无法消除的。
[0003]因此,为了提升芯片的算力和运行效率,需要提升片间通信的效率。
[0004]此外,在现有技术中,只有当前任务内核kernel执行结束后,当前任务才会释放运算单元的使用权,存在运算单元的运算资源被浪费的问题。

技术实现思路

[0005]根据本公开的第一方面,提供一种在片间通信电路中进行任务调度的方法,所述片间通信电路包括第一调度单元和第一运算单元,所述方法包括:通过所述第一运算单元从所述第一调度单元接收第一任务描述信息,并根据所述第一任务描述信息来执行第一任务;在所述第一运算单元处,响应于第一特定事件的产生而挂起第一任务的执行;在所述第一运算单元处,响应于挂起第一任务的执行而执行第二任务。
[0006]根据本公开的第二方面,提供一种在片间通信电路中进行任务调度的方法,所述片间通信电路包括第二调度单元、第二运算单元和第二存储单元,所述方法包括:通过所述第二运算单元从所述第二调度单元接收第三任务描述信息;通过所述第二运算单元从所述第二存储单元提取待处理数据,并根据所述第三任务描述信息对所述待处理数据执行第三任务;在所述第二运算单元处,响应于第二特定事件的产生而挂起第三任务的执行;在所述第二运算单元处,响应于所述挂起第三任务的执行而执行第四任务。
[0007]根据本公开的第三方面,提供一种用于片间通信的电路,包括第一调度单元和第一运算单元,其中所述第一运算单元配置为:从所述第一调度单元接收第一任务描述信息,并根据所述第一任务描述信息来执行第一任务;响应于第一特定事件的产生而挂起第一任务的执行;响应于挂起第一任务的执行而执行第二任务。
[0008]根据本公开的第四方面,提供一种用于片间通信的电路,包括第二调度单元、第二运算单元和第二存储单元,其中,所述第二运算单元配置为,从所述第二调度单元接收第三任务描述信息;从所述第二存储单元提取待处理数据,并根据所述第三任务描述信息对所述待处理数据执行第三任务;响应于第二特定事件的产生而挂起第三任务的执行;响应于所述挂起第三任务的执行而执行第四任务。
[0009]根据本公开的第五方面,提供一种芯片,包括如上所述的电路。
[0010]根据本公开的第六方面,提供一种用于片间通信的系统,包括第一芯片和第二芯片。
[0011]根据本公开的第七方面,提供一种电子设备,包括如上所述的芯片或系统。
附图说明
[0012]通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0013]图1示出了根据本公开一个实施方式的片间通信的系统示意图;
[0014]图2示出了根据本公开另一个实施方式的用于片间通信的电路的示意图;
[0015]图3示出了根据本公开另一个实施方式的用于片间通信的电路的示意图;
[0016]图4示出了根据本公开的另一个实施方式的用于片间通信的电路的示意图;
[0017]图5示出了根据本公开另一个实施方式的进行片间通信的系统的示意图;
[0018]图6示出了根据本公开的一个实施方式的一种用于进行片间通信的方法;
[0019]图7示出了一种组合处理装置;
[0020]图8提供了一种示例性的板卡;
[0021]图9a和图9b示出了根据本公开一个实施方式的在片间通信电路中进行片间通信的方法;
[0022]图10a和图10b示出了根据本公开另一个实施方式的在片间通信电路中进行片间通信的方法;
[0023]图11示出了本公开中将执行中的任务休眠(挂起)

唤醒的一种应用场景。
具体实施方式
[0024]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0025]应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0026]还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0027]以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
[0028]图1示出了根据本公开一个实施方式的片间通信的系统示意图。
[0029]如图1所示,该系统包括了芯片1和芯片2,其中芯片1包括第一调度单元JS(Job Scheduler)1,第一运算单元TC1,发送单元TX,第一内存管理子单元SMMU(Memory Management Unit)11,第二内存管理子单元SMMU12以及第一存储单元LLC/HBM1;芯片2包括第二调度单元JS2,第二运算单元TC2,接收单元RX,第三内存管理子单元SMMU21,第四内存管理子单元SMMU22以及第二存储单元LLC/HBM2。
[0030]运算单元TC1和TC2可以是各种类型的处理内核,例如IPU(图像处理单元)等。
[0031]如图1所示,第一调度单元JS1从主机1接收任务描述信息(例如任务描述符),该任务描述信息包括了任务ID、任务的类别、数据尺寸、数据地址、参数尺寸、处理内核(例如第一运算单元)配置信息、处理内核的地址信息以及任务的拆分信息等等。需要理解的是,在从主机首次接收信息的时候,还包括了从主机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在片间通信电路中进行任务调度的方法,所述片间通信电路包括第一调度单元和第一运算单元,所述方法包括:通过所述第一运算单元从所述第一调度单元接收第一任务描述信息,并根据所述第一任务描述信息来执行第一任务;在所述第一运算单元处,响应于第一特定事件的产生而挂起第一任务的执行;通过所述第一运算单元处响应于挂起第一任务的执行而执行第二任务。2.根据权利要求1所述的方法,其中,响应于挂起第一任务的执行而执行第二任务,包括:在所述第一调度单元处,响应于所述第一运算单元挂起第一任务的执行,向所述第一运算单元发送第二任务描述信息;在所述第一运算单元处,响应于接收到所述第二任务描述信息,执行所述第二任务。3.根据权利要求1或2所述的方法,其中,所述片间通信电路进一步包括发送单元,在所述发送单元处,从所述第一运算单元接收已处理数据,并向片外发送所述已处理数据,其中,响应于第一特定事件的产生而挂起第一任务的执行包括:响应于所述发送单元对所述已处理数据的发送被阻塞而挂起第一任务的执行。4.根据权利要求1

3中任意一项所述的方法,其中,所述片间通信电路进一步包括第一存储单元,所述第一存储单元配置为从所述第一运算单元接收已处理数据以对所述已处理数据进行缓存,其中,响应于第一特定事件的产生而挂起第一任务的执行包括:响应于所述第一存储单元对所述已处理数据缓存失败而挂起第一任务的执行。5.根据权利要求4所述的方法,其中,所述第一存储单元包括第一内存管理子单元和第一缓存子单元,所述第一内存管理子单元配置为管理所述已处理数据在所述第一缓存子单元上的存储;其中响应于所述第一内存管理子单元和所述第一缓存子单元中至少一个对所述已处理数据缓存失败而挂起第一任务的执行。6.根据权利要求1

5中任意一项所述的方法,其中,响应于第一特定事件的产生而挂起第一任务的执行包括:响应于第一任务中包括挂起指令而挂起所述第一任务的执行。7.根据权利要求1

6中任意一项所述的方法,进一步包括:在所述第一运算单元和第一调度单元处建立任务执行列表,所述任务执行列表至少包括第一任务被挂起的位置。8.根据权利要求7所述的方法,进一步包括:在所述第一运算单元处,响应于所述第一特定事件的结束,根据被挂起的位置来恢复对所述第一任务的执行。9.根据权利要求7所述的方法,其中,被挂起的任务为多个时,随机地恢复对所述多个任务中一个的执行;根据多个任务的优先级来恢复具有高优先级的任务的执行。10.一种在片间通信电路中进行任务调度的方法,所述片间通信电路包括第二调度单元、第二运算单元和第二存储单元,所述方法包括:通过所述第二运算单元从所述第二调度单元接收第三任务描述信息;通过所述第二运算单元从所述第二存储单元提取待处理数据,并根据所述第三任务描述信息对所述待处理数据执行第三任务;
在所述第二运算单元处,响应于第二特定事件的产生而挂起第三任务的执行;通过所述第二运算单元处响应于所述挂起第三任务的执行而执行第四任务。11.根据权利要求10所述的方法,其中,在所述第二运算单元处,响应于所述挂起第三任务的执行而执行第四任务包括:在所述第二调度单元处,响应于所述第二运算单元挂起第三任务的执行,向所述第二运算单元发送第四任务描述信息;在所述第二运算单元处,响应于接收到所述第四任务描...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:

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

1