System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 计算设备、为计算设备配置虚拟寄存器的方法、控制设备、计算机可读存储介质和计算机程序产品技术_技高网

计算设备、为计算设备配置虚拟寄存器的方法、控制设备、计算机可读存储介质和计算机程序产品技术

技术编号:41209284 阅读:5 留言:0更新日期:2024-05-09 23:31
本公开提供了一种计算设备、一种为计算设备配置虚拟寄存器的方法、一种控制设备、一种计算机可读存储介质和一种计算机程序产品。该计算设备包括:多个计算单元,每个计算单元被配置为运行线程束的一个线程;专用于每个计算单元的多个线程本地寄存器,用于寄存与所述计算单元运行的线程相关联的数据;以及用于所述多个计算单元的共享缓存器,其中,所述共享缓存器的一部分被配置为用于所述多个计算单元的虚拟寄存器,并且每个计算单元的多个线程本地寄存器中的至少一个线程本地寄存器被配置为中转寄存器以用于所述计算单元运行的线程访问所述虚拟寄存器。

【技术实现步骤摘要】

本公开概括而言涉及处理器领域,更具体地,涉及一种计算设备、一种为计算设备配置虚拟寄存器的方法、一种控制设备、一种计算机可读存储介质和一种计算机程序产品。


技术介绍

1、当前,随着人工智能(artificial intelligence, ai)技术的发展,ai芯片经常需要快速处理大量数据,因此希望数据能够与访问该数据的计算单元尽可能近。此外,与缓存和内存相比,访问寄存器中数据的开销更小,可以提升算子的性能,因此算子开发通常优先会使用寄存器来存储数据。然而,为一个计算单元固定配置的本地寄存器的数量往往有限,当算子需要使用的寄存器个数超过所配置的硬件寄存器个数时,编译器为了保证算子能正常执行会将部分数据保存在内存或缓存中,而对内存或缓存的访问开销很大,将会造成算子性能的巨大损失。


技术实现思路

1、针对上述问题,本公开提供了一种在用于多个计算单元之间的数据共享的共享缓存中,为多个计算单元或每个计算单元配置虚拟寄存器以加快计算单元的数据访问的方案。

2、根据本公开的一个方面,提供了一种计算设备。该计算设备包括:多个计算单元,每个计算单元被配置为运行线程束的一个线程;专用于每个计算单元的多个线程本地寄存器,用于寄存与所述计算单元运行的线程相关联的数据;以及用于所述多个计算单元的共享缓存器,其中,所述共享缓存器的一部分被配置为用于所述多个计算单元的虚拟寄存器,并且每个计算单元的多个线程本地寄存器中的至少一个线程本地寄存器被配置为中转寄存器以用于所述计算单元运行的线程访问所述虚拟寄存器。

3、在一些实现中,所述虚拟寄存器包括分别专用于每个计算单元的线程的一个或多个线程虚拟寄存器,并且每个计算单元被配置为在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器。

4、在一些实现中,所述计算单元被配置为在确定所述线程要向所述一个或多个线程虚拟寄存器写入数据时,将所述数据写入所述中转寄存器,并且所述中转寄存器被配置为将所述数据写入所述计算单元的一个或多个线程虚拟寄存器。

5、在一些实现中,所述计算单元被配置为在确定所述线程要从所述一个或多个线程虚拟寄存器读取数据时,向所述中转寄存器发送读取请求,并且所述中转寄存器被配置为响应于所述读取请求从所述计算单元的一个或多个线程虚拟寄存器读取所述数据,以供所述计算单元运行的线程读取。

6、在一些实现中,所述虚拟寄存器包括由所述多个计算单元的线程束共用的一个或多个线程束虚拟寄存器,并且每个计算单元被配置为在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器。

7、在一些实现中,在确定所述线程束要向所述一个或多个线程束虚拟寄存器写入数据时,所述多个计算单元中的一个计算单元被配置为将所述数据写入所述计算单元的中转寄存器,并且所述中转寄存器被配置为将所述数据写入所述一个或多个线程束虚拟寄存器。

8、在一些实现中,在确定所述线程束要从所述线程束虚拟寄存器读取数据时,所述多个计算单元中的每个计算单元向各自的中转寄存器发送读取请求,并且每个中转寄存器被配置为响应于所述读取请求从所述线程束虚拟寄存器读取所述数据,以供对应的计算单元运行的线程读取。

9、在一些实现中,在确定所述线程束要从所述线程束虚拟寄存器读取数据时,所述多个计算单元中的每个计算单元向所述计算单元的中转寄存器发送读取请求,并且所述多个计算单元中的一个计算单元的中转寄存器被配置为响应于所述读取请求从所述线程束虚拟寄存器读取所述数据,并广播给所述多个计算单元。

10、根据本公开的另一个方面,提供了一种为计算设备配置虚拟寄存器的方法,其中所述计算设备包括:多个计算单元,每个计算单元被配置为运行线程束的一个线程;专用于每个计算单元的多个线程本地寄存器,用于寄存与所述计算单元运行的线程相关联的数据;以及用于所述多个计算单元的共享缓存器。所述方法包括:将所述共享缓存器的一部分配置为用于所述多个计算单元的虚拟寄存器;以及将每个计算单元的多个线程本地寄存器中的至少一个线程本地寄存器配置为中转寄存器以用于所述计算单元运行的线程访问所述虚拟寄存器。

11、在一些实现中,将所述共享缓存器的一部分配置为用于所述多个计算单元的虚拟寄存器包括:配置分别专用于每个计算单元的线程的一个或多个线程虚拟寄存器,并且所述方法还包括:配置每个计算单元以在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器。

12、在一些实现中,配置每个计算单元以在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器包括:配置所述计算单元以在确定所述线程要向所述一个或多个线程虚拟寄存器写入数据时,将所述数据写入所述中转寄存器,以及配置所述中转寄存器以将所述数据写入所述计算单元的一个或多个线程虚拟寄存器。

13、在一些实现中,配置每个计算单元以在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器包括:配置所述计算单元以在确定所述线程要从所述一个或多个线程虚拟寄存器读取数据时,向所述中转寄存器发送读取请求,以及配置所述中转寄存器以响应于所述读取请求从所述计算单元的一个或多个线程虚拟寄存器读取所述数据,以供所述计算单元运行的线程读取。

14、在一些实现中,将所述共享缓存器的一部分配置为用于所述多个计算单元的虚拟寄存器包括:配置由所述多个计算单元的线程束共用的一个或多个线程束虚拟寄存器,并且所述方法还包括:配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器。

15、在一些实现中,配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器包括:配置所述多个计算单元中的一个计算单元以在确定所述线程束要向所述一个或多个线程束虚拟寄存器写入数据时,将所述数据写入所述计算单元的中转寄存器,以及配置所述中转寄存器以将所述数据写入所述一个或多个线程束虚拟寄存器。

16、在一些实现中,配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器包括:配置所述多个计算单元中的每个计算单元以在确定所述线程束要从所述线程束虚拟寄存器读取数据时,向各自的中转寄存器发送读取请求,以及配置每个中转寄存器以响应于所述读取请求从所述线程束虚拟寄存器读取所述数据,以供对应的计算单元运行的线程读取。

17、在一些实现中,配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器包括:配置所述多个计算单元中的每个计算单元以在确定所述线程束要从所述线程束虚拟寄存器读取数据时,向所述计算单元的中转寄存器发送读取请求,以及配置所述多个计算单元中的一个计算单元的中转寄存器以响应于所述读取请求从所述线程束虚拟寄存器读取所述数据,并广播给所述多个计算单本文档来自技高网...

【技术保护点】

1.一种计算设备,包括:

2.如权利要求1所述的计算设备,其中所述虚拟寄存器包括分别专用于每个计算单元的线程的一个或多个线程虚拟寄存器,并且每个计算单元被配置为在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器。

3.如权利要求2所述的计算设备,其中

4.如权利要求2所述的计算设备,其中

5.如权利要求1所述的计算设备,其中所述虚拟寄存器包括由所述多个计算单元的线程束共用的一个或多个线程束虚拟寄存器,并且每个计算单元被配置为在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器。

6.如权利要求5所述的计算设备,其中

7.如权利要求5所述的计算设备,其中

8.如权利要求5所述的计算设备,其中

9.一种为计算设备配置虚拟寄存器的方法,其中所述计算设备包括:

10.如权利要求9所述的方法,其中将所述共享缓存器的一部分配置为用于所述多个计算单元的虚拟寄存器包括:

11.如权利要求10所述的方法,其中配置每个计算单元以在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器包括:

12.如权利要求10所述的方法,其中配置每个计算单元以在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器包括:

13.如权利要求9所述的方法,其中将所述共享缓存器的一部分配置为用于所述多个计算单元的虚拟寄存器包括:

14.如权利要求13所述的方法,其中配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器包括:

15.如权利要求13所述的方法,其中配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器包括:

16.如权利要求13所述的方法,其中配置每个计算单元以在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器包括:

17. 一种控制设备,包括:

18.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如权利要求9至16中任一项所述的方法。

19.一种计算机程序产品,包括计算机程序,所述计算机程序在被机器执行时执行如权利要求9至16中任一项所述的方法。

...

【技术特征摘要】

1.一种计算设备,包括:

2.如权利要求1所述的计算设备,其中所述虚拟寄存器包括分别专用于每个计算单元的线程的一个或多个线程虚拟寄存器,并且每个计算单元被配置为在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线程虚拟寄存器。

3.如权利要求2所述的计算设备,其中

4.如权利要求2所述的计算设备,其中

5.如权利要求1所述的计算设备,其中所述虚拟寄存器包括由所述多个计算单元的线程束共用的一个或多个线程束虚拟寄存器,并且每个计算单元被配置为在运行所述线程束时,通过所述计算单元的中转寄存器来访问所述一个或多个线程束虚拟寄存器。

6.如权利要求5所述的计算设备,其中

7.如权利要求5所述的计算设备,其中

8.如权利要求5所述的计算设备,其中

9.一种为计算设备配置虚拟寄存器的方法,其中所述计算设备包括:

10.如权利要求9所述的方法,其中将所述共享缓存器的一部分配置为用于所述多个计算单元的虚拟寄存器包括:

11.如权利要求10所述的方法,其中配置每个计算单元以在运行所述线程时,通过所述计算单元的中转寄存器来访问所述一个或多个线...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:北京壁仞科技开发有限公司
类型:发明
国别省市:

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

1