Lunderberg opened a new pull request, #17243:
URL: https://github.com/apache/tvm/pull/17243

   Prior to this commit, the different `R.call_tir*` variations would wrap the 
arguments into an in-line `relax.Tuple`, if it is not already a `relax.Tuple`.  
While this allows a tensor to be passed into these functions as a single 
argument (`R.call_tir(func, arg, ...)` instead of `R.call_tir(func, [arg], 
...)`), the wrapped Relax variable may already refer to a tuple.
   
   This use of a variable to refer to an argument tuple rather than an in-line 
argument tuple is not allowed by Relax.  (See discussion on 
https://github.com/apache/tvm/pull/15916 for details.)  However, by wrapping a 
variable `args: R.Tuple(R.Tensor, R.Tensor, ...)` into a tuple-of-tuples, the 
error occurs after the expression has already been generated, and refers to an 
expression `R.Tuple(R.Tuple(R.Tensor, R.Tensor, ...))` that doesn't appear 
anywhere in the user's input. This can make debugging difficult (see 
https://github.com/apache/tvm/issues/17239 for an example).
   
   This commit updates the argument-handling in `R.call_tir` to only generate 
an in-line `relax.Tuple` if the arguments do not already have 
`relax.TupleStructInfo`.  If the argument was provided as a Relax variable 
bound to a tuple of arguments, it will still produce an error.  However, that 
error will occur much earlier, and will explicitly state that the argument must 
be a `relax.Tuple` instead of a `relax.Var`.


-- 
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