spcl / dace

DaCe - Data Centric Parallel Programming
http://dace.is/fast
BSD 3-Clause "New" or "Revised" License
496 stars 129 forks source link

Invalid Cache State of Memlets #1703

Open philip-paul-mueller opened 4 days ago

philip-paul-mueller commented 4 days ago

Memlets have two subset properties subset and other_subset. While subset always refers to the data container the data attribute of the Memlet is pointing to, other_subset is option (it is also not super clear to me what None in this case means) and describes to "other" side of the connection. However, subset does not necessarily describes the subset at the source of the connection nor the subset at the destination. For this the properties src_subset and dst_subset are provided, that takes the direction into account. However, this information is sometimes outdated and to overcome it try_initialize() of the Memlet must be called. In addition there are also get_{src, dst}_subset() which first call try_initialize().

In order to make PR#1678 work, we had to call try_initialize() on all edges in the state, which is a very expensive operation.

pratyai commented 4 days ago