ArrayElimination removes used array from SDFG
- Dominant language
- Python
- Stars
- 593
- Forks
- 163
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 60
Description
I am working on the attached SDFG. In the beginning I am able to apply translations. But after some time I start to get errors such as:
- `TypeError: Memlet is not of type Memlet (type: )`
- `AttributeError: 'AccessNode' object has no attribute 'code'`
- `Failed to load transformations (IndexError: list index out of range)`
This happens primary if I want to apply the simplify pass or when I want to apply some transformations others will still work.
I am not sure if the error is located inside the transformation or the vscode extension, but since I located through the extension I put the issue here.
I was only able to identify deterministic steps to reproduce the first error, for this do the following:
- Expand the map that goes over `[__iq__gather=0:12, __i1=0:50]` (inputs `c`, `o` and `v`).
- Fuse the created map that goes over `__iq__gather` with the top map `[__i0=0:12]` (input `e`).
- Run the simplify pass which will now fail.
I have attached the resulting SDFG.
[initial_sdfg.json](https://github.com/spcl/dace-vscode/files/13484542/initial_sdfg.json)
[Transformed_failing_sdfg.json](https://github.com/spcl/dace-vscode/files/13484543/Transformed_failing_sdfg.json)
Contributor guide
Research direction
Load initial_sdfg.json and Transformed_failing_sdfg.json, then follow the listed map expansion and fusion steps before running the simplify pass. Start at the ArrayElimination transformation and inspect how the resulting SDFG handles memlets and access nodes. Done means the reproduced simplify pass no longer raises the reported type, attribute, or transformation-loading errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- compilers, hpc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100