Skip to content

[CK] Add rocm_ck directory structure with feature flag#7090

Open
shumway wants to merge 5 commits intodevelopfrom
users/shumway/ck/rocm-ck-dirs
Open

[CK] Add rocm_ck directory structure with feature flag#7090
shumway wants to merge 5 commits intodevelopfrom
users/shumway/ck/rocm-ck-dirs

Conversation

@shumway
Copy link
Copy Markdown
Contributor

@shumway shumway commented May 5, 2026

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

  • cmake -DCK_ENABLE_ROCM_CK=ON configures without errors
  • ninja check-rocm-ck passes (4 host-only index type tests)
  • Default build (CK_ENABLE_ROCM_CK=OFF) is unaffected — no rocm_ck targets present
  • Jenkins RUN_ROCM_CK_TESTS=true enables the flag and runs check-rocm-ck

🤖 Generated with Claude Code

@shumway shumway requested a review from a team as a code owner May 5, 2026 22:55
@shumway shumway force-pushed the users/shumway/ck/rocm-ck-dirs branch 2 times, most recently from 698a4b0 to 0230b22 Compare May 5, 2026 23:03
@shumway shumway force-pushed the users/shumway/ck/rocm-ck-dirs branch 2 times, most recently from 2afddd7 to a87e201 Compare May 6, 2026 08:12
@chris-tsiaousis-hpc chris-tsiaousis-hpc self-requested a review May 6, 2026 08:47
@shumway shumway force-pushed the users/shumway/ck/rocm-ck-dirs branch 2 times, most recently from 86b59b2 to f4a98df Compare May 7, 2026 03:46
@shumway shumway linked an issue May 7, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Contributor

@chris-tsiaousis-hpc chris-tsiaousis-hpc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks for starting this (and starting it this way). Added some considerations but you can view them as NITs.

Comment thread projects/composablekernel/rocm_ck/tests/CMakeLists.txt Outdated
Comment thread projects/composablekernel/rocm_ck/tests/CMakeLists.txt Outdated
Comment thread projects/composablekernel/rocm_ck/README.md Outdated
@shumway shumway force-pushed the users/shumway/ck/rocm-ck-dirs branch from f4a98df to 56d5aef Compare May 7, 2026 14:34
Copy link
Copy Markdown
Contributor Author

@shumway shumway left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the carful review. I followed up on each of your comments, they were helpful!

Comment thread projects/composablekernel/rocm_ck/tests/CMakeLists.txt Outdated
Comment thread projects/composablekernel/rocm_ck/tests/CMakeLists.txt Outdated
Comment thread projects/composablekernel/rocm_ck/README.md Outdated
shumway and others added 4 commits May 8, 2026 03:57
…tion

Establish the production rocm_ck directory at composablekernel/rocm_ck/,
peer to tile_engine/ and dispatcher/. rocm_ck is a constexpr schema API
over CK Tile device kernels, enabling host-device separation for
multi-architecture distribution.

- Add CK_ENABLE_ROCM_CK option (default OFF) gating add_subdirectory
- Create INTERFACE library (rocm_ck) and ck_tile_headers target
- Add GTest integration with builder-style convenience targets
  (smoke-rocm-ck, check-rocm-ck)
- Add index_t.hpp with unit test verifying type compatibility with ck_tile
- Enable RUN_ROCM_CK_TESTS by default in Jenkins (ON in CI, OFF in CMake)
- Add README documenting the constexpr schema model and kpack workflow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Set C++20 on rocm_ck INTERFACE library so all consumers inherit it
- Use full relative paths in test list with get_filename_component
- Simplify README directory tree to dir-level descriptions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The global `check` target runs CTest without label filtering, which
discovers rocm_ck tests registered via add_test(). But `check` had no
dependency on the rocm_ck build targets, so the test executables were
never compiled — CTest failed with "Could not find executable."

Add build-smoke-rocm-ck as a dependency of check when CK_ENABLE_ROCM_CK
is enabled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@shumway shumway force-pushed the users/shumway/ck/rocm-ck-dirs branch from 23b0ea7 to f11ed26 Compare May 8, 2026 03:59
Copy link
Copy Markdown
Contributor

@chris-tsiaousis-hpc chris-tsiaousis-hpc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks for addressing my comments!

CK's -Weverything flag enables -Wc++20-compat, which warns about
consteval being incompatible with pre-C++20 — irrelevant since rocm_ck
requires C++20. With -Werror this becomes a hard failure on Jenkins.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@aosewski aosewski enabled auto-merge (squash) May 8, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ROCm CK] Project Structure & Config

4 participants