How to validate fairly involved transformations in loopy? #716
Replies: 5 comments 2 replies
-
FWIW, the transformed kernel has the following Basic Set as its domain:
which is making it difficult to answer this question. |
Beta Was this translation helpful? Give feedback.
-
After spending some time here, the incorrect loop bound is coming because of multiple inames tagged with "l.0" being part of the same basic set. However, I do not think anything in the above transform script is a non-pattern. |
Beta Was this translation helpful? Give feedback.
-
In this particular example, this could decoupled by restructuring the transformation as: 97,98c97,98
< t_unit = lp.split_iname(t_unit, iprftchD, n_e_per_wg, inner_tag="l.1")
< t_unit = lp.split_iname(t_unit, jprftchD, nwork_items_per_e, inner_tag="l.0")
---
> t_unit = lp.split_iname(t_unit, iprftchD, nwork_items_per_e, inner_tag="l.0")
> t_unit = lp.split_iname(t_unit, jprftchD, n_e_per_wg, inner_tag="l.1") This emits the desired loopy kernel and passes the test. |
Beta Was this translation helpful? Give feedback.
-
Can you make out which iname has its bound miscomputed? |
Beta Was this translation helpful? Give feedback.
-
Is this connected to #724? Or is it a separate issue? |
Beta Was this translation helpful? Give feedback.
-
I have the following script:
which on running as
python file.py
raises:This error can be attributed to incorrect loop bounds generated by loopy on Line 76 of the generated code (cf https://gist.github.com/kaushikcfd/44bc70d3431fcdc7b391505ee4026cfd#file-complicated_transfom_result-c-L76). However, I am unsure if this is due to a dependency violation in the transform script or Loopy's bounds generation is wrong. Any suggestions on how to debug this?
Beta Was this translation helpful? Give feedback.
All reactions