mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-06-28 18:56:59 +00:00
[CK] Add rocm_ck directory structure with feature flag (#7090) ## Summary Adds initial rocm_ck directory structure, #7119. - Establishes production `rocm_ck/` directory at `composablekernel/rocm_ck/`, peer to `tile_engine/` and `dispatcher/` - Adds `CK_ENABLE_ROCM_CK` option (default OFF) as a CK-internal feature flag — no superbuild or TheRock changes needed - Creates `rocm_ck` INTERFACE library, `ck_tile_headers` target, GTest integration with builder-style convenience targets (`smoke-rocm-ck`, `check-rocm-ck`) - Adds Jenkins `RUN_ROCM_CK_TESTS` parameter for CI, following the `RUN_BUILDER_TESTS` pattern - README explains the constexpr schema model: host-device separation via constexpr data rather than template parameters, enabling multi-arch distribution through kpack archives ## Test plan - [x] `cmake -DCK_ENABLE_ROCM_CK=ON` configures without errors - [x] `ninja check-rocm-ck` passes (4 host-only index type tests) - [x] Default build (`CK_ENABLE_ROCM_CK=OFF`) is unaffected — no rocm_ck targets present - [x] Jenkins `RUN_ROCM_CK_TESTS=true` enables the flag and runs `check-rocm-ck` 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Max Podkorytov <4273004+tenpercent@users.noreply.github.com>
30 lines
1.0 KiB
CMake
30 lines
1.0 KiB
CMake
# Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# rocm_ck — constexpr schema API over CK Tile device kernels.
|
|
#
|
|
# Build from CK root:
|
|
# cmake -B build -S . -G Ninja -DCK_ENABLE_ROCM_CK=ON
|
|
# ninja -C build smoke-rocm-ck
|
|
|
|
# rocm_ck — header-only INTERFACE library
|
|
add_library(rocm_ck INTERFACE)
|
|
target_include_directories(rocm_ck INTERFACE
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
)
|
|
# rocm_ck requires C++20, but the CK library is still migrating from c++17
|
|
# We should remove this once the library fully migrates to c++20.
|
|
target_compile_features(rocm_ck INTERFACE cxx_std_20)
|
|
target_compile_options(rocm_ck INTERFACE -Wno-c++20-compat)
|
|
|
|
# CK Tile headers — required for device code compilation
|
|
if(NOT TARGET ck_tile_headers)
|
|
add_library(ck_tile_headers INTERFACE)
|
|
target_include_directories(ck_tile_headers INTERFACE
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
|
|
)
|
|
endif()
|
|
|
|
enable_testing()
|
|
add_subdirectory(tests)
|