| commit | d4056ca79571d4265a12beeedd1b1565953df936 | [log] [tgz] |
|---|---|---|
| author | Luke Hutton <luke.hutton@arm.com> | Mon Apr 15 17:18:02 2024 +0100 |
| committer | GitHub <noreply@github.com> | Mon Apr 15 17:18:02 2024 +0100 |
| tree | 9d3be3fe9fd008abcc6b3b2b44da5ee2d24ee66a | |
| parent | f267691fa468fde4045f96d98f076b46f6702fbc [diff] |
[SVE] Support splitting by vscale in `tir::split` and `te::split` (#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 <elen.kalda@arm.com> Co-authored-by: Neil Hickey <neil.hickey@arm.com>
Documentation | Contributors | Community | Release Notes
Apache TVM is a compiler stack for deep learning systems. It is designed to close the gap between the productivity-focused deep learning frameworks, and the performance- and efficiency-focused hardware backends. TVM works with deep learning frameworks to provide end to end compilation to different backends.
TVM is licensed under the Apache-2.0 license.
Check out the TVM Documentation site for installation instructions, tutorials, examples, and more. The Getting Started with TVM tutorial is a great place to start.
TVM adopts apache committer model, we aim to create an open source project that is maintained and owned by the community. Check out the Contributor Guide.
We learned a lot from the following projects when building TVM.