From bf067cd4421156b47f2f6de6687afbb9f7de687e Mon Sep 17 00:00:00 2001 From: "Baraldi, Giovanni" Date: Mon, 23 Jun 2025 19:13:27 +0200 Subject: [PATCH] Remove default dependency of rocm-llvm-dev (#124) * Remove default dependency of rocm-llvm-dev * Update build.sh * Update build.sh * Update CMakeLists.txt * Fixing core tests --------- Co-authored-by: Giovanni Baraldi Co-authored-by: Elwazir, Ammar Co-authored-by: Ammar ELWazir [ROCm/aqlprofile commit: f3b2d498b83c9fa2a44348fe5b767441e5ca970b] --- projects/aqlprofile/CMakeLists.txt | 10 ++++++--- projects/aqlprofile/build.sh | 19 ++++++++++++----- .../aqlprofile/src/core/tests/CMakeLists.txt | 21 ++++++++++--------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/projects/aqlprofile/CMakeLists.txt b/projects/aqlprofile/CMakeLists.txt index 9f8bc3a678..413a1fe2da 100644 --- a/projects/aqlprofile/CMakeLists.txt +++ b/projects/aqlprofile/CMakeLists.txt @@ -54,20 +54,22 @@ if ( "${CMAKE_BUILD_TYPE}" STREQUAL release ) add_custom_command ( TARGET ${AQLPROFILE_TARGET} POST_BUILD COMMAND ${CMAKE_STRIP} *aqlprofile*.so ) endif () +# Enable/disable test +option(AQLPROFILE_BUILD_TESTS "Build tests for AQLProfile" OFF) + ## Build tests +if(AQLPROFILE_BUILD_TESTS) enable_testing() include(CTest) set ( TEST_BINARY_DIR ${PROJECT_BINARY_DIR}/test ) add_subdirectory ( ${TEST_DIR} ${TEST_BINARY_DIR} ) +endif() ## Add the install directives for the runtime library. set ( DEST_NAME ${AQLPROFILE_NAME} ) install ( TARGETS ${AQLPROFILE_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime ) install ( TARGETS ${AQLPROFILE_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan ) -# Enable/disable test -option(AQLPROFILE_BUILD_TESTS "Build tests for AQLProfile" OFF) - ## Add the packaging directives for the runtime library. if ( ENABLE_ASAN_PACKAGING ) set ( CPACK_PACKAGE_NAME ${AQLPROFILE_NAME}-asan ) @@ -178,8 +180,10 @@ cpack_add_component( DESCRIPTION "ASAN libraries for the AQLProfile" DEPENDS asan) +if(AQLPROFILE_BUILD_TESTS) cpack_add_component( tests DISPLAY_NAME "Tests" DESCRIPTION "Tests for the AQLProfile" DEPENDS runtime) +endif() diff --git a/projects/aqlprofile/build.sh b/projects/aqlprofile/build.sh index 75996f7d35..9ca17e424a 100755 --- a/projects/aqlprofile/build.sh +++ b/projects/aqlprofile/build.sh @@ -26,6 +26,9 @@ while [ 1 ] ; do elif [[ "$1" = "-cb" || "$1" = "--clean-build" ]] ; then TO_CLEAN=yes shift + elif [[ "$1" = "-bt" || "$1" = "--build-tests" ]] ; then + BUILD_TESTS=yes + shift elif [[ "$1" = "-"* || "$1" = "--"* ]] ; then echo -e "Wrong option \"$1\", Please use the following options:\n" usage @@ -39,7 +42,7 @@ umask 022 if [ -z "$AQLPROFILE_ROOT" ]; then AQLPROFILE_ROOT=$SRC_DIR; fi if [ -z "$BUILD_DIR" ] ; then BUILD_DIR=build; fi -if [ -z "$BUILD_TYPE" ] ; then BUILD_TYPE="RelWithDebInfo"; fi +if [ -z "$BUILD_TYPE" ] ; then BUILD_TYPE="release"; fi if [ -z "$PACKAGE_ROOT" ] ; then PACKAGE_ROOT=$ROCM_PATH; fi if [ -z "$PREFIX_PATH" ] ; then PREFIX_PATH=$PACKAGE_ROOT; fi if [ -z "$HIP_VDI" ] ; then HIP_VDI=0; fi @@ -53,9 +56,12 @@ if [ "$TO_CLEAN" = "yes" ] ; then rm -rf $BUILD_DIR; fi mkdir -p $BUILD_DIR pushd $BUILD_DIR +AQLPROFILE_BUILD_TESTS=OFF +if [ "$BUILD_TESTS" = "yes" ] ; then AQLPROFILE_BUILD_TESTS=ON; fi + cmake \ -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE \ - -DCMAKE_BUILD_TYPE=${BUILD_TYPE:-'RelWithDebInfo'} \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE:-'release'} \ -DCMAKE_PREFIX_PATH="$PREFIX_PATH" \ -DCMAKE_INSTALL_PREFIX="$PACKAGE_ROOT" \ -DCMAKE_SHARED_LINKER_FLAGS="$LD_RUNPATH_FLAG" \ @@ -65,7 +71,7 @@ cmake \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE \ -DCPACK_GENERATOR="STGZ" \ -DGPU_TARGETS="$GPU_LIST" \ - -DAQLPROFILE_BUILD_TESTS=OFF \ + -DAQLPROFILE_BUILD_TESTS=$AQLPROFILE_BUILD_TESTS \ -DCPACK_OBJCOPY_EXECUTABLE="${PACKAGE_ROOT}/llvm/bin/llvm-objcopy" \ -DCPACK_READELF_EXECUTABLE="${PACKAGE_ROOT}/llvm/bin/llvm-readelf" \ -DCPACK_STRIP_EXECUTABLE="${PACKAGE_ROOT}/llvm/bin/llvm-strip" \ @@ -76,8 +82,11 @@ popd MAKE_OPTS="-j -C $AQLPROFILE_ROOT/$BUILD_DIR" -cmake --build "$BUILD_DIR" -- $MAKE_OPTS all mytest -cmake --build "$BUILD_DIR" -- $MAKE_OPTS test +cmake --build "$BUILD_DIR" -- $MAKE_OPTS all +if [ "$BUILD_TESTS" = "yes" ] ; then + cmake --build "$BUILD_DIR" -- $MAKE_OPTS mytest + cmake --build "$BUILD_DIR" -- $MAKE_OPTS test +fi cmake --build "$BUILD_DIR" -- $MAKE_OPTS package exit 0 diff --git a/projects/aqlprofile/src/core/tests/CMakeLists.txt b/projects/aqlprofile/src/core/tests/CMakeLists.txt index eaabc56536..a1ae35ecff 100644 --- a/projects/aqlprofile/src/core/tests/CMakeLists.txt +++ b/projects/aqlprofile/src/core/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# write a CMakeLists.txt file for the gfx9_factory_test +# write a CMakeLists.txt file for the gfx9_factory_test # that includes the necessary libraries and sets the properties for the test include(GoogleTest) find_package(GTest REQUIRED) @@ -9,10 +9,11 @@ find_library( hsa-amd-aqlprofile64 REQUIRED NAMES hsa-amd-aqlprofile64 hsa-amd-aqlprofile - HINTS /opt/rocm/lib /opt/rocm - PATHS /opt/rocm/lib /opt/rocm) + HINTS /opt/rocm ${CMAKE_BINARY_DIR} ${CMAKE_INSTALL_PREFIX} + PATHS /opt/rocm + PATH_SUFFIXES lib) -# Add test for memory manager +# Add test for memory manager add_executable(gfx9-memory-manager-test) SET(AQLPROFILE_MEMORYMANAGER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/memorymanager_tests.cpp @@ -23,7 +24,7 @@ target_sources(gfx9-memory-manager-test PRIVATE ${AQLPROFILE_MEMORYMANAGER_SOURC target_include_directories(gfx9-memory-manager-test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIB_DIR}) target_link_libraries( gfx9-memory-manager-test - PRIVATE + PRIVATE hsa-runtime64::hsa-runtime64 GTest::gtest GTest::gtest_main) @@ -39,7 +40,7 @@ set_tests_properties( ${gfx9-memory-manager_TESTS} PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION "${AQLPROFILE_DEFAULT_FAIL_REGEX}") -# Add test for aql profile +# Add test for aql profile add_executable(aqlprofile-test) SET(AQLPROFILE_TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/aql_profile_tests.cpp @@ -49,7 +50,7 @@ target_sources(aqlprofile-test PRIVATE ${AQLPROFILE_TEST_SOURCES}) target_include_directories(aqlprofile-test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIB_DIR}) target_link_libraries( aqlprofile-test - PRIVATE + PRIVATE hsa-runtime64::hsa-runtime64 GTest::gtest GTest::gtest_main @@ -77,7 +78,7 @@ target_sources(command-buffer-test PRIVATE ${AQLPROFILE_COMMAND_BUFFER_SOURCES}) target_include_directories(command-buffer-test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIB_DIR}) target_link_libraries( command-buffer-test - PRIVATE + PRIVATE hsa-runtime64::hsa-runtime64 GTest::gtest GTest::gtest_main @@ -102,7 +103,7 @@ target_sources(counters-test PRIVATE ${AQLPROFILE_COUNTERS_SOURCES}) target_include_directories(counters-test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${LIB_DIR}) target_link_libraries( counters-test - PRIVATE + PRIVATE hsa-runtime64::hsa-runtime64 ${hsa-amd-aqlprofile64} GTest::gtest @@ -116,4 +117,4 @@ gtest_add_tests( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) set_tests_properties( ${counters-test_TESTS} PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION - "${AQLPROFILE_DEFAULT_FAIL_REGEX}") \ No newline at end of file + "${AQLPROFILE_DEFAULT_FAIL_REGEX}")