计算化学公社

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

[GROMACS] [已解决]Gromacs单机GPU双卡占用率低下求助

[复制链接 Copy URL]

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

本帖最后由 snljty 于 2021-9-30 14:47 编辑

【更新:已解决。解决方案写在最后了】

配置是双路Intel Xeon Silver 4214R,单路12核24线程,内存8*16GB RECC DDR4四通道,主板X11DAI-N。配NVidia GeForce RTX 3080Ti双卡。操作系统CentOS 7.9,CUDA版本11.4。GCC 5.4.0编译。FFTW是自己编译的3.3.8。
现在同时跑两个任务,各用一块GPU和12核CPU,提交命令如下:
  1. gmx mdrun -pin on -ntmpi 1 -ntomp 12 -bonded cpu -nb gpu -pme gpu -pmefft gpu -gpu_id 0
  2. gmx mdrun -pin on -ntmpi 1 -ntomp 12 -bonded cpu -nb gpu -pme gpu -pmefft gpu -gpu_id 1
复制代码
gmx版本为2019.3,带AVX2编译的fftw和gmx。测试体系为512个乙醇的盒子。
发现占用率极为低下,两张卡都只有10+%的占用率,而且每个任务的CPU占用率也只有600%而不是1200%。



单卡+12核CPU跑一个任务时候,GPU占用率在33%左右,CPU占用率是1200%。
请问大家有什么建议。

更新:感谢大家的建议,已经解决。至少这个版本的gmx内核绑定默认是从0开始。所以如果按我这样提交,两个任务的CPU部分都被塞到同一块CPU了,然后gmx(也可能是别的层面?)发现可用物理核心数不足,就自动把两个任务都降到了半个物理核心数来跑。
正确使用方法是:
  1. gmx mdrun -pin on -pinoffset 0 -ntmpi 1 -ntomp 12 -gpu_id 0 -bonded cpu -nb gpu -pme gpu
  2. gmx mdrun -pin on -pinoffset 24 -ntmpi 1 -ntomp 12 -gpu_id 1 -bonded cpu -nb gpu -pme gpu
复制代码

2407

帖子

1

威望

5950

eV
积分
8377

Level 6 (一方通行)

2#
发表于 Post on 2021-9-29 19:52:23 | 只看该作者 Only view this author
gmx 2019.3 编译的时候有没有修改?
修改了啥?
编译用的NVCC啥版本?
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2021-9-29 20:06:55 | 只看该作者 Only view this author
abin 发表于 2021-9-29 19:52
gmx 2019.3 编译的时候有没有修改?
修改了啥?
编译用的NVCC啥版本?

改了一点,删掉了compute_30的部分,用的http://bbs.keinsci.com/thread-20197-1-1.html里12楼的脚本。CUDA是11.4。抱歉忘了提CUDA版本了。CentOS 7.9

859

帖子

16

威望

5084

eV
积分
6263

Level 6 (一方通行)

小屁孩

4#
发表于 Post on 2021-9-29 20:54:29 | 只看该作者 Only view this author
CPU太烂。2张3080Ti用2颗24核或许能发挥出大部分性能
- 向着虚无前进 -

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

5#
 楼主 Author| 发表于 Post on 2021-9-29 21:05:36 | 只看该作者 Only view this author
Entropy.S.I 发表于 2021-9-29 20:54
CPU太烂。2张3080Ti用2颗24核或许能发挥出大部分性能

但是我测单卡,分配24核CPU不比12核快,甚至还慢了一点。

308

帖子

2

威望

3557

eV
积分
3905

Level 5 (御坂)

6#
发表于 Post on 2021-9-29 21:53:24 | 只看该作者 Only view this author
本帖最后由 lyj714 于 2021-9-29 22:01 编辑

512个乙醇分子。。。你这体系如果太小的话,GPU基本上没利用率的。跑测试起码10W+的原子试试看
建议以这些测试为基准:https://www.mpibpc.mpg.de/grubmueller/bench
一般测试https://www.mpibpc.mpg.de/15101317/benchMEM.zip就可以

Free energy benchmarks这一部分测试做了没用,gmx2019还不支持FEP的PME部分计算放到GPU上。

859

帖子

16

威望

5084

eV
积分
6263

Level 6 (一方通行)

小屁孩

7#
发表于 Post on 2021-9-29 22:10:01 | 只看该作者 Only view this author
snljty 发表于 2021-9-29 21:05
但是我测单卡,分配24核CPU不比12核快,甚至还慢了一点。

刚没看到512乙醇分子…确实是原子数太少了。3080Ti怎么也得拿20w原子来测吧。我之前测试过2*RTX4000 & 2*5220R,20w原子能到50ns/d,3080Ti由于家境贫寒还没用上,估计能到100吧
- 向着虚无前进 -

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

8#
 楼主 Author| 发表于 Post on 2021-9-29 23:14:34 | 只看该作者 Only view this author
lyj714 发表于 2021-9-29 21:53
512个乙醇分子。。。你这体系如果太小的话,GPU基本上没利用率的。跑测试起码10W+的原子试试看
建议以这些 ...

谢谢您,我明天去测。不过您看单CPU单卡跑效率还凑合,双CPU双卡分别跑两个任务效率就极低,这个现象怎么解释呢?谢谢

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

9#
 楼主 Author| 发表于 Post on 2021-9-29 23:14:57 | 只看该作者 Only view this author
Entropy.S.I 发表于 2021-9-29 22:10
刚没看到512乙醇分子…确实是原子数太少了。3080Ti怎么也得拿20w原子来测吧。我之前测试过2*RTX4000 & 2* ...

好的,我用大体系测试一下。

553

帖子

0

威望

3324

eV
积分
3877

Level 5 (御坂)

10#
发表于 Post on 2021-9-30 08:42:17 | 只看该作者 Only view this author
snljty 发表于 2021-9-29 23:14
谢谢您,我明天去测。不过您看单CPU单卡跑效率还凑合,双CPU双卡分别跑两个任务效率就极低,这个现象怎么 ...

CPU缓存带宽。仅用12核带宽比24核全跑要大。

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

11#
 楼主 Author| 发表于 Post on 2021-9-30 09:39:53 | 只看该作者 Only view this author
k64_cc 发表于 2021-9-30 08:42
CPU缓存带宽。仅用12核带宽比24核全跑要大。

那请问有什么推荐替换的CPU么?谢谢

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

12#
 楼主 Author| 发表于 Post on 2021-9-30 11:08:07 | 只看该作者 Only view this author
lyj714 发表于 2021-9-29 21:53
512个乙醇分子。。。你这体系如果太小的话,GPU基本上没利用率的。跑测试起码10W+的原子试试看
建议以这些 ...

您好,这个benchMEM好像时间太短,GPU还没调到最优性能就跑完了。我把步数调大了20倍跑的,36核2699 v3的CPU节点跑下来是40 ns/day,4214R单CPU12核+一块3080 Ti是159 ns/day。GPU占用率在59%左右,CPU占用率1200%。双卡各用上面的设置跑相同任务时,每个任务的CPU占用率马上掉到600%,GPU占用率也掉到20%以下。

1657

帖子

5

威望

4558

eV
积分
6315

Level 6 (一方通行)

喵星人

13#
发表于 Post on 2021-9-30 11:19:32 | 只看该作者 Only view this author
snljty 发表于 2021-9-30 11:08
您好,这个benchMEM好像时间太短,GPU还没调到最优性能就跑完了。我把步数调大了20倍跑的,36核2699 v3的 ...

htop看下每个进程用的cpu编号是不是同一颗上的

评分 Rate

参与人数
Participants 1
eV +1 收起 理由
Reason
k64_cc + 1 我很赞同

查看全部评分 View all ratings

308

帖子

2

威望

3557

eV
积分
3905

Level 5 (御坂)

14#
发表于 Post on 2021-9-30 11:33:29 | 只看该作者 Only view this author
snljty 发表于 2021-9-30 11:08
您好,这个benchMEM好像时间太短,GPU还没调到最优性能就跑完了。我把步数调大了20倍跑的,36核2699 v3的 ...

gmx convert-tpr可以设置时间,extend和until选项
还有你说的那个显示的cpu占用率,你要搞清楚那个值是什么意思哦,我估计和超线程无关,你本身物理核心就只有12个,所以-ntomp指定的就是物理核心,所以才导致一个任务设置的12就能用12个,两个任务就算你分别设置了12,但是每一个任务还是只分到了6个,总共12物理核,这个也和你设置了-pin on有关。
至于gpu利用率,原因也可能很多,最主要的原因我觉得还是你用的gmx 2019,该版本没有对这一类gpu和cuda相关的源码进行优化,可能的话你安装最新2021.3版本再做测试对比

1187

帖子

5

威望

2859

eV
积分
4146

Level 6 (一方通行)

15#
 楼主 Author| 发表于 Post on 2021-9-30 11:57:30 | 只看该作者 Only view this author
本帖最后由 snljty 于 2021-9-30 12:02 编辑
lyj714 发表于 2021-9-30 11:33
gmx convert-tpr可以设置时间,extend和until选项
还有你说的那个显示的cpu占用率,你要搞清楚那个值是 ...

我是双路,共24核48线程。-ntomp 12应该是各占12核吧。顺便我确实是用的convert-tpr修改nsteps转换的。谢谢您!

本版积分规则 Credits rule

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

GMT+8, 2025-8-14 04:12 , Processed in 0.167283 second(s), 24 queries , Gzip On.

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