Skip to content

SDFG -> Schedule Tree: Dealiasing fails on array access as a function parameter #2367

Description

@FlorianDeconinck

Reproducer, with inline comments showing working patterns and the failing one.

Non-urgent as this can be side-stepped.

import numpy as np
import dace

def fn(field_to_copy):
    field_to_copy[0, 0] = field_to_copy[0, 1]
    field_to_copy[1, 1] = field_to_copy[1, 2]

@dace.program
def my_program(out_field):
    # Works
    out_field[0, 0, :] = out_field[0, 1, :]
    out_field[1, 1, :] = out_field[1, 2, :]
    # Works
    out_field[0, 0, :] = np.where(out_field[0, 0, :] > 0, out_field[0, 1, :], out_field[0, 1, :])
    for k in dace.map[0 : 5]:
        # Works
        tmp = out_field[:, :, k]
        fn(tmp)
        # Fails
        fn(out_field[:, :, k])

if __name__ == "__main__":
    domain = (2, 2, 5)

    i_arr = np.ones(domain)
    o_arr = np.ones(domain)

    sdfg = my_program.to_sdfg(o_arr)

    sdfg.as_schedule_tree()

    print("Done 🚀")

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfrontend

    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