人工智能芯片、寄存器空间动态管理方法、介质和程序与流程

文档序号:39357421发布日期:2024-09-13 11:09阅读:19来源:国知局
人工智能芯片、寄存器空间动态管理方法、介质和程序与流程

本发明涉及芯片,且特别涉及一种人工智能(artificialintelligence,ai)芯片及其寄存器空间动态管理方法。


背景技术:

1、在人工智能(artificial intelligence,ai)运算中,通常存在多个计算任务并行执行的场景。在一个线程束(warp)执行前,芯片会为其分配若干寄存器(预先规定好大小的固定寄存器空间)。这一段固定寄存器空间的生命周期是从线程束执行开始到结束。线程束开始执行前,根据其携带的描述信息,进行检查和判断。线程束需要的寄存器空间大小记为req_size,寄存器组(register file)中当下剩余可使用的寄存器空间记为free_size。在req_size < free_size时芯片可以为其分配寄存器空间,然后开始执行线程束计算。待执行完线程束的最后一条指令后,释放线程束所占据的寄存器空间。

2、现有技术分配固定大小的寄存器数目(固定寄存器空间)给一个线程束使用。一般而言,分配的固定寄存器空间足够给任何线程束使用。但实际上,线程束执行时往往不会使用到被分配到的寄存器空间的全部,而且在一个线程束执行历程中线程束不会时时刻刻都需要这么多的寄存器空间。大多数时间线程束只会使用被分配到的寄存器空间的一部分,甚至不使用寄存器空间。为每一个线程束分配固定大小的寄存器数目,这样的做法导致寄存器组的使用率降低,甚至影响多任务的并行执行。如果多个线程束并行执行,常常会因为可用寄存器数量有限而暂停某些线程束的执行,造成并行度不高。如何更高效利用寄存器组的寄存器空间进而提高任务的并行度,是本领域的诸多技术课题之一。


技术实现思路

1、本发明是针对一种人工智能(artificial intelligence,ai)芯片及其寄存器空间动态管理方法和机器可读存储介质、计算机程序产品,以使分配和释放寄存器空间时更加灵活,从而让寄存器组(register file)得到更高效利用,提高任务的并行度。

2、在根据本发明的实施例中,所述人工智能芯片包括指令高速缓存(instructioncache)、寄存器电路以及执行电路。指令高速缓存用以存放线程束(warp)运行所需指令。寄存器电路用以提供寄存器空间。执行电路耦接至指令高速缓存以及寄存器电路。执行电路从指令高速缓存取得且执行所述线程束。线程束包括第一子程序段,其中第一子程序段需要使用第一寄存器空间。执行电路在执行线程束的过程中要求寄存器电路从寄存器电路的寄存器空间中分派第一寄存器空间给第一子程序段使用。在第一子程序段执行完成后且在线程束执行完成前,执行电路要求寄存器电路实时释放第一寄存器空间。

3、在根据本发明的实施例中,所述寄存器空间动态管理方法包括:由人工智能芯片的执行电路从人工智能芯片的指令高速缓存取得且执行线程束,其中线程束包括第一子程序段,以及第一子程序段需要使用第一寄存器空间;在执行线程束的过程中,由人工智能芯片的寄存器电路从寄存器电路的寄存器空间中分派第一寄存器空间给第一子程序段使用;以及在第一子程序段执行完成后且在线程束执行完成前,由寄存器电路实时释放第一寄存器空间。

4、在根据本发明的实施例中,所述机器可读存储介质用于存储非暂时性机器可读指令。当所述非暂时性机器可读指令由处理器执行时,可以实现所述人工智能芯片的寄存器空间动态管理方法。

5、在根据本发明的实施例中,所述计算机程序产品包括计算机程序。当计算机程序被处理器执行时,可以实现所述人工智能芯片的寄存器空间动态管理方法。

6、基于上述,人工智能芯片可以为线程束中的第一子程序段动态分派对应寄存器空间(第一寄存器空间),而不是不论线程束的使用需求一律分派固定寄存器空间。因此,人工智能芯片在分配寄存器空间时可以更加灵活,从而让寄存器组的有限寄存器空间得到更高效利用。在第一子程序段执行完成后且在线程束执行完成前,人工智能芯片可以实时释放第一子程序段所占用的第一寄存器空间(不是在整个线程束执行完成后才释放寄存器空间)。因此,人工智能芯片在释放寄存器组空间时可以更加灵活,从而让寄存器组的有限寄存器空间得到更高效利用,提高任务的并行度。



技术特征:

1.一种人工智能芯片,其特征在于,所述人工智能芯片包括:

2.根据权利要求1所述的人工智能芯片,其特征在于,所述线程束还包括第二子程序段,所述第二子程序段不需要使用所述寄存器电路的所述寄存器空间,所述第二子程序段被执行在所述第一子程序段前,以及在执行所述第二子程序段的过程中任何寄存器空间不会被分派给所述线程束。

3. 根据权利要求1所述的人工智能芯片,其特征在于,所述执行电路包括:

4. 根据权利要求1所述的人工智能芯片,其特征在于,所述寄存器电路包括:

5.根据权利要求1所述的人工智能芯片,其特征在于,所述第一子程序段包括寄存器空间分派指令和寄存器空间释放指令,所述执行电路将所述寄存器空间分派指令发射给所述寄存器电路,所述寄存器电路基于所述寄存器空间分派指令从所述寄存器电路的所述寄存器空间中分派所述第一寄存器空间给所述第一子程序段使用,所述执行电路将所述寄存器空间释放指令发射给所述寄存器电路,以及所述寄存器电路在所述线程束执行完成前基于所述寄存器空间释放指令实时释放所述第一寄存器空间。

6.根据权利要求5所述的人工智能芯片,其特征在于,所述寄存器空间分派指令包括分派偏移量参数和分派大小参数,所述寄存器电路基于所述分派偏移量参数和所述分派大小参数确定所述第一寄存器空间,所述寄存器空间释放指令包括释放偏移量参数和释放大小参数,以及所述寄存器电路基于所述释放偏移量参数和所述释放大小参数释放所述第一寄存器空间。

7.一种人工智能芯片的寄存器空间动态管理方法,其特征在于,所述寄存器空间动态管理方法包括:

8.根据权利要求7所述的寄存器空间动态管理方法,其特征在于,所述线程束还包括第二子程序段,所述第二子程序段不需要使用所述寄存器电路的所述寄存器空间,所述第二子程序段被执行在所述第一子程序段前,以及在执行所述第二子程序段的过程中任何寄存器空间不会被分派给所述线程束。

9.根据权利要求7所述的寄存器空间动态管理方法,其特征在于,所述寄存器空间动态管理方法还包括:

10.根据权利要求7所述的寄存器空间动态管理方法,其特征在于,所述寄存器空间动态管理方法还包括:

11.根据权利要求7所述的寄存器空间动态管理方法,其特征在于,所述第一子程序段包括寄存器空间分派指令和寄存器空间释放指令,所述寄存器空间动态管理方法还包括:

12. 根据权利要求11所述的寄存器空间动态管理方法,其特征在于,所述寄存器空间分派指令包括分派偏移量参数和分派大小参数,所述寄存器空间释放指令包括释放偏移量参数和释放大小参数,所述寄存器空间动态管理方法还包括:

13.一种机器可读存储介质,用于存储非暂时性机器可读指令,其特征在于,当所述非暂时性机器可读指令由计算机执行时实现权利要求7-12任一项所述的寄存器空间动态管理方法。

14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7-12任一项所述的寄存器空间动态管理方法。


技术总结
本发明提供一种人工智能芯片及其寄存器空间动态管理方法和机器可读存储介质、计算机程序产品。人工智能芯片包括指令高速缓存、寄存器电路以及执行电路。指令高速缓存用以存放线程束运行所需的指令。寄存器电路用以提供寄存器空间。执行电路耦接至指令高速缓存以及寄存器电路。执行电路从指令高速缓存取得且执行所述线程束。线程束包括第一子程序段,其中第一子程序段需要使用第一寄存器空间。执行电路在执行线程束的过程中要求寄存器电路从寄存器电路的寄存器空间中分派第一寄存器空间给第一子程序段使用。在第一子程序段执行完成后且在线程束执行完成前,执行电路要求寄存器电路实时释放第一寄存器空间。

技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名
受保护的技术使用者:北京壁仞科技开发有限公司
技术研发日:
技术公布日:2024/9/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1