Skip to content

Schedule bug with descript_scheduler #26

@yadej

Description

@yadej

With that python file

import xtc.graphs.xtc.op as O
from xtc.backends.mlir import Backend
from xtc.schedules.descript import descript_scheduler

i, j, k, dtype = 200, 224, 240, "float32"
a = O.tensor((i, k), dtype, name="A")
b = O.tensor((k, j), dtype, name="B")

with O.graph(name="matmul") as gb:
    p = O.matmul(a, b, name="C")
graph = gb.graph
print(graph)

backend = Backend(graph)
sch = backend.get_scheduler()
descript_scheduler(
    scheduler=sch, 
    node_name="C", 
    abstract_axis=["i", "j", "k"],
    spec={
        'k': {},
        'j': {},
        'i[0:18]':
            {'i#18': {},
             'k#80': {},
             'k#16': {},
             'i#9': {'unroll': 9},
             'j#32': {'unroll': 32},
             'j#16': {'vectorize': None}},
        'i[18:200]': {
            'i#182': {},
            'k#80': {},
            'k#16': {},
            'i#14': {'unroll': 14},
            'j#32': {'unroll': 32},
            'j#16': {'vectorize': None}
        }
    }
)

I got the error

  File "/home/ruicesista/Documents/xtc/xtc/src/xtc/schedules/descript.py", line 246, in _interpret_spec
    raise ScheduleInterpretError(
        f"Splitting of {axis} unachieved (stops at {cut})."
    )
xtc.schedules.descript.ScheduleInterpretError: Splitting of i unachieved (stops at 200).

The i dimension goes to 200 but it says that the splitting of i is unachieved even thought in this case is complete

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
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