You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a nested SDFG accesses a data container passed to it not starting from a 0 offset, the outside memlets are propagated incorrectly, leading to incorrect code being generated.
[Edit: It is not actually memlet propagation, but the Python frontend that is at fault here. Propagation works as intended. See the discussion in #1738]
It is clear that inside the nested SDFG, A is only accessed in the index range A[:, 2:N-1]. However, the memlet being propagated to the outside of the nested SDFG inside the map is on the subset A[i, 0:N-3]. This leads to the index expression A[i, j - 2] being generated in the corresponding C++, consequently producing wrong results.
If a nested SDFG accesses a data container passed to it not starting from a 0 offset, the outside memlets are propagated incorrectly, leading to incorrect code being generated.
[Edit: It is not actually memlet propagation, but the Python frontend that is at fault here. Propagation works as intended. See the discussion in #1738]
For instance, take the following code:
It is clear that inside the nested SDFG, A is only accessed in the index range
A[:, 2:N-1]
. However, the memlet being propagated to the outside of the nested SDFG inside the map is on the subsetA[i, 0:N-3]
. This leads to the index expressionA[i, j - 2]
being generated in the corresponding C++, consequently producing wrong results.A failing test was added in #1738.
The text was updated successfully, but these errors were encountered: