diff options
author | realasking@outlook.com | 2022-05-11 10:09:33 +0800 |
---|---|---|
committer | realasking@outlook.com | 2022-05-11 10:09:33 +0800 |
commit | f42e5e510839bb6bf3a609b3c6829a14a7c0b8e9 (patch) | |
tree | 4431cd3df638ab2bca792c6b402edd7100881c92 | |
download | aur-lammps-ryzen-opencl.tar.gz |
lammps package for amd ryzen cpu and amd gpu.
-rw-r--r-- | .SRCINFO | 19 | ||||
-rwxr-xr-x | PKGBUILD | 184 | ||||
-rwxr-xr-x | lammps_cpu_mod | 12 | ||||
-rwxr-xr-x | lammps_gpu_single_mod | 12 |
4 files changed, 227 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..0696939bebca --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = lammps-ryzen-opencl + pkgdesc = lammps with opencl support ONLY for ryzen cpu and amd gpu, modified from pyskets's lammps package + pkgver = r30482.1b8641685a + pkgrel = 1 + url = https://lammps.sandia.gov/ + arch = x86_64 + license = GPL + makedepends = cmake>=3.1 + depends = fftw + depends = openmpi + depends = opencl-amd + depends = voro++ + depends = env-modules + provides = lammps + conflicts = lammps + source = git+https://github.com/lammps/lammps.git + sha512sums = SKIP + +pkgname = lammps-ryzen-opencl diff --git a/PKGBUILD b/PKGBUILD new file mode 100755 index 000000000000..13915cd516c5 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,184 @@ +# Maintainer: realasking <realasking@outlook.com> + + +# HTML documentation +_BUILD_DOC=0 +# Copy 'examples' to /usr/share/examples/lammps +_INSTALL_EXAMPLES=1 + + +_pkgname=lammps +pkgname=${_pkgname}-ryzen-opencl +pkgver=r30482.1b8641685a +pkgrel=1 +pkgdesc="lammps with opencl support ONLY for ryzen cpu and amd gpu, modified from pyskets's lammps package" +url="https://lammps.sandia.gov/" +arch=('x86_64') +license=('GPL') +depends=('fftw' 'openmpi' 'opencl-amd' 'voro++' 'env-modules') +makedepends=('cmake>=3.1') +conflicts=('lammps') +provides=('lammps') +source=('git+https://github.com/lammps/lammps.git') +sha512sums=('SKIP') + +# process the build settings from above +if (( $_BUILD_DOC )); then + makedepends+=('python-sphinx') +fi + + +pkgver() { + cd "${_pkgname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + mkdir -p ${srcdir}/${_pkgname}_cpu/build + mkdir -p ${srcdir}/${_pkgname}_gpu/build +} + +build() { + cd ${srcdir}/${_pkgname}_cpu/build + cmake ../../${_pkgname}/cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="/opt/lammps/cpu" \ + -DPKG_CORESHELL=ON \ + -DPKG_DIPOLE=ON \ + -DPKG_GRANULAR=ON \ + -DPKG_MOLECULE=ON \ + -DPKG_PERI=ON \ + -DPKG_MC=ON \ + -DPKG_MISC=ON \ + -DPKG_GPU=OFF \ + -DPKG_USER-MEAMC=ON \ + -DPKG_USER-REAXC=ON \ + -DPKG_REPLICA=ON \ + -DPKG_KSPACE=ON \ + -DPKG_POEMS=ON \ + -DPKG_MANYBODY=ON \ + -DPKG_USER-ATC=ON \ + -DPKG_USER-AWPMD=ON \ + -DPKG_USER-DIFFRACTION=ON \ + -DPKG_VORONOI=ON -DDOWNLOAD_VORO=OFF \ + -DPKG_USER-FEP=ON \ + -DPKG_USER-MOLFILE=ON \ + -DPKG_USER-PHONON=ON \ + -DPKG_USER-VTK=OFF \ + -DPKG_KOKKOS=OFF \ + -DPKG_KIM=OFF \ + -DPKG_LATTE=OFF \ + -DDOWNLOAD_KIM=OFF \ + -DBUILD_OMP=OFF \ + -DPKG_OPT=ON \ + -DPKG_USER-OMP=OFF \ + -DBUILD_LIB=ON \ + -DBUILD_EXE=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DPKG_PYTHON=ON \ + -DCMAKE_C_COMPILER=mpicc \ + -DCMAKE_CXX_COMPILER=mpicxx \ + -DCMAKE_Fortran_COMPILER=mpif90 \ + -DFFT=FFTW3 \ + -DCMAKE_CXX_FLAGS="-O3" \ + "${_feature_args[@]}" #\ + make -j8 + + + cd ${srcdir}/${_pkgname}_gpu/build + cmake ../../${_pkgname}/cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="/opt/lammps/gpu" \ + -DPKG_CORESHELL=ON \ + -DPKG_DIPOLE=ON \ + -DPKG_GRANULAR=ON \ + -DPKG_MOLECULE=ON \ + -DPKG_PERI=ON \ + -DPKG_MC=ON \ + -DPKG_MISC=ON \ + -DPKG_USER-MEAMC=ON \ + -DPKG_USER-REAXC=ON \ + -DPKG_REPLICA=ON \ + -DPKG_KSPACE=ON \ + -DPKG_POEMS=ON \ + -DPKG_MANYBODY=ON \ + -DPKG_USER-ATC=ON \ + -DPKG_USER-AWPMD=ON \ + -DPKG_USER-DIFFRACTION=ON \ + -DPKG_VORONOI=ON -DDOWNLOAD_VORO=OFF \ + -DPKG_USER-FEP=ON \ + -DPKG_USER-MOLFILE=ON \ + -DPKG_USER-PHONON=ON \ + -DPKG_USER-VTK=OFF \ + -DPKG_KOKKOS=OFF \ + -DPKG_KIM=OFF \ + -DPKG_LATTE=OFF \ + -DDOWNLOAD_KIM=OFF \ + -DBUILD_OMP=OFF \ + -DPKG_OPT=ON \ + -DPKG_USER-OMP=OFF \ + -DBUILD_LIB=ON \ + -DBUILD_EXE=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DPKG_PYTHON=ON \ + -DCMAKE_C_COMPILER=mpicc \ + -DCMAKE_CXX_COMPILER=mpicxx \ + -DCMAKE_Fortran_COMPILER=mpif90 \ + -DFFT=FFTW3 \ + -DPKG_GPU=on -DGPU_API=OPENCL -DGPU_PREC=single \ + -DCMAKE_CXX_FLAGS="-O3" \ + "${_feature_args[@]}" #\ + + make -j8 + + + if (( $_BUILD_DOC )) ; then + # Generate ReStructuredText from Text files + mkdir -p rst + + for file in ../../${_pkgname}/doc/src/*.txt + do + tmp=${file%.*} # Strips the '.txt' extension + fname=${tmp##*/} # Strips the path prefixing the file-name + ../../${_pkgname}/doc/utils/converters/lammpsdoc/txt2rst.py ${file} > "rst/${fname}.rst" + done + + # Generate HTML from ReStructuredText files + mkdir -p html + cp -r ../../${_pkgname}/doc/src/* rst/ + + sphinx-build -b html -c "../../${_pkgname}/doc/utils/sphinx-config" -d "doctrees" "rst" html + fi +} + +package() { + cd ${srcdir} + install -Dm644 ../lammps_cpu_mod ${pkgdir}/etc/modules/modulefiles/lammps_Ryzen5 + install -Dm644 ../lammps_gpu_single_mod ${pkgdir}/etc/modules/modulefiles/lammps_OpenCL_single + #install -Dm755 ../pos2lmp.awk ${pkgdir}/opt/lammps/cpu/bin/pos2lmp.awk + #install -Dm755 ../pos2lmp.awk ${pkgdir}/opt/lammps/gpu/bin/pos2lmp.awk + cd ${srcdir}/${_pkgname}_cpu/build + #cd ${_pkgname}_cpu/build + make DESTDIR=${pkgdir} install + cd ${srcdir}/${_pkgname}_gpu/build + #cd ${_pkgname}_gpu/build + make DESTDIR=${pkgdir} install + + if (( $_BUILD_DOC )) ; then + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html" "html/"*.html + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html" "html/"*.js + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html/_images" "html/_images/"* + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html/_static" "html/_static/"*.png + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html/_static" "html/_static/"*.js + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html/_static/css" "html/_static/css/"*.css + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html/_static/fonts" "html/_static/fonts/"* + install -Dm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/html/_static/js" "html/_static/js/"*.js + fi + if (( $_INSTALL_EXAMPLES )) ; then + mkdir -p "${pkgdir}/usr/share/examples/lammps" + cp -r "../../${_pkgname}/examples/"* "${pkgdir}/usr/share/examples/lammps/" + find "${pkgdir}/usr/share/examples/lammps/" -type f -exec chmod 644 '{}' + + fi + install -Dm644 "../../${_pkgname}/tools/vim/lammps.vim" "${pkgdir}/usr/share/vim/vimfiles/syntax/lammps.vim" + install -Dm644 "../../${_pkgname}/tools/vim/filetype.vim" "${pkgdir}/usr/share/vim/vimfiles/ftdetect/lammps.vim" +} diff --git a/lammps_cpu_mod b/lammps_cpu_mod new file mode 100755 index 000000000000..ea34fb1883b5 --- /dev/null +++ b/lammps_cpu_mod @@ -0,0 +1,12 @@ +#%Module1.0 + ## Module settings for lammps CPU version + ## This file is automatically generated by ep, do not modify it manually + proc ModulesHelp { } { + puts stderr "typing lmp to use the cpu version lammps" + } + + module-whatis "Lammps CPU" + append-path PATH /opt/lammps/cpu/bin + append-path PYTHONPATH /opt/lammps/cpu/lib/python3.8 + append-path PYTHONPATH /opt/lammps/cpu/lib/python3.8/site-packages + append-path LD_LIBRARY_PATH /opt/lammps/cpu/lib
\ No newline at end of file diff --git a/lammps_gpu_single_mod b/lammps_gpu_single_mod new file mode 100755 index 000000000000..068b31079e54 --- /dev/null +++ b/lammps_gpu_single_mod @@ -0,0 +1,12 @@ +#%Module1.0 + ## Module settings for lammps GPU version + ## This file is automatically generated by ep, do not modify it manually + proc ModulesHelp { } { + puts stderr "typing lmp to use the gpu version lammps" + } + + module-whatis "Lammps GPU" + append-path PATH /opt/lammps/gpu/bin + append-path PYTHONPATH /opt/lammps/gpu/lib/python3.8 + append-path PYTHONPATH /opt/lammps/gpu/lib/python3.8/site-packages + append-path LD_LIBRARY_PATH /opt/lammps/gpu/lib
\ No newline at end of file |