diff --git a/libkineto/CMakeLists.txt b/libkineto/CMakeLists.txt index 6a0075c9d..7579f4eae 100644 --- a/libkineto/CMakeLists.txt +++ b/libkineto/CMakeLists.txt @@ -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() @@ -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) @@ -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__") @@ -187,7 +215,7 @@ target_include_directories(kineto_base PUBLIC $ $) -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 $) @@ -222,7 +250,7 @@ target_include_directories(kineto PUBLIC $ $) -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}") @@ -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}")