From dce779c4bc223bf70d24d6d3f6f54571af0fd4a1 Mon Sep 17 00:00:00 2001 From: jsandham Date: Wed, 18 Jun 2025 17:53:36 +0000 Subject: [PATCH 1/2] Alternate way to handle building rocsparse with roctx since we cannot use Findroctx.cmake modules --- clients/benchmarks/CMakeLists.txt | 11 +++++-- clients/tests/CMakeLists.txt | 10 ++++-- library/CMakeLists.txt | 52 +++++++++++++++++++++++++++++-- 3 files changed, 67 insertions(+), 6 deletions(-) diff --git a/clients/benchmarks/CMakeLists.txt b/clients/benchmarks/CMakeLists.txt index 02a2d0ab4..e23bbf958 100644 --- a/clients/benchmarks/CMakeLists.txt +++ b/clients/benchmarks/CMakeLists.txt @@ -232,8 +232,15 @@ endif() if (NOT WIN32) if (BUILD_WITH_ROCTX) - target_link_libraries(rocsparse-bench PRIVATE -lroctx64) - target_compile_definitions( rocsparse-bench PRIVATE ROCSPARSE_CLIENTS_WITH_ROCTX ) + + if(ROCTRACER_INCLUDE_DIR AND ROCTX_LIBRARY) + # Add the include directory + target_include_directories(rocsparse-bench PRIVATE ${ROCTRACER_INCLUDE_DIR}) + + # Link the rocTx lib + target_link_libraries(rocsparse-bench PRIVATE ${ROCTX_LIBRARY}) + target_compile_definitions( rocsparse-bench PRIVATE ROCSPARSE_CLIENTS_WITH_ROCTX ) + endif() endif() endif() diff --git a/clients/tests/CMakeLists.txt b/clients/tests/CMakeLists.txt index d26a10cdf..f5611d52b 100644 --- a/clients/tests/CMakeLists.txt +++ b/clients/tests/CMakeLists.txt @@ -416,8 +416,14 @@ endif() if (NOT WIN32) if (BUILD_WITH_ROCTX) - target_link_libraries(rocsparse-test PRIVATE -lroctx64) - target_compile_definitions( rocsparse-test PRIVATE ROCSPARSE_CLIENTS_WITH_ROCTX ) + if(ROCTRACER_INCLUDE_DIR AND ROCTX_LIBRARY) + # Add the include directory + target_include_directories(rocsparse-test PRIVATE ${ROCTRACER_INCLUDE_DIR}) + + # Link the rocTx lib + target_link_libraries(rocsparse-test PRIVATE ${ROCTX_LIBRARY}) + target_compile_definitions( rocsparse-test PRIVATE ROCSPARSE_CLIENTS_WITH_ROCTX ) + endif() endif() endif() diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index c52d9a143..4ab152d49 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -96,8 +96,56 @@ endif() if (NOT WIN32) if (BUILD_SHARED_LIBS AND BUILD_WITH_ROCTX) - target_link_libraries(rocsparse PRIVATE -lroctx64) - target_compile_definitions( rocsparse PRIVATE ROCSPARSE_BUILT_WITH_ROCTX ) + + message("ROCTX_PATH before : ${ROCTX_PATH}") + + set(ROCTX_PATH "" CACHE STRING "Path to the roctx library (directory containing libroctx64.so)") + + + message("ROCTX_PATH after : ${ROCTX_PATH}") + + + find_path(ROCTRACER_INCLUDE_DIR + NAMES roctracer/roctx.h + HINTS + ${ROCTX_PATH} + ${ROCTX_PATH}/include + /opt/rocm/include + ${ROCTX_PATH}/../include + DOC "Path to the roctracer include directory containing roctx.h") + + find_library(ROCTX_LIBRARY + NAMES roctx64 + HINTS + ${ROCTX_PATH} # User-provided path + ${ROCTX_PATH}/lib + ${ROCTX_PATH}/lib64 + PATHS + /opt/rocm/lib # Default ROCm path + ) + + if(ROCTRACER_INCLUDE_DIR AND ROCTX_LIBRARY) + message(STATUS "Found roctracer include directory: ${ROCTRACER_INCLUDE_DIR}") + message(STATUS "Found roctx library: ${ROCTX_LIBRARY}") + + # Add the include directory + target_include_directories(rocsparse PRIVATE ${ROCTRACER_INCLUDE_DIR}) + + # Link the rocTx lib + target_link_libraries(rocsparse PRIVATE ${ROCTX_LIBRARY}) + target_compile_definitions( rocsparse PRIVATE ROCSPARSE_BUILT_WITH_ROCTX ) + message(STATUS "ROCTX tracing support enabled for target rocsparse.") + else() + message(WARNING "ROCTX tracing will be disabled for target rocsparse.") + + if(NOT ROCTRACER_INCLUDE_DIR) + message(WARNING "Header 'roctracer/roctx.h' not found.") + endif() + + if(NOT ROCTX_LIBRARY) + message(WARNING "Library 'roctx64' not found. ROCTX_PATH: '${ROCTX_PATH}' Default PATH: '/opt/rocm/lib'.") + endif() + endif() endif() endif() From 3a29319aad71e47b12cb736c1d11b97e25e2367c Mon Sep 17 00:00:00 2001 From: jsandham Date: Wed, 18 Jun 2025 18:54:36 +0000 Subject: [PATCH 2/2] Remove print statements --- library/CMakeLists.txt | 6 ------ 1 file changed, 6 deletions(-) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 4ab152d49..a6229fbbe 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -97,14 +97,8 @@ endif() if (NOT WIN32) if (BUILD_SHARED_LIBS AND BUILD_WITH_ROCTX) - message("ROCTX_PATH before : ${ROCTX_PATH}") - set(ROCTX_PATH "" CACHE STRING "Path to the roctx library (directory containing libroctx64.so)") - - message("ROCTX_PATH after : ${ROCTX_PATH}") - - find_path(ROCTRACER_INCLUDE_DIR NAMES roctracer/roctx.h HINTS