[CK Tile] Add transposed tile load implementation, and tests for load_and_convert_tile - #5510
Merged
SamiAario-AMD merged 60 commits intoJun 15, 2026
Merged
Conversation
SamiAario-AMD
marked this pull request as draft
March 17, 2026 11:47
SamiAario-AMD
force-pushed
the
users/samaario/ck/test-load-tile-transpose
branch
from
March 17, 2026 12:00
b381791 to
459d1d9
Compare
SamiAario-AMD
force-pushed
the
users/samaario/ck/test-load-tile-transpose
branch
from
March 17, 2026 13:20
459d1d9 to
6694ced
Compare
SamiAario-AMD
marked this pull request as ready for review
March 17, 2026 13:33
SamiAario-AMD
force-pushed
the
users/samaario/ck/test-load-tile-transpose
branch
6 times, most recently
from
March 19, 2026 13:54
236c248 to
713dd57
Compare
…output tensor view in the mixed precision case
SamiAario-AMD
force-pushed
the
users/samaario/ck/test-load-tile-transpose
branch
from
March 20, 2026 06:49
713dd57 to
a6309fa
Compare
1 task
jakpiase
reviewed
Mar 23, 2026
jakpiase
left a comment
Contributor
There was a problem hiding this comment.
I have left one minor request, apart from that it does look great.
cgmillette
previously requested changes
Mar 23, 2026
…erators in load_tile_transpose.hpp
…ith_offset" This reverts commit cc9d0be.
aosewski
approved these changes
Jun 9, 2026
aosewski
left a comment
Contributor
There was a problem hiding this comment.
Re-reviewed the changes since my 2026-04-27 round, focused on whether the blocking findings landed. They did:
- Layering inversion — fixed.
load_tile_transpose.hppno longer pulls in theops/elementwiseheader; the converter is injected as aPassThroughPack_template arg, withPassThroughPackSelectorliving in theops/commonlayer. Core stays op-free. - print_matrix.hpp — fixed. Moved under
test/,#pragma once, wrapped innamespace ck_tile, reallens[0]/lens[1], ASCII only, and out of the publichost.hppaggregate. - LDS WAR hazard — fixed.
block_sync_lds()now sits between the LDS read and the next iteration's write. - gfx950 guard — your rebuttal holds:
amd_transpose_load_to_vgprstays behind#if defined(__gfx950__)in buffer_view.hpp, the convert path is CMake-gated to gfx950, and reverting the static_assert makes sense given the new gfx1250 branch. - Transpose test coverage — on a closer read I was wrong here. The test is an identity round-trip through a transposed LDS view, and the fill is independent-random (not symmetric), so a broken transpose distribution would scramble values and fail the check. It does exercise the layout.
Warnings are largely handled too (vectorized non-transpose path, gfx950 down-cast builtins, integer_divide_ceil tail handling, PassThroughPackSelector generalization, target gating + rationale). What's left is minor/stylistic — dead LoadTranspose arg in the pk branch, inner Problem shadowing, single test shape — fine to leave or fold in later.
LGTM, approving.
Use row-major (N, 1) strides that match HostTensor for global and LDS views. Co-authored-by: Cursor <cursoragent@cursor.com>
SamiAario-AMD
force-pushed
the
users/samaario/ck/test-load-tile-transpose
branch
from
June 10, 2026 14:51
19186dd to
1521356
Compare
…educe code duplication
Always launch kBlockSize threads so the tile distribution matches blockDim on wave32, and compile the gfx11 and gfx12 test targets with CK_TILE_USE_LAUNCH_BOUNDS=0 to avoid HIP launch failures from default launch bounds on large blocks. Co-authored-by: Cursor <cursoragent@cursor.com>
SamiAario-AMD
force-pushed
the
users/samaario/ck/test-load-tile-transpose
branch
from
June 12, 2026 12:45
68d0e5a to
523db71
Compare
assistant-librarian Bot
pushed a commit
to ROCm/composable_kernel
that referenced
this pull request
Jun 15, 2026
[CK Tile] Add transposed tile load implementation, and tests for load_and_convert_tile (#5510) ## Motivation Mixed precision b/fp16 x fp8 requires a transposed tile load implementation that supports mixed precision using these types. Implement this, use it in `load_and_convert_tile`, and add a unit test for `load_and_convert_tile` which covers this functionality. ## Technical Details <!-- Explain the changes along with any relevant GitHub links. --> ## Test Plan <!-- Explain any relevant testing done to verify this PR. --> ## Test Result <!-- Briefly summarize test outcomes. --> ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
samremes
added a commit
that referenced
this pull request
Jun 15, 2026
Merge develop (a2d2d13; +84 commits incl MX GEMM correctness PR #6663 and transposed tile-load PR #5510). Two conflicts in the MX test suite, both "independent fixtures added on each side" -- resolved by keeping both: - test_mx_gemm_config.hpp: ours = 32x32x64 transpose configs (MxGemmConfig32, MXfp4/8_GemmConfig32); develop = MXfp8_GemmConfig16_PadMN. - test_mx_gemm_async.cpp: ours = TestMxGemmTranspose (8 layout cases); develop = preshuffle split-K + fp8/fp4 regression + PadMN fixtures (#6663). The shared Run() now takes k_batch=1 default (develop), compatible with our 3-arg transpose calls. Verified after auto-merge: dispatcher 32x32x64 f8f6f4 spec, kDefaultScale unity, and load_tile_transpose all intact. Co-authored-by: Cursor <cursoragent@cursor.com>
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.
Motivation
Mixed precision b/fp16 x fp8 requires a transposed tile load implementation that supports mixed precision using these types. Implement this, use it in
load_and_convert_tile, and add a unit test forload_and_convert_tilewhich covers this functionality.Technical Details
Test Plan
Test Result
Submission Checklist