환경설정
source /opt/AMD/aocc-compiler-5.0.0/setenv_AOCC.sh
컴파일러 위치 확인, mpicc, mpicxx, mpifort는 wrapping되어 있다.
$ which clang
/opt/AMD/aocc-compiler-5.0.0/bin/clang
$ which clang++
/opt/AMD/aocc-compiler-5.0.0/bin/clang++
$ which flang
/opt/AMD/aocc-compiler-5.0.0/bin/flang
$ which mpicc
/usr/local/bin/mpicc
$ which mpicxx
/usr/local/bin/mpicxx
$ which mpifort
/usr/local/bin/mpifort
$ mpicxx --version
AMD clang version 17.0.6 (CLANG: AOCC_5.0.0-Build#1377 2024_09_24)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc-compiler-5.0.0/bin
$ mpicc --version
AMD clang version 17.0.6 (CLANG: AOCC_5.0.0-Build#1377 2024_09_24)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc-compiler-5.0.0/bin
$ mpifort --version
AMD clang version 17.0.6 (CLANG: AOCC_5.0.0-Build#1377 2024_09_24)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc-compiler-5.0.0/bin
이제 LAMMPS의 소스코드를 다운 받는다.
git clone https://github.com/lammps/lammps.git
:~/Downloads/lammps$ mkdir build
:~/Downloads/lammps$ cd build
:~/Downloads/lammps/build$
컴파일러 링크 확인
$ which mpirun
/usr/local/bin/mpirun
$ stat /usr/local/bin/mpicc
File: /usr/local/bin/mpicc -> opal_wrapper
Size: 12 Blocks: 0 IO Block: 4096 symbolic link
Device: 252,0 Inode: 1087929 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-05-02 17:42:51.936496280 +0900
Modify: 2025-05-01 23:43:42.191198262 +0900
Change: 2025-05-01 23:43:42.191198262 +0900
Birth: 2025-05-01 23:43:42.191198262 +0900
$ stat /usr/local/bin/mpicxx
File: /usr/local/bin/mpicxx -> opal_wrapper
Size: 12 Blocks: 0 IO Block: 4096 symbolic link
Device: 252,0 Inode: 1087931 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-05-02 17:46:14.649499549 +0900
Modify: 2025-05-01 23:43:42.196198262 +0900
Change: 2025-05-01 23:43:42.196198262 +0900
Birth: 2025-05-01 23:43:42.196198262 +0900
$ stat /usr/local/bin/mpifort
File: /usr/local/bin/mpifort -> opal_wrapper
Size: 12 Blocks: 0 IO Block: 4096 symbolic link
Device: 252,0 Inode: 1087932 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-05-02 17:46:14.649499549 +0900
Modify: 2025-05-01 23:43:42.199198261 +0900
Change: 2025-05-01 23:43:42.199198261 +0900
Birth: 2025-05-01 23:43:42.199198261 +0900
AOCL 링크 확인
dpkg -L aocl-linux-aocc-5.0.0
Python3-dev 설치
sudo apt install python3-dev
cmake
cmake ../cmake \
-G Ninja \
-D CMAKE_C_COMPILER=/usr/local/bin/mpicc \
-D CMAKE_CXX_COMPILER=/usr/local/bin/mpicxx \
-D CMAKE_Fortran_COMPILER=/usr/local/bin/mpifort \
-D CMAKE_C_FLAGS="-Ofast -march=native" \
-D CMAKE_CXX_FLAGS="-Ofast -march=native" \
-D CMAKE_Fortran_FLAGS="-Ofast -march=native" \
-D BUILD_OMP=yes \
-D PKG_GRANULAR=yes \
-D PKG_VTK=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_EXTRA-FIX=yes \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D BUILD_SHARED_LIBS=yes \
-D CMAKE_INSTALL_PREFIX=$HOME/LAMMPS \
-D CMAKE_INSTALL_RPATH=$HOME/LAMMPS/lib \
-D LAMMPS_BLAS_LIB="-L/opt/AMD/aocl/aocl-linux-aocc-5.0.0/aocc/lib_LP64 -lblis-mt -lpthread -lm" \
-D LAMMPS_LAPACK_LIB="-L/opt/AMD/aocl/aocl-linux-aocc-5.0.0/aocc/lib_LP64 -lflame -lpthread -lm"
KOKKOS - OMP
cmake ../cmake \
-G Ninja \
-D CMAKE_C_COMPILER=/usr/local/bin/mpicc \
-D CMAKE_CXX_COMPILER=/usr/local/bin/mpicxx \
-D CMAKE_Fortran_COMPILER=/usr/local/bin/mpifort \
-D CMAKE_C_FLAGS="-Ofast -march=native" \
-D CMAKE_CXX_FLAGS="-Ofast -march=native" \
-D CMAKE_Fortran_FLAGS="-Ofast -march=native" \
-D PKG_GRANULAR=yes \
-D PKG_VTK=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_EXTRA-FIX=yes \
-D PKG_KOKKOS=yes \
-D Kokkos_ARCH_ZEN3=yes \ # For AMD 5995WX
-D Kokkos_ENABLE_OPENMP=yes \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D BUILD_SHARED_LIBS=yes \
-D CMAKE_INSTALL_PREFIX=$HOME/LAMMPS_KOKKOS_OMP \
-D CMAKE_INSTALL_RPATH=$HOME/LAMMPS_KOKKOS_OMP/lib \
-D LAMMPS_BLAS_LIB="-L/opt/AMD/aocl/aocl-linux-aocc-5.0.0/aocc/lib_LP64 -lblis-mt -lpthread -lm" \
-D LAMMPS_LAPACK_LIB="-L/opt/AMD/aocl/aocl-linux-aocc-5.0.0/aocc/lib_LP64 -lflame -lpthread -lm"
# -D PKG_OPENMP=yes \
# -D Kokkos_ARCH_ZEN4=yes \ $ For AMD 7995WX Pro
export PATH="$HOME/LAMMPS_KOKKOS_OMP/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/LAMMPS_KOKKOS_OMP/lib:$LD_LIBRARY_PATH"
KOKKOS - GPU
ERROR: Cannot yet use fix pour with the KOKKOS package (src/GRANULAR/fix_pour.cpp:59)
GPU
cuda binary파일을 c코드로 변환 하기위해서 bin2c 가 필요한데, cuda를 설치하면 보통 아래의 디렉토리에 존재한다. 확인해 보자.
/usr/local/cuda-12.4/bin/bin2c
cmake 옵션에 위의 path를 명기
cmake ../cmake \
-G Ninja \
-D CMAKE_C_COMPILER=/usr/local/bin/mpicc \
-D CMAKE_CXX_COMPILER=/usr/local/bin/mpicxx \
-D CMAKE_Fortran_COMPILER=/usr/local/bin/mpifort \
-D CMAKE_C_FLAGS="-Ofast -march=native" \
-D CMAKE_CXX_FLAGS="-Ofast -march=native" \
-D CMAKE_Fortran_FLAGS="-Ofast -march=native" \
-D PKG_GPU=yes \
-D GPU_API=cuda \
-D GPU_ARCH=sm_90 \
-D BIN2C=/usr/local/cuda-12.4/bin/bin2c \
-D PKG_GRANULAR=yes \
-D PKG_VTK=yes \
-D PKG_RIGID=yes \
-D PKG_MOLECULE=yes \
-D PKG_PYTHON=yes \
-D PKG_EXTRA-FIX=yes \
-D Python_EXECUTABLE=/usr/bin/python3 \
-D BUILD_SHARED_LIBS=yes \
-D CMAKE_INSTALL_PREFIX=$HOME/LAMMPS_GPU \
-D CMAKE_INSTALL_RPATH=$HOME/LAMMPS_GPU/lib \
-D LAMMPS_BLAS_LIB="-L/opt/AMD/aocl/aocl-linux-aocc-5.0.0/aocc/lib_LP64 -lblis-mt -lpthread -lm" \
-D LAMMPS_LAPACK_LIB="-L/opt/AMD/aocl/aocl-linux-aocc-5.0.0/aocc/lib_LP64 -lflame -lpthread -lm"
export PATH="$HOME/LAMMPS_GPU/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/LAMMPS_GPU/lib:$LD_LIBRARY_PATH"
-D LAMMPS_MEMALIGN=value # 0, 8, 16, 32, 64 (default)
빌드
ninja -j 4
sudo ninja install
파이썬 설치
sudo apt install python3.12-venv
python3 -m venv ~/my_lammps_venv
source ~/my_lammps_venv/bin/activate
ninja install-python
파이썬 가상환경에서 설치해야 할 것
pip install mpi4py
패스 잡아주기
export PATH="$HOME/LAMMPS_AOCCP/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/LAMMPS_AOCCP/lib:$LD_LIBRARY_PATH"
'LAMMPS' 카테고리의 다른 글
Possible Acclerations (0) | 2025.05.16 |
---|---|
MPI+OMP in AOCC (0) | 2025.04.14 |
IntelOneAPI command line options for NUMA (0) | 2025.04.03 |
LAMMPS IntelOneAPI build (2025.5.14) (0) | 2025.03.04 |
AOCC, AOCL Cmake (optional) (0) | 2025.03.03 |