计算化学公社

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

[Lammps] wsl2下纯萌新实现gpu和kokkos包的lammps安装攻略

[复制链接 Copy URL]

15

帖子

1

威望

785

eV
积分
820

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 企鹅子w 于 2024-7-16 11:45 编辑

由于本人对于linux系统不太熟悉,也是通过安装lammps才逐步熟悉起来的。鉴于网上虽然有很多教程,但是由于本身实力问题,依然装的磕磕绊绊,为了供许多和我一样的,连linux系统都不熟悉(仅限于cd mv mkdir这些命令)的小白,达到至少能跑lammps的效果,我写了这样一份攻略(对于很多大佬来说可能里面还有错误但对小白来说至少lammps真的可以跑起来。)本帖子只要我遇到新的问题并且能够解决就会不断更新,旨在为像我一样的新手以最大的帮助。

主要参考过论坛内的两份帖子
http://bbs.keinsci.com/thread-27603-1-1.html
http://bbs.keinsci.com/thread-36559-1-1.html
这两个帖子其实已经写的非常好的,但是对于我这样的新手依然产生了各种奇怪的问题。因此我想按照他们的格式夹杂自己遇到过的问题进行一个梳理。
作为萌新我用make总是无法编译lammps,显示问题是quip_root,所以选择是cmake,事实上我尝试过解决这个问题,但一无所获,作为萌新,能用就行。

我用的是win11下的wsl2,安装了Ubuntu20.04系统(22.04,24.04同理)
1.配置所需的软件以及环境(cmake,gfortran,fftw等)
配置fftw的时候,我就产生了问题。
按照https://www.lammps.org.cn/zh/hel ... 5%E4%BE%9D%E8%B5%96
这里的说法,如果没有安装其他版本,将会使用lammps自带,但是建议像我一样的萌新老老实实使用:sudo apt-get install libfftw3* 这个命令来安装

配置mpich,我使用sudo apt-get install mpi-default-*并没有成功安装mpich,因此我就换了一种方式安装。因为在win11系统上,所以你可以在文件夹中直接显示ubuntu系统的文件夹,所以我下载了一个mpich4.1.3的压缩包,移动到了安装位置,然后进行了安装。在安装后,注意将其加入环境变量,无论装到什么路径,都加入环境变量,因为我确实遇到过显示没有这个包的情况。

配置cmake,这个按照教程走就可以了,我并没有产生任何问题.

配置gfortran这些很简单,直接apt install即可

2.配置cuda
配置cuda我产生了一堆问题,网上给贴出了许多连接,我尝试了很多次,产生了各种各样的问题。
如果你安装的cuda版本为10的话,是因为用了那个apt install的命令,不要用那个命令不然的话ampere的显卡用不了
首先,如果你要配置cuda必须现在windows上安装显卡驱动。网址如下:https://www.nvidia.cn/Download/index.aspx?lang=cn
注意你是win11系统,所以要选择win11,然后在没有核显的情况下一定要选择精简版安装。如果你是以前版本的,记得下新的然后安装,我就是没有更新,不知道为什么解决不了显卡驱动的问题。
安装完按照网址:https://developer.nvidia.com/cud ... rget_type=deb_local来选择wsl-ubuntu 2.0版本来安装。选择deb(local)方式,不要选择runfile(local)方式。
就一条条命令行打过去就行,没有任何问题。
然后安装完以后,在.bashrc中加入环境,这在其他教程中都有。然后选择nvcc -V,看到版本就说明成功了,其中注意V为大写,而不是小写,小写不显示,不是你装错了。像我这种萌新刚上linux就不明白为什么不显示,结果白白浪费时间。其中nvidia-settings输入以后不显示,或者说报错,其实还是能用。

3.安装lammps
解压、创建文件夹肯定没有问题。问题在于编译kokkos和gpu。
在给出的两个参考例子中有说这样一句话
(修改kokkos-cuda.cmake文件,把‘set(Kokkos_ARCH_MAXWELL50 on CACHE BOOL "" FORCE)’中的MAXWELL50根据manual (https://lammps.sandia.gov/doc/Build_extras.html#kokkos) 的说明改为自己显卡对应的Arch-ID)

事实上作者很良心,但是依然高估了我这样的人的水平。应当先修改这个文件,然后再使用命令cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake去编译,不然的话,你先编译再修改还是显示原本的显卡架构。同时别忘记更改编译任务中的 GPU_ARCH=sm_75,75改成自己显卡对应的数字就行。
显卡架构对应在官方手册pdf版本中为183页
上面是主体流程,下面是遇到的各种问题:
1. libcuda.so.1 is not a symbolic link
这是个常见问题,解决方法是网址:https://kira-96.github.io/posts/ ... %E6%96%B9%E6%B3%95/
根据教程走就行。
2.can't link /usr/lib/wsl/lib/libnvoptix_loader.so.1 to libnvoptix.so.1。
这个问题不用管,并不会产生任何问题
3./usr/bin/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status
这个问题网上的解决办法都不管用,lammps也根本不需要libpthread-stubs0-dev相关的库。
4.c++: fatal error: Killed signal terminated program cc1plus
swap分区问题 请根据这个教程走:https://blog.csdn.net/weixin_44796670/article/details/121234446
5.安装完运行记得注意输入文件的力场路径,不然的话会产生不能打开力场文件的错误


--------------------------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------------------
上述流程是本人在I7-9700k的cpu上安装的。最近换了一台R9-7950X的配置。不知是什么原因,安装产生了新的问题
1.CMake Warning at CMakeLists.txt:212 (add_executable):
  Cannot generate a safe runtime search path for target lmp because files in  some directories may conflict with libraries in implicit directories:    runtime library [libcuda.so.1] in /usr/local/cuda-12.3/targets/x86_64-linux/lib/stubs may be hidden by files in:      /usr/lib/wsl/lib  Some of these libraries may not be found correctly。这个问题的本质是有两个库,系统并不能一定确定是那个库,实测没有任何问题。
2.Killed
make[2]: *** [CMakeFiles/lammps.dir/build.make:18626: CMakeFiles/lammps.dir/home/penguinw/lammps-2Aug2023/src/KOKKOS/comm_kokkos.cpp.o] Error 137这是个典型的内存不足问题, make -j后面的数字不必太多就行。

--------------------------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------------------
更新:最近又产生了新的问题(ubuntu 24.04,cmake-3.30,cuda-12.5):
使用命令cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake时出现报错
CMake Error at Modules/Packages/KOKKOS.cmake:137 (message):  Required cuFFT library not found.  Check your environment or set  CUFFT_LIBRARY to its location
这是因为安装cuda-12.5的时候在usr/local/cuda-12.5的目录下仅有lib64这个文件,没有lib64这个文件夹,真正包含cufft的文件夹在/usr/local/cuda-12.5/targets/x86_64-linux/lib/这个文件夹下。遇到该问题仅需使用命令 cmake -DCUFFT_LIBRARY=/usr/local/cuda-12.5/targets/x86_64-linux/lib/libcufft.so -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake,手动指定cufft的路径即可。

评分 Rate

参与人数
Participants 3
威望 +1 eV +8 收起 理由
Reason
ddddnight + 5 GJ!
anson + 3 谢谢分享
sobereva + 1

查看全部评分 View all ratings

55

帖子

0

威望

693

eV
积分
748

Level 4 (黑子)

2#
发表于 Post on 2023-11-6 00:40:05 | 只看该作者 Only view this author
本帖最后由 moritaichi 于 2023-11-6 12:12 编辑

我遇到个问题,请懂的大佬指教一下,make -j后报错如下,基本都是按照论坛里的软件版本来的:
/usr/bin/ld: cannot find -lcufft
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/lmp.dir/build.make:113: lmp] Error 1
make[1]: *** [CMakeFiles/Makefile2:365: CMakeFiles/lmp.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

我仔细排查了一下,我发现我装的cuda12.3没有export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.3/lib64中的lib64这个文件夹,这实在是太困惑了,因为我去查资料-lcufft这个库就是该在/usr/local/cuda-12.0/lib64这个文件夹里,我搜索出lcufft.so在路径/usr/ocal/cuda-12.3/targets/x86_64-linux/lib中,于是在bashrc中加入了export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.3/targets/x86_64-linux/lib,不过重启终端后make编译lammps时依然出现了 cannot find -lcufft的报错
孩子人都麻了

15

帖子

1

威望

785

eV
积分
820

Level 4 (黑子)

3#
 楼主 Author| 发表于 Post on 2023-11-10 16:23:48 | 只看该作者 Only view this author
moritaichi 发表于 2023-11-6 00:40
我遇到个问题,请懂的大佬指教一下,make -j后报错如下,基本都是按照论坛里的软件版本来的:
/usr/bin/ld ...

这个问题我认为是这样的(我只是作为报错的人讲我遇到的,不讲任何知识,因为我也不懂,如果内容有错误请原谅):当你没找到文件夹的时候,应该是安装有问题,你搜索的的路径找到了这个lib不是你需要的lib。我之前用apt install安装cuda的时候,它自动给我装了一个10.0的cuda,后来我又手动装了一个12.2的cuda,然后我export 12.2的时候就产生了这个bug。我当时在群里问过相关问题,得出解释是不需要这个包,我觉得你的错误和我一样。我当时就直接重置了wsl2,然后直接只安装12.2的cuda,然后报错自动消失了

55

帖子

0

威望

693

eV
积分
748

Level 4 (黑子)

4#
发表于 Post on 2023-11-14 22:27:40 | 只看该作者 Only view this author
企鹅子w 发表于 2023-11-10 16:23
这个问题我认为是这样的(我只是作为报错的人讲我遇到的,不讲任何知识,因为我也不懂,如果内容有错误请 ...

多谢指点,我并没有apt install安装cuda,我最终是link   /targets/x86_64-linux/lib到lib64中来解决这个问题的

1

帖子

0

威望

33

eV
积分
34

Level 2 能力者

5#
发表于 Post on 2024-2-22 19:08:33 | 只看该作者 Only view this author
moritaichi 发表于 2023-11-14 22:27
多谢指点,我并没有apt install安装cuda,我最终是link   /targets/x86_64-linux/lib到lib64中来解决这个 ...

我也遇到了这个问题,请问具体是怎么解决的

本版积分规则 Credits rule

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

GMT+8, 2026-2-19 04:54 , Processed in 0.273503 second(s), 27 queries , Gzip On.

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