Lunderberg opened a new pull request, #17312: URL: https://github.com/apache/tvm/pull/17312
If a Relax function contains an `R.match_cast` that defines a symbolic shape, and the value provided to the `R.match_cast` has a known static shape, the `relax.transform.CanoncalizeBindings()` pass can in-line the known static shape. However, while these known TIR values were only collected if the expression used in `R.match_cast` was a `R.Tensor`, `R.Shape`, and `R.Prim` (Relax types which may contain symbolic TIR values), they were not collected if the `R.match_cast` expression was a `R.Tuple`. For example, while using `R.match_cast` to convert from `R.Tensor([16])` to `R.Tensor([batch_size])` would identify that `batch_size` must be `16`, using `R.match_cast` to convert from `R.Tuple(R.Tensor([16]))` to `R.Tuple(R.Tensor([batch_size]))` would not. This commit updates the `InferSymbolicVarMap` to collect all symbolic shapes, even if they occur within a `R.Tuple`. -- 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]
