|
|
本帖最后由 企鹅子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。
在给出的两个参考例子中有说这样一句话
事实上作者很良心,但是依然高估了我这样的人的水平。应当先修改这个文件,然后再使用命令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
-
查看全部评分 View all ratings
|