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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions