Skip to content

[CuTeDSL] Tiler with None entry #3350

Description

@tingqli

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) ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions