Cleaner offload flag.

This commit is contained in:
Ye Luo 2020-08-21 14:25:59 -05:00
parent 254ccb86a2
commit 9c8837df46
3 changed files with 16 additions and 5 deletions

View File

@ -12,13 +12,21 @@ IF(QMC_OMP)
SET(ENABLE_OPENMP 1)
IF(ENABLE_OFFLOAD AND NOT CMAKE_SYSTEM_NAME STREQUAL "CrayLinuxEnvironment")
SET(OFFLOAD_TARGET "nvptx64-nvidia-cuda" CACHE STRING "Offload target architecture")
IF(DEFINED OFFLOAD_ARCH)
SET(CLANG_OPENMP_OFFLOAD_FLAGS "-fopenmp-targets=${OFFLOAD_TARGET} -Xopenmp-target=${OFFLOAD_TARGET} -march=${OFFLOAD_ARCH}")
ELSE()
SET(CLANG_OPENMP_OFFLOAD_FLAGS "-fopenmp-targets=${OFFLOAD_TARGET}")
ENDIF()
# Intel clang compiler needs a different flag for the host side OpenMP library when offload is used.
IF(OFFLOAD_TARGET MATCHES "spir64")
SET(OMP_FLAG "-fiopenmp")
ELSE(OFFLOAD_TARGET MATCHES "spir64")
SET(OMP_FLAG "-fopenmp")
ENDIF(OFFLOAD_TARGET MATCHES "spir64")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OMP_FLAG}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OMP_FLAG} -fopenmp-targets=${OFFLOAD_TARGET}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OMP_FLAG}")
ELSE()
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
@ -90,6 +98,11 @@ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64" OR CMAKE_SYSTEM_PROCESSOR MATCHES
ENDIF()
ENDIF()
# Add OpenMP offload flags
IF(DEFINED CLANG_OPENMP_OFFLOAD_FLAGS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CLANG_OPENMP_OFFLOAD_FLAGS}")
ENDIF()
# Add static flags if necessary
IF(QMC_BUILD_STATIC)
SET(CMAKE_CXX_LINK_FLAGS " -static")

0
CMake/GNUCompilers.cmake Executable file → Normal file
View File

View File

@ -62,10 +62,8 @@ folder=build_MI60_AOMP_offload_real_MP
mkdir $folder
cd $folder
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
-DQMC_MPI=0 \
-DCMAKE_C_FLAGS="-march=native" \
-DCMAKE_CXX_FLAGS="-march=native -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906" \
-DQMC_MIXED_PRECISION=1 -DENABLE_OFFLOAD=ON -DOFFLOAD_TARGET="amdgcn-amd-amdhsa" \
-DQMC_MPI=0 -DQMC_MIXED_PRECISION=1 \
-DENABLE_OFFLOAD=ON -DOFFLOAD_TARGET=amdgcn-amd-amdhsa -DOFFLOAD_ARCH=gfx906 \
-DENABLE_TIMERS=1 \
.. && make -j32
cd ..