欢迎光临散文网 会员登陆 & 注册

主流分子动力学程序在AMD、NVIDIA和Intel的消费级GPU上的性能基准测试

2023-08-24 19:50 作者:ア熵增焓减ウ  | 我要投稿

主流分子动力学程序在AMD、NVIDIA和Intel的消费级GPU上的性能基准测试

——Switch to AMD【第1集】

[首发于计算化学公社:http://bbs.keinsci.com/thread-39266-1-1.html]

Aug-2023 by ア熵增焓减ウ

打击黄狗,人人有责

0  前言

近两年,全球有大量顶级超级计算机采用了AMD GPU作为异构加速器,因此大量HPC应用程序开始了移植到ROCm软件栈的进程,并且其中很大一部分已经具有很高的完成度和很好的性能,可以用于正式的科学研究。此外,也有一部分程序原生支持了intel GPU。鉴于此,笔者集齐了所有NVIDIA Ada Lovelace架构桌面GPU、近4年所有的高端消费级AMD GPU,以及intel当前最高端的消费级GPU (ARC A770),进行了一系列针对分子动力学(MD)性能的基准测试。

一些程序在很多年前就已通过OpenCL支持了不同厂商的GPU,但OpenCL效率低下,实际性能无法达到可用的水平,因此主流GPU厂商早已放弃了对OpenCL的维护。鉴于此,本次测试将采用更为高效和现代化的解决方案。

AMD Infinity Hub (https://www.amd.com/en/technologies/infinity-hub)列出了所有已经兼容AMD GPU和ROCm软件栈的HPC和AI应用程序,但其中的介绍过于粗浅,若要了解如何在AMD GPU上运行这些应用程序,应当仔细阅读相应程序的官方文档/手册/Readme/Wiki。本次测试涉及4款分子动力学应用程序:GROMACS、Amber、OpenMM和LAMMPS。关于它们如何在AMD GPU上运行,可进一步阅读Switch to AMD的第2集。

关于对AMD GPU的适配,在这4款程序中,除GROMACS以外均直接走了HIP路线,即直接使用AMD提供的HIP编程模型实现与CUDA平台相同的GPU加速功能,这样的做法具有和CUDA一样的缺点——一份代码只适用于一家制造商的GPU。

GROMACS的路线则与其他程序不同。从2023版开始,GROMACS可以使用一种新型异构编程模型——SYCL——来实现不同种类、不同制造商的计算硬件之间的灵活迁移,而无需更改源代码。通过SYCL后端,GROMACS 2023如今可以在任何已有可用的SYCL编程接口的计算硬件上实现所有CUDA支持的加速功能,而在用户应用层面上与CUDA版本完全没有区别。因此,先前基于NVIDIA GPU的大部分GROMACS使用经验和模板都可直接套用在这些不同的硬件上。“已有可用的SYCL编程接口的计算硬件”包括一切LLVM支持的CPU、AMD GPU、intel GPU、NVIDIA GPU、海光DCU等。值得一提的是,摩尔线程GPU未来也将通过MUSA Toolkit的更新来支持SYCL。

此外,虽然最新版的Kokkos(LAMMPS的GPU加速模块)已经初步支持了SYCL后端,可以通过intel oneAPI DPC++编译兼容intel GPU的Kokkos,但intel ARC A770没有双精度计算能力,因此,本次测试并不会涉及ARC A770的LAMMPS Kokkos性能。

最后,本文不会提供关于全文的结论,读者应当仔细阅读文章的每一部分,乃至每一句话,然后各取所需。

1  测试方法

硬件

操作系统:

Ubuntu 22.04.3 LTS, Linux 6.2.0-26-generic x86_64, GNU 11.4.0

GPU驱动和工具链:

For AMD: AMD GPU driver version 6.1.5.50600-1609671, ROCm 5.4.6~5.6.0;

For NVIDIA: NVIDIA GPU driver 535.86.05, CUDA Toolkit 11.8;

For Intel: Intel GPU driver i915 release 4/21/2023, xpu-smi, Intel oneAPI Toolkits 2023.2 (Base Toolkit + HPC Toolkit)

应用程序:

  • GROMACS 2023.2 – OpenSYCL develop 25Jul2023 (AMD GPUs) / v0.9.4 (NVIDIA GPUs) - SYCL-based oneAPI DPC++ 2023.2 (intel GPU)

  • Amber 22 - AmberTools 22 (AMD GPUs) / 23 (NVIDIA GPUs) – Amber 22 HIP Patch 3Jan2023 (AMD GPUs)

  • OpenMM 8.0.0 – OpenMM HIP Plugin 8Mar2023 (AMD GPUs)

  • LAMMPS 2Aug2023 – Kokkos v. 4.1.0 (AMD GPUs) / LAMMPS bundled (NVIDIA GPUs)

4款应用程序均从源码编译,启用针对GPU架构的优化。需注意,对于NVIDIA GPU的GROMACS测试,不仅编译了CUDA版本,也编译了OpenSYCL + CUDA Runtime的版本。

基准测试数据集:

GROMACS、Amber、LAMMPS的数据集基本上与去年10月的测试相同。在GROMACS和Amber中包含了一些笔者个人的数据集(A、A-2、B和B-TI),详见去年10月文章。在Amber数据集中新增了用来与OpenMM进行公平对比的模型,但本文不会讨论这部分内容。修改了LAMMPS数据集的模型规模:在LAMMPS官方原版的基础上,向3个空间维度replicate,使VRAM消耗量达到50%以上,以匹配NVIDIA网站上的测试结果。此外,对于OpenMM,使用来自官方软件包捆绑的基准测试数据集。本此测试所使用的数据集(包含运行测试所用的脚本)可通过下方链接下载。Aliyun Drive(EXE格式的自解压文件,双击以解压): https://www.aliyundrive.com/s/5L35M77DCzA;提取码:8si3。Google Drive: https://drive.google.com/drive/folders/1pKfgHuk3eb0VZ-txbv03TMPCB8tFR_J-

2  结果与讨论

2.1  GROMACS原生CUDA版和SYCL+CUDA版在NVIDIA GPU上的效率对比

相较于CUDA原生版本,SYCL+CUDA版本普遍存在12-17%的性能损失,且对于较小的体系,性能损失更严重。有趣的是,对于benchPEP-h这样的超大体系,SYCL+CUDA版本有令人难以置信的加速效果。通过性能-核数曲线可以看出,SYCL后端会产生一些额外的开销,导致GROMACS在bonded CPU的情况下耗尽最后一个CPU核心后性能大幅下降。

2.2  性能排行

排序依据:对于GROMACS、Amber和OpenMM,选择足以“榨干”GPU的STMV体系,使用原版参数,不做任何修改;对于LAMMPS,使用修改后的ReaxFF/C体系。

2.2.1 GROMACS 2023.2

此处所使用的数据是扫描不同核数以及不同bonded选项所得的最大值。AMD GPU和intel GPU在GROMACS中的性能表现与其理论性能相去甚远,这或许可以被解释为当前SYCL后端的效率仍然不足。

2.2.2 Amber 22

AMD GPU的表现基本符合预期,在STMV体系中RX 7900 XTX比RX 6900 XT快了41%,达到了RTX 4090的70%。Radeon Ⅶ令人印象深刻:在STMV体系中达到了RTX 4070的92%。

2.2.3 OpenMM 8.0.0

AMD GPU在STMV体系上的表现非常好:7900XTX可以达到RTX4090的86%的性能;6900XT可以达到RTX4080的90%的性能;而Radeon Ⅶ几乎打平了RTX 3080Ti / 3090,这非常令人惊奇。

本次测试的部分数据近期或将更新在OpenMM官网。值得一提的是,其他用户也对OpenMM-HIP的性能做了许多测试,包括使用最新推出的Windows HIP SDK在Windows下运行。该用户使用了Sapphire Nitro+(蓝宝石超白金),具有比笔者的MSI GAMING TRIO CLASSIC(微星魔龙)高得多的TGP和boost频率,因此在STMV体系中获得了53.5723 ns/day的性能,是RTX 4090的90%以上。

2.2.4 LAMMPS 2Aug2023 – Kokkos

AMD Radeon Ⅶ凭借3.36 TFLOPS的峰值FP64性能,使ReaxFF模拟的性能超越了RTX 4080、RX 7900 XTX和RX 6900 XT,达到了RTX 4090的78%。进一步与NVIDIA官方的数据对照,Radeon Ⅶ具有V100 SXM的35%的性能。RX 7900 XTX的峰值FP64性能高于RX 6900 XT,但ReaxFF模拟的性能却相反,这令人意外。

2.3  数据总表

总的来说,相较于NVIDIA GPU,AMD GPU对于较大的体系具有很好的性能,但对于较小的体系表现不佳。

3  额外的补充说明

对SYCL的全面支持是GROMACS 2023最重要的升级,遗憾的是目前广大用户对此还没有明显反响。根据经验,到今年底或明年初时GROMACS 2023将进入patch更新的中后期,届时使用AMD和intel GPU搭配GROMACS 2023将可用于生产模拟,正好届时AMD ROCm软件栈也将正式支持RDNA 3 GPU。

文章只展示了本次测试获得的不到5%的数据,因此讨论是高度概括性的。实际上,有大量更加详细的对照实验,限于篇幅和数据处理的工作量,没有发布。例如不同软件版本、编译器版本、驱动版本、浮点精度、FFT后端等。关于这些详细的对比,诸位可以随意提问,笔者会视情况提供相应的数据。

本文中不同应用程序中名称相似的体系并不代表其具有相同的参数,因此无法用于公平对比不同应用程序的效率。在去年10月的文章中,就曾对比过这种效率,当时的结论是:在硬件搭配和GROMACS MDRUN并行参数设置合适的前提下,GROMACS效率明显高于其他软件。本次测试加入了OpenMM,但真正可用于公平对比的数据未在文章中展示(虽然它们都在),此处仅补充一个简要结论:OpenMM 8.0.0对于较小的体系效率更高,最大~60%(DHFR);Amber22对于较大的体系的效率更高,最大~10%(STMV)。该结论是基于参数相同的模拟得出的,需要考虑的关键参数是力场、cutoff、步长、热浴和压浴。

关于硬件的多样性,目前AMD、NVIDIA和intel的消费级GPU都已经有充足的基准测试,NVIDIA的“RTX Pro”GPU和数据中心GPU也有一些基准测试(包括NVIDIA官方提供的数据,以及笔者几个月前测试的H100 PCIe、A100 PCIe和V100 PCIe的数据),而AMD Instinct MI系列和intel Data Center GPU MAX系列的基准测试仍然缺乏,因此,欢迎有条件的网友在这些方面做贡献。


主流分子动力学程序在AMD、NVIDIA和Intel的消费级GPU上的性能基准测试的评论 (共 条)

分享到微博请遵守国家法律