quic-sanirudh commented on PR #16642:
URL: https://github.com/apache/tvm/pull/16642#issuecomment-2032679685

   @Lunderberg After this pass introduced support for computing struct_info for 
PrimFuncs, I'm seeing a case where a primfunc whose output buffer is modified 
with the `sch.transform_layout` primitive and added back to the mod during 
legalize like what happens in the legalization of `R.layout_transform` causes a 
failure later in `call_tir_rewrite` pass.
   
   A small test case that reproduces the issue is something like below:
   ```python
   import tvm
   from tvm.script import relax as R, tir as T, ir as I
   from tvm import tir, relax
   
   @I.ir_module
   class Before:
       @R.function
       def main(x: R.Tensor((16,), dtype="float32"), y: R.Tensor((16,), 
dtype="float32")) -> R.Tensor((16,), dtype="float32"):
           with R.dataflow():
               lv: R.Tensor((4, 4), dtype="float32") = R.layout_transform(x, 
index_map=lambda i: (i // 4, i % 4), pad_value=None)
               gv: R.Tensor((4, 4), dtype="float32") = lv
               R.output(gv)
           return gv
   
   if __name__ == '__main__':
       mod = Before
       mod = relax.transform.LegalizeOps()(mod)
       mod = relax.transform.CallTIRRewrite()(mod)
   ``` 
   
   From what I've been able to understand, the `FuncStructInfo` for the 
PrimFunc is not recomputed when it's output buffer got changed, which happens 
through a schedule primitive in the case of the R.layout_transform 
legalization. I can try to fix it, but wanted to check whether the right fix 
would be to identify cases where a prim_func can change its struct_info through 
any means (scheduling in this case) and call InferStructInfo in all those 
cases, but I wanted to ask if there was any better solutions here.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to