计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5528|回复 Reply: 16
打印 Print 上一主题 Last thread 下一主题 Next thread

[Lammps] lammps GPU加速4090不如纯cpu8核

[复制链接 Copy URL]

37

帖子

0

威望

341

eV
积分
378

Level 3 能力者

跳转到指定楼层 Go to specific reply
楼主
我按照http://bbs.keinsci.com/thread-36559-1-1.html编译了GPU版本的lammps,编译过程无报错,使用无报错,但速度非常慢,10000原子的reaxff体系2秒走不了一步,而我纯cpu8核都能更快。

显卡4090,按理说加速应该很明显,请问这会是什么问题呢。

3

帖子

0

威望

265

eV
积分
268

Level 3 能力者

17#
发表于 Post on 6 day ago | 只看该作者 Only view this author
熊啊熊 发表于 2026-2-10 14:14
要跑reaxff这样的吃双精度的任务还是推荐V100这样的计算卡,消费级显卡的双精度算力太感人,适合单精度任 ...

我是编译的GPU-lammps跑聚合物体系的分子动力学模拟,速度40分钟才跑1000步。下面是我的指令:mpirun -np 2 $LAMMPS_DIR/bin/lmp_mpi -sf gpu -pk gpu 2 neigh yes -in in.lammps
我感觉好像是编译的问题,但是都编译三次了,也没报错,要是还不行,我就用CPU得了,感觉GPU太折腾了。

22

帖子

0

威望

546

eV
积分
568

Level 4 (黑子)

16#
发表于 Post on 6 day ago | 只看该作者 Only view this author
梁慷 发表于 2026-2-10 13:34
兄弟你最后怎么解决这个问题的呀,我现在安装了GPU版本lammps,速度也是比CPU的慢了好多倍。测试了好多次 ...

要跑reaxff这样的吃双精度的任务还是推荐V100这样的计算卡,消费级显卡的双精度算力太感人,适合单精度任务特别是跑gromacs。

3

帖子

0

威望

265

eV
积分
268

Level 3 能力者

15#
发表于 Post on 6 day ago | 只看该作者 Only view this author
docshen777 发表于 2024-7-4 11:00
那我装个虚拟机试试,组里的机子,不方便装双系统

兄弟你最后怎么解决这个问题的呀,我现在安装了GPU版本lammps,速度也是比CPU的慢了好多倍。测试了好多次一直解决不了

214

帖子

4

威望

1462

eV
积分
1756

Level 5 (御坂)

14#
发表于 Post on 2024-8-8 02:08:35 | 只看该作者 Only view this author
cool 虽然我不用lammps,不过我可以从AMBER的角度给你一些建议

我觉得也是楼上说的问题,有时候amber的PMEMD.CUDA性能会比PMEMD.CUDA.MPI性能要更高,主要就是GPU算的快,CPU在MPI通信中消耗了不必要的时间,造成GPU可能在等CPU的问题,所以你nvidia-smi的时候看起来GPU负载不高。所以我觉得你的这个case可能和CPU的任务相关比较大

88

帖子

0

威望

2390

eV
积分
2478

Level 5 (御坂)

13#
发表于 Post on 2024-8-7 11:31:59 | 只看该作者 Only view this author
兄臺 我記得我好幾年前有試過https://github.com/msu-sparta/PuReMD
這一個reaxFF MD code 效能還不錯

37

帖子

0

威望

341

eV
积分
378

Level 3 能力者

12#
 楼主 Author| 发表于 Post on 2024-7-4 11:00:09 | 只看该作者 Only view this author
Graphite 发表于 2024-7-3 20:30
不排除安装方式、资源调用、WSL环境配置的问题,你要不先上autodl租个卡折腾下?

那我装个虚拟机试试,组里的机子,不方便装双系统

433

帖子

8

威望

4317

eV
积分
4910

Level 6 (一方通行)

石墨

11#
发表于 Post on 2024-7-3 20:30:56 | 只看该作者 Only view this author
docshen777 发表于 2024-7-3 19:14
大佬您好!抱歉再次打扰。我按照温和策略修改了输入文件。但步长是0.5fs。Neigh半径2,频率50。

运行 ...

不排除安装方式、资源调用、WSL环境配置的问题,你要不先上autodl租个卡折腾下?

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
docshen777 + 5 谢谢

查看全部评分 View all ratings

自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

37

帖子

0

威望

341

eV
积分
378

Level 3 能力者

10#
 楼主 Author| 发表于 Post on 2024-7-3 19:14:40 | 只看该作者 Only view this author
Graphite 发表于 2024-7-3 15:14
现版本LAMMPS用reaxff最省事方案是单核单线程(LAMMPS和kokkos自身机制问题,不多讨论),一个程序最小循环 ...

大佬您好!抱歉再次打扰。我按照温和策略修改了输入文件。但步长是0.5fs。Neigh半径2,频率50。

运行了一下,4090显卡wsl2-ubuntu20.04+lammps-Aug2023

运行指令为lmp -in test_1.in -k on g 1 -sf kk -pk kokkos neigh half newton on

仍然非常慢,20步需要数分钟的时间,监控nvidia-smi的结果如附件的图。

GPU的占用率极低,能耗也上不去。这应该不是代码的原因吧?但我编译lammps+kokkos包的过程和运行过程均未报错。这是为什么呢?

Quicker_20240703_211143.png (291.16 KB, 下载次数 Times of downloads: 57)

Quicker_20240703_211143.png

37

帖子

0

威望

341

eV
积分
378

Level 3 能力者

9#
 楼主 Author| 发表于 Post on 2024-7-3 19:00:22 | 只看该作者 Only view this author
Graphite 发表于 2024-7-3 15:14
现版本LAMMPS用reaxff最省事方案是单核单线程(LAMMPS和kokkos自身机制问题,不多讨论),一个程序最小循环 ...

感谢大佬,仔细阅读了您的回复,学到了很多。受教了!

感谢您百忙中帮忙测试调优!

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
Graphite + 5 谢谢

查看全部评分 View all ratings

433

帖子

8

威望

4317

eV
积分
4910

Level 6 (一方通行)

石墨

8#
发表于 Post on 2024-7-3 15:14:49 | 只看该作者 Only view this author
本帖最后由 Graphite 于 2024-7-3 15:59 编辑
docshen777 发表于 2024-7-3 09:35
谢谢老师的回复。关于您的意见,我有一些疑问:
1. 多进程是指谁的多进程,mpi还是threads
2. 的确很频 ...

现版本LAMMPS用reaxff最省事方案是单核单线程(LAMMPS和kokkos自身机制问题,不多讨论),一个程序最小循环中,主要完成以下3种任务:
1、纯CPU的neighbor search,频率高了很耗时
2、GPU为主的受力计算、动力学走步
3、纯CPU的各类文件输出、reax/c/bonds、reax/c/species,一般耗时

由于单核单线程情况下CPU性能孱弱,性能调优的重点在于:
1、neighbor search频率稍慢,半径(其实是相对于control file里面的键级计算半径的延展搬家)稍短——这里我们简称neigh设置激进,反之为保守。激进在于”原子对周围环境感知降低”。
2、任务1和任务3的频率尽可能同步,比如N步一次neighbor search,2N步一次reax/c/species,10N步一次文件输出。

关于精度和反应性问题:
1、主要影响因素是时间积分步长,通俗的说步子太大了,容易瞬时不平衡、lose atom
2、neigh性能激进时,会有一定影响,如果neigh频率大于100步,可能造成”原子对周围环境感知不足“,抑制反应性,影响精度;但如果小于10步以下、或半径过长,也没什么必要。

我修改了下in文件,在autodl租的v100上跑了5 ps,用了三分半钟,大概47步/秒,2 ns/day,考虑到密度比较高,速度还是可以的。运行指令是lmp -in test_1.in -k on g 1 -sf kk -pk kokkos neigh half newton on,用的单核单进程单线程,GPU负载75%左右。

根本问题是时间积分步长到1.0 fs,太长了,迫使必须用非常保守的策略做neigh以避免lose atom。然而,即使1.0 fs勉勉强强能跑,得到的结果也会比较”破碎“、精度差——步子太大了。
修改了时间积分步长为0.5 fs——因为温度不高所以先设了0.5 fs(其实也不是很精细,有要求或温度高得下到0.25 fs以下)
修改了neigh半径到2.0,neigh频率到100——步长降下来、温度不高,neigh设置可以更加激进。
修改了各类输出频率到100,reax/c/species为100 5 500。

当然,这个只是性能调优,neigh相关的设置毕竟涉及到”原子对周围环境的感知“,和reaxff的反应性、模拟的结果有一定关系,并且和时间步长相互影响(时间步长稍短时,可以稍激进)所以还需要自己权衡。
neigh频率10-100步是一个不错的区间,太快了CPU调用太频繁。neigh半径方面,只要模拟不lose atom,稍微有点余量即可,neigh频率越快,半径可以越短。control file里面的bond半径一般默认值足够。
文件输出频率看需求权衡,主要是bonds.out、lammpstrj之类文本文件体积容易动辄几个G。

简而言之,上中下三策:
1、激进策略:温度不高/本身反应性不强/模拟已经大差不差开始堆时间,步长0.25-0.5,neigh频率50-100,半径1.5-2.0
2、温和策略:步长0.2-0.25,neigh频率20-50,半径2.0-2.5
3、保守策略:温度很高/反应性强/不平衡性强/初始结构不太好稍微跑会儿放松下,步长0.1,neigh频率10、半径>=3.0
如果保守策略也跑不了,那90%概率是初始结构不好、力场不适配、条件偏极端(>3000K、外力冲击),一般来说3000 K或10 km/s MSST冲击使含能材料爆炸,保守策略也是能正确跑的。

test_20240703.7z (726.59 KB, 下载次数 Times of downloads: 95)





评分 Rate

参与人数
Participants 5
eV +24 收起 理由
Reason
naoki + 5 谢谢
筱小文 + 4 牛!
Huschein + 5 好物!
LU_ + 5 谢谢,学到了
docshen777 + 5 牛!

查看全部评分 View all ratings

自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

37

帖子

0

威望

341

eV
积分
378

Level 3 能力者

7#
 楼主 Author| 发表于 Post on 2024-7-3 09:35:14 | 只看该作者 Only view this author
Graphite 发表于 2024-7-2 21:58
reaxff用4090是效果不好,但不至于这么慢
1、是否使用了多进程,导致互抢资源
2、neigh搜索接邻列表的频 ...

谢谢老师的回复。关于您的意见,我有一些疑问:
1. 多进程是指谁的多进程,mpi还是threads
2. 的确很频繁,为了精度设置的每一步
3. 由于第二点,应该不是覆盖了的问题
4. 密度大概是1.7g/cm3的样子。

我把输入文件上传了,能否劳烦您帮我跑一下,给我一个参照,谢谢您。

input.rar

140.26 KB, 下载次数 Times of downloads: 46

433

帖子

8

威望

4317

eV
积分
4910

Level 6 (一方通行)

石墨

6#
发表于 Post on 2024-7-2 21:58:57 | 只看该作者 Only view this author
reaxff用4090是效果不好,但不至于这么慢
1、是否使用了多进程,导致互抢资源
2、neigh搜索接邻列表的频率是否过于频繁、neigh的延展半径和control file中bond搜索半径是否太长
3、制作reax/c/bonds、reax/c/species的输出频次是否过于频繁(特别是它们有时还会覆盖neigh频率的设置)
4、体系的密度是否很大
我没用过4090跑reaxff,用tesla V100跑1-1.5 g/ml的有机物,一般每秒>80万原子步是有的,3080的速度远不及tesla V100,但也是有每秒小几十万原子步。
自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

37

帖子

0

威望

341

eV
积分
378

Level 3 能力者

5#
 楼主 Author| 发表于 Post on 2024-7-1 18:40:54 | 只看该作者 Only view this author
低调的板凳 发表于 2024-7-1 10:52
运行时实际nvidia-smi显示的占用是什么情况的

功耗70W/450W,占用率20-30%,下面进程有一个lmp,类型是C

45

帖子

0

威望

165

eV
积分
210

Level 3 能力者

4#
发表于 Post on 2024-7-1 10:52:49 | 只看该作者 Only view this author
docshen777 发表于 2024-7-1 08:21
请问如何检查这一步?

运行时实际nvidia-smi显示的占用是什么情况的

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-16 18:44 , Processed in 0.184933 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list