Repository navigation
Document the headers #3773 removed from 7.0.2.1, and restore the one that is a pure rename - #3786
Closed
yassinsolim wants to merge 1 commit into
Closed
yassinsolim wants to merge 1 commit into
yassinsolim wants to merge 1 commit into
Conversation
…ename The CK develop import dropped 13 headers that composablekernel-devel shipped in ROCm 7.0.2.1 compute build 50, including the whole ck::tensor_operation::device StreamK GEMM API. Measured on the published RPM file lists for builds 50 and 52: all 13 present at 50, none at 52, while the package grew from 1,298 to 1,690 files. Nothing on this branch records that, so a consumer compiling against the installed headers finds out at compile time after a patch-level update. Add a 7.0.2.1 changelog section listing every removal with its replacement, and restore device_grouped_conv_bwd_weight_explicit_xdl.hpp as a thin compatibility header. That one is a pure rename to device_grouped_conv_bwd_weight_explicit.hpp with an identical template parameter list, so the old spelling is an alias.
yassinsolim
requested review from
a team,
JiaLuo-CAN,
Snektron,
afagaj,
andriy-ca,
aosewski,
bartekxk,
carlushuang,
cgmillette,
coderfeli,
ddembeckAMD,
illsilin,
poyenc,
qianfengz,
shumway,
tenpercent,
vidyasagar-amd and
vpietila-amd
as code owners
October 20, 2026 18:17
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The alias preserves the template signature, existing installation rules include the header, and no blocking issues remain.
No open issues 🎉
What changed in this PR
Documents the header removals introduced by #3773 in ROCm 7.0.2.1 and restores compatibility for the grouped-convolution header rename.
Changes:
- Lists all 13 removed headers with migration guidance where available.
- Restores the old grouped-convolution header and type name through an alias.
| File | Description |
|---|---|
| include/ck/tensor_operation/gpu/device/impl/device_grouped_conv_bwd_weight_explicit_xdl.hpp | Adds a compatibility alias to the renamed implementation. |
| CHANGELOG.md | Records header removals, replacements, and compatibility support. |
Review effort: Balanced
Member
Author
|
Closing: not needed for the 7.0.2.1 delivery. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the documentation half of #3784.
#3773 imported CK develop onto
release/rocm-rel-7.0.2.1and dropped 13 headers thatcomposablekernel-develshipped in ROCm 7.0.2.1 compute build 50. The StreamK GEMM device API is most of it. Nothing on this branch records that, so a consumer who compiles against the installed headers finds out at compile time after a patch-level update.What is in here
Two things, and deliberately nothing else.
A 7.0.2.1 changelog section listing every removal with the replacement to move to. Measured on the published RPM file lists of
rocm-osdb-rhel-9.x/compute-rocm-rel-7.0.2.1-{50,52}: all 13 are in the build-50composablekernel-develfile list, none is in the build-52 one, and the package grew from 1,298 to 1,690 files over the same step, so this was targeted and not a packaging accident.One restored header.
device_grouped_conv_bwd_weight_explicit_xdl.hppcomes back, as a compatibility header rather than as the old file. That removal is a pure rename todevice_grouped_conv_bwd_weight_explicit.hpp, withDeviceGroupedConvBwdWeight_Explicit_Xdlrenamed toDeviceGroupedConvBwdWeight_Explicitand an identical template parameter list, so the old spelling is an alias template. Nothing is duplicated and the cost is one installed header.Why the other twelve are not restored, measured
Every removed header was restored verbatim from
5b617e0a(build 50) into a copy of theabe93a40tree, in place, so quoted sibling includes resolve exactly as they did before the import. Each was then compiled standalone with the release toolchain: AMD clang 20.0.0roc-7.0.2from thecompute-rocm-rel-7.0rhel-9.x CI image,-x hip --offload-arch=gfx942 -fsyntax-only -O3 -std=c++20. The five replacement headers that survived the import went through the same harness as a control and all five pass, so a failure below is the tree, not the harness.ck/tensor_operation/gpu/device/device_gemm_streamk_v2.hppunknown type name 'StreamKReductionStrategy'ck/tensor_operation/gpu/device/impl/device_gemm_xdl_streamk.hppuse of undeclared identifier 'StreamKReductionStrategy'ck/tensor_operation/gpu/device/impl/device_gemm_xdl_cshuffle_streamk_v3.hppunknown type name 'StreamKReductionStrategy'ck/tensor_operation/gpu/grid/gridwise_gemm_xdlops_streamk.hppno member named 'device' in namespace 'ck::tensor_operation'ck/tensor_operation/gpu/grid/gridwise_gemm_xdl_cshuffle_streamk_v3.hppno member named 'cerr' in namespace 'std'ck/library/tensor_operation_instance/gpu/gemm_universal_streamk.hppunknown type name 'StreamKReductionStrategy'ck/library/reference_tensor_operation/gpu/naive_conv_fwd.hppunknown type name 'index_t'ck/tensor_operation/gpu/device/impl/device_grouped_conv_bwd_weight_explicit_xdl.hppno member named 'EnvIsEnabled' in namespace 'ck'ck/tensor_operation/gpu/device/device_gemm_streamk.hppck/library/tensor_operation_instance/gpu/gemm_streamk.hppck/library/tensor_operation_instance/gpu/grouped_conv_bwd_weight/device_grouped_conv_bwd_weight_wmma_instance.hppck_tile/ops/fmha/pipeline/block_fmha_bwd_pipeline_enum.hppck_tile/ops/reduce/block/block_reduce2d_default_policy.hppEight of thirteen cannot come back at all:
StreamKReductionStrategyand the StreamK block-to-ctile helpers went with the import, andck::EnvIsEnabledis gone, which is also why the old_explicit_xdlheader is replaced by an alias instead of restored as it was.The five that do compile would be worse than leaving them out:
device_gemm_streamk.hppis the abstract interface for device classes that no longer exist.gemm_streamk.hppcompiles because its 18 split-k declarations are still backed. Its one StreamK entry point,add_device_gemm_xdl_streamk_f16_f16_f16_mk_kn_mn_instances, has zero definitions left underlibrary/src, so including it and using StreamK moves the failure from compile time to link time.abe93a40also deletedlibrary/src/tensor_operation_instance/gpu/gemm_streamk/andgemm_universal_streamk/, theexample/01_gemm/gemm_xdl_*streamk*examples and the profiler op, so there is nothing to register.block_reduce2d_default_policy.hppcompiles but builds a three-argumentBlockReduce2dProblemand readsVector_M/Vector_Nfrom the block shape, where the replacement readskOutputIndexandThreadTile_M/ThreadTile_N. Restoring the name would hand callers a policy that silently does not match the new pipeline.The same import adds a CK Tile StreamK GEMM under
include/ck_tile/ops/gemm/kernel/streamk_gemm/, which is where this functionality went. None of the 13 exists ondevelopeither, so the release branch is tracking upstream. The point of this PR is that a ROCm patch release should say so.Checks
-std=c++17and-std=c++20, with astatic_assertthat the alias resolves toDeviceGroupedConvBwdWeight_Explicit, same toolchain and flags as above.clang-format18.1.3, the version pinned in.pre-commit-config.yaml, reports no change on it.script/check_copyright_year.sh,script/check_ascii_only.shandscript/check_no_crlf.shall exit 0 on it. Thepre-commitlocal hooks cannot be run in this repository as configured: theirentrypaths point atprojects/composablekernel/script/, which only exists in the monorepo layout.composablekernel-devel.One thing I did not touch
experimental/builder/test/test_instance_string_bwd_weight_grp_conv_wmma.cppstill includesdevice_grouped_conv_bwd_weight_wmma_instance.hpp, whichabe93a40deleted. It is the only remaining reference to any of the 13 anywhere in the tree. NoCMakeLists.txtnames that file, andCK_EXPERIMENTAL_BUILDERis OFF by default, so it is dead and cannot break a build. I left it alone rather than widen this diff. It should either be deleted or retargeted atdevice_grouped_conv_bwd_weight_v3_wmma_instance.hpp.