fb6ec25d41
* Adding Integeration tests for later building option
* Update CMakeLists.txt
---------
Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
[ROCm/aqlprofile commit: e4bb0df9d5]
73 lines
2.6 KiB
CMake
73 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.21 FATAL_ERROR)
|
|
project(Aqlprofile_v2_tests LANGUAGES C CXX HIP)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
|
if(NOT DEFINED AQLPROFILE_TARGET)
|
|
find_library(
|
|
AQLPROFILE_TARGET
|
|
REQUIRED
|
|
NAMES hsa-amd-aqlprofile64 hsa-amd-aqlprofile
|
|
HINTS /opt/rocm ${CMAKE_INSTALL_PREFIX}
|
|
PATHS /opt/rocm
|
|
PATH_SUFFIXES lib)
|
|
enable_testing()
|
|
include(CTest)
|
|
endif()
|
|
|
|
find_package(
|
|
hsa-runtime64
|
|
REQUIRED
|
|
CONFIG
|
|
HINTS /opt/rocm/
|
|
PATHS /opt/rocm/)
|
|
|
|
get_property(
|
|
HSA_RUNTIME_INCLUDE_DIRECTORIES
|
|
TARGET hsa-runtime64::hsa-runtime64
|
|
PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
|
find_file(
|
|
HSA_H hsa.h
|
|
PATHS ${HSA_RUNTIME_INCLUDE_DIRECTORIES}
|
|
PATH_SUFFIXES hsa
|
|
NO_DEFAULT_PATH REQUIRED)
|
|
get_filename_component(HSA_RUNTIME_INC_PATH ${HSA_H} DIRECTORY)
|
|
include_directories(${HSA_RUNTIME_INC_PATH})
|
|
|
|
if(NOT CMAKE_HIP_COMPILER)
|
|
find_program(
|
|
amdclangpp_EXECUTABLE
|
|
NAMES amdclang++
|
|
HINTS ${ROCM_PATH} ENV ROCM_PATH /opt/rocm
|
|
PATHS ${ROCM_PATH} ENV ROCM_PATH /opt/rocm
|
|
PATH_SUFFIXES bin llvm/bin NO_CACHE)
|
|
mark_as_advanced(amdclangpp_EXECUTABLE)
|
|
|
|
if(amdclangpp_EXECUTABLE)
|
|
set(CMAKE_HIP_COMPILER "${amdclangpp_EXECUTABLE}")
|
|
endif()
|
|
endif()
|
|
|
|
set_source_files_properties(main.cpp PROPERTIES LANGUAGE HIP)
|
|
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O1" )
|
|
|
|
add_library(intercept SHARED)
|
|
target_include_directories(intercept PRIVATE ${HSA_RUNTIME_INC_PATH} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src/core/include/ /opt/rocm/include)
|
|
target_sources(intercept PRIVATE intercept.cpp)
|
|
target_link_libraries(intercept PRIVATE hsa-runtime64::hsa-runtime64 ${AQLPROFILE_TARGET})
|
|
target_link_options(intercept PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exportmap -Wl,--no-undefined)
|
|
target_compile_definitions(intercept PUBLIC AMD_INTERNAL_BUILD)
|
|
add_executable(testv2)
|
|
target_sources(testv2 PRIVATE main.cpp workload.cpp counter.cpp agent.cpp)
|
|
target_include_directories(testv2 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src/core/include/ ${HSA_RUNTIME_INC_PATH} /opt/rocm/include)
|
|
target_link_libraries(testv2 PRIVATE hsa-runtime64::hsa-runtime64 ${AQLPROFILE_TARGET})
|
|
target_compile_definitions(testv2 PUBLIC AMD_INTERNAL_BUILD)
|
|
|
|
# Add a PRELOAD environment with libintercept
|
|
set(ENV{LD_PRELOAD} "$ENV{LD_PRELOAD}:${CMAKE_CURRENT_BINARY_DIR}/libintercept.so")
|
|
|
|
add_test(NAME testv2 COMMAND testv2)
|
|
set_tests_properties(testv2 PROPERTIES ENVIRONMENT "${LD_PRELOAD}" TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION "${AQLPROFILE_DEFAULT_FAIL_REGEX}")
|