From 6d1444be3ab6617944d1e54c29e46bc90ea5e01f Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 19 Feb 2025 14:26:43 +0100 Subject: [PATCH 1/2] Add ARM64 options for NVIDIA HPC --- cmake/cc.cmake | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/cmake/cc.cmake b/cmake/cc.cmake index 5e9c5a8c4..bffc7a7d6 100644 --- a/cmake/cc.cmake +++ b/cmake/cc.cmake @@ -84,7 +84,7 @@ endif () if (${CMAKE_C_COMPILER_ID} STREQUAL "NVHPC") if (POWER) set(CCOMMON_OPT "${CCOMMON_OPT} -tp pwr8") - else () + elseif (X86_64) set(CCOMMON_OPT "${CCOMMON_OPT} -tp px") endif () endif () @@ -182,7 +182,9 @@ endif () if (${CORE} STREQUAL A64FX) if (NOT DYNAMIC_ARCH) - if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0) + if (${CMAKE_C_COMPILER_ID} STREQUAL "NVC" AND NOT NO_SVE) + set (CCOMMON_OPT "${CCOMMON_OPT} -tp=a64fx") + elseif (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0) set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=a64fx") else () set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve") @@ -194,6 +196,8 @@ if (${CORE} STREQUAL NEOVERSEN2) if (NOT DYNAMIC_ARCH) if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2") + elseif (${CMAKE_C_COMPILER_ID} STREQUAL "NVC" AND NOT NO_SVE) + set (CCOMMON_OPT "${CCOMMON_OPT} -tp=neoverse-v2") else () if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4) set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2") @@ -208,6 +212,8 @@ if (${CORE} STREQUAL NEOVERSEV1) if (NOT DYNAMIC_ARCH) if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.4-a+sve -mtune=neoverse-v1") + elseif (${CMAKE_C_COMPILER_ID} STREQUAL "NVC" AND NOT NO_SVE) + set (CCOMMON_OPT "${CCOMMON_OPT} -tp=neoverse-v1") else () if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4) set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.4-a+sve -mtune=neoverse-v1") @@ -220,7 +226,9 @@ endif () if (${CORE} STREQUAL NEOVERSEN1) if (NOT DYNAMIC_ARCH) - if (${GCC_VERSION} VERSION_GREATER 9.4 OR ${GCC_VERSION} VERSION_EQUAL 9.4) + if (${CMAKE_C_COMPILER_ID} STREQUAL "NVC" AND NOT NO_SVE) + set (CCOMMON_OPT "${CCOMMON_OPT} -tp=neoverse-n1") + elseif (${GCC_VERSION} VERSION_GREATER 9.4 OR ${GCC_VERSION} VERSION_EQUAL 9.4) set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=neoverse-n1") else () set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve") @@ -232,6 +240,8 @@ if (${CORE} STREQUAL ARMV8SVE) if (NOT DYNAMIC_ARCH) if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8-a+sve") + elseif (${CMAKE_C_COMPILER_ID} STREQUAL "NVC" AND NOT NO_SVE) + set (CCOMMON_OPT "${CCOMMON_OPT} -tp=host") else () set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8-a+sve") endif () @@ -240,6 +250,9 @@ endif () if (${CORE} STREQUAL ARMV9SME) if (NOT DYNAMIC_ARCH) + if (${CMAKE_C_COMPILER_ID} STREQUAL "NVC" AND NOT NO_SVE) + set (CCOMMON_OPT "${CCOMMON_OPT} -tp=host") + else () set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv9-a+sme") endif () endif () From f1fa370579aa2505975f85327d84b3b169a1228a Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 19 Feb 2025 15:22:26 +0100 Subject: [PATCH 2/2] fix missing endif --- cmake/cc.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/cc.cmake b/cmake/cc.cmake index bffc7a7d6..f292f1c57 100644 --- a/cmake/cc.cmake +++ b/cmake/cc.cmake @@ -254,6 +254,7 @@ if (${CORE} STREQUAL ARMV9SME) set (CCOMMON_OPT "${CCOMMON_OPT} -tp=host") else () set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv9-a+sme") + endif () endif () endif ()