CN112416672A - Pcie链路的稳定性测试方法、装置、计算机设备和介质 - Google Patents

Pcie链路的稳定性测试方法、装置、计算机设备和介质 Download PDF

Info

Publication number
CN112416672A
CN112416672A CN202011260110.3A CN202011260110A CN112416672A CN 112416672 A CN112416672 A CN 112416672A CN 202011260110 A CN202011260110 A CN 202011260110A CN 112416672 A CN112416672 A CN 112416672A
Authority
CN
China
Prior art keywords
gpu
pcie link
test
tested
data block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011260110.3A
Other languages
English (en)
Other versions
CN112416672B (zh
Inventor
许飞
魏冰清
王永懿
张珅
秦晓宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nettrix Information Industry Beijing Co Ltd
Original Assignee
Nettrix Information Industry Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nettrix Information Industry Beijing Co Ltd filed Critical Nettrix Information Industry Beijing Co Ltd
Priority to CN202011260110.3A priority Critical patent/CN112416672B/zh
Publication of CN112416672A publication Critical patent/CN112416672A/zh
Application granted granted Critical
Publication of CN112416672B publication Critical patent/CN112416672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种PCIE链路的稳定性测试方法、装置、计算机设备和存储介质。涉及计算机应用技术领域,该方法根据待测PCIE链路中GPU的拓扑结构构建GPU通信环;向GPU通信环中的目标GPU发送测试指令,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,根据各状态数据确定待测PCIE链路的测试结果。本申请实施例,基于GPU通信环将待测PCIE链路上的所有通信节点连接起来,通过控制GPU通信环包括的各个GPU依次传输测试数据块实现了对待测PCIE链路整体加压,因此可以实现测试PCIE链路的整体性能,测试结果更能反映待测PCIE链路的整体性能。

Description

PCIE链路的稳定性测试方法、装置、计算机设备和介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种PCIE链路的稳定性测试方法、装置、计算机设备和介质。
背景技术
在深度学习训练中,常常采用多个GPU并行训练的方式进行网络训练。随着深度学习网络的复杂度越来越高,进行网络训练时需要的GPU的数量越来越多。然而,由于CPU上的通道数有限,因此,可直接连接到CPU上的GPU的数量受到限制。为此,目前提出了在CPU上连接PCIE交换芯片,然后在PCIE交换芯片上连接多个GPU的方案。其中,由CPU、PCIE交换芯片以及多个GPU组成的链路称为PCIE链路。在实际应用中,PCIE链路构建好之后,需要对PCIE链路进行压力测试,以检测该PCIE链路的性能。
现有技术中,对PCIE链路进行压力测试的方法一般是:对PCIE链路上的由PCIE交换芯片和每个GPU组成的单条链路分别进行测试,得到每个单条链路的测试结果。
然而,上述每个单条链路的测试结果并不能准确反映PCIE链路的整体性能。
发明内容
基于此,有必要针对上述技术问题,提供一种PCIE链路的稳定性测试方法、装置、计算机设备和介质。
一种PCIE链路的稳定性测试方法,该方法包括:
根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
根据各状态数据确定待测PCIE链路的测试结果。
本申请实施例,基于GPU通信环将待测PCIE链路上的所有通信节点连接起来,通过控制GPU通信环包括的各个GPU依次传输测试数据块实现了对待测PCIE链路整体加压,因此可以实现测试PCIE链路的整体性能,测试结果更能反映待测PCIE链路的整体性能。
在其中一个实施例中,向GPU通信环中的目标GPU发送测试指令,包括:
获取待测PCIE链路中的GPU的理论带宽;
根据GPU的理论带宽确定待测PCIE链路的最大有效带宽;
根据最大有效带宽确定测试数据块的大小,根据测试数据块的大小生成测试指令。
本申请实施例,最大有效带宽表示GPU的数据传输能力的上限,基于最大有效带宽确定的测试数据块的大小可以使得待测PCIE链路在传输过程中处于满压状态。
在其中一个实施例中,根据各状态数据确定待测PCIE链路的测试结果,包括:
若各状态数据中存在目标状态数据,则确定待测PCIE链路的测试结果为测试不通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
本申请实施例中,各个GPU的状态数据中任意一个状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围则确定待测PCIE链路的测试结果为测试不通过,这样确保了覆盖待测PCIE链路上的每个GPU,测试结果更能反映待测PCIE链路的整体性能。
在其中一个实施例中,根据各状态数据确定待测PCIE链路的测试结果,包括:
若各状态数据中不存在目标状态数据,则确定待测PCIE链路的测试结果为测试通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
本申请实施例中,根据GPU通信环中的各个GPU的状态数据确定待测PCIE链路的测试结果,这样确保了覆盖待测PCIE链路上的每个GPU,测试结果更能反映待测PCIE链路的整体性能。
在其中一个实施例中,根据待测PCIE链路的拓扑结构构建GPU通信环,包括:
获取待测PCIE链路中GPU的ID和GPU的数量;
调用NCCL根据GPU的ID和GPU的数量确定各GPU之间的数据传输顺序,得到GPU通信环。
本申请实施例中,调用NCCL基于待测PCIE链路中GPU的ID和GPU的数量构建GPU通信环,NCCL具有将GPU索引到最优环序的功能,这样GPU通信环上的各个GPU在传输数据的过程中可以以最短路径实现将数据共享到所有GPU的目的,使得数据传输时长不因通信节点的数量增加而延长,提高数据传输效率。
在其中一个实施例中,控制GPU通信环包括的各个GPU依次传输测试数据块,包括:
控制GPU通信环包括的各个GPU按照数据传输顺序依次从各GPU的前一GPU中复制测试数据块。
本申请实施例,通过控制各个GPU从其前一GPU中复制测试数据块,实现了在各个GPU之间依次传输测试数据块,对PCIE链路进行加压的目的。
在其中一个实施例中,目标GPU为GPU通信环中的起始位置的GPU。
本申请实施例中,以起始位置的GPU为目标GPU,在生成测试数据块之后,可以直接将测试数据块传递给下一个GPU,提高了数据传输效率。
在其中一个实施例中,控制GPU通信环包括的各个GPU依次传输测试数据块,包括:
控制GPU通信环包括的各个GPU循环传输预设次数的测试数据块。
本申请实施例中,通过多次循环传输该测试数据块,从而对PCIE链路进行多次测试,以保证测试结果的准确性。
一种PCIE链路的稳定性测试装置,该装置包括:
构建模块,用于根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
测试模块,用于向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
获取模块,用于在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
确定模块,用于根据各状态数据确定待测PCIE链路的测试结果。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
根据各状态数据确定待测PCIE链路的测试结果。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
根据各状态数据确定待测PCIE链路的测试结果。
上述PCIE链路的稳定性测试方法、装置、计算机设备和介质,可以测试PCIE链路的整体性能。该PCIE链路的稳定性测试方法,根据待测PCIE链路中GPU的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;根据各状态数据确定待测PCIE链路的测试结果。本申请实施例,基于GPU通信环将待测PCIE链路上的所有通信节点连接起来,通过控制GPU通信环包括的各个GPU依次传输测试数据块实现了对待测PCIE链路整体加压,因此可以实现测试PCIE链路的整体性能,测试结果更能反映待测PCIE链路的整体性能。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一种PCIE链路的拓扑结构的示意图;
图3为另一种PCIE链路的拓扑结构的示意图;
图4为另一种PCIE链路的拓扑结构的示意图;
图5为一个实施例中PCIE链路的稳定性测试方法的流程示意图;
图6为一种GPU通信环的示意图;
图7为另一种GPU通信环的示意图;
图8为另一种GPU通信环的示意图;
图9为另一种GPU通信环的示意图;
图10为一个实施例中测试的方法的流程示意图;
图11为一个实施例中PCIE链路的稳定性测试装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在深度学习训练中,常常采用多个GPU并行训练的方式进行网络训练。具体的,在每个GPU上布置相同的深度学习网络,然后将CPU与多个GPU连接,通过CPU调用和控制多个GPU并行训练。其训练过程包括:每个GPU将其每一轮的训练迭代结果给到CPU,再通过CPU给到其他GPU从而实现多GPU数据同步。然而,随着深度学习网络的复杂度越来越高,进行网络训练时需要的GPU的数量越来越多。由于CPU上的通道数有限,因此,可直接连接到CPU上的GPU的数量受到限制。
为此,目前提出了在CPU上连接PCIE交换芯片(英文:PCIE Switch),然后在PCIE交换芯片上连接多个GPU的方案。其中,PCIE交换芯片也叫PCIE扩展芯片,用于扩展接入CPU的GPU的数量。该方案可以增加GPU的数量。其中,由CPU、PCIE交换芯片以及多个GPU组成的链路称为PCIE链路。对应于PCIE链路,英伟达设计了NCCL(英文:The NVIDIA CollectiveCommunications Library,中文:NVIDIA集体通信图书馆,或者,NVIDIA聚集通信库),这样,在训练过程中,通过NCCL可以将PCIE链路中每个GPU的每一轮的训练迭代结果通过PCIE交换芯片给到其他GPU,多个GPU之间的数据同步过程不需要经由CPU,而仅在多GPU之间进行。
在实际应用中,PCIE链路构建好之后,需要对PCIE链路进行压力测试,以检测该PCIE链路的稳定性。现有技术中,对PCIE链路进行压力测试的方法一般是:对PCIE链路上的由PCIE交换芯片和每个GPU组成的单条链路分别进行测试,得到每个单条链路的测试结果。
然而,上述每个单条链路的测试结果并不能准确反映PCIE链路的整体性能。
基于上述技术问题,本申请实施例提供了一种PCIE链路的稳定性测试方法,可以测试PCIE链路的整体性能。该PCIE链路的稳定性测试方法,根据待测PCIE链路中GPU的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;根据各状态数据确定待测PCIE链路的测试结果。本申请实施例,基于GPU通信环将待测PCIE链路上的所有通信节点连接起来,通过控制GPU通信环包括的各个GPU依次传输测试数据块实现了对待测PCIE链路整体加压,因此可以实现测试PCIE链路的整体性能,测试结果更能反映待测PCIE链路的整体性能。
下面,将对本申请实施例提供的PCIE链路的稳定性测试方法所涉及到的实施环境进行简要说明。
如图1所示,图1中示出了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种PCIE链路的稳定性测试方法。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
可选的,该计算机设备中包括了由CPU、PCIE交换芯片和GPU组成的PCIE链路,可选的,PCIE链路的拓扑结构可以如图2所示,图2中一个CPU上连接了一个PCIE交换芯片,该PCIE交换芯片上连接了多个GPU。
可选的,PCIE链路的拓扑结构可以如图3所示,图3示出了一个CPU上连接了多个PCIE交换芯片,每个PCIE交换芯片上连接了多个GPU。
可选的,PCIE链路的拓扑结构可以如图4所示,图4示出了多个CPU,每个CPU上连接了至少一个PCIE交换芯片,每个PCIE交换芯片上连接了多个GPU,多个CPU之间基于UPI(英文:Ultra Path Interconnect,中文:超级通道互连)总线连接。
请参考图5,其示出了本申请实施例提供的一种PCIE链路的稳定性测试方法的流程图,如图5所示,该PCIE链路的稳定性测试方法可以包括以下步骤:
步骤501,计算机设备根据待测PCIE链路的拓扑结构构建GPU通信环。
其中,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输。
本申请实施例中,计算机设备可以调用NCCL,识别待测PCIE链路的拓扑结构,从而确定待测PCIE链路中的GPU,并以GPU为通信节点,构建将所有GPU首尾连接形成的单向环。数据可以在单向环上按照单向环的方向传输。
下面,通过图6-图8分别示出对应于待测PCIE链路的不同的拓扑结构,所形成的GPU通信环。
图6中的待测PCIE链路的拓扑结构为图2所示的结构,为便于叙述,本申请实施例中,以GPU的数量为四个为例进行说明,如图6所示,图6中的粗实线表示GPU通信环,箭头表示GPU通信环的数据传输方向。
图7中的待测PCIE链路的拓扑结构为图3所示的结构,为便于叙述,本申请实施例中,以PCIE交换芯片的数量为2个,每个PCIE交换芯片上连接的GPU的数量为两个为例进行说明,如图7所示,图7中的粗实线表示GPU通信环,箭头表示GPU通信环的数据传输方向。
图8中的待测PCIE链路的拓扑结构为图4所示的结构,为便于叙述,本申请实施例中,以CPU的数量为两个,每个CPU上连接的PCIE交换芯片的数量为1个,每个PCIE交换芯片上连接的GPU的数量为两个为例进行说明,如图8所示,图8中的粗实线表示GPU通信环,箭头表示GPU通信环的数据传输方向。
在一种可选的实现方式中,计算机设备可以获取待测PCIE链路中GPU的ID和GPU的数量,调用NCCL根据GPU的ID和GPU的数量确定各GPU之间的数据传输顺序,得到GPU通信环。
其中,计算机设备可以从CPU的寄存器中获取待测PCIE链路中GPU的ID和GPU的数量。GPU的ID可以是指GPU0、GPU1、GPU2、GPU3等编号,GPU的数量用于验证GPU的ID是否准确,例如GPU的数量为4个,那么GPU的ID就是从0至3。GPU的数量为3,那么GPU的ID就是从0至2。
在构件GPU通信环的过程中,NCCL具有将GPU索引到最优环序的功能,GPU通信环的环序即各GPU之间的数据传输顺序。为便于说明,下面以图7和图9为例进行对比说明。
根据图7中所显示的GPU通信环可知,该通信环的数据传输顺序为:以GPU1为起始位置的GPU,数据依次传递给GPU2然后传递给GPU0,然后传递给GPU3,然后传递给GPU1,……。根据图7可以看出,在数据传输的过程中,需要多次通过CPU进行数据转换,占用较多的CPU资源。
而图9中示出的GPU通信环为调用NCCL构建的GPU通信环。该通信环的数据传输顺序为:以GPU0为起始位置的GPU,数据依次传递给GPU1然后传递给GPU2,然后传递给GPU3,然后传递给GPU0,……。根据图9可以看出,在数据传输的过程中,通过CPU进行数据转换的次数减少,因此CPU资源占用。因此,本申请通过调用NCCL获得最优环序的GPU通信环,使得GPU通信环上的各个GPU在传输数据的过程中可以以最短路径实现将数据共享到所有GPU的目的,提高了数据传输效率。
步骤502,计算机设备向GPU通信环中的目标GPU发送测试指令,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块。
本申请实施例中,在构建好GPU通信环之后,计算机设备可以从GPU通信环中的多个GPU中选择一个作为目标GPU,其中,目标GPU可以是指GPU通信环中的任意一个GPU。然后,计算机设备可以生成测试指令,测试指令携带有测试数据块的大小。计算机设备可以将测试指令发送给目标GPU,目标GPU在接收到测试指令之后,从测试指令中获取测试数据块的大小,计算机设备可以控制目标GPU根据测试数据块的大小生成测试数据块,然后计算机设备可以控制GPU通信环中,目标GPU之外的其他GPU从目标GPU处拿到测试数据块,并传送测试数据块,测试数据块传输的过程中,实现了对PCIE链路进行加压的目的。
步骤503,计算机设备在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据。
在从各GPU的前一GPU中复制该测试数据块的过程中,各GPU的寄存器中会被写入各GPU的状态数据。计算机设备可以从各个GPU的寄存器中读取各个GPU的状态数据,其中,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种。
步骤504,计算机设备根据各状态数据确定待测PCIE链路的测试结果。
本申请实施例中,计算机设备可以检测各个GPU的状态数据中包括的待测PCIE链路报错信息中是否存在报错标识,和/或,计算机设备可以检测GPU当前带宽是否超出预设带宽范围。
若各个GPU的状态数据中存在目标状态数据,则确定待测PCIE链路的测试结果为测试不通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
若各个GPU的状态数据中不存在目标状态数据,则确定待测PCIE链路的测试结果为测试通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
本申请实施例提供的PCIE链路的稳定性测试方法,根据待测PCIE链路中GPU的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;根据各状态数据确定待测PCIE链路的测试结果。本申请实施例,基于GPU通信环将待测PCIE链路上的所有通信节点连接起来,通过控制GPU通信环包括的各个GPU依次传输测试数据块实现了对待测PCIE链路整体加压,因此可以实现测试PCIE链路的整体性能,测试结果更能反映待测PCIE链路的整体性能。
在本申请的一个实施例中,如图10所示,图10示出了计算机设备向GPU通信环中的目标GPU发送测试指令,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块的技术过程的示意图,该技术过程包括以下步骤:
步骤1001,计算机设备向GPU通信环中的目标GPU发送测试指令。
本申请实施例中,在构建好GPU通信环之后,计算机设备可以将GPU通信环中位于起始位置的GPU确定为目标GPU。以图6为例,图6中,GPU0为GPU通信环的起始位置,那么GPU0即可以是该GPU通信环中的目标GPU。起始位置的GPU是指该GPU通信环在进行数据传输时的起始节点,以起始位置的GPU为目标GPU,在生成测试数据块之后,可以直接将测试数据块传递给下一个GPU,提高了数据传输效率。
本申请实施例中,计算机设备可以生成测试指令,并将测试指令发送给目标GPU。其中,测试指令中携带有测试数据块的大小,其中,测试数据块用于在GPU通信环中的各个GPU之间传输,从而给待测PCIE链路上形成压力。测试数据块的大小直接影响到待测PCIE链路上的压力的大小。测试数据块较小,会导致给待测PCIE链路上的压力较小,测试结果不能表现出待测PCIE链路的稳定性好坏。测试数据块较大,会导致待测PCIE链路过载,破坏待测PCIE链路的稳定性。基于此,计算机设备确定测试数据块的大小的过程包括以下内容:计算机设备通过获取待测PCIE链路中的GPU的理论带宽,根据GPU的理论带宽确定待测PCIE链路的最大有效带宽,根据最大有效带宽确定测试数据块的大小。其中,最大有效带宽表示GPU的数据传输能力的上限,基于最大有效带宽确定的测试数据块的大小可以使得待测PCIE链路在传输过程中处于满压状态。
步骤1002,计算机设备控制目标GPU根据测试指令中测试数据块的大小生成测试数据块。
目标GPU在接收到测试指令之后,计算机设备可以控制目标GPU根据测试指令中测试数据块的大小生成该测试数据块,测试数据块为由二进制01码组成的不包含实际内容的数据块。
步骤1003,计算机设备控制GPU通信环包括的各个GPU依次传输测试数据块。
本申请实施例中,计算机设备可以控制GPU通信环包括的各个GPU按照数据传输顺序依次从各GPU的前一GPU中复制该测试数据块,其中,数据传输顺序是计算机设备调用NCCL根据GPU的ID和GPU的数量确定的。承接上文举例,GPU0作为目标GPU,在生成测试数据块之后,可以向位于其下一位的GPU1发送通知消息,通知消息用于指示GPU1从GPU0复制该测试数据块,GPU1在收到通知消息之后,可以从GPU0中复制该测试数据块,并在得到该测试数据块之后,向GPU2发送通知消息,以此类推。实现传输测试数据块的目的。
可选的,计算机设备可以调用NCCL,通过NCCL控制GPU通信环包括的各个GPU按照数据传输顺序依次从各GPU的前一GPU中复制该测试数据块。
可选的,本申请实施例中,计算机设备可以控制GPU通信环包括的各个GPU循环传输预设次数的该测试数据块。通过多次循环传输该测试数据块,从而对PCIE链路进行多次测试,以保证测试结果的准确性。
应该理解的是,虽然图5和图10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5-图10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种PCIE链路的稳定性测试装置,包括:构建模块1101、测试模块1102、获取模块1103和确定模块1104,其中:
构建模块1101,用于根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
测试模块1102,用于向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
获取模块1103,用于在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
确定模块1104,用于根据各状态数据确定待测PCIE链路的测试结果。
在其中一个实施例中,测试模块1102还用于:
获取待测PCIE链路中的GPU的理论带宽;
根据GPU的理论带宽确定待测PCIE链路的最大有效带宽;
根据最大有效带宽确定测试数据块的大小,根据测试数据块的大小生成测试指令。
在其中一个实施例中,确定模块1104还用于:
若各状态数据中存在目标状态数据,则确定待测PCIE链路的测试结果为测试不通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
在其中一个实施例中,确定模块1104还用于:
若各状态数据中不存在目标状态数据,则确定待测PCIE链路的测试结果为测试通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
在其中一个实施例中,构建模块1101还用于:
获取待测PCIE链路中GPU的ID和GPU的数量;
调用NCCL根据GPU的ID和GPU的数量确定各GPU之间的数据传输顺序,得到GPU通信环。
在其中一个实施例中,测试模块1102还用于:
控制GPU通信环包括的各个GPU按照数据传输顺序依次从各GPU的前一GPU中复制测试数据块。
在其中一个实施例中,目标GPU为GPU通信环中的起始位置的GPU。
在其中一个实施例中,测试模块1102还用于:
控制GPU通信环包括的各个GPU循环传输预设次数的测试数据块。
关于PCIE链路的稳定性测试装置的具体限定可以参见上文中对于PCIE链路的稳定性测试方法的限定,在此不再赘述。上述PCIE链路的稳定性测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
根据各状态数据确定待测PCIE链路的测试结果。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
获取待测PCIE链路中的GPU的理论带宽;
根据GPU的理论带宽确定待测PCIE链路的最大有效带宽;
根据最大有效带宽确定测试数据块的大小,根据测试数据块的大小生成测试指令。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
若各状态数据中存在目标状态数据,则确定待测PCIE链路的测试结果为测试不通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
若各状态数据中不存在目标状态数据,则确定待测PCIE链路的测试结果为测试通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
获取待测PCIE链路中GPU的ID和GPU的数量;
调用NCCL根据GPU的ID和GPU的数量确定各GPU之间的数据传输顺序,得到GPU通信环。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
控制GPU通信环包括的各个GPU按照数据传输顺序依次从各GPU的前一GPU中复制测试数据块。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
目标GPU为GPU通信环中的起始位置的GPU。
在本申请的一个实施例中,该处理器执行计算机程序时实现以下步骤:
控制GPU通信环包括的各个GPU循环传输预设次数的测试数据块。
本申请实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
根据待测PCIE链路的拓扑结构构建GPU通信环,GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在GPU通信环上依次传输;
向GPU通信环中的目标GPU发送测试指令,测试指令携带有测试数据块的大小,控制目标GPU根据测试指令中测试数据块的大小生成测试数据块,并控制GPU通信环包括的各个GPU依次传输测试数据块;
在传输测试数据块的过程中,获取GPU通信环包括的各个GPU的状态数据,状态数据包括待测PCIE链路报错信息和GPU当前带宽中的至少一种;
根据各状态数据确定待测PCIE链路的测试结果。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
获取待测PCIE链路中的GPU的理论带宽;
根据GPU的理论带宽确定待测PCIE链路的最大有效带宽;
根据最大有效带宽确定测试数据块的大小,根据测试数据块的大小生成测试指令。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
若各状态数据中存在目标状态数据,则确定待测PCIE链路的测试结果为测试不通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
若各状态数据中不存在目标状态数据,则确定待测PCIE链路的测试结果为测试通过,其中,目标状态数据包括的待测PCIE链路报错信息中包括报错标识,或者,GPU当前带宽超出预设带宽范围。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
获取待测PCIE链路中GPU的ID和GPU的数量;
调用NCCL根据GPU的ID和GPU的数量确定各GPU之间的数据传输顺序,得到GPU通信环。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
控制GPU通信环包括的各个GPU按照数据传输顺序依次从各GPU的前一GPU中复制测试数据块。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
目标GPU为GPU通信环中的起始位置的GPU。
在本申请的一个实施例中,该计算机程序被处理器执行时实现以下步骤:
控制GPU通信环包括的各个GPU循环传输预设次数的测试数据块。
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种PCIE链路的稳定性测试方法,其特征在于,所述方法包括:
根据待测PCIE链路的拓扑结构构建GPU通信环,所述GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在所述GPU通信环上依次传输;
向所述GPU通信环中的目标GPU发送测试指令,所述测试指令携带有测试数据块的大小,控制所述目标GPU根据所述测试指令中所述测试数据块的大小生成所述测试数据块,并控制所述GPU通信环包括的各个GPU依次传输所述测试数据块;
在传输所述测试数据块的过程中,获取所述GPU通信环包括的各个GPU的状态数据,所述状态数据包括所述待测PCIE链路报错信息和GPU当前带宽中的至少一种;
根据各所述状态数据确定所述待测PCIE链路的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述向所述GPU通信环中的目标GPU发送测试指令,包括:
获取所述待测PCIE链路中的GPU的理论带宽;
根据所述GPU的理论带宽确定所述待测PCIE链路的最大有效带宽;
根据所述最大有效带宽确定测试数据块的大小,根据所述测试数据块的大小生成所述测试指令。
3.根据权利要求1所述的方法,其特征在于,所述根据各所述状态数据确定所述待测PCIE链路的测试结果,包括:
若各所述状态数据中存在目标状态数据,则确定所述待测PCIE链路的测试结果为测试不通过,其中,所述目标状态数据包括所述待测PCIE链路报错信息中包括报错标识,或者,所述GPU当前带宽超出预设带宽范围。
4.根据权利要求1所述的方法,其特征在于,所述根据待测PCIE链路的拓扑结构构建GPU通信环,包括:
获取所述待测PCIE链路中GPU的ID和GPU的数量;
调用NCCL根据所述GPU的ID和所述GPU的数量确定各所述GPU之间的数据传输顺序,得到所述GPU通信环。
5.根据权利要求4所述的方法,其特征在于,所述控制所述GPU通信环包括的各个GPU依次传输所述测试数据块,包括:
控制所述GPU通信环包括的各个GPU按照所述数据传输顺序依次从各所述GPU的前一GPU中复制所述测试数据块。
6.根据权利要求1所述的方法,其特征在于,所述目标GPU为所述GPU通信环中的起始位置的GPU。
7.根据权利要求1所述的方法,其特征在于,所述控制所述GPU通信环包括的各个GPU依次传输所述测试数据块,包括:
控制所述GPU通信环包括的各个GPU循环传输预设次数的所述测试数据块。
8.一种PCIE链路的稳定性测试方法装置,其特征在于,所述装置包括:
构建模块,用于根据待测PCIE链路的拓扑结构构建GPU通信环,所述GPU通信环以GPU为通信节点,是将所有的通信节点通过首尾连接形成的单向环,数据在所述GPU通信环上依次传输;
测试模块,用于向所述GPU通信环中的目标GPU发送测试指令,所述测试指令携带有测试数据块的大小,控制所述目标GPU根据所述测试指令中所述测试数据块的大小生成所述测试数据块,并控制所述GPU通信环包括的各个GPU依次传输所述测试数据块;
获取模块,用于在传输所述测试数据块的过程中,获取所述GPU通信环包括的各个GPU的状态数据,所述状态数据包括所述待测PCIE链路报错信息和GPU当前带宽中的至少一种;
确定模块,用于根据各所述状态数据确定所述待测PCIE链路的测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202011260110.3A 2020-11-12 2020-11-12 Pcie链路的稳定性测试方法、装置、计算机设备和介质 Active CN112416672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011260110.3A CN112416672B (zh) 2020-11-12 2020-11-12 Pcie链路的稳定性测试方法、装置、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011260110.3A CN112416672B (zh) 2020-11-12 2020-11-12 Pcie链路的稳定性测试方法、装置、计算机设备和介质

Publications (2)

Publication Number Publication Date
CN112416672A true CN112416672A (zh) 2021-02-26
CN112416672B CN112416672B (zh) 2024-02-23

Family

ID=74832102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011260110.3A Active CN112416672B (zh) 2020-11-12 2020-11-12 Pcie链路的稳定性测试方法、装置、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN112416672B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347067A (zh) * 2021-08-04 2021-09-03 苏州浪潮智能科技有限公司 一种PCIe信号的带宽确定方法、装置及设备
CN114285766A (zh) * 2021-08-20 2022-04-05 腾讯科技(深圳)有限公司 一种网络带宽检测方法、装置、电子设备和存储介质
CN114500413A (zh) * 2021-12-17 2022-05-13 阿里巴巴(中国)有限公司 设备连接方法及装置、设备连接芯片

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590037A (zh) * 2017-08-29 2018-01-16 郑州云海信息技术有限公司 一种对服务器gpu进行edpp测试的方法
US20190324856A1 (en) * 2018-04-18 2019-10-24 EMC IP Holding Company LLC Optimization of checkpoint operations for deep learning computing
US20200160171A1 (en) * 2018-11-20 2020-05-21 Microsoft Technology Licensing, Llc Mitigating communication bottlenecks during parameter exchange in data-parallel dnn training
CN111258833A (zh) * 2020-02-14 2020-06-09 苏州浪潮智能科技有限公司 一种高速总线稳定性检测方法、系统及相关组件
CN111338862A (zh) * 2020-02-16 2020-06-26 苏州浪潮智能科技有限公司 一种gpu模式切换稳定性测试方法、系统、终端及存储介质
CN111475376A (zh) * 2020-03-25 2020-07-31 微民保险代理有限公司 处理测试数据的方法、装置、计算机设备和存储介质
CN111597139A (zh) * 2020-05-13 2020-08-28 苏州浪潮智能科技有限公司 一种gpu的通信方法、系统、设备以及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590037A (zh) * 2017-08-29 2018-01-16 郑州云海信息技术有限公司 一种对服务器gpu进行edpp测试的方法
US20190324856A1 (en) * 2018-04-18 2019-10-24 EMC IP Holding Company LLC Optimization of checkpoint operations for deep learning computing
US20200160171A1 (en) * 2018-11-20 2020-05-21 Microsoft Technology Licensing, Llc Mitigating communication bottlenecks during parameter exchange in data-parallel dnn training
CN111258833A (zh) * 2020-02-14 2020-06-09 苏州浪潮智能科技有限公司 一种高速总线稳定性检测方法、系统及相关组件
CN111338862A (zh) * 2020-02-16 2020-06-26 苏州浪潮智能科技有限公司 一种gpu模式切换稳定性测试方法、系统、终端及存储介质
CN111475376A (zh) * 2020-03-25 2020-07-31 微民保险代理有限公司 处理测试数据的方法、装置、计算机设备和存储介质
CN111597139A (zh) * 2020-05-13 2020-08-28 苏州浪潮智能科技有限公司 一种gpu的通信方法、系统、设备以及介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347067A (zh) * 2021-08-04 2021-09-03 苏州浪潮智能科技有限公司 一种PCIe信号的带宽确定方法、装置及设备
US11929902B2 (en) 2021-08-04 2024-03-12 Inspur Suzhou Intelligent Technology Co., Ltd. PCIe signal bandwidth determining method, apparatus and device
CN114285766A (zh) * 2021-08-20 2022-04-05 腾讯科技(深圳)有限公司 一种网络带宽检测方法、装置、电子设备和存储介质
CN114285766B (zh) * 2021-08-20 2023-06-13 腾讯科技(深圳)有限公司 一种网络带宽检测方法、装置、电子设备和存储介质
CN114500413A (zh) * 2021-12-17 2022-05-13 阿里巴巴(中国)有限公司 设备连接方法及装置、设备连接芯片
CN114500413B (zh) * 2021-12-17 2024-04-16 阿里巴巴(中国)有限公司 设备连接方法及装置、设备连接芯片

Also Published As

Publication number Publication date
CN112416672B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN112416672B (zh) Pcie链路的稳定性测试方法、装置、计算机设备和介质
US7552312B2 (en) Identifying messaging completion in a parallel computer by checking for change in message received and transmitted count at each node
WO2019037203A1 (zh) 应用程序的性能测试方法、装置、计算机设备和存储介质
US11398981B2 (en) Path creation method and device for network on chip and electronic apparatus
CN113254240B (zh) 一种管理控制设备的方法、系统、设备及介质
CN111522775A (zh) 片上网络路由装置及其控制方法
CN105763463B (zh) 一种链路探测报文的传输方法和装置
CN113886058A (zh) 一种跨集群资源调度方法和装置
US9037910B2 (en) SAS self-test operations
CN107293330B (zh) 对随机存取存储器ram进行仿真验证的方法和仿真验证系统
CN111092925B (zh) 一种区块链扩容处理方法、装置及设备
CN105404635A (zh) 字符串匹配的方法、设备和异构计算系统
CN111132325B (zh) 基于子帧调度的组网方法、存储介质、自组网及其节点
US20180359727A1 (en) Wireless communication apparatus, wireless communication method, and computer readable medium
CN110365649A (zh) 数据传输方法、数据接入设备、数据输出设备和系统
WO2015165280A1 (zh) 一种确定中间路由节点的方法、装置及系统
CN115729961A (zh) 数据查询方法、装置、设备和计算机可读存储介质
CN111464395B (zh) 一种创建区块链的方法、装置及可读存储介质
CN111953535B (zh) 一种网络故障定位方法、终端及存储介质
CN112882722A (zh) 编译方法、芯片、计算机可读介质
CN112149951A (zh) 风险控制方法、装置、计算机设备和存储介质
CN111464398A (zh) 自组织无中心的网络高层协议测试方法、设备及存储介质
CN112995274B (zh) 确定连接节点的方法、装置、设备及计算机可读存储介质
CN113094118B (zh) 数据处理系统、方法、装置、计算机设备和存储介质
CN113259182B (zh) 一种基于自主决策的通信路径监控方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant