[QST] how can I use copy swizzle to deal with non-consecutive elements?
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.5k
- Forks
- 2.1k
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 7
Description
Assume that there are 4x4 elements in the shared memory. I can use composition(Swizzle<2, 0, 2>{},...) to swizzle each element successfully,
But now I want to swizzle in unit of 2x2 elements, just like :
// 0 1 2 3
// +----+----+----+----+
// 0 | a | a | b | b |
// +----+----+----+----+
// 1 | a | a | b | b |
// +----+----+----+----+
// 2 | c | c | d | d |
// +----+----+----+----+
// 3 | c | c | d | d |
// +----+----+----+----+
I divide 4x4 into 2x2 pieces(a, b , c, d), each pieces is unit of 2*2 elements, I want to use some methods like composition(Swizzle<1, 0, 1>{},...) to swizzle it, but each pieces is not consecutive in smem, Is there any solution?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the CUTLASS Swizzle and composition APIs referenced in the issue, focusing on how they map shared-memory coordinates and whether they support non-consecutive 2x2 groups. Confirm whether the requested 4x4-to-2x2 mapping can be expressed with the existing API; done means providing a tested usage pattern or documenting the limitation and needed direction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100