Skip to content

[Epic] Develop CK Builder as an API for CK and CK Tile within MIOpen #4231

@assistant-librarian

Description

@assistant-librarian

[Migrated from original issue] ROCm/composable_kernel#3574

Original issue author: @shumway

Overview

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.

Requirements

  • C++20 compiler support
  • CMake configuration: -D CK_EXPERIMENTAL_BUILDER=ON

Documentation

Success Criteria

MIOpen can instantiate all required convolution kernels using the builder interface, with compile-time validation ensuring configuration correctness.

Future Vision

Extend the builder pattern to all CK and CK-Tile operations beyond convolutions, making it the primary interface for library users.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions