spcl / spcl/dace

Error in Simplification Pipeline

Open
#1,515 1 comment 0 reactions 1 assignee Claimed by @BenWeber42 View on GitHub
Dominant language
Python
Stars
595
Forks
163
Avg merge
2d 23h
Merged PRs (30d)
60

Description

[Uploading failing_sdfg.json…]()
I have an SDFG that fails with the following error `ValueError: Dimension mismatch in composition: Subset composed must be either completely stripped of all non-data dimensions or be not stripped of latter at all.` and gives me the following stack:

```
compose, subsets.py:685
compose_and_push_back, redundant_array.py:147
apply, redundant_array.py:958
remove_redundant_copies, array_elimination.py:207
apply_pass, array_elimination.py:75
apply_subpass, simplify.py:85
apply_pass, pass_pipeline.py:502
apply_pass, pass_pipeline.py:547
apply_pass, simplify.py:113
simplify, sdfg.py:2345
```

I did not use a frontend but build it through the API using my Jax to SDFG translator.
If I disable all optimizations (simplify and auto_ops) then the SDFG passes all tests.

Some context, the original code had a lot of `numpy.squeeze()` and `numpy.expand_dims()` class, which are translated into Memlets, for example `w[:, 0, :] -> u[:, :]`.
I then switched to mapped Tasklets of the form `__out = __in`, which is quite stupid.
However, this switch was able to fix, or rather avoid, the issue.

Since I had no problems using these operations I think that the problem is that there are several such Memlets after each other.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.