CN108958999A - 一种测试gpu浮点运算性能的方法和系统 - Google Patents

一种测试gpu浮点运算性能的方法和系统 Download PDF

Info

Publication number
CN108958999A
CN108958999A CN201810606203.3A CN201810606203A CN108958999A CN 108958999 A CN108958999 A CN 108958999A CN 201810606203 A CN201810606203 A CN 201810606203A CN 108958999 A CN108958999 A CN 108958999A
Authority
CN
China
Prior art keywords
gpu
floating
value
point operation
test
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.)
Pending
Application number
CN201810606203.3A
Other languages
English (en)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810606203.3A priority Critical patent/CN108958999A/zh
Publication of CN108958999A publication Critical patent/CN108958999A/zh
Pending legal-status Critical Current

Links

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/2236Detection 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 CPU or processors
    • 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)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请公开了一种测试GPU浮点运算性能的方法和系统,该方法包括:获取GPU的实际浮点运算值;根据每周期运算次数标称值、核数标称值以及每核心频率标称值,计算GPU的标准浮点运算值;根据实际浮点运算值与标准浮点运算值的比值,计算GPU的效率值;判断GPU的效率值是否≥85%;如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。该系统包括实际浮点运算值测试模块、标准浮点运算值计算模块、GPU效率值计算模块和判断模块。通过本申请中的方法和系统,能够同时测试一个或多个GPU的单精度和双精度浮点运行性能,从而能够简单便捷地获取单机GPU服务器的并行运算能力,或GPU服务器的集群性能,有利于节省测试时间,提高测试效率。

Description

一种测试GPU浮点运算性能的方法和系统
技术领域
本申请涉及高性能计算服务器技术领域,特别是涉及一种测试GPU浮点运算性能的方法和系统。
背景技术
随着高性能计算服务器技术的发展,GPU(Graphics Processing Unit,图形处理器)服务器广泛应用于深度学习和人工智能等技术领域。在这些技术领域中,主要应用GPU的高性能并行计算以及超大规模负载数据中心的能力,而评估GPU并行计算能力的重要指标就是GPU的单精度和双精度浮点运算能力。因此,对GPU的浮点运算性能进行测试,是个进行GPU性能评估的重点。
目前,对GPU进行浮点运算性能测试的方法主要是,一次测试针对某一种类型的GPU分别进行单精度测试和双精度测试,而且一次只能测试一种类型的GPU,然后根据单精度测试结果和双精度测试结果,来评估GPU的并行计算性能。
然而,目前对GPU所进行的浮点运算性能测试方法,由于一次只能针对一种类型的GPU进行测试,而且单精度测试和双精度测试只能分开测试,占用测试时间较长,测试效率较低。尤其是进行多个GPU的性能测试时,测试效率较低的现象更加明显。
发明内容
本申请提供了一种测试GPU浮点运算性能的方法和系统,以解决现有技术中测试效率较低的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种测试GPU浮点运算性能的方法,所述方法包括:
根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值,所述实际浮点运算值包括单精度实际浮点运算值和双精度实际浮点运算值,所述测试参数包括:待测试GPU的型号、序号和测试规模;
根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值,所述标准浮点运算值包括单精度标准浮点运算值和双精度标准浮点运算值;
根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值;
判断GPU的效率值是否≥85%;
如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。
可选地,根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值之前,所述方法还包括:
搭建GPU测试环境,所述测试环境包括CUDA平台,所述CUDA平台用于运行SHOC基准程序。
可选地,所述搭建GPU测试环境,包括:
根据所获取的第一加载指令,加载GPU驱动程序;
根据所获取的安装指令,安装CUDA平台;
根据所获取的第二加载指令,在CUDA平台上加载shoc-master.zip工具。
可选地,根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值的方法,包括:
根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值;
根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
可选地,所述方法可用于GPU单机测试以及GPU集群测试。
一种测试GPU浮点运算性能的系统,所述系统包括:
实际浮点运算值测试模块,用于根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值,所述实际浮点运算值包括单精度实际浮点运算值和双精度实际浮点运算值,所述测试参数包括:待测试GPU的型号、序号和测试规模;
标准浮点运算值计算模块,用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值,所述标准浮点运算值包括单精度标准浮点运算值和双精度标准浮点运算值;
GPU效率值计算模块,用于根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值;
判断模块,用于判断GPU的效率值是否≥85%,如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。
可选地,所述系统还包括测试环境搭建模块,用于搭建GPU测试环境,所述测试环境包括CUDA平台。
可选地,所述测试环境搭建模块包括:
GPU驱动程序加载单元,用于根据所获取的第一加载指令,加载GPU驱动程序;
CUDA平台安装单元,用于根据所获取的安装指令,安装CUDA平台;
测试工具加载单元,用于根据所获取的第二加载指令,在CUDA平台上加载shoc-master.zip工具。
可选地,所述标准浮点运算值计算模块,包括:
双精度标准浮点运算值计算单元,用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值;
单精度标准浮点运算值计算单元,用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
可选地,所述系统可用于GPU单机测试以及GPU集群测试。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供一种测试GPU浮点运算性能的方法,首先根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值;其次根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值;然后根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值;最后判断GPU的效率值是否≥85%;如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。相比于现有技术,本申请通过在CUDA平台上运行SHOC基准程序,能够同时测试一个或多个GPU的单精度和双精度浮点运行性能,从而能够简单便捷地获取单机GPU服务器的并行运算能力,或GPU服务器的集群性能。利用本申请的方法编写脚本,能够实现GPU浮点运行性能的自动化测试,有利于节省测试时间,提高测试效率。
本申请还提供一种测试GPU浮点运算性能的系统,该系统包括实际浮点运算值测试模块、标准浮点运算值计算模块、GPU效率值计算模块和判断模块。通过实际浮点运算值测试模块,根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值;利用标准浮点运算值计算模块根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值;利用GPU效率值计算模块,根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值;最后通过判断模块根据效率值是否≥85%来判断GPU的浮点运行性能测试是否合格,从而实现对单机GPU浮点运算性能的评估,或GPU集群浮点运算性能的评估。本申请所提供的系统,利用SHOC基准程序,能够同时测试一个或多个GPU的单精度和双精度浮点运行性能,从而能够简单便捷地获取单机GPU服务器的并行运算能力,或GPU服务器的集群性能,有利于大大提高GPU性能测试的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种测试GPU浮点运算性能的方法的流程示意图;
图2为本申请实施例所提供的一种测试GPU浮点运算性能的系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
实施例一
参见图1,图1为本申请实施例所提供的一种测试GPU浮点运算性能的方法的流程示意图。由图1可知,本实施例中测试GPU浮点运算性能的方法,主要包括如下过程:
S1:根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值。
实际浮点运算值包括单精度实际浮点运算值和双精度实际浮点运算值,测试参数包括:待测试GPU的型号、序号和测试规模。其中,待测试GPU的序号指的是同时测试多个GPU时,当前GPU所在的设备的编号。GPU的测试规模为GPU上所运行数据的规模。
具体地,步骤S1包括如下过程:
S11:根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值。
其中,GPU每周期运算次数实测值包括单精度每周期运算次数实测值和双精度每周期运算次数实测值,GPU的核数实测值包括单精度核数实测值和双精度核数实测值,每核心频率实测值包括单精度每核心频率实测值和双精度每核心频率实测值。
S12:根据GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值,利用公式:GPU的双精度实际浮点运算值=GPU每周期运算次数实测值*GPU的核数实测值*每核心频率实测值,计算得出GPU的双精度实际浮点运算值。
S13:根据GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值,利用公式:GPU的单精度实际浮点运算值=3*GPU每周期运算次数实测值*GPU的核数实测值*每核心频率实测值,计算得出GPU的单精度实际浮点运算值。
本实施例主要利用SHOC基准程序来测试GPU服务器的单精度、双精度性能参数,具体是利用shoc-master.zip工具调用SHOC基准程序中与GPU性能相关的程序和系统。SHOC(Scalable HeterOgeneous Computing,可扩展的异构计算)是基准程序的集合,用于测试系统的性能、稳定性以及测试编写在这些系统中的软件。本实施例通过shoc-master.zip工具调用SHOC中的与GPU性能相关的程序,选择单精度浮点数进行运算或者选择双精度浮点数进行运算,从而实现GPU的浮点运算性能测试。本实施例能够实现GPU单机测试,即针对单个GPU的浮点运算性能测试;也能够实现GPU集群的浮点运算能力测试,也就是实现GPU集群中多个不同型号GPU的浮点运算能力测试。尤其针对GPU集群中多个不同型号的GPU,不必一一对每个GPU进行测试,可以利用SHOC基准程序一次测试出多个GPUD的浮点运行性能。
当然,本实施例进行GPU浮点运算性能测试之前,首先需要执行步骤S0:搭建测试环境,该测试环境包括CUDA平台,CUDA平台用于运行SHOC基准程序。也就是,通过在GPU上配置CUDA平台,在CUDA平台上运行与GPU浮点性能相关的SHOC程序,从而检测到GPU的单精度浮点运算性能和双精度浮点运算性能。
具体地,搭建GPU测试环境,包括如下过程:
S01:根据所获取的第一加载指令,加载GPU驱动程序。
S02:根据所获取的安装指令,安装CUDA平台。
S03:根据所获取的第二加载指令,在CUDA平台上加载shoc-master.zip工具。
继续参见图1可知,获取GPU的实际浮点运算值之后,执行步骤S2:根据GPU每周期运算次数、GPU的核数以及每核心频率,计算得出GPU的标准浮点运算值。其中,标准浮点运算值包括单精度标准浮点运算值和双精度标准浮点运算值。
具体地,根据不同的浮点运算情况,步骤S2又包括:
S21:根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值;
S22:根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
S3:根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值。
获取到GPU的实际浮点运算值和标准浮点运算值以后,按照单精度和双精度,分别计算GPU的单精度效率值和GPU的双精度效率值。GPU的单精度效率值为:GPU的单精度实际浮点运算值与GPU的单精度标准浮点运算值之比。GPU的双精度效率值为:GPU的双精度实际浮点运算值与GPU的双精度标准浮点运算值之比。
S4:判断GPU的效率值是否≥85%。
根据步骤S3中计算得出的GPU的单精度效率值和双精度效率值,分别判断GPU的效率值是否≥85%,从而确定GPU的单精度浮点运算性能和GPU的双精度浮点运算性能。
S5:如果是,判定GPU的浮点运行性能测试合格。
S6:如果否,判定GPU的浮点运算性能不合格。
下面以采用本实施例所编写的脚本,对型号为K80的GPU进行浮点性能测试为例,详细描述GPU浮点运算性能的测试方法。
(1)测试环境准备。
包括下载GPU驱动程序、CUDA驱动程序和测试工具shoc-master.zip。
(2)配置编译环境。
(21)根据CUDA驱动程序安装CUDA平台。
首先,利用#sudoshcuda_8.0…run软件自动安装CUDA平台,使GPU与CUDA平台建立连接。需要注意的是本实施例中所安装的CUDA驱动为厂家最新版本的CUDA驱动,而不是厂家自带的CUDA驱动。
其次,调用CUDA中的环境变量配置文件,进行CUDA环境配置并保存所配置的信息。例如:将以下内容添加至CUDA中的环境变量配置文件~/.bashrc中:
exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
exportPATH=/usr/local/cuda-8.0/bin:$PATH。
然后,执行#source~/.bashrc命令,使环境变量配置文件生效;
然后,利用#nvcc–V命令,验证所安装的CUDA平台是否正确。如果不正确重新安装,直到CUDA安装正确为止。
(22)安装GPU驱动。
为了与CUDA平台相匹配,本实施例中需要安装当前最新版本的GPU驱动。为了避免操作系统中自带的GPU基础驱动与最新版本的GPU驱动有冲突,首先卸载操作系统中自带的GPU基础驱动。
然后安装与CUDA平台版本相匹配的GPU驱动。可以利用命令#sudo sh XXX.run进行GPU驱动安装,其中XXX.run是GPU驱动文件。驱动安装完毕后,通过命令#nvidia-smi验证驱动安装是否正常。
(23)编译安装。
通过解压所下载的源码包,完成编译安装。
(3)进行GPU浮点运算测试。
通过#perl./tools/driver.pl-cuda-s4-d 0,1,2,3-benchmark Maxflops命令进行测试参数配置。其中,-s表示测试规模,即GPU上需要运行的数据的规模;-d表示在哪个device上运行程序,也就是GPU所在设备的序号;-benchmark表示只运行Maxflops,即只运行单精度以及双精度性能测试,Maxsflops表示单精度浮点运算,Maxdflops表示双精度浮点运算。
执行命令#perl./tools/driver.pl,开始进行GPU浮点运算。首先,分别采集到单精度下的GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值,和双精度下的GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值。然后,利用公式:GPU的双精度实际浮点运算值=GPU每周期运算次数实测值*GPU的核数实测值*每核心频率实测值,以及公式:GPU的单精度实际浮点运算值=3*GPU每周期运算次数实测值*GPU的核数实测值*每核心频率实测值,分别计算得出GPU的单精度实际浮点运算值和双精度实际浮点运算值。
(4)获取测试结果。
根据GPU厂家所提供的GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值;利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
再结合步骤(3)中计算得出的GPU的单精度实际浮点运算值和双精度实际浮点运算值,根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的单精度效率值和双精度效率值。
分别判断GPU的单精度效率值和双精度效率值是否≥85%;如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。
从而获取到K80的浮点运算性能。
实施例二
在图1所示实施例的基础之上参见图2,图2为本申请实施例所提供的一种测试GPU浮点运算性能的系统的结构示意图。由图2可知,该系统主要包括实际浮点运算值测试模块、标准浮点运算值计算模块、GPU效率值计算模块和判断模块。该系统可以用于GPU单机测试和GPU集群测试。
其中,实际浮点运算值测试模块用于根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值。其中,实际浮点运算值包括单精度实际浮点运算值和双精度实际浮点运算值,测试参数包括:待测试GPU的型号、序号和测试规模。标准浮点运算值计算模块用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值,标准浮点运算值包括单精度标准浮点运算值和双精度标准浮点运算值。GPU效率值计算模块用于根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值。判断模块用于判断GPU的效率值是否≥85%,如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。
进一步地,本实施例中测试GPU浮点运算性能的系统还包括测试环境搭建模块,用于搭建GPU测试环境,所述测试环境包括CUDA平台。该测试环境搭建模块包括:GPU驱动程序加载单元、CUDA平台安装单元和测试工具加载单元。其中,GPU驱动程序加载单元用于根据所获取的第一加载指令,加载GPU驱动程序;CUDA平台安装单元用于根据所获取的安装指令,安装CUDA平台;测试工具加载单元用于根据所获取的第二加载指令,在CUDA平台上加载shoc-master.zip工具。
进一步地,标准浮点运算值计算模块,包括:双精度标准浮点运算值计算单元和单精度标准浮点运算值计算单元。其中,双精度标准浮点运算值计算单元用于根据GPU每周期运算次数、GPU的核数以及每核心频率,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值。单精度标准浮点运算值计算单元用于根据GPU每周期运算次数、GPU的核数以及每核心频率,利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
进一步地,实际浮点运算值测试模块,包括:双精度实际浮点运算值计算单元和单精度实际浮点运算值计算单元。其中,双精度实际浮点运算值计算单元用于根据GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值,利用公式:双精度标准浮点运算值=每周期运算次数实测值*GPU的核数实测值*每核心频率实测值,计算得出双精度标准浮点运算值。单精度标实际浮点运算值计算单元用于根据GPU每周期运算次数实测值、GPU的核数实测值以及每核心频率实测值,利用公式:单精度标准浮点运算值=3*每周期运算次数实测值*GPU的核数实测值*每核心频率实测值,计算得出单精度标准浮点运算值。
本实施例中测试GPU浮点运算性能的系统的工作原理和工作方法,在图1所示的实施例中已经详细阐述,两者之间可以互相参照,在此不再赘述。
综上所述,本申请所提供的系统,利用SHOC基准程序能够同时测试一个或多个GPU的单精度和双精度浮点运行性能,从而能够简单便捷地获取单机GPU服务器的并行运算能力,或GPU服务器的集群性能,有利于大大提高GPU性能测试的效率。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种测试GPU浮点运算性能的方法,其特征在于,所述方法包括:
根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值,所述实际浮点运算值包括单精度实际浮点运算值和双精度实际浮点运算值,所述测试参数包括:待测试GPU的型号、序号和测试规模;
根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值,所述标准浮点运算值包括单精度标准浮点运算值和双精度标准浮点运算值;
根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值;
判断GPU的效率值是否≥85%;
如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。
2.根据权利要求1所述的一种测试GPU浮点运算性能的方法,其特征在于,根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值之前,所述方法还包括:
搭建GPU测试环境,所述测试环境包括CUDA平台,所述CUDA平台用于运行SHOC基准程序。
3.根据权利要求2所述的一种测试GPU浮点运算性能的方法,其特征在于,所述搭建GPU测试环境,包括:
根据所获取的第一加载指令,加载GPU驱动程序;
根据所获取的安装指令,安装CUDA平台;
根据所获取的第二加载指令,在CUDA平台上加载shoc-master.zip工具。
4.根据权利要求1所述的一种测试GPU浮点运算性能的方法,其特征在于,根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值的方法,包括:
根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值;
根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
5.根据权利要求1-4中任一所述的一种测试GPU浮点运算性能的方法,其特征在于,所述方法可用于GPU单机测试以及GPU集群测试。
6.一种测试GPU浮点运算性能的系统,其特征在于,所述系统包括:
实际浮点运算值测试模块,用于根据设定的测试参数,利用shoc-master.zip工具,对GPU进行单精度浮点运算测试和双精度浮点运算测试,获取GPU的实际浮点运算值,所述实际浮点运算值包括单精度实际浮点运算值和双精度实际浮点运算值,所述测试参数包括:待测试GPU的型号、序号和测试规模;
标准浮点运算值计算模块,用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,计算得出GPU的标准浮点运算值,所述标准浮点运算值包括单精度标准浮点运算值和双精度标准浮点运算值;
GPU效率值计算模块,用于根据GPU的实际浮点运算值与标准浮点运算值的比值,计算得出GPU的效率值;
判断模块,用于判断GPU的效率值是否≥85%,如果是,判定GPU的浮点运行性能测试合格,否则,判定GPU的浮点运算性能不合格。
7.根据权利要求6所述的一种测试GPU浮点运算性能的系统,其特征在于,所述系统还包括测试环境搭建模块,用于搭建GPU测试环境,所述测试环境包括CUDA平台。
8.根据权利要求7所述的一种测试GPU浮点运算性能的系统,其特征在于,所述测试环境搭建模块包括:
GPU驱动程序加载单元,用于根据所获取的第一加载指令,加载GPU驱动程序;
CUDA平台安装单元,用于根据所获取的安装指令,安装CUDA平台;
测试工具加载单元,用于根据所获取的第二加载指令,在CUDA平台上加载shoc-master.zip工具。
9.根据权利要求6所述的一种测试GPU浮点运算性能的系统,其特征在于,所述标准浮点运算值计算模块,包括:
双精度标准浮点运算值计算单元,用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:双精度标准浮点运算值=每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出双精度标准浮点运算值;
单精度标准浮点运算值计算单元,用于根据GPU每周期运算次数标称值、GPU的核数标称值以及每核心频率标称值,利用公式:单精度标准浮点运算值=3*每周期运算次数标称值*GPU的核数标称值*每核心频率标称值,计算得出单精度标准浮点运算值。
10.根据权利要求6-9中任一所述的一种测试GPU浮点运算性能的系统,其特征在于,所述系统可用于GPU单机测试以及GPU集群测试。
CN201810606203.3A 2018-06-13 2018-06-13 一种测试gpu浮点运算性能的方法和系统 Pending CN108958999A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810606203.3A CN108958999A (zh) 2018-06-13 2018-06-13 一种测试gpu浮点运算性能的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810606203.3A CN108958999A (zh) 2018-06-13 2018-06-13 一种测试gpu浮点运算性能的方法和系统

Publications (1)

Publication Number Publication Date
CN108958999A true CN108958999A (zh) 2018-12-07

Family

ID=64488875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810606203.3A Pending CN108958999A (zh) 2018-06-13 2018-06-13 一种测试gpu浮点运算性能的方法和系统

Country Status (1)

Country Link
CN (1) CN108958999A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918125A (zh) * 2019-03-20 2019-06-21 浪潮商用机器有限公司 基于OpenPOWER架构的GPU配置方法及装置
CN110008099A (zh) * 2019-03-08 2019-07-12 北京星网锐捷网络技术有限公司 一种数据中心性能测试的方法及装置
CN112231158A (zh) * 2020-09-28 2021-01-15 苏州浪潮智能科技有限公司 一种测试多卡gpgpu集群浮点运算性能的方法及装置
CN112650632A (zh) * 2020-12-04 2021-04-13 苏州浪潮智能科技有限公司 一种运算卡测试方法、系统及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279332A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种基于gpu-cuda平台以及遗传算法的数据流并行处理方法
CN104932976A (zh) * 2015-06-03 2015-09-23 浪潮电子信息产业股份有限公司 一种自动化测试PCIEx16性能的实现方法
CN105589778A (zh) * 2016-01-12 2016-05-18 浪潮电子信息产业股份有限公司 一种linux系统下自动计算CPU浮点运算理论值的方法
CN107590037A (zh) * 2017-08-29 2018-01-16 郑州云海信息技术有限公司 一种对服务器gpu进行edpp测试的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279332A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种基于gpu-cuda平台以及遗传算法的数据流并行处理方法
CN104932976A (zh) * 2015-06-03 2015-09-23 浪潮电子信息产业股份有限公司 一种自动化测试PCIEx16性能的实现方法
CN105589778A (zh) * 2016-01-12 2016-05-18 浪潮电子信息产业股份有限公司 一种linux系统下自动计算CPU浮点运算理论值的方法
CN107590037A (zh) * 2017-08-29 2018-01-16 郑州云海信息技术有限公司 一种对服务器gpu进行edpp测试的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZIV555: "不同显卡(GPU)浮点数计算能力", 《HTTPS://BLOG.CSDN.NET/ZIV555/ARTICLE/DETAILS/51753985?UTM_SOURCE=ITDADAO&UTM_MEDIUM=REFERRAL》 *
网易数码: "解析SHOC小白慎入专业卡FireProW测试", 《HTTP://DIGI.163.COM/15/0411/05/AMT6K7K800162DSP.HTML》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008099A (zh) * 2019-03-08 2019-07-12 北京星网锐捷网络技术有限公司 一种数据中心性能测试的方法及装置
CN110008099B (zh) * 2019-03-08 2023-09-26 北京星网锐捷网络技术有限公司 一种数据中心性能测试的方法及装置
CN109918125A (zh) * 2019-03-20 2019-06-21 浪潮商用机器有限公司 基于OpenPOWER架构的GPU配置方法及装置
CN112231158A (zh) * 2020-09-28 2021-01-15 苏州浪潮智能科技有限公司 一种测试多卡gpgpu集群浮点运算性能的方法及装置
CN112650632A (zh) * 2020-12-04 2021-04-13 苏州浪潮智能科技有限公司 一种运算卡测试方法、系统及介质

Similar Documents

Publication Publication Date Title
CN108958999A (zh) 一种测试gpu浮点运算性能的方法和系统
EP3816806A1 (en) Utilizing neural network and artificial intelligence models to select and execute test cases in a software development platform
CN106095654B (zh) 性能验证装置、性能验证系统以及性能验证方法
US20120167055A1 (en) Efficiently developing software using test cases to check the conformity of the software to the requirements
EP2960799A1 (en) Defect localization in software integration tests
US9176490B2 (en) Control program generation device, control program generation program, and control program generation method
CN104081359B (zh) 失败代码变化的识别
US20140310693A1 (en) Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing
US8276122B2 (en) Method to speed up creation of JUnit test cases
CN100451986C (zh) 网络芯片的自动化验证方法
CN106093897B (zh) 一种雷达系统的测试系统及测试方法
Fursin et al. CodeReef: an open platform for portable MLOps, reusable automation actions and reproducible benchmarking
CN113076143B (zh) 一种国产平台人工智能环境适配方法及兼容性测试方法
CN104881311B (zh) 一种版本兼容的判断方法及装置
CN109710247A (zh) 一种基于模型的飞控软件快速实现平台
CN112882751A (zh) Cuda程序移植方法、装置、电子设备及存储介质
CN106933572B (zh) 一种基于llvm中间表示程序切片的度量模型
Fursin The collective knowledge project: Making ML models more portable and reproducible with open APIs, reusable best practices and MLOps
CN110780916B (zh) 一种电网调度控制系统的软件运维方法、装置和系统
JP2022136983A (ja) システム試験手順を使用する統合試験手順の自動生成
CN102541592A (zh) 一种通信设备及其软件升级的方法
CN116090376B (zh) 芯片集成验证组件开发方法、装置及计算机设备
CN103593179B (zh) 用于在并行计算环境中开发软件的方法
CN115329597A (zh) 用于仿真检测高精地图质量的方法、装置和设备
CN109613840A (zh) 一种基于Matlab的半物理仿真方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181207