-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ArrayElimination removes used array from SDFG #1468
Comments
It looks like this is a problem with the simplify pass, specifically We initially have a write to and read from a transient However, once these maps are fused, there is no corresponding access node anymore (but the memlets of course still access the array Running Simplify, or more specifically, I am transferring this issue to the DaCe repository so the bug can be addressed. |
@BenWeber42 I have observed the same issue in icon4py stencils using GT4Py for SDFG generation: 8 stencils are broken on the DaCe candidate release. |
Not working in icon4py because of this issue: spcl/dace#1468
@philip-paul-mueller Can you please pull #1480 and see if this issue is still present?
|
I still have to work on it, it breaks another test. |
@edopao I have now started to look into this issue a little bit. However, for me this issue only appears on the GPU, if I translate the same code to CPU, then nothing happens. Based on my observation (see below) this means that in GPU the nested SDFG can not be removed, and thus memlet propagation is done. Just for my understanding. The error is basically because we extract one row/column from a matrix and we do this inside a nested SDFG. And the memlet propagation code implicitly assumes that the dimensionality of both must be the same. |
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: <class 'dace.serialize.SerializableObject'>)
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:
[__iq__gather=0:12, __i1=0:50]
(inputsc
,o
andv
).__iq__gather
with the top map[__i0=0:12]
(inpute
).I have attached the resulting SDFG.
initial_sdfg.json
Transformed_failing_sdfg.json
The text was updated successfully, but these errors were encountered: