[CuTeDSL] Tiler with `None` entry
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.5k
- Forks
- 2.1k
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 7
Description
When doing by-mode zipped_divide by using tiler, we can pass None as tiler entry, but what's the meaning?
Inspired by syntax of None in slicing OP, I expect that it means choose the mode as a single tile, no matter how big its size is. such as:
a = cute.make_layout((64,50),stride = (100,1))
assert cute.zipped_divide(a, (32,None)) == cute.zipped_divide(a, (32,50))
but in cute, we got an error:
((32,2),50):((100,3200),1)
loc("print(\22\\t\22, cute.zipped_divide(a, (32,None)))"("/root/test.py":10:16)): error: failed to perform a valid division of '!cute.layout<"(64,50):(100,1)">' by #cute.tile<"[32:1;_]">
and in pycute we got the same effect as tiler (32,1)
pycute.zipped_divide(a, (32,None)) == pycute.zipped_divide(a, (32,1)) # instead of pycute.zipped_divide(a, (32,50))
if None is the same as 1, why bother support it? makes me wonder if the order of modes in this lineshould be switched? after switch it I got expected result.
So, what I missed? how should I do when I want to skip tiling a mode (I mean choose whole mode as one big tile, not many size-1 tiles) ?
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 with python/pycute/layout.py at the linked line and reproduce the two zipped_divide examples using the shown layout. Compare how None is interpreted in pycute and CuTeDSL, especially the mode-ordering behavior, and determine the documented or intended way to leave a mode as one whole tile. Done means the None semantics and the correct operation are clarified, with behavior aligned if a defect is confirmed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100