You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Epic] Develop CK Builder as an API for CK and CK Tile within MIOpen #3574
The CK Builder provides a high-level, semantically-clear interface for constructing Composable Kernel convolution operations. This experimental feature focuses on formalizing the interface between MIOpen and CK, leveraging modern C++20 features (POD structs as non-type template parameters, concepts, and designated initializers) to simplify kernel instantiation and improve developer experience.
This project serves as a prototype for a more general builder pattern that will eventually extend to all CK and CK-Tile operations.
Motivation
The current CK interface requires deep knowledge of complex template parameters, making it difficult for library users like MIOpen to instantiate kernels correctly. The builder pattern addresses this by:
Providing compile-time validation through C++20 concepts and other best practices
Offering clear, self-documenting interfaces with designated initializers
Separating "what to compute" (signature) from "how to compute it" (algorithm)
Enabling testable, strongly-typed kernel construction with meaningful compiler error messages
Status
Development Period: October 2025 - March 2026
The initial scope of CK Builder is a narrow focus on MIOpen, to deliver all supported CK kernels (convolutions) to MIOpen using CK / CK Tile as a header-only library.
The builder currently supports forward convolution kernels with various implementations (XDL, WMMA, DL, Large Tensor variants). Support for backward data and backward weight convolutions is in progress.
⏳ MIOpen end-to-end integration (Critical - escalating this week)
⏳ Hardware awareness implementation (using ck_tile/core/config.hpp helpers to distinguish XDL vs WMMA)
Current Work In-Flight (5 Open PRs)
The team is actively working on completing backward convolution support and refining the builder infrastructure for both CK and CKTile kernels. Key efforts include: finalizing backward weight convolution testing (#3618), improving reference implementations for validation (#3604), and extending reflection capabilities for WMMA and backward weight kernels (#3592). Additionally, we're refactoring algorithm concepts to improve type safety and developer experience (#3567), and enhancing testing utilities to support more complex validation scenarios (#3563). These PRs represent the final pieces needed to complete the core builder functionality before focusing on MIOpen integration.
Critical Path Items
🔴 High Priority - This Week:
MIOpen Integration: Escalating end-to-end integration work to reduce risk and enable multi-developer scaling. The CK builder side is maturing, but we need to close the loop with MIOpen to validate the interface and identify integration issues.
🟡 Medium Priority - Next 2 Weeks:
Hardware Awareness: Implement hardware detection using helper functions in include/ck_tile/core/config.hpp to automatically distinguish between XDL and WMMA kernels based on GPU architecture.
CKTile Expansion: Continue extending builder support to cover CKTile kernels alongside traditional CK kernels.
Progress: 78 PRs merged, 5 PRs open | Target Completion: March 2026
✅ Backward Weight Testing Complete (#3618): Added comprehensive ckt::run integration for backward weight algorithms across reference, CK, and CK Tile implementations. Introduced RunResult struct for better error handling and testing integration with SuccessfulRun() matcher. Reorganized testing structure into testing/conv/ directory with separate files for direction-specific implementations.
✅ Reference Implementation Improvements (#3604): Replaced reference convolution implementation with proven CK implementation to improve validation reliability and reduce maintenance burden.
✅ CK Tile Profiler (#3518): Added grouped convolution forward profiler for CK Tile, enabling performance analysis and optimization.
✅ Transfer Concepts (#3535): Implemented convolution forward transfer concepts to improve type safety and compile-time validation.
✅ Documentation Updates (#3573): Updated README files across the builder codebase to reflect recent architectural changes.
✅ CI Fix (#3581): Disabled CK Builder for SLES15 in Jenkins CI to address compatibility issues.
Current Work In-Flight (1 Open PR)
🔄 Validation Integration (#3649): Integrating builder/testing/validation.hpp with CK's gpu_verification.hpp to reduce code duplication. This PR introduces an iterator adapter for multi-dimensional tensor validation, cleans up the verification infrastructure with abstracted kernel launches and block reductions, and improves NaN handling in test validation. Includes updated documentation for ckt::validate().
Critical Path Items
🔴 High Priority - This Week:
MIOpen Integration: This is critical for validating the builder interface in production and identifying any remaining integration issues.
Validation Infrastructure: Complete the integration of validation utilities (#3649) to establish a unified testing framework across CK and CK Builder.
🟡 Medium Priority - Next 2 Weeks:
Hardware Awareness: Implement hardware detection using helper functions in include/ck_tile/core/config.hpp to automatically distinguish between XDL and WMMA kernels based on GPU architecture.
Backward Data Support: Extend builder support to cover backward data convolutions, completing the full convolution operation suite.
Activity
shumway commentedon Jan 21, 2026
CK Builder Status Update for 2026.01.21
Current Status: Task Breakdown
ck_tile/core/config.hpphelpers to distinguish XDL vs WMMA)Current Work In-Flight (5 Open PRs)
The team is actively working on completing backward convolution support and refining the builder infrastructure for both CK and CKTile kernels. Key efforts include: finalizing backward weight convolution testing (#3618), improving reference implementations for validation (#3604), and extending reflection capabilities for WMMA and backward weight kernels (#3592). Additionally, we're refactoring algorithm concepts to improve type safety and developer experience (#3567), and enhancing testing utilities to support more complex validation scenarios (#3563). These PRs represent the final pieces needed to complete the core builder functionality before focusing on MIOpen integration.
Critical Path Items
🔴 High Priority - This Week:
🟡 Medium Priority - Next 2 Weeks:
include/ck_tile/core/config.hppto automatically distinguish between XDL and WMMA kernels based on GPU architecture.Progress: 78 PRs merged, 5 PRs open | Target Completion: March 2026
shumway commentedon Jan 28, 2026
CK Builder Status Update for 2026.01.28
Week's Accomplishments (Jan 20-27)
✅ Backward Weight Testing Complete (#3618): Added comprehensive
ckt::runintegration for backward weight algorithms across reference, CK, and CK Tile implementations. IntroducedRunResultstruct for better error handling and testing integration withSuccessfulRun()matcher. Reorganized testing structure intotesting/conv/directory with separate files for direction-specific implementations.✅ Reference Implementation Improvements (#3604): Replaced reference convolution implementation with proven CK implementation to improve validation reliability and reduce maintenance burden.
✅ CK Tile Profiler (#3518): Added grouped convolution forward profiler for CK Tile, enabling performance analysis and optimization.
✅ Transfer Concepts (#3535): Implemented convolution forward transfer concepts to improve type safety and compile-time validation.
✅ Documentation Updates (#3573): Updated README files across the builder codebase to reflect recent architectural changes.
✅ CI Fix (#3581): Disabled CK Builder for SLES15 in Jenkins CI to address compatibility issues.
Current Work In-Flight (1 Open PR)
builder/testing/validation.hppwith CK'sgpu_verification.hppto reduce code duplication. This PR introduces an iterator adapter for multi-dimensional tensor validation, cleans up the verification infrastructure with abstracted kernel launches and block reductions, and improves NaN handling in test validation. Includes updated documentation forckt::validate().Critical Path Items
🔴 High Priority - This Week:
🟡 Medium Priority - Next 2 Weeks:
include/ck_tile/core/config.hppto automatically distinguish between XDL and WMMA kernels based on GPU architecture.Next Week's Focus
Progress: 84 PRs merged, 1 PR open | Target Completion: March 2026
assistant-librarian commentedon Feb 3, 2026
This issue has been migrated to: ROCm/rocm-libraries#4231
ammallya commentedon Feb 3, 2026
Imported to ROCm/rocm-libraries