-
Notifications
You must be signed in to change notification settings - Fork 6
OpenMP offload compilers
Ye Luo edited this page Aug 10, 2022
·
9 revisions
Testing is done via CTest, ctest --output-on-failure
LD_LIBRARY_PATH may needs to be taken care of if not set in the environment for dependent libraries.
cmake -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran \
-DCMAKE_CXX_FLAGS="-fopenmp -foffload=\"-lm -latomic\"" -DCMAKE_Fortran_FLAGS="-fopenmp -foffload=\"-lm -latomic\"" \
..
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang \
-DCMAKE_CXX_FLAGS="-fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906" \
-DCMAKE_Fortran_FLAGS="-fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906" \
..
cmake -DCMAKE_CXX_COMPILER=nvc++ -DCMAKE_Fortran_COMPILER=nvfortran \
-DCMAKE_CXX_FLAGS="-mp=gpu -gpu=cc70" -DCMAKE_Fortran_FLAGS="-mp=gpu -gpu=cc70"
..
cmake -DCMAKE_CXX_COMPILER=xlc++_r -DCMAKE_Fortran_COMPILER=xlf2003_r \
-DCMAKE_CXX_FLAGS="-std=c++11 -qsmp=omp -qoffload" -DCMAKE_Fortran_FLAGS="-qsmp=omp -qoffload" \
..
# NVIDIA GPU
cmake -DCMAKE_CXX_COMPILER=clang++ -DENABLE_Fortran=OFF \
-DCMAKE_CXX_FLAGS="-fopenmp -fopenmp-targets=nvptx64 -Xopenmp-target=nvptx64 -march=sm_70" \
..
# AMD GPU
cmake -DCMAKE_CXX_COMPILER=clang++ -DENABLE_Fortran=OFF \
-DCMAKE_CXX_FLAGS="-fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906" \
..
module load craype-accel-nvidia60
cmake -DCMAKE_CXX_COMPILER=CC -DCMAKE_Fortran_COMPILER=ftn -DCMAKE_CXX_FLAGS=-fopenmp -DCMAKE_Fortran_FLAGS=-fopenmp ..
cmake -DCMAKE_CXX_COMPILER=icpx -DCMAKE_Fortran_COMPILER=ifx -DCMAKE_CXX_FLAGS="-fiopenmp -fopenmp-targets=spir64" -DCMAKE_Fortran_FLAGS="-fiopenmp -fopenmp-targets=spir64" ..