mirror of https://gitlab.com/QEF/q-e.git
Check NVFORTRAN_CUDA_CC and NVFORTRAN_CUDA_VERSION together.
This commit is contained in:
parent
5f9ebda198
commit
9fa77942e2
|
@ -1,4 +1,4 @@
|
|||
include(CheckFortranSourceCompiles)
|
||||
include(CheckFortranCompilerFlag)
|
||||
|
||||
qe_add_global_compile_definitions(__PGI)
|
||||
|
||||
|
@ -16,30 +16,23 @@ if(QE_ENABLE_CUDA)
|
|||
set(QE_CUDA_LINK_OPTIONS ${CUDA_FLAG})
|
||||
|
||||
if(DEFINED NVFORTRAN_CUDA_VERSION)
|
||||
set(CMAKE_REQUIRED_FLAGS "-Mfree ${CUDA_FLAG} -gpu=cuda${NVFORTRAN_CUDA_VERSION}")
|
||||
check_fortran_source_compiles("program abc; end program" NVFORTRAN_CUDA_VERSION_VALID)
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
if(NOT NVFORTRAN_CUDA_VERSION_VALID)
|
||||
unset(NVFORTRAN_CUDA_VERSION_VALID CACHE)
|
||||
message(FATAL_ERROR "nvfortran CUDA version check failed! "
|
||||
"NVFORTRAN_CUDA_VERSION=${NVFORTRAN_CUDA_VERSION} (-gpu=cuda${NVFORTRAN_CUDA_VERSION}) not accepted")
|
||||
endif()
|
||||
list(APPEND QE_CUDA_COMPILE_OPTIONS "-gpu=cuda${NVFORTRAN_CUDA_VERSION}")
|
||||
endif()
|
||||
|
||||
if(DEFINED NVFORTRAN_CUDA_CC)
|
||||
set(CMAKE_REQUIRED_FLAGS "-Mfree ${CUDA_FLAG} -gpu=cc${NVFORTRAN_CUDA_CC}")
|
||||
check_fortran_source_compiles("program abc; end program" NVFORTRAN_CUDA_CC_VALID)
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
if(NOT NVFORTRAN_CUDA_CC_VALID)
|
||||
unset(NVFORTRAN_CUDA_CC_VALID CACHE)
|
||||
message(FATAL_ERROR "nvfortran GPU architecture check failed! "
|
||||
"NVFORTRAN_CUDA_CC=${NVFORTRAN_CUDA_CC} (-gpu=cc${NVFORTRAN_CUDA_CC}) not accepted")
|
||||
endif()
|
||||
list(APPEND QE_CUDA_COMPILE_OPTIONS "-gpu=cc${NVFORTRAN_CUDA_CC}")
|
||||
endif()
|
||||
|
||||
message(" nvfortran CUDA related compile and link options : ${QE_CUDA_COMPILE_OPTIONS}")
|
||||
set(CMAKE_REQUIRED_LINK_OPTIONS ${QE_CUDA_LINK_OPTIONS})
|
||||
check_fortran_compiler_flag("${QE_CUDA_COMPILE_OPTIONS}" NVFORTRAN_CUDA_VALID)
|
||||
unset(CMAKE_REQUIRED_LINK_OPTIONS)
|
||||
if(NOT NVFORTRAN_CUDA_VALID)
|
||||
unset(NVFORTRAN_CUDA_VALID CACHE)
|
||||
message(FATAL_ERROR "nvfortran CUDA related option check failed! "
|
||||
"Please check CMakeError.log for the exact error.")
|
||||
endif()
|
||||
|
||||
# CMake default CMAKE_Fortran_FLAGS_RELEASE as -fast -O3
|
||||
# -O3 makes the CUDA runs fail at stres_us_gpu.f90, thus override
|
||||
set(CMAKE_Fortran_FLAGS_RELEASE "-fast")
|
||||
|
|
Loading…
Reference in New Issue