From 39687e8d96f4fe32881fd75231d61385bc101210 Mon Sep 17 00:00:00 2001 From: "Galantsev, Dmitrii" Date: Tue, 3 Sep 2024 15:00:29 -0500 Subject: [PATCH] CMAKE - Fix RVS include Change-Id: I65095cc3d04fc2a5daeee5c809f635cb1662822f Signed-off-by: Galantsev, Dmitrii Revert "Disable RVS as the error scares people" This reverts commit f3450f61bf989cad86875c5b6eb565a1575bd933. Change-Id: I5086c25772444aa3bfc4c10abc1ea58d3f3f1f27 Signed-off-by: Galantsev, Dmitrii [ROCm/rdc commit: dd50027748fdbaa89f07262f9f60b2385415475e] --- projects/rdc/CMakeLists.txt | 2 +- .../rdc/cmake_modules/Findrocprofiler.cmake | 3 ++- projects/rdc/cmake_modules/Findrvs.cmake | 17 +++++++++++++++-- .../rdc/rdc_libs/rdc/src/RdcModuleMgrImpl.cc | 3 ++- .../rdc_modules/rdc_rocp/CMakeLists.txt | 2 +- .../rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt | 14 +++++--------- 6 files changed, 26 insertions(+), 15 deletions(-) diff --git a/projects/rdc/CMakeLists.txt b/projects/rdc/CMakeLists.txt index 0f23554dd9..798dcf784f 100755 --- a/projects/rdc/CMakeLists.txt +++ b/projects/rdc/CMakeLists.txt @@ -63,7 +63,7 @@ option(BUILD_PROFILER "Build targets for librdc_rocp.so" OFF) # When cmake -DBUILD_RVS=off, it will not build the librdc_rvs.so # which requires the RocmValidationSuite -option(BUILD_RVS "Build targets for librdc_rvs.so" OFF) +option(BUILD_RVS "Build targets for librdc_rvs.so" ON) # When cmake -DBUILD_TESTS=off, it will not build RDC tests. option(BUILD_TESTS "Build test suite" OFF) diff --git a/projects/rdc/cmake_modules/Findrocprofiler.cmake b/projects/rdc/cmake_modules/Findrocprofiler.cmake index 4b794b440a..ac8d50836f 100644 --- a/projects/rdc/cmake_modules/Findrocprofiler.cmake +++ b/projects/rdc/cmake_modules/Findrocprofiler.cmake @@ -6,11 +6,12 @@ set(NAME rocprofiler) if(NOT DEFINED ROCM_DIR) set(ROCM_DIR "/opt/rocm") endif() +list(APPEND CMAKE_PREFIX_PATH ${ROCM_DIR}) find_library( ${NAME}_LIBRARY NAMES ${NAME} ${NAME}64 - HINTS "${ROCM_DIR}" + REQUIRED REGISTRY_VIEW BOTH PATH_SUFFIXES lib) diff --git a/projects/rdc/cmake_modules/Findrvs.cmake b/projects/rdc/cmake_modules/Findrvs.cmake index 79641def04..7dd8d91973 100644 --- a/projects/rdc/cmake_modules/Findrvs.cmake +++ b/projects/rdc/cmake_modules/Findrvs.cmake @@ -6,11 +6,12 @@ set(NAME rvs) if(NOT DEFINED ROCM_DIR) set(ROCM_DIR "/opt/rocm") endif() +list(APPEND CMAKE_PREFIX_PATH ${ROCM_DIR}) find_library( ${NAME}_LIBRARY - NAMES ${NAME} ${NAME}64 - HINTS "${ROCM_DIR}" + NAMES ${NAME} ${NAME}64 ${NAME}lib # RVS is special and is named librvslib.so + REQUIRED REGISTRY_VIEW BOTH PATH_SUFFIXES lib) @@ -35,4 +36,16 @@ if(${NAME}_FOUND AND NOT TARGET ${NAME}::${NAME}) IMPORTED_LOCATION "${${NAME}_LIBRARY}" INTERFACE_COMPILE_OPTIONS "${PC_${NAME}_CFLAGS_OTHER}" INTERFACE_INCLUDE_DIRECTORIES "${${NAME}_INCLUDE_DIR}") + find_library(rocm-core + NAMES rocm-core + REQUIRED) + find_package(yaml-cpp REQUIRED) + find_package(rocblas REQUIRED) + find_package(hipblaslt REQUIRED) + find_package(hsakmt REQUIRED) + find_package(hip REQUIRED) + find_package(hsa-runtime64 REQUIRED) + find_package(amd_smi REQUIRED) + target_link_libraries(${NAME}::${NAME} INTERFACE + ${rocm-core} yaml-cpp roc::rocblas roc::hipblaslt hsakmt::hsakmt hip::amdhip64 hsa-runtime64::hsa-runtime64 amd_smi) endif() diff --git a/projects/rdc/rdc_libs/rdc/src/RdcModuleMgrImpl.cc b/projects/rdc/rdc_libs/rdc/src/RdcModuleMgrImpl.cc index 9ab988f0cd..9019d2ab39 100644 --- a/projects/rdc/rdc_libs/rdc/src/RdcModuleMgrImpl.cc +++ b/projects/rdc/rdc_libs/rdc/src/RdcModuleMgrImpl.cc @@ -29,6 +29,7 @@ THE SOFTWARE. #include "rdc_lib/RdcException.h" #include "rdc_lib/RdcTelemetry.h" #include "rdc_lib/impl/RdcDiagnosticModule.h" +#include "rdc_lib/impl/RdcRVSLib.h" #include "rdc_lib/impl/RdcRocpLib.h" #include "rdc_lib/impl/RdcRocrLib.h" #include "rdc_lib/impl/RdcSmiLib.h" @@ -87,7 +88,7 @@ RdcModuleMgrImpl::RdcModuleMgrImpl(const RdcMetricFetcherPtr& fetcher) : fetcher } // all other modules get initialized by insert_modules - insert_modules(); + insert_modules(); } RdcTelemetryPtr RdcModuleMgrImpl::get_telemetry_module() { diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt b/projects/rdc/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt index 53366c95fd..507b0b19cc 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt @@ -32,7 +32,7 @@ if(BUILD_PROFILER) CONFIGURE REQUIRED) set(RDC_LIB_MODULES ${RDC_LIB_MODULES} ${RDC_ROCP_LIB} PARENT_SCOPE) add_library(${RDC_ROCP_LIB} SHARED ${RDC_ROCP_LIB_SRC_LIST} ${RDC_ROCP_LIB_INC_LIST}) - target_link_libraries(${RDC_ROCP_LIB} ${RDC_LIB} ${BOOTSTRAP_LIB} hsa-runtime64::hsa-runtime64 ${ROCPROFILER_LIB} pthread dl) + target_link_libraries(${RDC_ROCP_LIB} PRIVATE ${RDC_LIB} ${BOOTSTRAP_LIB} hsa-runtime64::hsa-runtime64 rocprofiler::rocprofiler pthread dl) target_include_directories(${RDC_ROCP_LIB} PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include" diff --git a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt index 52530cf800..3358749175 100644 --- a/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt +++ b/projects/rdc/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt @@ -25,20 +25,16 @@ if(BUILD_RVS) message("RDC_RVS_LIB_INC_LIST=${RDC_RVS_LIB_INC_LIST}") + # below provides rvs::rvs package + include(Findrvs) + # needed to find extra packages list(APPEND CMAKE_PREFIX_PATH ${ROCM_DIR}) - find_package(yaml-cpp REQUIRED) - find_package(hip REQUIRED) - find_package(hsa-runtime64 REQUIRED) - find_package(rvs REQUIRED - HINTS ${ROCM_DIR}/lib/cmake) - - ## additional libraries - set(COMBINED_LIBS rocblas hsakmt hsa-runtime64 hip::amdhip64 yaml-cpp) + find_package(rvs REQUIRED) set(RDC_LIB_MODULES ${RDC_LIB_MODULES} ${RDC_RVS_LIB} PARENT_SCOPE) add_library(${RDC_RVS_LIB} SHARED ${RDC_RVS_LIB_SRC_LIST} ${RDC_RVS_LIB_INC_LIST}) - target_link_libraries(${RDC_RVS_LIB} PRIVATE ${RDC_LIB} ${BOOTSTRAP_LIB} ${rvs} pthread dl ${COMBINED_LIBS}) + target_link_libraries(${RDC_RVS_LIB} PRIVATE ${RDC_LIB} ${BOOTSTRAP_LIB} rvs::rvs pthread dl) target_include_directories(${RDC_RVS_LIB} PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include"