From f7cdb55de5186781292dcd8b5e21559b29decbff Mon Sep 17 00:00:00 2001 From: Brian Ok Date: Tue, 5 Nov 2024 11:40:41 -0500 Subject: [PATCH 1/2] IPO is set to FALSE if NVHPC < 23.11 --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3e07c9bf0..f6fdaf65e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -217,6 +217,8 @@ if (CMAKE_BUILD_TYPE STREQUAL "Release") if (CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC") if (MFC_Unified) message(STATUS "IPO is not available with NVHPC using Unified Memory") + elseif(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS "23.11") + message(STATUS "IPO is not supported in NVHPC Version < 23.11") else() message(STATUS "Performing IPO using -Mextract followed by -Minline") set(NVHPC_USE_TWO_PASS_IPO TRUE) From b64b2a3687da0a2e7779199f3e9a84985aa3675b Mon Sep 17 00:00:00 2001 From: Spencer Bryngelson Date: Tue, 5 Nov 2024 13:17:44 -0500 Subject: [PATCH 2/2] Update CMakeLists.txt --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6fdaf65e8..c0bb7616bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,8 +69,8 @@ elseif ((CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_Fortran_COMPILER_ message(FATAL_ERROR "ERROR: When using NVHPC, v21.7 or newer is required to build MFC.\n${__err_msg}") endif() - if ((CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 23.11) AND (CMAKE_BUILD_TYPE STREQUAL "Debug") AND MFC_OpenACC) - message(FATAL_ERROR "ERROR: When using NVHPC, MFC with Debug and GPU options requires NVHPC v23.11 or newer.\n${__err_msg}") + if ((CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 24.5) AND (CMAKE_BUILD_TYPE STREQUAL "Debug") AND MFC_OpenACC) + message(FATAL_ERROR "ERROR: When using NVHPC, MFC with Debug and GPU options requires NVHPC v24.5 or newer.\n${__err_msg}") endif() elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang") message(FATAL_ERROR "ERROR: MFC does not support the Apple Clang compilers. Please consult the documentation.\n${__err_msg}") @@ -216,9 +216,9 @@ if (CMAKE_BUILD_TYPE STREQUAL "Release") # Enable LTO/IPO if supported if (CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC") if (MFC_Unified) - message(STATUS "IPO is not available with NVHPC using Unified Memory") + message(STATUS "LTO/IPO is not available with NVHPC using Unified Memory") elseif(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS "23.11") - message(STATUS "IPO is not supported in NVHPC Version < 23.11") + message(STATUS "LTO/IPO is not supported in NVHPC Version < 23.11. Use a newer version of NVHPC for best performance.") else() message(STATUS "Performing IPO using -Mextract followed by -Minline") set(NVHPC_USE_TWO_PASS_IPO TRUE)