使用GTC-P应用评估曙光E级原型机的性能*

2020-03-04 07:56王一超WilliamTang林新华
计算机工程与科学 2020年1期
关键词:浮点原型机曙光

王一超,胡 航,William Tang,王 蓓,林新华

(1.上海交通大学高性能计算中心,上海 200240; 2.普林斯顿大学等离子体物理实验室,新泽西州普林斯顿 08540)

1 引言

超级计算机被广泛应用于天气预报、基因分析、天体模拟、核物理等高科技领域,对这些研究有着不可或缺的关键性作用。鉴于当前的国际形势,我国大力推动国产超级计算机的研制,“十三五”计划中的3台E级超级计算机原型系统——曙光、神威、天河原型机现已全部交付。其中曙光E级原型机是由中科曙光研制,采用CPU+加速器的异构架构。CPU采用的是AMD授权的海光x86处理器,加速器采用的是海光深度计算器DCU(Deep Computing Unit)加速卡[1]。

本文的工作主要分2部分:(1)采用基准测试集(Benchmark Suite)对曙光E级原型机(以下简称原型机)进行了性能评测,测试了其浮点计算能力、访存带宽、访存延迟等关键性能指标,并将其CPU部分与主流的Intel Xeon Gold 6148进行对比;(2)将由普林斯顿大学开发的著名高性能计算应用GTC-P(Gyrokinetic Toroidal Code at Princeton )[2]移植到原型机上,进行了同构和异构的并行测试,并与Intel Xeon Gold 6148和NVIDIA V100进行对比。

本文有以下3个主要贡献:

(1)对原型机上的Hygon 7185处理器进行了基准测试,结合已公开的资料,完善并明确了该处理器的基础性能指标。通过与Intel主流平台的对比,为在原型机CPU上进行应用移植提供了性能分析依据。

(2)基于GTC-P应用在原型机CPU上移植后的性能表现,并对比Intel主流平台,分析了该高性能计算应用在Hygon平台上的性能瓶颈,从而评估了原型机CPU的实际性能。

(3)通过使用ROCm HIP模型将CUDA版本的GTC-P移植到原型机的加速器DCU上,并与最新GPU平台NVIDIA V100进行了性能对比,评估DCU的应用可移植性和实际性能。

Figure 1 Diagram of Sugon exascale prototype’s node architecture图1 曙光E级原型机结点架构示意图

2 背景介绍

本文将从GTC-P应用、曙光E级原型机架构、CPU和加速卡的硬件软件信息几个方面进行研究背景介绍。

2.1 GTC-P应用

GTC-P是由普林斯顿大学等离子体物理实验室开发的质点网格法PIC(Particle-In-Cell)程序。该程序具有极佳的可扩展性,在许多超级计算机上进行了性能测试,并已入选美国NERSC国家超级计算中心的基准测试集,具有代表意义[3]。

其原理为通过求解5D的Vlasov-Poisson方程来模拟粒子和等离子在托克马克装置中的运动状态。在每个时间步中主要执行6个kernel 函数:(1)Charge:通过4点陀螺平均法求解粒子到网络的电荷沉积;(2)Poisson:求解陀螺动力学泊松方程;(3)Field:计算网格电场;(4)Smooth:平滑网格电势和电荷;(5)Push:计算电场对粒子的作用力,更新粒子的相空间位置;(6)Shift:将被移动的粒子复制到缓冲区,并移动到相应进程[4],PIC算法中粒子与网格数的比例大约在100~100 000之间[5]。

2.2 曙光E级原型机

2.2.1 总体架构

曙光E级原型机共有512个结点,1 024颗Hygon处理器和512块DCU加速卡。各结点之间使用200 Gbps的高速网络,采用6D-Torus的方式实现高维互连。

每个结点有2颗Hygon 7185处理器和1块DCU加速卡,256 GB的DDR4内存,240 GB的M.2 SSD 硬盘。具体架构如图1所示。

2.2.2 海光CPU

原型机CPU使用的是AMD授权的Hygon 7185(后用Hygon Dhyana表示)。该系列芯片是海光公司根据AMD授权的EPYC 7001系列“Naples”芯片开发的针对中国市场的新系列芯片,由海光和AMD的合资公司HMC生产。由于“Naples”芯片是于2017年发布的,本文选取了与其同一时段发布的目前主流的商用处理器x86架构的Intel Xeon Gold 6148(后用Intel Skylake表示)进行对比测试,其硬件及软件信息如表1所示。

2.2.3 海光DCU

原型机的加速卡为海光公司结合AMD授权的GPU技术制造的DCU。为了解其与目前最新GPU的性能差异,本文用NVIDIA 公司的Tesla V100来与其对比,其软硬件信息如表2所示。

Table 2 Comparison of accelerator test platforms表2 加速器测试平台对比

曙光原型机的DCU加速卡上使用的编程模型为AMD公司开发的ROCm(Radeon Open Computing platform)HIP(Heterogeous-compute Interface for Portability)模型。这种模型是用于所有AMD GPU的可替代CUDA的模型,可以实现在源码级别上对CUDA程序的支持,其技术栈较多地参考了CUDA技术栈[6]。

HIP支持C++语言特性,包括模板、C++11 lambdas、类、命名空间等。HIP让开发者可以将CUDA程序转换成可移植的C++程序,转换后的程序在NVIDIA和AMD GPU上都可以编译运行,只需要在编译时指定平台参数即可。HIP相关的运行组件都是已编译好可以直接链接使用的动态库。

3 基准测试结果

本节首先用基准测试集对原型机及对比平台进行了微架构测试:使用HPL[7]测试双精度浮点计算能力,使用STREAM[8]和LMbench[9]测试访存带宽及延迟。这些性能数据可对GTC-P测试0进行指导和分析。

3.1 双精度浮点计算能力

在评估超级计算机的性能时,通常会优选双精度浮点计算能力作为判断,因此本文选择HPL基准测试来显示其性能,测试结果如表3所示。

Table 3 Results of HPL 表3 HPL基准测试结果 GFLOPS

由于Hygon Dhyana处理器支持AVX2指令集,我们初始认为该处理器的向量化位宽为256 bit,但其实测双精度浮点计算性能仅为理论值的39.6%。我们随后进行了AVX2指令的吞吐量测试以验证结果的正确性。

结果显示在使用相同的AVX2指令时,Hygon Dhyana的吞吐量仅为Intel Skylake的0.5倍,故我们推测其双精度向量化位宽为128 bit,其Linpack效率为79.2%。

3.2 访存带宽与延迟

我们选择的是MPI+OpenMP版的STREAM测试程序。(1)测试单路访存带宽时,设置MPI进程数为1,OpenMP线程数为单socket核心数,使用GOMP_CPU_AFFINITY参数将OpenMP线程绑定到对应的核心上;(2)测试双路访存带宽时,设置MPI进程数为2,分别绑定到对应的socket上,在同一socket内使用OpenMP线程并行,同样使用GOMP_CPU_AFFINITY参数绑定。得到的不同平台的内存访问带宽如图2a所示。

由于我们在公开资料中未查找到Hygon Dhyana的内存通道数,根据我们实测的访存带宽,Hygon Dhyana的Triad带宽是Intel Skylake的1.49倍,而Intel Skylake的内存通道为6通道,故我们推测Hygon Dhyana的内存通道为8通道。

Figure 2 Memory bandwidth and access latency of Hygon Dhyana and Intel Skylake图2 Hygon Dhyana、Intel Skylake访存带宽与延迟

对于CPU访存性能来说,除了访存带宽之外,访存延迟也是一项重要指标。我们使用LM-bench基准测试对比了不同平台各层次的访存延迟,结果如图2b所示。

Table 1 Comparison of CPU test platforms (open data)表1 CPU测试平台对比(公开数据)

从图2中可以看到,Hygon Dhyana的访存延迟在48 KB、512 KB、8 MB时突然增大,随后稳定。我们基于Linux系统工具,结合访存延迟实验观察到的现象得到了Hygon Dhyana的各级缓存大小,具体的各级内存子系统大小及访问延迟结果如表4所示。

综上所述,由于Hygon Dhyana比Skylake具有更高的带宽和更低的延迟,Hygon Dhyana对于访存密集型应用在理论性能上更具优势。接下来,我们将利用实际应用性能测评对其进行实验验证。

4 同构并行GTC-P

4.1 移植

Hygon Dhyana处理器兼容x86_64指令集和AVX2指令集,其软件生态良好,支持开源编译器GCC、Intel编译器ICC和AMD基于Clang开发的HCC编译器。对于MPI库,曙光支持Intel IMPI、Mvapich2、OpenMPI,方便了GTC-P的移植。

在GTC-P的同构并行移植过程中,我们发现使用Intel ICC编译器和对应的IMPI得到的性能最好,因此在进行CPU性能对比测试时,Hygon平台和Intel平台都选用的是Intel ICC编译器和Intel MPI并行库。

GTC-P程序有A、B、C、D 4个不同算例,本次实验中主要用到的是算例C和算例D,其具体描述如表5所示。

Table 5 Parameters of different examples of GTC-P表5 GTC-P不同算例的参数设置

4.2 单核性能分析

我们首先在不同平台上运行了单MPI进程单OpenMP线程的GTC-P程序,采用的算例是算例C。记录其运行时间,以确定在不同平台上热点kernel函数及性能表现,结果如图3a所示。

测试结果显示,单进程的GTC-P在Hygon Dhyana平台上的运行时间是Skylake的1.6倍,其中主要耗时是在Charge函数和Push函数,这2个函数的运行时间占整个应用总运行时间的85%以上。

由于Hygon Dhyana处理器的向量化位宽只有128 bit,是Intel Skylake的1/4,同一时间能进行的浮点计算只有Intel Skylake的1/4,故计算部分耗时会显著增多。另一方面,Hygon Dhyana的L3 Cache只有Intel Skylake的29%,故GTC-P中的不规则访存密集部分在Hygon Dhyana上会有更多的主存访存操作导致用时增多。

我们发现Charge和Push函数的计算强度均小于2,结合Hygon Dhyana的峰值浮点性能和访存带宽可知,这2个函数的性能主要受限于访存性能,因此后续的原型机上GTC-P的优化可以从改善访存方面实现。

Figure 3 Runtime comparison of GTC-P on two platforms图3 GTC-P在2种平台上的运行时间对比

4.3 多核性能分析

针对GTC-P程序在不同平台上的并行性能做了进一步测试,测试了用MPI和OpenMP混合的GTC-P在曙光单结点和Intel Skylake上的运行情况,用numactl参数将MPI进程绑定到NUMA结点上,并按照单MPI进程的运行时间进行了归一化,结果如图4a所示。可以看到,在曙光平台上,当使用8个MPI进程,每个MPI进程创建8个OpenMP线程时运行时间最短,这是因为Hygon处理器有2个socket,每个socket有4个NUMA结点,在这种模式下,每个MPI进程正好绑定到1个NUMA结点上,各OpenMP线程之间的通信都是在同一个NUMA中,基本不会有访存性能的下降,所以总体性能最优。

Table 4 Test results of memory subsystem size and access latency 表4 内存子系统大小及访问延迟测试结果

随后我们进行了在不同平台上使用双路并行运行GTC-P的测试。Hygon Dhyana上使用8个MPI进程8个OpenMP线程,Intel Skylake上使用2个MPI进程20个OpenMP线程,将MPI进程绑定到NUMA结点上,在同一NUMA结点内使用OpenMP线程进行并行。测试结果如图3b所示,在使用2个socket加速时,Hygon Dhyana处理器上GTC-P的用时是Intel Skylake的85%,性能是Intel Skylake的1.18倍。

在使用双路并行时,由于Hygon Dhyana处理器双路访存带宽是Intel Skylake的1.49倍,故Charge和Push 2个有较多不规则访存操作的函数用时均少于Intel Skylake的,总体性能Hygon Dhyana略微优于Intel Skylake。

Figure 4 Acceleration performance and strong scalability of GTC-P on Sugon platform图4 GTC-P在曙光平台多核加速性能及多结点强可扩展性

4.4 多结点扩展性分析

为了更好地显示原型机的性能,还进行了多结点的MPI并行测试。在单个结点内使用前文中的MPI+OpenMP配置进行并行,在多结点之间使用MPI进行并行。在本次测试中,由于算例C在较多结点并行运行时的时间较短,选用了更大的算例D。由于原型机上单个账号最多能使用30个结点,本文的扩展性测试只做到了30个结点,测试结果如图4b所示。

从图4b中可以发现,在并行运行的结点数不超过10时,GTC-P的加速比基本与理论加速比吻合,大致呈线性增加趋势,说明GTC-P在原型机上多结点运行时有很好的强可扩展性;在超过10个结点后,总的运行时间缓慢减少,说明此时结点之间的通信时间随着结点的增多而逐渐占据主导,能通过并行运行减少的计算时间较少,再增加并行的结点数对整体性能影响不大,最后加速比大约是理论加速比的62%。这说明原型机的200 Gbps 6D-Torus网络对GTC-P这种有较多不规则访存的应用在较小规模的并行时有着较好的扩展性,但规模较大时会由于结点间通信时间过长导致性能提升不明显。

5 异构并行GTC-P

5.1 移植

Hygon DCU加速卡采用的编程模型是AMD公司开发的HIP模型,与NVIDIA公司的CUDA编程模型相对应[10]。其支持的并行库中与CUDA相关的库在Hygon DCU中支持的均为其转换为HIP之后的库。Hipify作为一款转译工具可以将CUDA API转换成HIP API,并自动添加头文件等。由于该工具只进行了字符串的替换,转换后仍需要手动修改少量代码。

除了基本的移植之外,在原CUDA版本的GTC-P程序中应用了纹理内存来提高程序中的大量局部空间操作的性能,但HIP编程模型目前还不支持纹理内存,在移植时关闭了程序的纹理内存功能,使用普通的共享内存进行存储。

5.2 性能分析

本文使用算例C测试GPU版GTC-P在原型机上的性能,并将其DCU部分的运行时间和PCIe通信时间与NVIDIA V100平台的运行时间作对比,分析其加速器的性能指标。对于CPU部分,仍选择前文中的最优配置,并将MPI进程绑定到对应的NUMA结点上。GTC-P的各内核函数在加速器上的运行时间及通信时间如图5所示。

Figure 5 Runtime and communication time of GTC-P on Hygon DCU and NVIDIA V100图5 GTC-P在Hygon DCU、 NVIDIA V100上的运行时间和通信时间

当NVIDIA V100使用纹理内存时,GTC-P的整体性能在DCU上为在NVIDIA V100上的61%。其中,Charge函数的性能在DCU上为在NVIDIA V100上的38.3%,Push函数的性能在2个平台上持平。根据前文中的硬件信息可知,DCU的双精度浮点计算性能约为NVIDIA V100的73.1%,而Charge函数中为了避免数据冲突,使用了较多的重复计算操作,导致DCU的双精度浮点计算的劣势放大。Push函数中有大量的不规则访存,对加速器的读取带宽要求较高,说明DCU的内部访存性能与NVIDIA V100大致相当。

不使用纹理内存时,GTC-P在NVIDIA V100上的耗时明显增加,达到了原来的1.29倍,仅为DCU上耗时的78.6%。其中Charge函数耗时是原来的1.28倍,Push函数耗时是原来的1.36倍,说明GTC-P程序中有大量的局部空间操作,使用纹理内存可以提高性能。后续实现HIP模型对纹理内存的支持可以进一步提高GTC-P在DCU上的性能表现。

对于加速器的PCIe通信时间,Hygon DCU与NVIDIA V100大致相同,符合前文中测得的CPU与加速器之间的访存带宽。

6 相关工作

在CPU的基准性能测试方面。Saini等[11]在基于Intel Haswell和Intel Ivy Bridge处理器的超级计算机上进行了性能测试,使用了STREAM、LMbench、HPCC、HPL、HPCG等一系列基准测试集和4个科学和工业应用程序对比两者的性能。McCormick教授等[12]团队针对x86多核NUMA架构的处理器提出了一系列测量访存性能的方法,并在Intel和AMD处理器上建立了相关的访存性能模型。本文在曙光E级原型机的CPU性能测试上借鉴了其方法。

在GTC-P应用的移植和优化方面。普林斯顿大学Wang等[13]在Mira、Sequoia、Hopper等超级计算机上进行了GTC-P的移植和优化,并评估了其可扩展性。上海交通大学王一超等[4]利用OpenACC在神威“太湖之光”超级计算机上成功移植了GTC-P应用并进行了优化。

7 结束语

本文首先面向曙光E级原型机进行了性能测试,以指导GTC-P的移植,并与目前主流的CPU—Intel Xeon Gold 6148(Skylake)进行了对比。本文测试了其浮点计算能力、内存访问带宽和延迟,发现Hygon 7185处理器的单socket实测浮点计算能力为209.5 GFLOPS,仅为Skylake的22.5%。在访存带宽及延迟方面,Hygon处理器的单socket访存带宽为126 GB/s,是Skylake的1.45倍;Hygon的L1、L2缓存访存延迟略高于Skylake的,但L3缓存和主存的访存延迟低于Skylake的。

我们在曙光E级原型机上分别移植了同构并行和异构并行的GTC-P。在CPU上,单核的GTC-P程序的性能是Intel Skylake的62.5%,主要原因是Hygon Dhyana的向量化位宽是Skylake的一半,以及Dhyana的L3高速缓存大小仅为Skylake的29%,导致GTC-P中许多不规则访存操作耗时较多。在多结点扩展性上,使用算例D运行的GTC-P在超过10个结点后基本已经充分加速,再增加结点数加速效果并不明显,最后的加速比约为理论加速比的62%。在DCU上,通过HIP编程模型快速移植了GTC-P应用,其整体性能达到了NVIDIA V100上整体性能的61%。

猜你喜欢
浮点原型机曙光
曙光
LEO星座增强GNSS PPP模糊度浮点解与固定解性能评估
太空部队授予SpaceX等四家企业发射系统原型机奖励
我校设计制造的“西航一号”无人机原型机首飞成功
基于Simulink浮点模型和定点模型的问题研究
基于浮点DSP的铁路FSK信号检测
杨曙光作品
曙光
充电桩行业扭亏曙光初现?
中国运—20运输机可能将于2016年开始服役