一种GPU服务器的测试设备及方法转让专利

申请号 : CN202310898060.9

文献号 : CN116627746B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵彦钧

申请人 : 四川华鲲振宇智能科技有限责任公司

摘要 :

本发明属于数据处理技术领域,提出了一种GPU服务器的测试设备及方法,设备包括:GPU模组获取单元、GPU模组组网计算单元、测试模组计算单元、至少两个GPU模组槽位、测试模组配置单元和测试单元;方法包括:将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;基于测试程序控制主动测试模组的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。本发明可以通过上述测试模组来替换高成本的GPUOAM/SXM模组,降低测试成本。

权利要求 :

1.一种GPU服务器的测试设备,其特征在于,包括:

GPU模组获取单元,用于获取GPU模组载板中GPU模组的数量,GPU模组至少为两个;

GPU模组组网计算单元,用于基于GPU模组的数量计算出GPU模组的组网情况;

测试模组计算单元,用于基于GPU模组的组网情况计算主动测试模组的数量以及被动测试模组的数量;

至少两个GPU模组槽位,用于根据计算出的主动测试模组的数量以及被动测试模组的数量,将主动测试模组和被动测试模组放置在对应GPU模组槽位上;

测试模组配置单元,用于将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;

测试单元,用于基于测试程序控制主动测试模组在测试周期内,不同组网情况对应的链路场景下:主动测试模组和主动测试模组,或者主动测试模组和被动测试模组形成的链路中的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。

2.一种GPU服务器的测试方法,应用于如权利要求1所述的一种GPU服务器的测试设备,其特征在于,包括如下步骤:获取GPU模组载板中GPU模组的数量,GPU模组至少为两个;

基于GPU模组的数量计算出GPU模组的组网情况;

基于GPU模组的组网情况计算主动测试模组的数量以及被动测试模组的数量;

根据计算出的主动测试模组的数量以及被动测试模组的数量,将主动测试模组和被动测试模组放置在对应GPU模组槽位上;

将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;

基于测试程序控制主动测试模组在测试周期内,不同组网情况对应的链路场景下:主动测试模组和主动测试模组,或者主动测试模组和被动测试模组形成的链路中的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。

3.根据权利要求2所述的一种GPU服务器的测试方法,其特征在于,当GPU模组的数量为两个时,在一个GPU模组槽位上放置一个第一主动测试模组,在另一个GPU模组槽位上放置一个第二主动测试模组,第一主动测试模组和第二主动测试模组均能够互相自发自收数据包;

基于测试程序控制这两个主动测试模组在测试周期内,当前组网情况对应的链路场景下:主动测试模组和主动测试模组形成的链路中的测试过程,统计这两个主动测试模组之间形成的链路中的链路误码,并判断其是否超过第一链路误码预设值,当未超过时,则表示两个主动测试模组之间的链路正常,否则不正常。

4.根据权利要求2所述的一种GPU服务器的测试方法,其特征在于,当GPU模组的数量为两个时,在一个GPU模组槽位上放置一个主动测试模组,在另一个GPU模组槽位上放置一个被动测试模组;

基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的链路场景下:主动测试模组和被动测试模组形成的链路中的测试过程,统计这两个测试模组之间形成的链路中的链路误码,并判断其是否超过第二链路误码预设值,当未超过时,则表示两个测试模组之间的链路正常,否则不正常。

5.根据权利要求2所述的一种GPU服务器的测试方法,其特征在于,当GPU模组的数量为四个时,在一个GPU模组槽位上放置一个主动测试模组,分别在另外三个GPU模组槽位上分别放置一个被动测试模组,这三个被动测试模组均作为跳线模组;

基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的四个GPU模组直接互联链路或者交叉链路的场景下:主动测试模组和三个被动测试模组形成的链路中的测试过程,统计这四个测试模组之间形成的链路中的链路误码,并判断其是否超过第三链路误码预设值,当未超过时,则表示四个测试模组之间的链路正常,否则不正常。

6.根据权利要求2所述的一种GPU服务器的测试方法,其特征在于,当GPU模组的数量为四个时,分别在两个GPU模组槽位上分别放置一个主动测试模组,分别在另外两个GPU模组槽位上分别放置一个被动测试模组,这两个被动测试模组均作为跳线模组;

基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的四个GPU模组双向交叉链路的场景下:两个主动测试模组和两个被动测试模组形成的链路中的测试过程,统计这四个测试模组之间形成的链路中的链路误码,并判断其是否超过第四链路误码预设值,当未超过时,则表示四个测试模组之间的链路正常,否则不正常。

说明书 :

一种GPU服务器的测试设备及方法

技术领域

[0001] 本发明涉及数据处理技术领域,特别涉及一种GPU服务器的测试设备及方法。

背景技术

[0002] GPU服务器除了标准的PCIe形态GPU卡之外,要想获得更高的GPU计算性能,就需要使用NVIDIA提出的SXM形态或者Open Compute Project (OCP)组织提出的OAM形态的GPU模块/模组。这种GPU模组对外提供高速连接器,以便于插在载板上。无论哪种形态的GPU模块,为了承载多个GPU模块,PCB载板需要设计成多个高速信号互联,并提供多个高密高速信号连接器。这些OAM/SXM模组往往要求Full Mesh互联,因此,每个OAM模组和其他OAM模组之间,都需要较多的高速信号互联。
[0003] 一个典型的GPU模组载板示意图如图1所示,以4个GPU模组为例,G1、G2、G3、G4是可以安装GPUOAM/SXM模组的。在生产出如上载板之后,生产时需要对连接部分的连线通路进行对应的通断测试和压力测试的。
[0004] 常规的做法是,在G1、G2、G3、G4为主,安装对应的GPU OAM/SXM模组,然后接入系统,运行对应的GPU软件,测试各个模组见的连线通路是否正常。
[0005] 如此高的速率给硬件设计带来了极大的挑战,同时,对于在生产制造中如何有效的、高效的检测载板的可靠性和稳定性,也是亟需解决的问题。
[0006] 如使用OAM/SXM模组来作为测试设备,价格太过昂贵,无法在生产批量落地。因此,如何有效检测且满足成本较低的GPU载板测试是本领域亟需解决的技术问题。

发明内容

[0007] 本发明的目的在于提供一种GPU服务器的测试设备及方法,能够有效的、高效的检测载板的可靠性和稳定性,且成本较低。
[0008] 本发明解决其技术问题,采用的技术方案是:
[0009] 一方面,本发明提供了一种GPU服务器的测试设备,包括:
[0010] GPU模组获取单元,用于获取GPU模组载板中GPU模组的数量,GPU模组至少为两个;
[0011] GPU模组组网计算单元,用于基于GPU模组的数量计算出GPU模组的组网情况;
[0012] 测试模组计算单元,用于基于GPU模组的组网情况计算主动测试模组的数量以及被动测试模组的数量;
[0013] 至少两个GPU模组槽位,用于根据计算出的主动测试模组的数量以及被动测试模组的数量,将主动测试模组和被动测试模组放置在对应GPU模组槽位上;
[0014] 测试模组配置单元,用于将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;
[0015] 测试单元,用于基于测试程序控制主动测试模组在测试周期内,不同组网情况对应的链路场景下:主动测试模组和主动测试模组,或者主动测试模组和被动测试模组形成的链路中的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。
[0016] 另一方面,本发明还提供了一种GPU服务器的测试方法,应用于所述的一种GPU服务器的测试设备,包括如下步骤:
[0017] 获取GPU模组载板中GPU模组的数量,GPU模组至少为两个;
[0018] 基于GPU模组的数量计算出GPU模组的组网情况;
[0019] 基于GPU模组的组网情况计算主动测试模组的数量以及被动测试模组的数量;
[0020] 根据计算出的主动测试模组的数量以及被动测试模组的数量,将主动测试模组和被动测试模组放置在对应GPU模组槽位上;
[0021] 将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;
[0022] 基于测试程序控制主动测试模组在测试周期内,不同组网情况对应的链路场景下:主动测试模组和主动测试模组,或者主动测试模组和被动测试模组形成的链路中的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。
[0023] 作为进一步说明,当GPU模组的数量为两个时,在一个GPU模组槽位上放置一个第一主动测试模组,在另一个GPU模组槽位上放置一个第二主动测试模组,第一主动测试模组和第二主动测试模组均能够互相自发自收数据包;
[0024] 基于测试程序控制这两个主动测试模组在测试周期内,当前组网情况对应的链路场景下:主动测试模组和主动测试模组形成的链路中的测试过程,统计这两个主动测试模组之间形成的链路中的链路误码,并判断其是否超过第一链路误码预设值,当未超过时,则表示两个主动测试模组之间的链路正常,否则不正常。
[0025] 作为进一步说明,当GPU模组的数量为两个时,在一个GPU模组槽位上放置一个主动测试模组,在另一个GPU模组槽位上放置一个被动测试模组;
[0026] 基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的链路场景下:主动测试模组和被动测试模组形成的链路中的测试过程,统计这两个测试模组之间形成的链路中的链路误码,并判断其是否超过第二链路误码预设值,当未超过时,则表示两个测试模组之间的链路正常,否则不正常。
[0027] 作为进一步说明,当GPU模组的数量为四个时,在一个GPU模组槽位上放置一个主动测试模组,分别在另外三个GPU模组槽位上分别放置一个被动测试模组,这三个被动测试模组均作为跳线模组;
[0028] 基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的四个GPU模组直接互联链路或者交叉链路的场景下:主动测试模组和三个被动测试模组形成的链路中的测试过程,统计这四个测试模组之间形成的链路中的链路误码,并判断其是否超过第三链路误码预设值,当未超过时,则表示四个测试模组之间的链路正常,否则不正常。
[0029] 作为进一步说明,当GPU模组的数量为四个时,分别在两个GPU模组槽位上分别放置一个主动测试模组,分别在另外两个GPU模组槽位上分别放置一个被动测试模组,这两个被动测试模组均作为跳线模组;
[0030] 基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的四个GPU模组双向交叉链路的场景下:两个主动测试模组和两个被动测试模组形成的链路中的测试过程,统计这四个测试模组之间形成的链路中的链路误码,并判断其是否超过第四链路误码预设值,当未超过时,则表示四个测试模组之间的链路正常,否则不正常。
[0031] 本发明的有益效果是:通过上述一种GPU服务器的测试设备及方法,本发明单独设置了一个载板测试设备,用于有效的、高效的检测载板的可靠性和稳定性,且不再使用OAM/SXM模组来作为测试设备,而是通过使用被动测试模组的方式,极大的降低了成本。

附图说明

[0032] 图1为背景技术中一个典型的GPU模组载板示意图;
[0033] 图2为本发明实施例1中一种GPU服务器的测试设备的组成结构示意图;
[0034] 图3为本发明实施例3中在被测载板上安装测试模组T1、T2、T3、T4的链路示意图;
[0035] 图4为本发明实施例3中放置两个主动测试模组测试时的链路示意图;
[0036] 图5为本发明实施例3中放置一个主动测试模组和一个被动测试模组测试时的链路示意图;
[0037] 图6为本发明实施例3中4个GPU模组互联的情况,被动测试模组T2有变形T2a、T2b、T2c时的链路示意图;
[0038] 图7为本发明实施例3中交叉互联的链路示意图;
[0039] 图8为本发明实施例3中对于同时测试交叉的链路示意图;
[0040] 图9为本发明实施例3中双向交叉的场景使用两个主动模组T1、T2的链路示意图;
[0041] 图10为本发明实施例3中对于八个GPU模组的链路示意图。

具体实施方式

[0042] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0043] 实施例1
[0044] 本实施例提供的是一种GPU服务器的测试设备,其组成结构示意图见图2,其中,该设备包括:
[0045] GPU模组获取单元,用于获取GPU模组载板中GPU模组的数量,GPU模组至少为两个;
[0046] GPU模组组网计算单元,用于基于GPU模组的数量计算出GPU模组的组网情况;
[0047] 测试模组计算单元,用于基于GPU模组的组网情况计算主动测试模组的数量以及被动测试模组的数量;
[0048] 至少两个GPU模组槽位,用于根据计算出的主动测试模组的数量以及被动测试模组的数量,将主动测试模组和被动测试模组放置在对应GPU模组槽位上;
[0049] 测试模组配置单元,用于将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;
[0050] 测试单元,用于基于测试程序控制主动测试模组在测试周期内,不同组网情况对应的链路场景下:主动测试模组和主动测试模组,或者主动测试模组和被动测试模组形成的链路中的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。
[0051] 通过本实施例的上述设备,可以完全不使用OAM/SXM模组来作为测试设备,大大降低了载板测试成本,且测试链路可以依据GPU模组的数量而定,不同数量的GPU模组,可以对应有不同的测试链路,测试过程高效,由于测试链路可以根据不同组网情况而定,其仅需要根据主动测试模组和被动测试模组的配置数量进行设定即可获取,只需要统计链路误码的数量即可判断出同组网情况下主动测试模组和被动测试模组形成的链路是否正常,测试链路相对稳定。
[0052] 实施例2
[0053] 在实施例1的基础上,本实施例提供的是一种GPU服务器的测试方法,应用于所述的一种GPU服务器的测试设备,包括如下步骤:
[0054] S1、获取GPU模组载板中GPU模组的数量,GPU模组至少为两个;
[0055] S2、基于GPU模组的数量计算出GPU模组的组网情况;
[0056] S3、基于GPU模组的组网情况计算主动测试模组的数量以及被动测试模组的数量;
[0057] S4、根据计算出的主动测试模组的数量以及被动测试模组的数量,将主动测试模组和被动测试模组放置在对应GPU模组槽位上;
[0058] S5、将主动测试模组配置为能够对数据包进行数据收发,以及能够统计链路误码,并用于将被动测试模组配置为跳线模组,且只能将进入被动测试模组的数据包进行内部环回后直接发送出去;
[0059] S6、基于测试程序控制主动测试模组在测试周期内,不同组网情况对应的链路场景下:主动测试模组和主动测试模组,或者主动测试模组和被动测试模组形成的链路中的测试过程,统计链路误码,得到测试结果,并根据测试结果,判断不同组网情况下主动测试模组和被动测试模组形成的链路是否正常。
[0060] 需要指出的是,当GPU模组的数量为两个时,在一个GPU模组槽位上放置一个第一主动测试模组,在另一个GPU模组槽位上放置一个第二主动测试模组,第一主动测试模组和第二主动测试模组均能够互相自发自收数据包;基于测试程序控制这两个主动测试模组在测试周期内,当前组网情况对应的链路场景下:主动测试模组和主动测试模组形成的链路中的测试过程,统计这两个主动测试模组之间形成的链路中的链路误码,并判断其是否超过第一链路误码预设值,当未超过时,则表示两个主动测试模组之间的链路正常,否则不正常。
[0061] 当GPU模组的数量为两个时,在一个GPU模组槽位上放置一个主动测试模组,在另一个GPU模组槽位上放置一个被动测试模组;基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的链路场景下:主动测试模组和被动测试模组形成的链路中的测试过程,统计这两个测试模组之间形成的链路中的链路误码,并判断其是否超过第二链路误码预设值,当未超过时,则表示两个测试模组之间的链路正常,否则不正常。
[0062] 当GPU模组的数量为四个时,在一个GPU模组槽位上放置一个主动测试模组,分别在另外三个GPU模组槽位上分别放置一个被动测试模组,这三个被动测试模组均作为跳线模组;基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的四个GPU模组直接互联链路或者交叉链路的场景下:主动测试模组和三个被动测试模组形成的链路中的测试过程,统计这四个测试模组之间形成的链路中的链路误码,并判断其是否超过第三链路误码预设值,当未超过时,则表示四个测试模组之间的链路正常,否则不正常。
[0063] 当GPU模组的数量为四个时,分别在两个GPU模组槽位上分别放置一个主动测试模组,分别在另外两个GPU模组槽位上分别放置一个被动测试模组,这两个被动测试模组均作为跳线模组;基于测试程序控制主动测试模组在测试周期内,当前组网情况对应的四个GPU模组双向交叉链路的场景下:两个主动测试模组和两个被动测试模组形成的链路中的测试过程,统计这四个测试模组之间形成的链路中的链路误码,并判断其是否超过第四链路误码预设值,当未超过时,则表示四个测试模组之间的链路正常,否则不正常。
[0064] 实施例3
[0065] 参见图3,在被测载板上,可以安装测试模组T1、T2、T3、T4。
[0066] 参见图4,具体测试时,以两个GPU模组之间的通路为例,一个模组槽位上,放置一个主动测试模组T1,一个模组槽位上,放置一个主动测试模组T2,T1、T2测试模组具备对外发送/接收测试包的能力,T1、T2测试模组具备检测接收包以及统计链路误码的能力,T1、T2模组互相自发自收,统计链路误码,测试程序控制T1、T2的测试过程,并根据测试结果,判断两个模组之间的链路是否正常。
[0067] 参见图5,对图4的测试模组进行了优化,以检测两个模组之间的链路为例:一个模组槽位上,放置一个主动测试模组T1,一个模组槽位上,防止一个被动测试模组T2,T1测试模组具备对外发送/接收测试包的能力,T1测试模组具备检测接收包以及统计链路误码的能力,T2测试模组仅仅是一个跳线模组,内部环回,把进入的测试包直接发送回去,T1测试模组自发自收,统计链路误码,测试程序控制T1的测试过程,并根据测试结果,判断两个模组之间的链路是否正常。
[0068] 对于4个GPU模组互联的情况,被动测试模组T2有如下变形T2a、T2b、T2c等。测试包流向及测试过程类似,如图6所示,其中,测试过程与两个测试模组的测试过程类似,T2a\T2b\T2c仅仅作为跳线模组,直连。
[0069] 参见图7的交叉互联的链路示意图,T2被动测试模组只是把信号作环回,其余类似组网情况不再赘述。
[0070] 参见图8,对于同时测试交叉链路的场景,考虑只使用T1为主动模组,其他为被动模组。
[0071] 参见图9,对于双向交叉的场景,考虑使用两个主动模组T1、T2。
[0072] 参见图10,对于八个GPU或者16个GPU活其他变种的场景,均可采用上述基本模式,灵活组合即可,但基本原理都与本实施例前述一致,因此不再赘述。
[0073] 本实施例完整的测试了GPU服务器OAM/SXM模组载板的连接器、PCB的状态。通过使用被动测试模组的方式,极大的降低了成本。
[0074] 以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。