diff --git a/package/bisheng/2.3.0/install.sh b/package/bisheng/2.3.0/install.sh index d5a5f8c92ba6b32ac7cf6ffe75104cac61590207..d8fa5803ba5c76aba9b26bc1fd0cc7c9923f7ff2 100644 --- a/package/bisheng/2.3.0/install.sh +++ b/package/bisheng/2.3.0/install.sh @@ -1,11 +1,3 @@ #!/bin/bash -set -e -bisheng_version='2.3.0' -arch='x86' -if [ x$(arch) = xaarch64 ];then - arch='aarch64' -fi -. ${DOWNLOAD_TOOL} -u https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/bisheng-compiler-${bisheng_version}-${arch}-linux.tar.gz -cd ${JARVIS_TMP} -. $CHECK_ROOT && yum -y install libatomic libstdc++ libstdc++-devel -tar xzvf ${JARVIS_DOWNLOAD}/bisheng-compiler-${bisheng_version}-${arch}-linux.tar.gz -C $1 --strip-components=1 +bisheng_ver='bisheng-compiler-2.3.0' +../meta.sh $1 diff --git a/package/bisheng/2.4.0/install.sh b/package/bisheng/2.4.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..7b1108079b3d7bf0dc070b891dff8b0868575316 --- /dev/null +++ b/package/bisheng/2.4.0/install.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -e +export bisheng_ver='BiSheng-compiler-2.4.0' +../meta.sh $1 \ No newline at end of file diff --git a/package/bisheng/meta.sh b/package/bisheng/meta.sh new file mode 100644 index 0000000000000000000000000000000000000000..894b029f9aa44d420418f39029ff70df0f11485f --- /dev/null +++ b/package/bisheng/meta.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +arch='x86' +if [ x$(arch) = xaarch64 ];then + arch='aarch64' +fi +. ${DOWNLOAD_TOOL} -u https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/${bisheng_ver}-${arch}-linux.tar.gz +cd ${JARVIS_TMP} +. $CHECK_ROOT && yum -y install libatomic libstdc++ libstdc++-devel +tar xzvf ${JARVIS_DOWNLOAD}/${bisheng_ver}-${arch}-linux.tar.gz -C $1 --strip-components=1 diff --git a/package/cuda/FAQ b/package/cuda/FAQ new file mode 100644 index 0000000000000000000000000000000000000000..69b2f537830087b6efcea15191529de1034cfeec --- /dev/null +++ b/package/cuda/FAQ @@ -0,0 +1,11 @@ +Q:The file '/tmp/.X0-lock' exists and appears to contain the process ID '1062' of a >runnning X server. +ERROR: You appear to be running an X server; please exit X before installing. For >further details, please see the section INSTALLING THE NVIDIA DRIVER in the README >available on the Linux driver download page at www.nvidia.com. +ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' >for details. You may find suggestions on fixing installation problems in the README >available on the Linux driver download page at www.nvidia.com. + +A:service lightdm stop + +Q: 升级CUDA及驱动报错 ERROR: An NVIDIA kernel module 'nvidia-uvm' appears to already be loaded in your kernel. +A: +nvidia-uninstall +lsof -n -w /dev/nvidia* +kill -9 PID \ No newline at end of file diff --git a/package/kfft/1.0.0/install.sh b/package/kfft/1.0.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..5d44996fe4e689a62abd6c4c57797180bca6c051 --- /dev/null +++ b/package/kfft/1.0.0/install.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -x +set -e +lib_name='kml_adapter' +. ${DOWNLOAD_TOOL} -u https://gitee.com/openeuler/kml_adapter.git -t git +cd $JARVIS_DOWNLOAD +cd ./$lib_name/kml_fft_adapter +export C_INCLUDE_PATH=/usr/local/kml/include/ +export CPLUS_INCLUDE_PATH=/usr/local/kml/include/ +chmod +x build.sh +dos2unix build.sh +rm -rf build +./build.sh +mkdir -p $1/lib +cp -rf build/* $1/lib \ No newline at end of file diff --git a/templates/namd/2.14/data.namd.arm.gpu.opt.config b/templates/namd/2.14/data.namd.arm.gpu.opt.config new file mode 100644 index 0000000000000000000000000000000000000000..07f9f5135b58eea7668e2fae13c4954e3a157dd2 --- /dev/null +++ b/templates/namd/2.14/data.namd.arm.gpu.opt.config @@ -0,0 +1,76 @@ +[SERVER] +1.1.1.1 + +[DOWNLOAD] +https://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD + +[DEPENDENCY] +yum install -y fftw-devel tcl-devel +module use ./software/modulefiles +module purge +./jarvis -install bisheng/2.4.0 com +module load bisheng/2.4.0 +export CC=clang CXX=clang++ FC=flang +./jarvis -install hmpi/1.1.1 clang +tar xzf $JARVIS_DOWNLOAD/NAMD_2.14_Source.tar.gz +cd NAMD_2.14_Source +tar xf $JARVIS_DOWNLOAD/charm-6.10.2.tar + +[ENV] +module use ./software/modulefiles +module purge +module load bisheng/2.4.0 +module load hmpi/1.1.1 +export CC=clang CXX=clang++ FC=flang + +[APP] +app_name = NAMD +build_dir = $JARVIS_ROOT/NAMD_2.14_Source/ +binary_dir = $JARVIS_ROOT/NAMD_2.14_Source/Linux-ARM64-g++/ +case_dir = ${JARVIS_ROOT}/workloads/namd/stmv + +[BUILD] +set -x +set -e +cat > ./arch/Linux-ARM64.fftw <<\EOF +FFTDIR=/usr +FFTINCL=-I$(FFTDIR)/include +FFTLIB=-L$(FFTDIR)/lib -lfftw3f +FFTFLAGS=-DNAMD_FFTW -DNAMD_FFTW_3 +FFT=$(FFTINCL) $(FFTFLAGS) +EOF + +cat > ./arch/Linux-ARM64.tcl <<\EOF +TCLDIR=/usr +TCLINCL=-I$(TCLDIR)/include +TCLLIB=-L$(TCLDIR)/lib64 -ltcl8.6 -ldl -lpthread +TCLFLAGS=-DNAMD_TCL +TCL=$(TCLINCL) $(TCLFLAGS) +EOF +#compile charm +cd charm-6.10.2 +./build charm++ multicore-arm8 -j32 clang flang --with-production +cd multicore-arm8-flang-clang/tests/charm++/megatest +make pgm +./pgm +p4 +cd ../../../../.. +#compile NAMD +rm -rf Linux-ARM64-g++ +./config Linux-ARM64-g++ --charm-arch multicore-arm8-flang-clang --with-cuda --cxx clang++ --cc clang +cd Linux-ARM64-g++ +make -j + +[CLEAN] +make clean + +[RUN] +run = +binary = namd2 +p126 +setcpuaffinity +maffinity +isomalloc_sync +devices 0,2 stmv_nve_cuda.namd 2>&1 | tee namd.log && python $JARVIS_ROOT/templates/namd/2.14/ns_per_day.py namd.log +nodes = 1 + +[PERF] +kperf = --spe --uncore +perf = +nsys = -y 5s -d 60s +ncu = --target-processes all --launch-skip 16 --launch-count 1 + diff --git a/templates/qe/6.8/data.qe.arm.gpu.opt.config b/templates/qe/6.8/data.qe.arm.gpu.opt.config new file mode 100644 index 0000000000000000000000000000000000000000..2b46f14924646abe47a999f9cc25b64b893d1677 --- /dev/null +++ b/templates/qe/6.8/data.qe.arm.gpu.opt.config @@ -0,0 +1,79 @@ +[SERVER] +1.1.1.1 + +[DOWNLOAD] +qe/6.8 https://github.com/QEF/q-e/archive/refs/tags/qe-6.8.tar.gz + +[DEPENDENCY] +set -x +set -e +./jarvis -install kgcc/9.3.1 com +module purge +module use ./software/modulefiles +module load kgcc/9.3.1 +export CC=`which gcc` +export CXX=`which g++` +export FC=`which gfortran` +./jarvis -install kml/1.5.0/gcc gcc +# use openmpi4 instead of default openmpi3 +cd /opt/nvidia/hpc_sdk/Linux_aarch64/21.9/comm_libs/ +rm -rf mpi +ln -s openmpi4/openmpi-4.0.5 mpi + +[ENV] +module purge +./jarvis -install fftw/3.3.10 gcc +export PATH=/usr/local/cuda-11.4/bin/:$PATH +module use /opt/nvidia/hpc_sdk/modulefiles/ +module load nvhpc/21.9 + +module use ./software/modulefiles +module load kgcc/9.3.1 +source /etc/profile +module load kfft/1.0.0 +# add BLAS\Lapack +export BLAS_LIBS="-I/usr/local/kml/include -L/usr/local/kml/lib/kblas/omp -lkblas" +export LAPACK_LIBS="-L/usr/local/kml/lib -lklapack_full" +export FFT_LIBS="-I${FFTW_PATH}/include -L${KFFT_PATH}/lib -lfftw3 -lfftw3f" +# add MPI +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nvidia/hpc_sdk/Linux_aarch64/21.9/comm_libs/openmpi4/openmpi-4.0.5/lib/ +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/nvidia/hpc_sdk/Linux_aarch64/21.9/compilers/lib/ +export LD_LIBRARY_PATH=${JARVIS_ROOT}/software/libs/gcc9/kml/1.4.0/kfft/:$LD_LIBRARY_PATH +if ! nvidia-cuda-mps-control -d; then + echo "ERROR: Failed to start MPS daemon. Please resolve issue or set GPU_WORKERS to 1" + exit 1 +fi +echo "INFO: MPS server daemon started" +trap "echo quit | nvidia-cuda-mps-control" EXIT + +[APP] +app_name = QE +build_dir = ${JARVIS_ROOT}/q-e-qe-6.8-opt/ +binary_dir = ${JARVIS_ROOT}/q-e-qe-6.8-opt/bin/ +case_dir = ${JARVIS_ROOT}/workloads/QE/qe-large/ + +[BUILD] +# install devicexlib +cd external +rm -rf devxlib/* +tar xzf devicexlib-master.tar.gz -C devxlib --strip-components=1 +cd devxlib +./configure FC=pgf90 CC=pgcc --with-cuda=yes --with-cuda-cc=80 --with-cuda-runtime=11.4 --disable-parallel --enable-cuda-env-check=no +make all +cd ../../ +#add patch here +# patch -fp0 < xx.patch +./configure --with-cuda=yes --with-cuda-runtime=11.4 --with-cuda-cc=80 --enable-openmp --with-scalapack=no +echo DFLAGS += -D__FFTW3 -D__GPU_MPI >> make.inc +echo LD_LIBS += -lcurand -lcufft >> make.inc +echo CUDA_F90FLAGS += -Mipa -Munroll -Mvect -fma -use_fast_math -O4 >> make.inc +echo FFLAGS += -O3 >> make.inc +make pw -j 64 + +[CLEAN] +make clean + +[RUN] +run = mpirun --allow-run-as-root -np 8 -x CUDA_VISIBLE_DEVICES=0,2 -x OMP_NUM_THREADS=1 +binary = pw.x -nk 8 -input scf.in +nodes = 1 \ No newline at end of file