cmake_minimum_required(VERSION 3.16) project(perf_dkms_test_suite LANGUAGES CXX) # Find HIP if(NOT DEFINED HIP_PATH) if(NOT DEFINED ENV{HIP_PATH}) if(DEFINED ENV{ROCM_PATH}) set(HIP_PATH "$ENV{ROCM_PATH}" CACHE PATH "Path to HIP installation") else() set(HIP_PATH "/opt/rocm" CACHE PATH "Path to HIP installation") endif() else() set(HIP_PATH $ENV{HIP_PATH} CACHE PATH "Path to HIP installation") endif() endif() list(APPEND CMAKE_PREFIX_PATH ${HIP_PATH}) find_package(hip REQUIRED) # Enable HIP language enable_language(HIP) # Set C++ standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # Add common infrastructure add_subdirectory(common) # Add all test applications add_subdirectory(valu_heavy) add_subdirectory(salu_heavy) add_subdirectory(lds_basic) add_subdirectory(lds_conflicts) add_subdirectory(smem) add_subdirectory(buffer_read) add_subdirectory(buffer_write) add_subdirectory(flat_memory) add_subdirectory(mem_sizes) add_subdirectory(cache_hit) add_subdirectory(cache_miss) add_subdirectory(wave_modes) add_subdirectory(waits_stalls) add_subdirectory(basic_activity) # Print summary message(STATUS "") message(STATUS "=============================================================") message(STATUS "Perf-DKMS Test Suite Configuration Summary") message(STATUS "=============================================================") message(STATUS "HIP Path: ${HIP_PATH}") message(STATUS "CXX Compiler: ${CMAKE_CXX_COMPILER}") message(STATUS "HIP Compiler: ${CMAKE_HIP_COMPILER}") message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}") message(STATUS "") message(STATUS "Test Applications:") message(STATUS " 1. valu_heavy - VALU compute intensive") message(STATUS " 2. salu_heavy - SALU operations") message(STATUS " 3. lds_basic - Basic LDS operations") message(STATUS " 4. lds_conflicts - LDS bank conflicts") message(STATUS " 5. smem - Scalar memory operations") message(STATUS " 6. buffer_read - Buffer read operations") message(STATUS " 7. buffer_write - Buffer write operations") message(STATUS " 8. flat_memory - FLAT addressing") message(STATUS " 9. mem_sizes - Various memory transaction sizes") message(STATUS " 10. cache_hit - L2 cache hits") message(STATUS " 11. cache_miss - L2 cache misses") message(STATUS " 12. wave_modes - Wave32/Wave64 tests") message(STATUS " 13. waits_stalls - Wait states and stalls") message(STATUS " 14. basic_activity - Basic GPU activity") message(STATUS "=============================================================") message(STATUS "")