Lunderberg opened a new pull request, #16589: URL: https://github.com/apache/tvm/pull/16589
When determining whether to evaluate matrix multiplications as `(A*B)*C` or as `A*(B*C)`, dynamic shapes may occur (e.g. a dynamic LoRA rank). This commit tests for these cases, and improves the arithmetic bounds used to prove which order of evaluation is preferred. As part of the implementation, this commit also adds a utility `CollectNonNegativeExpressions`, exposed to the python API as `relax.analysis.collect_non_negative_expresisons`. This utility collects expressions within a `StructInfo` which must be non-negative, based on the location where they appear. For example, the size of a tensor along each dimension must be non-negative. Unlike the existing `defineable_tir_vars_in_struct_info`, this will include the `N-2` expression in `R.Tensor([N-2])`. -- 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]
