Skip to content

feat(ck): convolution LDS Transpose and TransposeC support - #11905

Merged
EnricoDeg merged 12 commits into
developfrom
users/enricodeg/ck/lds-transpose-wmma
Sep 23, 2026
Merged

EnricoDeg merged 12 commits into
developfrom
users/enricodeg/ck/lds-transpose-wmma

Conversation

@EnricoDeg

@EnricoDeg EnricoDeg commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

gfx1250 has LDS transpose instructions, so we can avoid registers permutations for convolution bwd data and bwd weight and directly load the transposed data from LDS into registers. Additionally, TransposeC was not supported by WmmaCShuffleV3 implementation. By using TransposeC we can avoid to have in the epilogue multiple ds_store_b16 instructions and have instead a single ds_store_b128 instruction for each wave tile.

JIRA ID : ROCM-27829

Technical Details

  • Add transpose support in ThreadwiseTensorSliceTransfer_v4 used for loading from LDS into registers
  • Add support in ABTransferThreadTiles to load data from gmem in MN Major layout and store it still in MN Major layout (no in register transpose between loading and storing)
  • Create simple MN Major LDS layout with padding based on K Major layout
  • Create descriptors in the epilogue for TransposeC case
  • Expose new features in convolution bwd data and bwd weight with UseLdsTranspose and TransposeC bool template parameters
  • Add instances for gfx1250

Submission Checklist

@EnricoDeg
EnricoDeg requested review from a team as code owners September 10, 2026 07:18
@EnricoDeg EnricoDeg self-assigned this Sep 10, 2026
@github-actions github-actions Bot added project: composablekernel ck: convolution Used to tag composablekernel PRs that require approval from CK convolution review team. labels Sep 10, 2026
@EnricoDeg EnricoDeg changed the title feat(ck): conv LDS Transpose and TransposeC support (gfx1250) feat(ck): convolution LDS Transpose and TransposeC support Sep 10, 2026
@EnricoDeg EnricoDeg added the organization: streamhpc contributors from streamhpc label Sep 10, 2026
@therock-pr-bot

therock-pr-bot Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ⚠️ Warning Error: Source/code files changed without an accompanying unit test.
Expected: add at least one test file named like test_<name>.py / test_<name>.cpp (or <name>_test.*).
Current: code file(s) changed: projects/composablekernel/experimental/builder/include/ck_tile/builder/reflect/instance_traits_device_grouped_conv_bwd_data_multiple_d_wmma_cshuffle_v3.hpp, projects/composablekernel/experimental/builder/include/ck_tile/builder/reflect/instance_traits_device_grouped_conv_bwd_weight_wmma_cshuffle_v3.hpp, projects/composablekernel/include/ck/tensor_operation/gpu/block/blockwise_gemm_pipeline_wmma_selector.hpp, projects/composablekernel/include/ck/tensor_operation/gpu/block/blockwise_gemm_pipeline_wmmaops_base.hpp, projects/composablekernel/include/ck/tensor_operation/gpu/block/blockwise_gemm_pipeline_wmmaops_v1.hpp (+13 more); no test file found
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

therock-pr-bot Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

@jakpiase jakpiase left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM! Added some considerations/suggestions.

@EnricoDeg
EnricoDeg force-pushed the users/enricodeg/ck/lds-transpose-wmma branch from a2be2d8 to f31f966 Compare September 21, 2026 08:30
@EnricoDeg
EnricoDeg merged commit 5911365 into develop Sep 23, 2026
116 checks passed
@EnricoDeg
EnricoDeg deleted the users/enricodeg/ck/lds-transpose-wmma branch September 23, 2026 10:19
assistant-librarian Bot pushed a commit to ROCm/composable_kernel that referenced this pull request Sep 23, 2026
feat(ck): convolution LDS Transpose and TransposeC support
 (#11905)

## Motivation

gfx1250 has LDS transpose instructions, so we can avoid registers
permutations for convolution bwd data and bwd weight and directly load
the transposed data from LDS into registers. Additionally, TransposeC
was not supported by WmmaCShuffleV3 implementation. By using TransposeC
we can avoid to have in the epilogue multiple `ds_store_b16`
instructions and have instead a single `ds_store_b128` instruction for
each wave tile.

JIRA ID : ROCM-27829

## Technical Details

- Add transpose support in `ThreadwiseTensorSliceTransfer_v4` used for
loading from LDS into registers
- Add support in `ABTransferThreadTiles` to load data from gmem in MN
Major layout and store it still in MN Major layout (no in register
transpose between loading and storing)
- Create simple MN Major LDS layout with padding based on K Major layout
 - Create descriptors in the epilogue for TransposeC case
- Expose new features in convolution bwd data and bwd weight with
`UseLdsTranspose` and `TransposeC` bool template parameters
 - Add instances for gfx1250

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/TheRock/blob/main/GOVERNANCE.md#pull-requests.
@assistant-librarian

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ck: convolution Used to tag composablekernel PRs that require approval from CK convolution review team. organization: streamhpc contributors from streamhpc project: composablekernel

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants