diff --git a/CMakeLists.txt b/CMakeLists.txt index d57e6ba956..9f2c90e46a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,11 +184,15 @@ message(STATUS "${COMPILER_EXE_NAME} HIP version: ${hip_version_string}") ## Check for ROCm version set(EXPLICIT_ROCM_VERSION "" CACHE STRING "Explicit ROCM version to compile to (auto detect if empty)") +if(NOT DEFINED ROCMCORE_PATH) + set(ROCMCORE_PATH "${ROCM_PATH}" CACHE PATH "Path to ROCm core") +endif() + if(EXPLICIT_ROCM_VERSION) set(rocm_version_string "${EXPLICIT_ROCM_VERSION}") -elseif(ROCM_PATH) - message(STATUS "Reading ROCM version from ${ROCM_PATH}/.info/version") - file(READ "${ROCM_PATH}/.info/version" rocm_version_string) +elseif(ROCMCORE_PATH) + message(STATUS "Reading ROCM version from ${ROCMCORE_PATH}/.info/version") + file(READ "${ROCMCORE_PATH}/.info/version" rocm_version_string) else() message(FATAL_ERROR "Could not determine ROCM version (set EXPLICIT_ROCM_VERSION or set ROCM_PATH to a valid installation)") endif() @@ -371,8 +375,10 @@ endif() # Check for ROCTX if(ROCTX) find_library(ROCTX_LIB NAMES roctx64) - if(ROCTX_LIB) + find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h") + if(ROCTX_LIB AND ROCTRACER_INCLUDE_DIR) set(ROCTX_ENABLE ON) + message(STATUS "ROCTX include directory found: ${ROCTRACER_INCLUDE_DIR}") message(STATUS "ROCTX library found: ${ROCTX_LIB}") else() message(WARNING "ROCTX library not found. Skipping ROCTX linking.") @@ -928,9 +934,13 @@ target_include_directories(rccl PRIVATE ${HIPIFY_DIR}/src/include/plugin) target_include_directories(rccl PRIVATE ${HIPIFY_DIR}/gensrc) target_include_directories(rccl PRIVATE ${HSA_INCLUDE_PATH}) target_include_directories(rccl PRIVATE ${ROCM_SMI_INCLUDE_DIR}) +target_include_directories(rccl PRIVATE ${ROCMCORE_PATH}/include) if(DEMANGLE_DIR) target_include_directories(rccl PRIVATE ${DEMANGLE_DIR}) endif() +if(ROCTX_ENABLE) + target_include_directories(rccl PRIVATE ${ROCTRACER_INCLUDE_DIR}) +endif() ## Set RCCL compile definitions if(COLLTRACE) @@ -1257,7 +1267,7 @@ if (HAVE_BFD) endif() endif() if (ROCTX_ENABLE) - target_link_libraries(rccl PRIVATE -lroctx64) + target_link_libraries(rccl PRIVATE ${ROCTX_LIB}) endif() target_link_libraries(rccl PRIVATE -fgpu-rdc) # Required when linking relocatable device code target_link_libraries(rccl PRIVATE Threads::Threads)