lammps—报错记录—gpu加速—ERROR:unable to initialize —cuda driver error 4 ... ‘geryon/nvd_device.h‘

  在使用lammps的gpu加速的时候遇到了很多问题,这个问题看了很多论坛都没有找到好的解答,把我的情况和解决方案记录在这里,希望对大家有帮助。

一、报错情况

输入命令:

haichao@node01:~/JUNJIE/test_pureMC$ mpirun -np 64 lmp_mpi -sf gpu -pk gpu 1 -in pureMC3.in

( pureMC3.in 是我的in文件)

终端输出如下:

LAMMPS (8 Feb 2023)
ERROR: Unable to initialize accelerator for use (../gpu_extra.h:65)
Last command: package gpu 1
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 429.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 430.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 429.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 430.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 429.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 430.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 429.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 430.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 429.
Cuda driver error 4 in call at file 'geryon/nvd_device.h' in line 430.

(截取了部分界面,主要的报错信息就是ERROR后面的语句以及cuda drive error 4)

二、解决方案

输入命令:

haichao@node01:~/JUNJIE/test_pureMC$ mpirun -np 4 lmp_mpi -sf gpu -pk gpu 1 -in pureMC3.in

###注意:这里的唯一改动就在于把并行运算的cpu核心数目从‘64’改为了‘4’!###

终端输出如下:

LAMMPS (8 Feb 2023)
Reading data file ...
  orthogonal box = (2.2220993 0 -40.8) to (126.79883 129.02093 81.6)
  2 by 2 by 1 MPI processor grid
  reading atoms ...
  118800 atoms
  reading velocities ...
  118800 velocities
  read_data CPU = 0.320 seconds
Setting atom values ...
  237 settings made for type/ratio
Setting atom values ...
  47 settings made for type/ratio
Reading eam/alloy potential file MgCuAl.eam.alloy with DATE: 2023-03-01

后面就是正常的运行了,问题得到了解决< ^_^ >

三、总结

   对于这个问题的原因,很明显就是在使用GPU加速的时候CPU核心数目过多了而导致的。我还不太清楚为什么会这样,我看到网上有人发帖说 “在用GPU加速算法的时候,在同样的GPU使用情况下,使用数量多的CPU反而计算速度下降,这可能是因为MD的运算都在GPU中运行,而过多的CPU数目反而会增加各个计算板块之间的通信时间。” 类比思考一下,我这个报错可能是因为GPU加速算法并不支持过多核数的CPU计算(没有测试过具体多少核数是上限度),因此产生了报错。

   最后想补充一下我使用4CPU+1GPU的运算速度比我使用128CPU的运算速度还要快(没有定量计算过,在终端输出上肉眼就能看出来),所以GPU不能支持过多核数的CPU运算这个缺点是可以被GPU的速度弥补起来的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值