lhutton1 opened a new pull request, #16862: URL: https://github.com/apache/tvm/pull/16862
This commit adds support for splitting via the compile-time unknown constant `vscale`. Two main changes are introduced; they are described below. The split scheduling primitive has a new parameter disable_predication that allows the user to avoid introducing a block-level predicate when splitting with a factor of `vscale`. This feature is useful when schedule writers know that the loop they're splitting is a factor of the scalable vector length for their target. Otherwise, a predicate must be introduced due to the nature of `vscale`. CanProve has been extended to prove expressions that use multiple instances of `vscale`. Known possible scalar values of the `vscale` intrinsic are iterated over and substituted into the expression. If the expression holds true for each possible value, we can conclude the expression true. Currently only support for an SVE target has been added, but it is possible to extend to other targets as/when needed. If the analyzer becomes more powerful in the future and is able to deal with multiple instances of a symbolic value in an expression, this feature can be removed. Co-authored-by: Elen Kalda <[email protected]> Co-authored-by: Neil Hickey <[email protected]> -- 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]
