Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 41 additions & 13 deletions libkineto/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -80,28 +80,56 @@ if(USE_CUDA AND TARGET CUDA::nvperf_host)
message(STATUS "Found NVPERF: Using built-in FindCUDAToolkit target")
endif()

if(NOT ROCM_SOURCE_DIR AND NOT ROCTRACER_INCLUDE_DIR)
set(LIBKINETO_NOROCTRACER ON CACHE BOOL "" FORCE)
# Set USE_ROCTRACER to explicitly enable ROCTracer (AMD GPU) support
option(USE_ROCTRACER "Enable ROCTracer support" OFF)

# Backwards compatibility: if LIBKINETO_NOROCTRACER is set, map it to USE_ROCTRACER
if(DEFINED LIBKINETO_NOROCTRACER)
if(LIBKINETO_NOROCTRACER)
set(USE_ROCTRACER OFF CACHE BOOL "Enable ROCTracer support" FORCE)
message(WARNING "LIBKINETO_NOROCTRACER is deprecated. Use USE_ROCTRACER=OFF instead.")
else()
set(USE_ROCTRACER ON CACHE BOOL "Enable ROCTracer support" FORCE)
message(WARNING "LIBKINETO_NOROCTRACER is deprecated. Use USE_ROCTRACER=ON instead.")
endif()
endif()

# Auto-disable ROCTracer if ROCm is not found
if(USE_ROCTRACER AND NOT ROCM_SOURCE_DIR AND NOT ROCTRACER_INCLUDE_DIR)
set(USE_ROCTRACER OFF CACHE BOOL "" FORCE)
message(STATUS "ROCm not found - disabling ROCTracer support")
endif()

# Set USE_XPUPTI to explicitly enable XPUPTI (Intel XPU) support
option(USE_XPUPTI "Enable XPUPTI support" OFF)

# Backwards compatibility: if LIBKINETO_NOXPUPTI is set, map it to USE_XPUPTI
if(DEFINED LIBKINETO_NOXPUPTI)
if(LIBKINETO_NOXPUPTI)
set(USE_XPUPTI OFF CACHE BOOL "Enable XPUPTI support" FORCE)
message(WARNING "LIBKINETO_NOXPUPTI is deprecated. Use USE_XPUPTI=OFF instead.")
else()
set(USE_XPUPTI ON CACHE BOOL "Enable XPUPTI support" FORCE)
message(WARNING "LIBKINETO_NOXPUPTI is deprecated. Use USE_XPUPTI=ON instead.")
endif()
endif()

if(DEFINED LIBKINETO_NOXPUPTI AND NOT LIBKINETO_NOXPUPTI)
if(USE_XPUPTI)
add_subdirectory(src/plugin/xpupti)
else()
set(LIBKINETO_NOXPUPTI ON)
endif()

# Define file lists
if(NOT USE_CUDA AND LIBKINETO_NOROCTRACER AND LIBKINETO_NOXPUPTI)
if(NOT USE_CUDA AND NOT USE_ROCTRACER AND NOT USE_XPUPTI)
get_filelist("get_libkineto_cpu_only_srcs(with_api=False)" LIBKINETO_SRCS)
message(STATUS " CUPTI unavailable or disabled - not building GPU profilers")
else()
if(NOT LIBKINETO_NOROCTRACER)
if(USE_ROCTRACER)
get_filelist("get_libkineto_roctracer_srcs(with_api=False)" LIBKINETO_roc_SRCS)
message(STATUS " Building with roctracer")
elseif(USE_CUDA)
get_filelist("get_libkineto_cupti_srcs(with_api=False)" LIBKINETO_cuda_SRCS)
endif()
if(DEFINED LIBKINETO_NOXPUPTI AND NOT LIBKINETO_NOXPUPTI)
if(USE_XPUPTI)
get_filelist("get_libkineto_xpupti_srcs(with_api=False)" LIBKINETO_xpu_SRCS)
message(STATUS " Building with xpupti")
endif()
Expand All @@ -126,7 +154,7 @@ endif()
if(USE_CUDA)
list(APPEND KINETO_DEFINITIONS "HAS_CUPTI")
endif()
if(DEFINED LIBKINETO_NOXPUPTI AND NOT LIBKINETO_NOXPUPTI)
if(USE_XPUPTI)
list(APPEND KINETO_COMPILE_OPTIONS ${XPUPTI_BUILD_FLAG})
endif()
if(USE_CUDA AND TARGET CUDA::nvperf_host)
Expand All @@ -136,7 +164,7 @@ if(USE_CUDA AND TARGET CUDA::nvperf_host)
endif()
endif()

if(NOT LIBKINETO_NOROCTRACER)
if(USE_ROCTRACER)
list(APPEND KINETO_DEFINITIONS "HAS_ROCTRACER")
target_compile_definitions(kineto_base PRIVATE "__HIP_PLATFORM_HCC__")
target_compile_definitions(kineto_base PRIVATE "__HIP_PLATFORM_AMD__")
Expand Down Expand Up @@ -187,7 +215,7 @@ target_include_directories(kineto_base PUBLIC
$<BUILD_INTERFACE:${ROCTRACER_INCLUDE_DIR}>
$<BUILD_INTERFACE:${ROCM_INCLUDE_DIRS}>)

if(DEFINED LIBKINETO_NOXPUPTI AND NOT LIBKINETO_NOXPUPTI)
if(USE_XPUPTI)
target_include_directories(kineto_base PUBLIC ${XPUPTI_INCLUDE_DIR})
endif()
target_link_libraries(kineto_base PRIVATE $<BUILD_INTERFACE:fmt::fmt-header-only>)
Expand Down Expand Up @@ -222,7 +250,7 @@ target_include_directories(kineto PUBLIC
$<BUILD_INTERFACE:${LIBKINETO_INCLUDE_DIR}>
$<BUILD_INTERFACE:${LIBKINETO_SOURCE_DIR}>)

if(NOT LIBKINETO_NOROCTRACER)
if(USE_ROCTRACER)
find_library(ROCTRACER_LIBRARY NAMES libroctracer64.so HINTS
${ROCM_SOURCE_DIR}/lib)
target_link_libraries(kineto "${ROCTRACER_LIBRARY}")
Expand All @@ -238,7 +266,7 @@ endif()
if(USE_CUDA AND TARGET CUDA::nvperf_host)
target_link_libraries(kineto_base PUBLIC CUDA::nvperf_host)
endif()
if(DEFINED LIBKINETO_NOXPUPTI AND NOT LIBKINETO_NOXPUPTI)
if(USE_XPUPTI)
target_link_libraries(kineto "${XPU_xpupti_LIBRARY}")
endif()
target_compile_definitions(kineto PUBLIC "${KINETO_DEFINITIONS}")
Expand Down
Loading