Entropy Space

  • 首页
  • 文章
    • 基准测试
    • 瞎折腾硬件
    • 杂谈
    • GROMACS
    • AMBER
  • 论坛回帖
  • bilibili
  • 知乎
  • ORCID
  • LiuLab
  • 关于
ア熵增焓减ウ『Entropy』的个人Blog。
  1. 首页
  2. 瞎折腾硬件
  3. 正文

主流分子动力学程序在消费级AMD GPU上的兼容性说明及疑难解答 | Switch to AMD【第2集】

2023-08-24 2145点热度 0人点赞 0条评论

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

打击黄狗,人人有责

0  前言

本文的信息并不全面,仅仅是作者近期在AMD GPU上测试经典MD性能的附属产物。你或许可以使用较老版本的ROCm和特定的GPU轻松地编译并运行文中提到的应用程序,也有可能在不久后的软件更新中,文中提到的一些兼容性问题就会被解决。本文内容在相应程序的官方文档/手册/Readme/Wiki中均未提及,且几乎无法在互联网上搜索到现成的解决方案。但这并不代表官方的文档/手册/Readme/Wiki就不值得阅读,相反,只有在仔细、逐句研读过那些内容后,才能更好地理解本文。

本文基于的操作系统环境:Ubuntu 22.04.3 LTS, Linux 6.2.0-26-generic x86_64, GNU 11.4.0。

本文涉及的GPU架构(代号):GCN 5.1 (gfx906), RDNA 2 (gfx1030), RDNA 3 (gfx1100)。

本文涉及的ROCm版本(参考repo.radeon.com):5.4.6, 5.5.3, 5.6.0。其中,5.4.6是最后一个捆绑LLVM 15的ROCm版本,此后版本的ROCm捆绑的LLVM 16还在快速更新中,很容易产生编译器兼容性问题,但如果能用最新版ROCm成功编译并运行,理论上性能更好。

1  GROMACS 2023.2 – OpenSYCL (原hipSYCL)

使用ROCm 5.4.6搭配OpenSYCL-0.9.4,在gfx906或gfx1030上均可直接编译、运行(参考GROMACS 2023.2 Manual, page 15-17)。使用ROCm 5.5.3或5.6.0搭配OpenSYCL-develop 25Jul2023,在CMake命令中添加-DWITH_SSCP_COMPILER=OFF后也可直接编译、运行。OpenSYCL develop分支正在将源代码中的'hipSYCL'改为'OpenSYCL',若基于其编译GROMACS,在CMake运行时会出现较多Warning,但这不会导致任何问题。

基于ROCm 5.6.0 & OpenSYCL-develop 25Jul2023 编译的GROMACS性能显著强于之前版本,且在gfx906和gfx1030的基准测试中未出现bug。但是,对于gfx1100 (7900XTX, RDNA 3),在3个版本的ROCm下运行均非常不稳定:性能异常波动,且mdrun运行一段时间后有极大概率卡死(今年6月有人在GROMACS论坛上反馈过类似的情况),同时GPU状态信息无法被rocm-smi识别,这可能对应了Windows用户所谓的“掉驱动”。

2  Amber 22 – AmberTools 22 – Amber 22 HIP Patch 3Jan2023

使用ROCm 5.4.6或5.5.3,在gfx906、gfx1030或gfx1100上均可成功编译、运行。基准测试中未出现bug。应当对源代码做以下修改:

1) 删除src/pmemd/src/cuda/ptxmacros.h中的第3个HIP-TODO(第130~170行);

2) 若为本机上不存在的GPU架构编译,应当在compile_with_hip.sh的CMake命令中添加AMDGPU_TARGETS和GPU_TARGETS变量以启用针对特定GPU架构的优化,可同时设置多个target;

3) 对于RDNA GPU,添加-D HIP_WARP64=OFF,并检查src/pmemd/src/cuda/ptxmacros.h第85行,按需补充代码,例如对于7900 XTX,补充 || defined(__gfx1100__)。

ROCm 5.5.3的性能显著强于ROCm 5.4.6。使用ROCm 5.6.0,暂未找到可以成功编译的方法。

3  OpenMM 8.0.0 – OpenMM HIP Plugin 8Mar2023

使用ROCm 5.4.6、5.5.3或5.6.0,在gfx906、gfx1030或gfx1100上均可直接编译、运行。在gfx1100上偶尔出现GPU调度不积极的情况,其余基准测试中未出现bug。若为本机上不存在的GPU架构编译,应当在CMake命令中添加AMDGPU_TARGETS和GPU_TARGETS变量以启用针对特定GPU架构的优化,可同时设置多个target。3个版本的ROCm的性能依次递增(使用默认的VkFFT后端),对于小体系,性能差异较明显。

4  LAMMPS 2Aug2023 – Kokkos

使用ROCm 5.4.6、5.5.3或5.6.0,在gfx906、gfx1030或gfx1100上均可成功编译、运行。基准测试中未出现bug。对于RDNA GPU,需使用最新版Kokkos (4.1.0) 替换官方捆绑的Kokkos(lib/kokkos),并将cmake/CMakeLists.txt第146和147行的14改为17。CMake步骤中,在cmake/presets/basic.cmake中指定要启用的包;在cmake/presets/kokkos-hip.cmake中指定GPU的架构代码,只能指定1个GPU架构,代码的对应关系列表可参考lib/kokkos/cmake/kokkos_arch.cmake。3个版本的ROCm的性能依次递增,对于小体系的模拟,性能差异较明显。

5  结论

4款应用程序的兼容性列表如下:

无论从绝对性能、性价比还是兼容性上考虑,现阶段OpenMM和Lammps都很适合普通用户彻底“switch to AMD”,GROMACS和Amber的用户也可以开始尝试“switch to AMD”。ROCm 5.4.6或5.5.3配合GCN 5.1或RDNA 2 GPU可完美兼容本文提到的4款应用程序,而ROCm 5.6.0具有最好的性能。某些情况下,需对程序源代码做一些简单的修改。值得注意的是,截至本文发布前,最新版ROCm (5.6.0)并未正式支持RDNA 3 GPU,根据AMD官方通知,今年秋季将会正式支持,因此GROMACS中的RDNA 3特有问题可能只是暂时性的。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Benchmark 分子动力学 计算机硬件
最后更新:2023-08-24

Entropy

- 虚拟快感是人类文明的下一个大过滤器 -

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

Entropy

- 虚拟快感是人类文明的下一个大过滤器 -

分类
  • AMBER / 1篇
  • GROMACS / 3篇
  • 基准测试 / 6篇
  • 杂谈 / 10篇
  • 瞎折腾硬件 / 17篇
最新 热点 随机
最新 热点 随机
玩乐中完成的3套小型HPC,以及一些HPC/AI Infra相关的碎碎念 手搓高性价比GPU集群 DIY NAS小记 - 实验室团队版 Xeon GNR-AP终于不再明显落后于EPYC了 锐评Blackewell GPU 分子动力学工作站配置推荐:2023双十一
性能翻倍?RTX4090科学计算之经典MD模拟全面测试 分享最近给某超算平台GPU节点做的Benchmark 主流分子动力学程序在消费级AMD GPU上的兼容性说明及疑难解答 | Switch to AMD【第2集】 DIY NAS小记 | Mini高性能集群部署(第一集) Compatibility notes and troubleshooting guides for mainstream molecular dynamics simulation Apps on AMD’s consumer GPUs - Switch to AMD [Part Ⅱ] 参加科音培训,从入门到发文章

COPYRIGHT © 2021-2023 enthalpy.space. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2021005617号