Also use column-major B matrix in the example 00_bmg_gemm.cpp
#510
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.
Background
For a GEMM,
[K, N]
is thecanonical shape
of thecanonical B matrix
, soRowMajor
tends to mean[K, N]
.In the current GEMM kernel & MMA collective examples such as those based on
00_bmg_gemm.cpp
, the canonicalB
matrix is always shaped[N, K]
in the code (maybe to conform to the CuTe convention thatB
is always shaped[N, K]
?). it's row-major, but discontiguous (physical layout in the memory is[K, N]
, and stride is[N, 1]
, so it's actually transposed).We could also support the column-major case for
B
, in which case it's really shaped[N, K]
.Summary of changes
Also add a case for when B (shaped
[N, K]
) is contiguous (with a stride of[K, 1]
), because such use-cases are common in LLMs. To support it, the code-changes needed are:B
layout iscutlass::layout::ColumnMajor
, and00_bmg_gemm.cpp
now runs both these cases.Thanks!