System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 高效任务分配制造技术_技高网
当前位置: 首页 > 专利查询>ARM有限公司专利>正文

高效任务分配制造技术

技术编号:40303908 阅读:8 留言:0更新日期:2024-02-07 20:49
本发明专利技术公开了一种方法和处理器,该处理器包括命令处理单元,该命令处理单元用以从主处理器接收待执行的命令序列;以及基于该命令序列生成多个任务。该处理器还包括多个计算单元,每个计算单元具有用于执行第一任务类型的任务的第一处理模块、用于执行不同于第一任务类型的第二任务类型的任务的第二处理模块、以及由至少第一处理模块和第二处理模块共享的本地高速缓存。该命令处理单元向多个计算单元中的至少一个计算单元发布多个任务,并且其中多个计算单元中的至少一个计算单元用以处理多个任务中的至少一个任务。

【技术实现步骤摘要】

本专利技术涉及用于处理诸如神经网络处理操作和图形处理操作之类的不同任务类型的管理的方法、处理器和非暂态计算机可读存储介质。相关技术说明神经网络可用于过程诸如机器学习、计算机视觉和自然语言处理操作。神经网络可对合适的输入数据(例如,图像或声音数据)进行操作以最终提供期望的输出(例如,对图像中的对象或声音片段中的语音的识别,或者从输入数据推断出的其他有用输出)。此过程通常被称为“推断”或“分类”。在图形(图像)处理环境中,神经网络处理也可以用于图像增强(“去噪”)、分割、“抗混叠”、超级采样等,在这种情况下,可以处理合适的输入图像以提供期望的输出图像。神经网络通常将根据操作者的网络来处理输入数据(例如,图像或声音数据),每个操作者执行特定操作。通常将顺序地执行这些操作以产生期望的输出数据(例如,基于图像或声音数据的分类)。每个操作可被称为神经网络处理的“层”。因此,神经网络处理可包括处理“层”序列,使得来自每个层的输出用作下一处理层的输入。在一些数据处理系统中,提供专用神经处理单元(npu)作为硬件加速器,该专用神经处理单元可操作以根据需要并且在需要时,例如响应于在主处理器(例如,中央处理单元(cpu))上执行的应用程序需要机器学习处理,而执行此类机器学习处理。类似地,可提供专用图形处理单元(gpu)作为可操作以执行图形处理的硬件加速器。这些专用硬件加速器可沿着与其他部件并排的相同互连件(总线)提供,使得主处理器可操作以请求硬件加速器相应地执行操作的集合。因此,npu和gpu是用于根据主处理器的请求执行诸如机器学习处理操作和图形处理操作之类的操作的专用硬件单元。


技术介绍


技术实现思路

1、根据第一方面,提供了一种处理器,该处理器包括:命令处理单元,该命令处理单元用以从主处理器接收待执行的命令序列;并且基于命令序列生成多个任务;以及多个计算单元,其中多个计算单元中的至少一个计算单元包括:第一处理模块,该第一处理模块用于执行由命令处理单元生成的第一任务类型的任务;第二处理模块,该第二处理模块用于执行由命令处理单元生成的与第一任务类型不同的第二任务类型的任务;本地高速缓存,该本地高速缓存由至少第一处理模块和第二处理模块共享;其中命令处理单元用以向多个计算单元中的至少一个计算单元发布多个任务,并且其中多个计算单元中的至少一个计算单元用以处理多个任务中的至少一个任务。这使得能够向共享本地高速缓存的不同处理模块发布任务。这提高了处理器的效率和资源使用并且减小了部件大小,因为调度和作业分解任务由命令处理单元承担。此外,命令处理单元基于计算单元可用性来发布任务,使得需要使用相同资源的任务(诸如在一个任务生成输出数据并且该输出数据是另一个任务的输入数据的情况下)可以可使用共享本地高速缓存的方式来调度任务。这减少了对较高级/外部存储器的存储器读/写操作,从而减少了处理量并因此减少了处理时间。

2、命令处理单元可以向给定计算单元的第一处理模块发布第一任务类型的任务,并且向多个给定计算单元的第二处理模块发布第二任务类型的任务。这使得不同类型的任务能够被发布到计算单元的不同处理模块。这提高了效率,因为任务到单独处理模块的调度和发布是由命令处理单元而不是每个计算单元和/或主处理器承担的。

3、第一任务类型是用于承担形成预定义图形处理操作集合中的一个预定义图形处理操作的图形处理操作的至少一部分的任务,该预定义图形处理操作共同地使得能够实现图形处理流水线,并且其中第二任务类型是用于承担神经处理操作的至少一部分的任务。图形处理操作包括以下中的至少一者:图形计算着色器任务;顶点着色器任务;片段着色器任务;曲面细分任务;以及几何着色器任务。这使得能够基于处理操作的类型将命令序列中的给定命令的任务分配给最适当的处理模块。

4、每个计算单元可为图形处理单元的着色器核心。这使得包括需要图形处理和神经处理两者的任务的命令能够使用单件硬件来承担,从而减少存储器事务的数量和硬件大小。

5、第一处理模块可以是图形处理模块,并且第二处理模块可以是神经处理模块。这使得能够在需要使用神经处理单元和图形处理单元两者的单个命令内高效地共享任务,从而提高效率和资源使用。

6、命令处理单元还可以包括至少一个依赖性跟踪器以跟踪命令序列中的命令之间的依赖性;并且其中命令处理单元用以使用至少一个依赖性跟踪器来等待命令序列中的第一命令的给定任务的处理完成,然后发布命令序列中的第二命令的相关联任务以进行处理,其中相关联任务依赖于给定任务。这使得命令处理单元能够基于给定计算单元是否使用前一命令的输出而以给定顺序向给定计算单元发布命令的任务。这通过使得给定命令的任务能够使用/重复使用存储在给定计算单元的本地高速缓存中的数据来提高效率。

7、给定任务的输出可被存储在本地高速缓存中。这通过使得给定命令的任务能够使用/重复使用存储在给定计算单元的本地高速缓存中的数据来提高效率。

8、命令序列中的每个命令可具有元数据,其中元数据可包括命令中的至少多个任务的指示,以及与任务中的每个任务相关联的任务类型。这确保了命令处理单元可以有效地将命令分解成任务,并且指示它们的任务类型,使得它能够向期望的计算单元并且以最高效的方式发布任务。

9、命令处理单元可分配命令序列中的每个命令、命令标识符,并且依赖性跟踪器基于命令标识符跟踪命令序列中的命令之间的依赖性。此外,当第一命令的给定任务依赖于第二命令的相关联任务时,命令处理单元向给定任务和相关联任务分配相同的任务标识符。另外,已被分配相同任务标识符的命令中的每个命令的任务可以在多个计算单元中的相同计算单元上执行。这使得能够有效地跟踪命令、任务以及它们的依赖性,从而提高分配给各个计算单元的效率。

10、被分配第一任务标识符的任务可在多个计算单元中的第一计算单元上执行,并且被分配不同的第二任务标识符的任务可在多个计算单元中的第二计算单元上执行。这使得具有不同任务标识符的任务能够被分配给不同的计算单元,因为它们是不相关的并且不需要使用共享本地高速缓存来高效地执行。

11、被分配第一任务标识符并且具有第一类型的任务可以在多个计算单元中的给定计算单元的第一处理模块上执行,并且被分配不同的第二任务标识符并且具有第二任务类型的任务可以在多个计算单元中的给定计算单元的第二处理模块上执行。这使得具有不同标识符和类型的任务能够被发布给相同的计算单元但是在不同的处理模块上执行,从而提高效率并且确保可用资源的使用的最大化。

12、多个计算单元中的每个计算单元还可包括至少一个任务队列,其中队列任务包括命令序列的至少一部分。这使得计算单元能够具有由命令处理单元生成的给定序列中的任务队列。从而使得能够根据序列并基于资源可用性来调度任务。

13、给定队列可以与至少一个任务类型相关联。这使得队列能够由多种任务类型形成,从而允许计算单元处理不同类型的任务,这提高了调度任务的效率。

14、根据第二方面,提供了一种分配与命令序列中的命令相关联的任务的方法,该方法包括本文档来自技高网...

【技术保护点】

1.一种处理器,所述处理器包括:

2.根据权利要求1所述的处理器,其中所述命令处理单元用以向给定计算单元的所述第一处理模块发布所述第一任务类型的任务,并且用以向多个给定计算单元的所述第二处理模块发布所述第二任务类型的任务。

3.根据权利要求1或权利要求2所述的处理器,其中所述第一任务类型是用于承担形成预定义图形处理操作集合中的一个预定义图形处理操作的图形处理操作的至少一部分的任务,所述预定义图形处理操作共同地使得能够实现图形处理流水线,并且其中所述第二任务类型是用于承担神经处理操作的至少一部分的任务。

4.根据权利要求3所述的处理器,其中所述图形处理操作包括以下中的至少一者:

5.根据任一前述权利要求所述的处理器,其中每个计算单元是图形处理单元中的着色器核心。

6.根据任一前述权利要求所述的处理器,其中所述第一处理模块是图形处理模块,并且其中所述第二处理模块是神经处理模块。

7.根据任一前述权利要求所述的处理器,其中所述命令处理单元还包括至少一个依赖性跟踪器以跟踪所述命令序列中的命令之间的依赖性;并且其中所述命令处理单元用以使用所述至少一个依赖性跟踪器来等待所述命令序列中的第一命令的给定任务的处理完成,然后发布所述命令序列中的第二命令的相关联任务以进行处理,其中所述相关联任务依赖于所述给定任务。

8.根据权利要求7所述的处理器,其中所述给定任务的输出存储在所述本地高速缓存中。

9.根据权利要求7或权利要求8所述的处理器,其中所述命令序列中的每个命令具有元数据,其中所述元数据包括所述命令中的至少多个任务的指示,以及与所述任务中的每个任务相关联的任务类型。

10.根据权利要求9所述的处理器,其中所述命令处理单元分配所述命令序列中的每个命令、命令标识符,并且所述依赖性跟踪器基于所述命令标识符跟踪所述命令序列中的命令之间的依赖性。

11.根据权利要求10所述的处理器,其中当所述第一命令的所述给定任务依赖于所述第二命令的所述相关联任务时,所述命令处理单元为所述给定任务和所述相关联任务分配相同任务标识符。

12.根据权利要求11所述的处理器,其中已被分配所述相同任务标识符的所述命令中的每个命令的任务在所述多个计算单元中的相同计算单元上执行。

13.根据权利要求10至12中任一项所述的处理器,其中被分配第一任务标识符的任务在所述多个计算单元中的第一计算单元上执行,并且被分配不同的第二任务标识符的任务在所述多个计算单元中的第二计算单元上执行。

14.根据权利要求11或权利要求12所述的处理器,其中被分配第一任务标识符并且具有所述第一类型的任务在所述多个计算单元中的给定计算单元的所述第一处理模块上执行,并且被分配不同的第二任务标识符并且具有所述第二任务类型的任务在所述多个计算单元中的所述给定计算单元的所述第二处理模块上执行。

15.根据任一前述权利要求所述的处理器,其中所述多个计算单元中的每个计算单元还包括至少一个任务队列,其中所述队列任务包括所述命令序列的至少一部分。

16.根据权利要求15所述的处理器,其中给定队列与至少一个任务类型相关联。

17.一种分配与命令序列中的命令相关联的任务的方法,所述方法包括:

18.根据权利要求17所述的方法,其中当与所述第二命令相关联的所述任务依赖于与所述第一命令相关联的所述任务时,所述命令处理单元等待与所述第一命令相关联的所述任务的处理完成,然后向所述给定计算单元发布与所述第二命令相关联的所述任务。

19.根据权利要求17或权利要求18所述的方法,其中每个命令具有相关联的元数据,所述相关联的元数据包括所述给定命令中的至少多个任务的指示,以及与所述多个任务中的每个任务相关联的任务类型。

20.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储在其上的计算机可读指令集合,所述计算机可读指令在由至少一个处理器执行时被布置为分配与命令序列中的命令相关联的任务,其中所述指令在被执行时使得所述至少一个处理器:

...

【技术特征摘要】

1.一种处理器,所述处理器包括:

2.根据权利要求1所述的处理器,其中所述命令处理单元用以向给定计算单元的所述第一处理模块发布所述第一任务类型的任务,并且用以向多个给定计算单元的所述第二处理模块发布所述第二任务类型的任务。

3.根据权利要求1或权利要求2所述的处理器,其中所述第一任务类型是用于承担形成预定义图形处理操作集合中的一个预定义图形处理操作的图形处理操作的至少一部分的任务,所述预定义图形处理操作共同地使得能够实现图形处理流水线,并且其中所述第二任务类型是用于承担神经处理操作的至少一部分的任务。

4.根据权利要求3所述的处理器,其中所述图形处理操作包括以下中的至少一者:

5.根据任一前述权利要求所述的处理器,其中每个计算单元是图形处理单元中的着色器核心。

6.根据任一前述权利要求所述的处理器,其中所述第一处理模块是图形处理模块,并且其中所述第二处理模块是神经处理模块。

7.根据任一前述权利要求所述的处理器,其中所述命令处理单元还包括至少一个依赖性跟踪器以跟踪所述命令序列中的命令之间的依赖性;并且其中所述命令处理单元用以使用所述至少一个依赖性跟踪器来等待所述命令序列中的第一命令的给定任务的处理完成,然后发布所述命令序列中的第二命令的相关联任务以进行处理,其中所述相关联任务依赖于所述给定任务。

8.根据权利要求7所述的处理器,其中所述给定任务的输出存储在所述本地高速缓存中。

9.根据权利要求7或权利要求8所述的处理器,其中所述命令序列中的每个命令具有元数据,其中所述元数据包括所述命令中的至少多个任务的指示,以及与所述任务中的每个任务相关联的任务类型。

10.根据权利要求9所述的处理器,其中所述命令处理单元分配所述命令序列中的每个命令、命令标识符,并且所述依赖性跟踪器基于所述命令标识符跟踪所述命令序列中的命令之间的依赖性。

11.根据权利要求10所述的处理器,其中当所述第一命令的所述给定任务依赖于所述第二命令的所述...

【专利技术属性】
技术研发人员:亚历山大·尤金·查尔芬约翰·韦克菲尔德·布拉泽斯三世鲁纳·霍姆萨穆埃·詹姆斯·爱德华·马丁
申请(专利权)人:Arm有限公司
类型:发明
国别省市:

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

1