mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-06-28 18:56:59 +00:00
Porting existing FMHA infra from users/shumway/ck/exp-kpack to develop (#7891) Signed-off-by: Chris Tsiaousis <chris.tsiaousis@streamhpc.com> Co-authored-by: Adam Osewski <Adam.Osewski@amd.com>
97 lines
3.8 KiB
CMake
97 lines
3.8 KiB
CMake
# Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# rocm_ck tests
|
|
#
|
|
# Test tiers:
|
|
# ROCM_CK_SMOKE — Fast host-only tests (< 1s total). No GPU required.
|
|
# ROCM_CK_COMPILE_FAIL — Compile-fail tests (~7s). No GPU required.
|
|
# ROCM_CK_KERNEL — GPU kernel tests. Require HIP and a GPU.
|
|
#
|
|
# Usage:
|
|
# ninja smoke-rocm-ck # build + run smoke tests
|
|
# ninja build-smoke-rocm-ck # build only (no run)
|
|
# ninja check-rocm-ck # run all rocm_ck tests
|
|
#
|
|
# ctest -L ROCM_CK_SMOKE --output-on-failure
|
|
|
|
# Google Test (via CK's FetchContent wrapper)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/gtest.cmake)
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Helper function — reusable per-test setup
|
|
# ---------------------------------------------------------------------------
|
|
function(add_rocm_ck_test test_name)
|
|
add_executable(${test_name} ${ARGN})
|
|
target_link_libraries(${test_name} PRIVATE rocm_ck GTest::gtest_main GTest::gmock)
|
|
target_compile_options(${test_name} PRIVATE
|
|
-Wall -Werror
|
|
-Wno-global-constructors # GTest registration macros
|
|
-Wno-undef # GTest internal headers
|
|
-Wno-zero-as-null-pointer-constant # C++20 <=> comparisons to 0
|
|
)
|
|
endfunction()
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Smoke tests (fast, host-only, no GPU)
|
|
# ---------------------------------------------------------------------------
|
|
set(ROCM_CK_UNIT_SOURCES
|
|
unit/unit_arch_properties.cpp
|
|
unit/unit_args.cpp
|
|
unit/unit_datatype.cpp
|
|
unit/unit_fixed_string.cpp
|
|
unit/unit_fmha_bwd_common.cpp
|
|
unit/unit_fmha_bwd_compat.cpp
|
|
unit/unit_fmha_bwd_consteval.cpp
|
|
unit/unit_fmha_bwd_convert_dq.cpp
|
|
unit/unit_fmha_bwd_dqdkdv.cpp
|
|
unit/unit_fmha_bwd_ograd_dot_o.cpp
|
|
unit/unit_fmha_bwd_validate_args.cpp
|
|
unit/unit_gemm_spec.cpp
|
|
unit/unit_index_t.cpp
|
|
unit/unit_layout.cpp
|
|
unit/unit_physical_tensor.cpp
|
|
unit/unit_resolve.cpp
|
|
unit/unit_schema_compatibility.cpp
|
|
unit/unit_signature.cpp
|
|
unit/unit_validate.cpp
|
|
)
|
|
set_source_files_properties(${ROCM_CK_UNIT_SOURCES} PROPERTIES LANGUAGE CXX)
|
|
|
|
add_rocm_ck_test(rocm_ck_unit ${ROCM_CK_UNIT_SOURCES})
|
|
target_include_directories(rocm_ck_unit PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
|
|
|
|
# When built inside CK (hipcc/amdclang++ is the CXX compiler), the global
|
|
# link_libraries(hip::device) injects -x hip via INTERFACE_COMPILE_OPTIONS,
|
|
# forcing amdclang++ to run both host and device compilation passes on every
|
|
# TU. The device pass defines __HIP_DEVICE_COMPILE__, which triggers the
|
|
# #error guards in host-only _api.hpp headers. --offload-host-only suppresses
|
|
# the device pass for this pure-host test target.
|
|
if(TARGET hip::device)
|
|
target_compile_options(rocm_ck_unit PRIVATE --offload-host-only)
|
|
endif()
|
|
add_test(NAME rocm_ck_unit COMMAND rocm_ck_unit)
|
|
set_tests_properties(rocm_ck_unit PROPERTIES LABELS "ROCM_CK_SMOKE")
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Convenience targets
|
|
# ---------------------------------------------------------------------------
|
|
add_custom_target(build-smoke-rocm-ck DEPENDS rocm_ck_unit)
|
|
|
|
add_custom_target(smoke-rocm-ck
|
|
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -L "ROCM_CK_SMOKE"
|
|
DEPENDS build-smoke-rocm-ck
|
|
USES_TERMINAL
|
|
COMMENT "Running rocm_ck smoke tests...")
|
|
|
|
add_custom_target(check-rocm-ck
|
|
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -L "ROCM_CK"
|
|
DEPENDS build-smoke-rocm-ck
|
|
USES_TERMINAL
|
|
COMMENT "Running all rocm_ck tests...")
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Compile-fail tests (expected failures)
|
|
# ---------------------------------------------------------------------------
|
|
add_subdirectory(compile_fail)
|