ROCm / ROCm/composable_kernel

[Issue]: static_assert in streamk_gemm_kernel.hpp never fires due to string-to-bool conversion

Open
#3,743 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
549
Forks
312
PR merge metrics
No merged PRs in 30d

Description

Problem Description

Hi experts, I want to confirm with an usage of static_assert in the repo:

In include/ck_tile/ops/gemm/kernel/streamk_gemm/streamk_gemm_kernel.hpp, the else branch for unsupported reduction strategies uses:

static_assert("An implementation does not exist for the chosen reduction strategy.");

This is the single-argument form of static_assert, where the string literal is the condition, not the message. Since a string literal is a non-null pointer, it implicitly converts to true, so the assertion never fires — even when an unsupported ReductionStrategy is instantiated.

I've submitted a fix in #3742 that changes it to the two-argument form:

static_assert(false, "An implementation does not exist for the chosen reduction strategy.");

I wanted to confirm: was the original code intended to be a compile-time error for unsupported strategies? Or was there a different intent here? The surrounding code
structure (an if constexpr / else if chain over ReductionStrategy) suggests it was meant to catch unhandled cases at compile time.

Thank you!

Operating System

CentOS Stream 9

CPU

AMD EPYC 9655 96-Core Processor

GPU

Other

Other

AMD MI350x with ROCm 7.0.2 (please ignore ROCm version below)

ROCm Version

ROCm 6.0.0

ROCm Component

No response

Steps to Reproduce

No response

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

No response

Additional Information

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read include/ck_tile/ops/gemm/kernel/streamk_gemm/streamk_gemm_kernel.hpp and inspect the else branch for unsupported ReductionStrategy values. Compare the intended compile-time failure with the fix described in pull request #3742; done means unsupported strategies trigger the assertion rather than compiling silently.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.