본문 바로가기

LAMMPS

LAMMPS with AOCC Updated 250502

환경설정

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