System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于多级重分配机制的GPGPU分支指令调度方法技术_技高网

基于多级重分配机制的GPGPU分支指令调度方法技术

技术编号:41293973 阅读:2 留言:0更新日期:2024-05-13 14:43
本申请涉及计算机技术领域,公开一种基于多级重分配机制的GPGPU分支指令调度方法,包括:CPU通过PCIE向GPGPU发送指令信息;GPGPU对指令信息进行多级重分配调度处理,多级重分配调度处理包括第一级基于通用指令执行单元/分支预处理单元,判断指令信息,如果该指令信息是非条件分支指令,则进行顺序计算执行;如果该指令是条件分支指令,则预计算各个warp/thread对应的分支指令指令块,并将其发送至第二级分支调度单元;第二级分支调度单元根据接收到的warp/thread与分支指令指令块对应关系,重分配对应的thread执行语句。本公开保障了GPGPU处理分支指令的高并发性。

【技术实现步骤摘要】

本申请涉及计算机,例如涉及一种基于多级重分配机制的gpgpu分支指令调度方法。


技术介绍

1、随着大模型、人工智能日渐成为经济发展新的增长要素,各国各厂商对算力的需求越来越高,高算力芯片的发展也日趋火热。其中通用图形处理器(general-purposecomputing on graphics processing units,gpgpu)产品以其高算力、高并发性和高通用性,并且伴随着其适配人工智能计算的张量核心单元和人工智能计算核心单元的增加,使其逐渐成为高算力硬件支持领域的主流产品。

2、现有的gpgpu调度策略在处理通用指令具有优异效果,一个warp线程内所有thread指令同步执行同一个指令,有效提高gpgpu算力。

3、在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:

4、在面临分支指令时(如if-else)时,现有的warp调度方式是顺序串行执行,满足if条件的thread先执行指令,随后满足else条件的thread再执行,尤其涉及到多层分支指令时,这种串行执行的调度策略极大增加了单个warp的执行时间,阻碍了gpgpu的高并发执行效率,日渐阻碍gpgpu的产品发展。

5、需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

2、本公开实施例提供了一种基于多级重分配机制的gpgpu分支指令调度方法以及存储介质,有效地保障了gpgpu处理分支指令的高并发性,尤其是面临多层分支语句,极大地提高了gpgpu的资源利用率和执行效率。在一些实施例中,所述方法包括:

3、cpu通过pcie向gpgpu发送指令信息;

4、gpgpu对所述指令信息进行多级重分配调度处理,其中,所述多级重分配调度处理包括第一级基于通用指令执行单元/分支预处理单元,判断所述指令信息,如果该指令信息是非条件分支指令,则进行顺序计算执行;如果该指令是条件分支指令,则预计算各个warp/thread对应的分支指令指令块,并将其发送至第二级分支调度单元;

5、第二级分支调度单元根据接收到的warp/thread与分支指令指令块对应关系,重分配对应的thread执行语句。

6、在一些实施例中,所述存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行上述实施例中基于多级重分配机制的gpgpu分支指令调度方法。

7、本公开实施例提供的基于多级重分配机制的gpgpu分支指令调度方法以及存储介质,可以实现以下技术效果:

8、本公开通过将gpgpu指令调度策略分为两个层级:一层是传统的指令调度,用于处理通用指令及分支指令的前端执行;另一层是分支指令的后端重调度过程,用于高并发的调度分支指令的各线程分支,通过重分配分支指令涉及的thread,将执行相同指令分支的thread归束于一个新的warp,以现有的执行单元为基准,重分配warp-处理单元对应关系,各执行单元同时处理分支指令块。通过本公开的基于多级重分配机制的gpgpu分支指令调度方案,有效地保障了gpgpu处理分支指令的高并发性,尤其是面临多层分支语句,极大地提高了gpgpu的资源利用率和执行效率。

9、以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。

本文档来自技高网...

【技术保护点】

1.一种基于多级重分配机制的GPGPU分支指令调度方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括GPGPU对所述指令进行内存同步、取指译码、调度发射、分支预处理、分支重调度、运算执行以及写回刷新处理。

3.根据权利要求2所述的方法,其特征在于,所述内存同步,包括指令存储和数据存储,用于完成CPU到GPGPU的指令/数据信息接收和GPGPU到CPU的指令/数据信息发送。

4.根据权利要求3所述的方法,其特征在于,所述取指译码,包括取出GPGPU缓存的指令并译码转化为GPGPU可执行的指令。

5.根据权利要求4所述的方法,其特征在于,所述调度发射中的调度,包括根据提取的指令信息,匹配指令中的thread-block/thread和GPGPU硬件中的SM/SP,以多个thread集成的warp为单位,发送信息至发射单元。

6.根据权利要求5所述的方法,其特征在于,所述发射单元用于将信息发送至对应的SM/SP硬件执行。

7.根据权利要求2所述的方法,其特征在于,所述分支预处理,包括如果是通用指令,则顺序执行;如果是分支执行,则存储相关分支指令块信息,发送至分支调度单元,分支调度单元接收多个warp发送的分支指令块信息,将其归束至一个新的warp,同时释放原有硬件执行单元SM/SP,将新的warp分配至释放的SM/SP中。

8.根据权利要求7所述的方法,其特征在于,所述运算执行,包括执行发送至SM/SP的指令,同时将指令执行状态反馈至记分牌。

9.根据权利要求8所述的方法,其特征在于,所述写回刷新,包括接收来自执行单元的执行信息,并将执行信息发送至调度单元,以供调度单元进行下一条指令的调度。

10.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至9任一项所述的基于多级重分配机制的GPGPU分支指令调度方法。

...

【技术特征摘要】

1.一种基于多级重分配机制的gpgpu分支指令调度方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括gpgpu对所述指令进行内存同步、取指译码、调度发射、分支预处理、分支重调度、运算执行以及写回刷新处理。

3.根据权利要求2所述的方法,其特征在于,所述内存同步,包括指令存储和数据存储,用于完成cpu到gpgpu的指令/数据信息接收和gpgpu到cpu的指令/数据信息发送。

4.根据权利要求3所述的方法,其特征在于,所述取指译码,包括取出gpgpu缓存的指令并译码转化为gpgpu可执行的指令。

5.根据权利要求4所述的方法,其特征在于,所述调度发射中的调度,包括根据提取的指令信息,匹配指令中的thread-block/thread和gpgpu硬件中的sm/sp,以多个thread集成的warp为单位,发送信息至发射单元。

6.根据权利要求5所述的...

【专利技术属性】
技术研发人员:周凯王帅赵鑫鑫姜凯
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1