Go to file
Akaash Parthasarathy a135410369
[Fix][LLVM] Keep packed init callbacks local on Mach-O (#20052)
Packed-function initialization callbacks already use internal linkage.
Marking them hidden additionally causes LLVM ORCJIT to reject the
resulting private-external Mach-O symbols as unexpected definitions.
This PR removes the redundant hidden visibility.
2026-07-27 06:05:59 +08:00
.agents [TIRx] Bundle CUDA tile primitive and op dispatch updates (#19896) 2026-06-29 00:11:23 -04:00
.github [CI] Enable parallel GitHub Actions wheel builds (#19983) 2026-07-12 10:40:40 +08:00
3rdparty [CI] Verify packed uint1 tvm-ffi revision (#20041) 2026-07-23 09:43:09 -04:00
apps [CPP_RPC] Replace legacy OS-specific API with std:: libraries (#19840) 2026-06-19 09:55:16 -04:00
ci [CI] Bump CI at the Ubuntu 24.04 images and re-enable USE_Z3 (#19911) 2026-07-14 17:27:00 -04:00
cmake [CI][CMAKE] Install CUDA driver stub for libtvm_runtime_cuda (#19886) 2026-06-25 07:16:57 -04:00
docker [CI] Simplify Jenkins pytest execution (#19947) 2026-07-05 09:59:51 -04:00
docs [IR][Relax][TIRx] Unify Var identity (#20004) 2026-07-15 17:12:40 +08:00
include/tvm [Fix][TIRx] Ignore statement spans in structural identity (#20043) 2026-07-23 20:02:48 -04:00
jvm [CMAKE][REFACTOR] Split libtvm.so into libtvm_runtime.so and libtvm_compiler.so (#19444) 2026-04-26 07:37:01 -04:00
licenses [REFACTOR] Phase out unused queue and rang license entries (#19794) 2026-06-16 11:32:08 -04:00
python [Relax][Frontend][ONNX] Support Shape start and end attributes (#20050) 2026-07-26 12:47:26 -04:00
src [Fix][LLVM] Keep packed init callbacks local on Mach-O (#20052) 2026-07-27 06:05:59 +08:00
tests [Relax][Frontend][ONNX] Support Shape start and end attributes (#20050) 2026-07-26 12:47:26 -04:00
web [Web] Link custom allocator into WASM runtime (#20046) 2026-07-25 21:30:49 +08:00
.asf.yaml [CI] Add GitHub Actions lint workflow (#18809) 2026-02-22 13:31:19 -05:00
.clang-format [LINT] Modernize lint to use pre-commit hooks (#18807) 2026-02-22 11:03:21 -05:00
.gitattributes [ci] Split Jenkinsfile into platform-specific jobs (#13300) 2022-12-06 13:52:31 -08:00
.gitignore [TIRx] Bundle CUDA tile primitive and op dispatch updates (#19896) 2026-06-29 00:11:23 -04:00
.gitmodules [chore] cleanup unsed legacy backtrac code in logging (#18781) 2026-02-15 12:57:38 -05:00
.markdownlint-cli2.yaml [LINT] Modernize lint to use pre-commit hooks (#18807) 2026-02-22 11:03:21 -05:00
.pre-commit-config.yaml [TIRx] Bringup TIRx Infrastructure (#19581) 2026-05-18 16:44:43 -07:00
.yamllint.yaml [LINT] Modernize lint to use pre-commit hooks (#18807) 2026-02-22 11:03:21 -05:00
AGENTS.md [TIRx] Bundle CUDA tile primitive and op dispatch updates (#19896) 2026-06-29 00:11:23 -04:00
CMakeLists.txt [CI] Bump CI at the Ubuntu 24.04 images and re-enable USE_Z3 (#19911) 2026-07-14 17:27:00 -04:00
CONTRIBUTORS.md [Community] update contributors (#17450) 2024-10-08 13:23:04 -04:00
KEYS [COMMUNITY] Add new key for release signing (#16695) 2024-03-10 16:08:30 -04:00
LICENSE [REFACTOR][CUDA] Phase out l2 cache flush preproc test (#19768) 2026-06-14 17:18:43 -04:00
NOTICE [#15043][Docs] Updated the copyright year from 2020 to 2023 (#15071) 2023-06-17 10:13:34 -07:00
README.md [DOCS] Update the merge setting (#18451) 2025-11-14 11:59:18 -05:00
pyproject.toml [CI] Bump CI at the Ubuntu 24.04 images and re-enable USE_Z3 (#19911) 2026-07-14 17:27:00 -04:00

README.md

Open Machine Learning Compiler Framework

Documentation | Contributors | Community | Release Notes

Apache TVM is an open machine learning compilation framework, following the following principles:

  • Python-first development that enables quick customization of machine learning compiler pipelines.
  • Universal deployment to bring models into minimum deployable modules.

License

TVM is licensed under the Apache-2.0 license.

Getting Started

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.

Contribute to TVM

TVM adopts the Apache committer model. We aim to create an open-source project maintained and owned by the community. Check out the Contributor Guide.

History and Acknowledgement

TVM started as a research project for deep learning compilation. The first version of the project benefited a lot from the following projects:

  • Halide: Part of TVM's TIR and arithmetic simplification module originates from Halide. We also learned and adapted some parts of the lowering pipeline from Halide.
  • Loopy: use of integer set analysis and its loop transformation primitives.
  • Theano: the design inspiration of symbolic scan operator for recurrence.

Since then, the project has gone through several rounds of redesigns. The current design is also drastically different from the initial design, following the development trend of the ML compiler community.

The most recent version focuses on a cross-level design with TensorIR as the tensor-level representation and Relax as the graph-level representation and Python-first transformations. The project's current design goal is to make the ML compiler accessible by enabling most transformations to be customizable in Python and bringing a cross-level representation that can jointly optimize computational graphs, tensor programs, and libraries. The project is also a foundation infra for building Python-first vertical compilers for domains, such as LLMs.