From 3bb0b22fa5db2e7c6ac9b72414304f5dd1d87541 Mon Sep 17 00:00:00 2001 From: akolliasAMD <99202231+akolliasAMD@users.noreply.github.com> Date: Fri, 4 Jul 2025 13:27:20 -0600 Subject: [PATCH] fixed compilation targets on cmake (#182) * fixed compilation targets on cmake * moved gpu target generation [ROCm/rocshmem commit: e2e334e630d04a936a560b10c9105260910e6cc9] --- projects/rocshmem/CMakeLists.txt | 77 +++++++++++++++----------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/projects/rocshmem/CMakeLists.txt b/projects/rocshmem/CMakeLists.txt index 5c95a25c2e..94da5ad777 100644 --- a/projects/rocshmem/CMakeLists.txt +++ b/projects/rocshmem/CMakeLists.txt @@ -92,6 +92,43 @@ include(ROCMCheckTargetIds) rocm_setup_version(VERSION ${VERSION_STRING}) +############################################################################# +# SET GPU ARCHITECTURES +############################################################################# +include(cmake/rocm_local_targets.cmake) + +set(DEFAULT_GPUS + gfx90a:xnack-; + gfx90a:xnack+; + gfx942:xnack-; + gfx942:xnack+; + gfx950:xnack-; + gfx950:xnack+) + +if (BUILD_LOCAL_GPU_TARGET_ONLY) + message(STATUS "Building only for local GPU target") + if (COMMAND rocm_local_targets) + rocm_local_targets(DEFAULT_GPUS) + else() + message(WARNING "Unable to determine local GPU targets. Falling back to default GPUs.") + endif() +endif() + +set(DEFAULT_GPU_TARGETS "${DEFAULT_GPUS}" CACHE STRING + "Target default GPUs if GPU_TARGETS is not defined.") + +if (COMMAND rocm_check_target_ids) + message(STATUS "Checking for ROCm support for GPU targets: " "${DEFAULT_GPU_TARGETS}") + rocm_check_target_ids(SUPPORTED_GPUS TARGETS ${DEFAULT_GPU_TARGETS}) +else() + message(WARNING "Unable to check for supported GPU targets.") + set(SUPPORTED_GPUS ${DEFAULT_GPU_TARGETS}) +endif() + +set(GPU_TARGETS "${SUPPORTED_GPUS}" CACHE STRING "GPU architectures to compile for") + +message(STATUS "Compiling for ${GPU_TARGETS}") + ############################################################################### # CREATE ROCSHMEM LIBRARY ############################################################################### @@ -100,46 +137,6 @@ if (NOT BUILD_TESTS_ONLY) add_library(roc::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) add_subdirectory(src) - ############################################################################# - # SET GPU ARCHITECTURES - ############################################################################# - include(cmake/rocm_local_targets.cmake) - - set(DEFAULT_GPUS - gfx90a:xnack-; - gfx90a:xnack+; - gfx942:xnack-; - gfx942:xnack+; - gfx950:xnack-; - gfx950:xnack+) - - if (BUILD_LOCAL_GPU_TARGET_ONLY) - message(STATUS "Building only for local GPU target") - if (COMMAND rocm_local_targets) - rocm_local_targets(DEFAULT_GPUS) - else() - message(WARNING "Unable to determine local GPU targets. Falling back to default GPUs.") - endif() - endif() - - set(GPU_TARGETS "${DEFAULT_GPUS}" CACHE STRING - "Target default GPUs if GPU_TARGETS is not defined.") - - if (COMMAND rocm_check_target_ids) - message(STATUS "Checking for ROCm support for GPU targets: " "${GPU_TARGETS}") - rocm_check_target_ids(SUPPORTED_GPUS TARGETS ${GPU_TARGETS}) - else() - message(WARNING "Unable to check for supported GPU targets.") - set(SUPPORTED_GPUS ${GPU_TARGETS}) - endif() - - set(COMPILING_TARGETS "${SUPPORTED_GPUS}" CACHE STRING "GPU targets to compile for.") - message(STATUS "Compiling for ${COMPILING_TARGETS}") - - foreach (target ${COMPILING_TARGETS}) - list(APPEND offload_flags --offload-arch=${target}) - endforeach() - ############################################################################# # PACKAGE DEPENDENCIES #############################################################################