Add a transformation to decouple orthogonal dimensions into separate BasicSet#755
Add a transformation to decouple orthogonal dimensions into separate BasicSet#755kaushikcfd wants to merge 2 commits intomainfrom
Conversation
e2873d4 to
514bcf7
Compare
40d1906 to
964761e
Compare
964761e to
6d9ab36
Compare
| dom2 = dom2.move_dims(isl.dim_type.param, n_params, dt, pos, 1) | ||
| else: | ||
| dt, pos = dom2.get_var_dict()[iname] | ||
| dom2 = dom2.project_out(dt, pos, 1) |
There was a problem hiding this comment.
Should there be some checks here that the domains are actually independent, i.e. that the effective domains did not get modified? If nothing else, the documentation should set expectations w.r.t. the correctness guarantees here.
There was a problem hiding this comment.
If nothing else, the documentation should set expectations w.r.t. the correctness guarantees here.
Point of the..note:: sets the expectations.
| dom2 = dom2.move_dims(isl.dim_type.param, n_params, dt, pos, 1) | ||
| else: | ||
| dt, pos = dom2.get_var_dict()[iname] | ||
| dom2 = dom2.project_out(dt, pos, 1) |
There was a problem hiding this comment.
This will not always be semantically equivalent if there are statements within just inames and the remainder of the domain is ever empty.
There was a problem hiding this comment.
Point (2) of the note section in the docs talk about the potential unsoundness of this transformation.
|
|
||
| @for_each_kernel | ||
| def decouple_domain(kernel: LoopKernel, | ||
| inames: Collection[str], |
There was a problem hiding this comment.
Are the remaining inames allowed to (parametrically then) depend on inames? (State so in the docs, include a test along those lines.)
There was a problem hiding this comment.
They are simply projected out. We have noted in the docs that this is potentially dependency violating.
No description provided.