Files
composable_kernel/rocm_ck/CMakeLists.txt
John Shumway 142ee00585 [rocm-libraries] ROCm/rocm-libraries#7090 (commit 316fded)
[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>
2026-05-14 18:51:37 +00:00

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)