计算化学公社

标题: 主流分子动力学程序在AMD、NVIDIA和Intel的消费级GPU上的性能基准测试 [打印本页]

作者
Author:
Entropy.S.I    时间: 2023-8-24 18:40
标题: 主流分子动力学程序在AMD、NVIDIA和Intel的消费级GPU上的性能基准测试
本帖最后由 Entropy.S.I 于 2023-8-29 03:44 编辑

主流分子动力学程序在AMD、NVIDIA和Intel的消费级GPU上的性能基准测试
——Switch to AMD【第1集】

[第2集:http://bbs.keinsci.com/thread-39267-1-1.html]
[Read the English version here]

Aug-2023 by ア熵增焓减ウ | yult-entropy@qq.com | entropylt@163.com

打击黄狗,人人有责

0  前言

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

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

AMD 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  测试方法

硬件
(, 下载次数 Times of downloads: 37)
操作系统:

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, ROCm5.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)

应用程序:

4款应用程序均从源码编译,启用针对GPU架构的优化。需注意,对于NVIDIA GPU的GROMACS测试,不仅编译了CUDA版本,也编译了OpenSYCL backend + 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,使用来自官方软件包捆绑的基准测试数据集。本此测试所使用的数据集(包含运行测试所用的脚本)可通过下方链接下载。阿里云盘(EXE格式的自解压文件,双击以解压): https://www.aliyundrive.com/s/5L35M77DCzA;提取码:8si3。Google Drive: https://drive.google.com/drive/folders/1pKfgHuk3eb0VZ-txbv03TMPCB8tFR_J- (包含本文PDF版)


2  结果与讨论

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

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

(, 下载次数 Times of downloads: 41)
(, 下载次数 Times of downloads: 45)

2.2   性能排行

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


2.2.1 GROMACS 2023.2

此处所使用的数据是扫描不同核数以及不同bonded选项所得的最大值。AMD GPU和intel GPU在GROMACS中的性能表现与其理论性能相去甚远,这或许可以被解释为当前SYCL后端的效率仍然不足。(8月28日更新:根据GROMACS核心开发者Szilárd的讲解,这样的说法可能并不合适)

(, 下载次数 Times of downloads: 46)

2.2.2 Amber 22

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

(, 下载次数 Times of downloads: 43)

2.2.3 OpenMM 8.0.0

AMD GPU在STMV体系上的表现非常好:7900 XTX可以达到RTX 4090的86%的性能;6900 XT可以达到RTX 4080的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%以上。

(, 下载次数 Times of downloads: 41)

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模拟的性能却相反,这令人意外。

(, 下载次数 Times of downloads: 43)

2.3  数据总表

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

(, 下载次数 Times of downloads: 40)

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系列的基准测试仍然缺乏,因此,欢迎有条件的网友在这些方面做贡献。



作者
Author:
赵小壮    时间: 2023-9-12 19:57
显卡哥好强。请问我需要写cuda,刚买了一台笔记本i5-12450H+RTX4060,请问我应该如何搭建开发环境呢,我之前是用的wsl2,写code时候用的vim,请问我还在wsl2
里写cuda会有什么影响吗。谢谢显卡哥
作者
Author:
Entropy.S.I    时间: 2023-9-15 19:20
赵小壮 发表于 2023-9-12 19:57
显卡哥好强。请问我需要写cuda,刚买了一台笔记本i5-12450H+RTX4060,请问我应该如何搭建开发环境呢,我之 ...

我不用WSL,所以无法给出建议。根据别人使用WSL的反馈,我不认为使用WSL是一个好办法。
无独显轻薄本+高性能工作站/服务器才是最佳方案。自行配置好网络,使用体验远好于厚砖游戏本+WSL。
作者
Author:
元无虚空    时间: 2023-9-25 10:19
Entropy.S.I 发表于 2023-9-15 19:20
我不用WSL,所以无法给出建议。根据别人使用WSL的反馈,我不认为使用WSL是一个好办法。
无独显轻薄本+高 ...

厚砖本有一个好处 就是 等工作站/服务器计算结果的闲暇时候 可以撸几把3A游戏,当然现在的SoC/CPU核显越来越强了,核显本都能撸好多游戏
作者
Author:
元无虚空    时间: 2023-9-29 16:17
大佬有机会可以测试下D. E. Shaw Research开发的Desmond,非商业的可以免费申请使用的
作者
Author:
spock2012    时间: 2023-11-1 17:14
E大,根据您的数据总表,lammps计算时6900XT的表现要优于7900XTX?按照目前的价格那6900XT很有性价比啊
作者
Author:
Entropy.S.I    时间: 2023-11-2 16:46
spock2012 发表于 2023-11-1 17:14
E大,根据您的数据总表,lammps计算时6900XT的表现要优于7900XTX?按照目前的价格那6900XT很有性价比啊

通过这么多渠道给我发消息,真挺难为你的。。。

(, 下载次数 Times of downloads: 39)

(, 下载次数 Times of downloads: 39)

(, 下载次数 Times of downloads: 38)

(, 下载次数 Times of downloads: 37)

LJ其实用单精度/混合精度就够了,而文章里测试的是双精度的Kokkos包。
单精度/混合精度可以用传统的GPU包,但我没有对此做广泛的基准测试,不能给出准确的性能排序。

作者
Author:
spock2012    时间: 2023-11-2 17:01
Entropy.S.I 发表于 2023-11-2 16:46
通过这么多渠道给我发消息,真挺难为你的。。。

打扰了打扰了,老板一方面不肯出钱一方面又想算大体系,为了毕业都是自己花钱攒机子跑计算,昨天看了测评帖子一着急想着双十一要不要把显卡换一下,能快一点是一点。那现阶段我还是不折腾了就用原先的配置吧,谢谢熵大!
作者
Author:
Picardo    时间: 2023-12-1 14:48
请教一下,我用deepmd的话,低端这几个2080ti,v100,titan v推荐哪个,谢谢
作者
Author:
lmch    时间: 2024-2-6 16:31
请教一下,编译基于Kokkos包加速的LAMMPS,在编译过程中有何设置可以调优呢,还有请问在进行计算的时候,OMP thread一般选择几为合适呢?




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3