Skip to content

Commit

Permalink
Fix CUDA tracing when UR is built standalone
Browse files Browse the repository at this point in the history
Previously, CUDA tracing only worked when the UR sources were built as part of
the CUDA PI plugin. FindCUDACupti.cmake is copied verbatim from intel/llvm.
  • Loading branch information
callumfare committed May 31, 2024
1 parent 7db38b9 commit 8f2d208
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
23 changes: 23 additions & 0 deletions cmake/FindCUDACupti.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright (C) 2024 Intel Corporation
# Part of the Unified-Runtime Project, under the Apache License v2.0 with LLVM Exceptions.
# See LICENSE.TXT
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

macro(find_cuda_cupti_library)
find_library(CUDA_cupti_LIBRARY
NAMES cupti
HINTS ${CUDA_TOOLKIT_ROOT_DIR}
ENV CUDA_PATH
PATH_SUFFIXES nvidia/current lib64 lib/x64 lib
../extras/CUPTI/lib64/
../extras/CUPTI/lib/
)
endmacro()

macro(find_cuda_cupti_include_dir)
find_path(CUDA_CUPTI_INCLUDE_DIR cupti.h PATHS
"${CUDA_TOOLKIT_ROOT_DIR}/extras/CUPTI/include"
"${CUDA_INCLUDE_DIRS}/../extras/CUPTI/include"
"${CUDA_INCLUDE_DIRS}"
NO_DEFAULT_PATH)
endmacro()
30 changes: 30 additions & 0 deletions source/adapters/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,35 @@ else()
message(WARNING "CUDA adapter USM pools are disabled, set UMF_ENABLE_POOL_TRACKING to enable them")
endif()

if (UR_ENABLE_TRACING)
include(FindCUDACupti)
# The following two if' can be removed when FindCUDA -> FindCUDAToolkit.
# CUDA_CUPTI_INCLUDE_DIR -> CUDAToolkit_CUPTI_INCLUDE_DIR
if(NOT CUDA_CUPTI_INCLUDE_DIR)
find_cuda_cupti_include_dir()
endif()
# CUDA_cupti_LIBRARY -> CUDAToolkit_cupti_LIBRARY
if(NOT CUDA_cupti_LIBRARY)
find_cuda_cupti_library()
endif()

if (NOT XPTI_INCLUDES)
get_target_property(XPTI_INCLUDES xpti INCLUDE_DIRECTORIES)
endif()
if (NOT XPTI_PROXY_SRC)
get_target_property(XPTI_SRC_DIR xpti SOURCE_DIR)
set(XPTI_PROXY_SRC "${XPTI_SRC_DIR}/xpti_proxy.cpp")
endif()
target_compile_definitions(${TARGET_NAME} PRIVATE
XPTI_ENABLE_INSTRUMENTATION
)
target_include_directories(${TARGET_NAME} PUBLIC
${XPTI_INCLUDES}
${CUDA_CUPTI_INCLUDE_DIR}
)
target_sources(${TARGET_NAME} PRIVATE ${XPTI_PROXY_SRC})
endif()

if (CUDA_cupti_LIBRARY)
target_compile_definitions("ur_adapter_cuda" PRIVATE CUPTI_LIB_PATH="${CUDA_cupti_LIBRARY}")
endif()
Expand All @@ -85,6 +114,7 @@ target_link_libraries(${TARGET_NAME} PRIVATE
${PROJECT_NAME}::common
Threads::Threads
cudadrv
${CUDA_cupti_LIBRARY}
)

target_include_directories(${TARGET_NAME} PRIVATE
Expand Down

0 comments on commit 8f2d208

Please sign in to comment.