掌桥专利:专业的专利平台
掌桥专利
首页

一种GPU板卡、GPU互连系统及地址转换方法

文献发布时间:2023-06-19 18:37:28


一种GPU板卡、GPU互连系统及地址转换方法

技术领域

本申请地址翻译领域,具体而言本申请实施例涉及一种GPU板卡、GPU互连系统及地址转换方法。

背景技术

为满足日益增长的算力需求,系统中通常需要配置多张GPU板块,板卡间多采用专用的高速链接互联组成GPU互连系统,通过高速链接可以实现GPU间的高速访问,降低延迟。GPU互连系统上的一个GPU板卡访问另一个GPU板卡的过程称之为peer to peer访问,简称P2P。按P2P访问时发出的地址类型分类,可将地址翻译过程分为本地地址翻译和远端地址翻译。

发明内容

本申请实施例的目的在于提供一种GPU板卡、GPU互连系统及地址转换方法,本申请的一些实施例通过在互连的GPU板卡上引入了页表缓存及地址转换模块RMMU,实现GPU页表在各GPU板卡间自动更新和同步,避免了在各个GPU板卡上的显存上“到处”建页表的问题,本申请的一些实施例还通过页表缓存及地址转换模块RMMU实现页表缓存功能,有效解除了板卡间的强依赖关系,让多卡系统变得简单灵活。

第一方面,本申请实施例提供一种GPU板卡,所述GPU板卡上包括:显存,至少用于存储属于本GPU板卡的页表数据;页表缓存及地址转换模块,被配置为缓存来自于GPU互连系统包括的除所述本板卡以外的其它GPU板卡的页表数据,并在需要访问所述其它板卡时根据所述其它GPU板卡的页表数据完成地址转换。

本申请的一些实施例通过引入页表缓存及地址转换模块RMMU来动态缓存其他GPU板卡的页表数据,RMMU模块实现GPU页表在各板卡间自动更新和同步,可以在本地完成地址翻译过程,有效解决了在每个板卡的显存上重复建页表和板卡间的依赖问题。

在一些实施例中,所述GPU板卡还包括:内存管理模块,被配置为若需要所述显存数据时根据所述显存上存储的页表数据完成地址转换。

本申请的一些实施例还在每个GPU板卡上设置内存管理模块MMU,通过该模块提供的地址转换功能可以访问本GPU板上的显存。

在一些实施例中,所述GPU板卡还包括:GPU,被配置为执行运算并生成用于访问所述显存或者访问所述其它GPU板卡上显存的虚拟地址;其中,所述页表缓存及地址转换模块被配置为根据所述虚拟地址完成地址转换,或者,所述内存管理模块被配置为根据所述虚拟地址完成地址转换。

本申请的一些实施例在每个GPU板卡上还设置图像处理器GPU,通过执行该处理器生成的携带有虚拟地址的指令完成相关的显示操作。

在一些实施例中,所述GPU板卡和所述其它GPU板卡之间是独立调度的。

本申请一些实施例的GPU互连系统中的各GPU板卡之间被独立调度。

第二方面,本申请的一些实施例提供一种GPU互连系统,所述GPU互连系统包括多个互连GPU板卡,其中,所述多个互连GPU板卡上的每个GPU板卡包括:显存,用于存储属于本板卡的页表数据;页表缓存及地址转换模块,被配置为缓存来自于GPU互连系统包括的除所述本板卡以外的其它GPU板卡的页表数据,并在需要访问所述其它板卡时根据所述其它GPU板卡的页表数据完成地址转换。

在一些实施例中,所述每个GPU板卡还包括:内存管理模块,被配置为若需要所述显存数据时根据所述显存上存储的页表数据完成地址转换。

在一些实施例中,所述每个GPU板卡还包括:GPU,被配置为执行运算并生成用于访问所述显存或者访问所述其它GPU板卡上显存的虚拟地址;其中,所述页表缓存及地址转换模块被配置为根据所述虚拟地址完成地址转换,或者,所述内存管理模块被配置为根据所述虚拟地址完成地址转换。

在一些实施例中,所述GPU互连系统中的不同板卡之间是独立调度的。

第三方面,本申请的一些实施例提供一种地址转换方法,应用于GPU互连系统中且所述GPU互连系统包括多个GPU板卡,所述地址转换方法包括:若确认所述GPU互连系统的第一GPU板卡需要访问所述GPU互连系统的第二GPU板卡时,则向所述第一GPU板卡上的第一页表缓存及地址转换模块发送地址转换请求,其中,所述地址转换请求用于携带待转换虚拟地址;若确认所述第一页表缓存及地址转换模块中存储有与所述待转换虚拟地址对应的页表项,则根据所述页表项将所述待转换虚拟地址转换为物理地址,其中,所述第一GPU板卡通过所述物理地址访问位于所述第二GPU板卡上的显存。

在一些实施例中,所述地址转换方法还包括:若确认所述第一页表缓存及地址转换模块中未存储与所述待转换虚拟地址对应的页表项,则向所述第二GPU板卡上的第二页表缓存及地址转换模块发送所述地址转换请求;接收由所述第二页表缓存及地址转换模块从所述第二GPU板卡上的第二显存中读取的包含所述页表项的页表并将所述页表存入所述第一页表缓存及地址转换模块;根据所述页表中的所述页表项将所述待转换虚拟地址转换为物理地址,其中,所述第一GPU板卡通过所述物理地址访问位于所述第二GPU板卡上的显存。

第四方面,本申请的一些实施例提供一种电子设备,所述电子设备包括如第一方面任意实施例所述的GPU板卡。

第五方面,本申请的一些实施例提供一种电子设备,所述电子设备包括如第二方面任意实施例所述的GPU互连系统。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的相关技术的本地地址翻译方法示意图;

图2为本申请实施例提供的相关技术的远端地址翻译方法示意图;

图3为本申请实施例提供的本地地址翻译方法和远端地址翻译方法的缺陷产生的示意图;

图4为本申请实施例提供的GPU互连系统的组成示意图;

图5为本申请实施例提供的地址转换方法的流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参看图1,图1为本申请一些实施例提供的相关技术中披露的GPU互连系统上的两种地址翻译的过程,图1中的block-a为第一GPU板卡GPU1内部一个功能模块且图1的各GPU板卡模块均可以发起P2P访问。图1的第一GPU板卡上的内存管理装置MMU为该板卡内部的地址翻译模块,该模块负责将虚拟地址VA转换为物理地址PA。需要说明的是,图1中GPU互连系统中的各GPU板卡均与第一GPU板卡结构相同,为避免重复不对其他GPU板卡的结构进行陈述。图2与图1的差异仅在于,图1用于说明GPU互连系统中的各GPU板卡如何基于本地地址翻译方法完成地址转换,而图2用于说明GPU互连系统中的各GPU板卡基于远端地址翻译的方法完成地址转换。

图1的GPU互连系统存在三张GPU板卡,且这些GPU板卡间采用高速链接互联,图1的基于本地地址翻译的地址翻译过程如下:

第一GPU板卡GPU1上的block-a模块要访问第零GPU板卡GPU0的显存,于是该第一GPU板卡将虚拟地址VA(由该第一GPU板卡上的GPU处理器提供该虚拟地址)送往该第一GPU板卡的内存管理装置MMU,该MMU需要根据页表配置完成虚拟地址VA到物理地址PA的翻译,然后通过高速链路将翻译得到的物理地址(该物理地址用于访问第零GPU板卡上的显存)发往第零GPU板卡GPU0,该GPU0接收到请求后,直接使用物理地址PA访问其上的显存memory。

图2的GPU互连系统存在三张GPU板卡,且这些GPU板卡间采用高速链接互联,图2的基于远端地址翻译的地址翻译过程如下:

第一GPU板卡GPU1上的block-a模块要访问第零GPU板卡GPU0的显存,于是该第一GPU板卡将虚拟地址VA(由该第一GPU板卡上的GPU处理器提供该虚拟地址)通过高速链接发往第零GPU板卡GPU0,当该虚拟地址到达第零GPU板卡GPU0后,送往该第零板卡上的内存管理装置MMU模块完成虚拟地址VA到物理地址PA的翻译后得到与该虚拟地址对应的物理地址,再根据得到的物理地址去访问第零GPU板卡上的显存memory。

本申请的发明人经研究发现上述相关技术提供的本地地址翻译方法和远端地址翻译方法,存在以下问题:

针对图1的本地地址翻译存在如下缺陷:P2P访问时,虚拟VA需要在本地完成地址翻译过程,这就意味着第一GPU板卡GPU1上必须建立一份虚拟地址VA到物理地址PA的页表。当系统中存在多张GPU板卡时,软件必须在每张板卡上的显存中分别创建一份页表映射。以图1为例,图中的第一GPU板卡GPU1和第二GPU板卡GPU2都需要保存一份页表映射,不但增加了软件的复杂性,还会造成不必要的显存浪费。

针对图2的远端地址翻译存在如下缺陷:将虚拟地址VA传输到目标GPU板卡上完成地址翻译,这就要求目标GPU板卡上的页表要时刻处于可用状态,致使GPU板卡之间具有很强的依赖关系。如图3所示,系统中有两个应用进程第一进程process1和第二进程process2,其中,第一进程process1同时使用了第零GPU板卡GPU0和第一GPU板卡GPU1,而第二进程process2只使用了第零GPU板卡GPU0。并且GPU板卡上的内存管理装置在任一个时刻只能让一个进程process使用,GPU板卡内部通过定期触发上下文切换context switch(主要是切换MMU页表),让多个进程process轮流使用该GPU板卡的算力资源。假设第一GPU板卡GPU1在处理第一进程process1的计算任务时需要访问第零GPU板卡GPU0的显存,那么软件必须确保此时此刻的第零GPU板卡GPU0上,第一进程process1也处于激活active状态,然而实际情况是GPU0和GPU1两张GPU板卡是独立调度的,彼此之间没有交互,这就可能造成:

a).软件增加约束:即使GPU0上process1并没有计算任务,完全可以让给process2去使用,但为保证远端地址翻译的正确性,process1必须占着GPU,造成算力资源的浪费。这就造成板卡之间的强依赖关系。

b).如果不加软件约束,一旦GPU0上发生了context switch,MMU切换了process2的页表,势必会造成地址翻译错误,或者访问了错误的数据,造成不可预知的结果。

至少为了解决图1和图2所存在的技术问题,本申请的一些实施例提供了一种GPU间地址翻译的技术方案,该技术方案通过在GPU互连系统中各GPU板卡上引入页表缓存及地址转换模块RMMU来解除GPU板卡间的依赖关系。本申请一些实施例的RMMU的功能如下:RMMU本质是上一种TLB,用于缓存其它GPU板卡的页表数据,可以在本地完成VA到PA的翻译,因此对于本申请实施例的RMMU可参考旁路转换缓存TLB(Translation Lookaside Buffer.)的结构,且在本申请的一些实施例中RMMU负责GPU板卡间TLB的更新操作,即当本地页表有更新时,通过高速链接通知其它GPU板卡上的RMMU,及时更新TLB中的数据。

本申请实施例提供一种GPU板卡,所述GPU板卡上包括:显存,至少用于存储属于本GPU板卡的页表数据;页表缓存及地址转换模块,被配置为缓存来自于GPU互连系统包括的除所述本板卡以外的其它GPU板卡的页表数据,并在需要访问所述其它板卡时根据所述其它GPU板卡的页表数据完成地址转换。

也就是说,本申请的一些实施例通过引入页表缓存及地址转换模块RMMU来动态缓存其他GPU板卡的页表数据,RMMU模块实现GPU页表在各板卡间自动更新和同步,可以在本地完成地址翻译过程,有效解决了在每个板卡的显存上重复建页表和板卡间的依赖问题。

如图4所示,本申请一些实施例的第一GPU板卡上除了包括图1或图2示出的内存管理装置MMU之外还包括页表缓存及地址转换模块RMMU,若block-a模块需要访问第零GPU板卡上的显存时,会将该block-a模块提供的虚拟地址VA发生给该页表缓存及地址转换模块RMMU,由该页表缓存及地址转换模块RMMU(此时需要该模块上存储有与该虚拟地址的地址转换页表项)将虚拟地址转换为物理地址,之后该第一GPU板卡根据该物理地址通过高速链接访问第零GPU板卡上的显存memory完成对该显存的访问。

需要说明的是,图4还示出了若页表缓存及地址转换模块RMMU未存储有与该虚拟地址的地址转换页表项时,则位于第一GPU板卡上的RMMU会向位于第零GPU板卡上的RMMU发送请求以获取含有相应页表项的页表,之后位于第零GPU板卡上的RMMU会向位于第一GPU板卡上的RMMU返回查到的页表以使该模块根据该页表完成虚拟地址向物理地址的转换。因此可以理解的是,即时在第一GPU板卡上的第一进程需要访问在第零GPU板卡上的显存时也可以根据该第零GPU板卡上的RMMU返回的页表完成地址转换,而不用在第零GPU板卡切换进程的操作,显著提升了该板卡的工作效率且提升了其他板卡的地址翻译的速度和地址转换的准确性。

在一些实施例中,所述GPU板卡还包括:内存管理模块,被配置为若需要所述显存数据时根据所述显存上存储的页表数据完成地址转换。

本申请的一些实施例还在每个GPU板卡上设置内存管理模块MMU,通过该模块提供的地址转换功能可以访问本GPU板上的显存。

在一些实施例中,所述GPU板卡还包括:GPU,被配置为执行运算并生成用于访问所述显存或者访问所述其它GPU板卡上显存的虚拟地址;其中,所述页表缓存及地址转换模块被配置为根据所述虚拟地址完成地址转换,或者,所述内存管理模块被配置为根据所述虚拟地址完成地址转换。

本申请的一些实施例在每个GPU板卡上还设置图像处理器GPU,通过执行该处理器生成的携带有虚拟地址的指令完成相关的显示操作。

在一些实施例中,所述GPU板卡和所述其它GPU板卡之间是独立调度的。本申请一些实施例的GPU互连系统中的各GPU板卡之间被独立调度。

如图4所示,本申请的一些实施例提供一种GPU互连系统,所述GPU互连系统包括多个互连GPU板卡,其中,所述多个互连GPU板卡上的每个GPU板卡包括:显存,用于存储属于本板卡的页表数据;页表缓存及地址转换模块,被配置为缓存来自于GPU互连系统包括的除所述本板卡以外的其它GPU板卡的页表数据,并在需要访问所述其它板卡时根据所述其它GPU板卡的页表数据完成地址转换。

在一些实施例中,所述每个GPU板卡还包括:内存管理模块,被配置为若需要所述显存数据时根据所述显存上存储的页表数据完成地址转换。

在一些实施例中,所述每个GPU板卡还包括:GPU,被配置为执行运算并生成用于访问所述显存或者访问所述其它GPU板卡上显存的虚拟地址;其中,所述页表缓存及地址转换模块被配置为根据所述虚拟地址完成地址转换,或者,所述内存管理模块被配置为根据所述虚拟地址完成地址转换。

在一些实施例中,所述GPU互连系统中的不同板卡之间是独立调度的。

如图5所示,本申请的一些实施例提供一种地址转换方法,应用于GPU互连系统中且所述GPU互连系统包括多个GPU板卡,所述地址转换方法包括:S101,若确认所述GPU互连系统的第一GPU板卡需要访问所述GPU互连系统的第二GPU板卡时,则向所述第一GPU板卡上的第一页表缓存及地址转换模块发送地址转换请求,其中,所述地址转换请求用于携带待转换虚拟地址;S102,若确认所述第一页表缓存及地址转换模块中存储有与所述待转换虚拟地址对应的页表项,则根据所述页表项将所述待转换虚拟地址转换为物理地址,其中,所述第一GPU板卡通过所述物理地址访问位于所述第二GPU板卡上的显存。

如图4所示,在本申请的一些实施例中,所述地址转换方法还包括:S103,若确认所述第一页表缓存及地址转换模块中未存储与所述待转换虚拟地址对应的页表项,则获取与所述页表项对应的页表并根据该页表完成地址转换。

例如,在本申请的一些实施例中S103示例性包括:若确认所述第一页表缓存及地址转换模块中未存储与所述待转换虚拟地址对应的页表项,则向所述第二GPU板卡上的第二页表缓存及地址转换模块发送所述地址转换请求;接收由所述第二页表缓存及地址转换模块从所述第二GPU板卡上的第二显存中读取的包含所述页表项的页表并将所述页表存入所述第一页表缓存及地址转换模块;根据所述页表中的所述页表项将所述待转换虚拟地址转换为物理地址,其中,所述第一GPU板卡通过所述物理地址访问位于所述第二GPU板卡上的显存。

下面结合图4示例性阐述本申请一些实施例的地址翻译方法,其详细过程如下:

1.GPU1上的block-a模块需要访问GPU0的显存,于是向RMMU发出虚拟地址VA。

2.初始状态下,RMMU本地的TLB中没有页表数据,于是通过高速链路向GPU0的RMMU模块请求页表。

3.GPU0的RMMU模块收到页表请求后,从显存中读取页表数据并返回给GPU1。

4.GPU1的RMMU模块接收到页表数据后,首先放入本地的缓存中,以便后续再次访问VA时可以直接使用缓存的页表完成地址翻译。然后将VA转换为PA,最后将PA发往GPU0,完成P2P访问。

本申请的一些实施例通过引入RMMU模块来动态缓存页表数据,可以在本地完成地址翻译过程,有效解决了重复建页表和板卡间的依赖问题。

本申请的一些实施例提供一种电子设备,所述电子设备包括所述的GPU板卡。

本申请的一些实施例提供一种电子设备,所述电子设备包括所述的GPU互连系统。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术分类

06120115636517