Skip to content
main
Switch branches/tags
Code

Latest commit

* Generate AOT Metadata when targeting C runtime and packed API.

* Also copy metadata.h and metadata_base.h to standalone_crt.

* add support for get_input_index as well as setting up get_input_info as unsupported

* add support for tvm.aot_executor.create in C runtime

* changes in-progress to unit tests

* Include get_c_metadata in emitted function list

* make CRT error codes generic for graph or AoT executor, fix AoT lib link order

* add AoT executor creation and initializaion, as well as support for get_input_index()

* add allocation of inputs, outputs, and pools; add get_input(), but shape encoded in metadata appears to be incorrect;

* add support to test_aot_executor for get_input()

* fix numpy array shape so that get_input() works properly

* implement run(), get_output(), get_num_inputs(), and get_num_outputs(); test_aot_executor() is now passing;

* fix up some issues from rebase with main

* clean up logging and test_graph_executor()

* lint clean-up

* more lint clean-up

* fix i386 build errors

* first set of changes addressing PR feedback

* more PR feedback: device pass-by-value, docstring entries, return variable name

* add mangling of get_c_metadata() name to avoid function name collisions

* only mangle get_c_metadata() when using C runtime

* add static specifier to all kTvmgenMetadata variables to avoid namespace collisions

* use TVM_IS_CPP_RUNTIME preprocessor define to deteremine whether or not to include metadata.h c++ code

* add TVM_IS_CPP_RUNTIME define for cpptest

* add TVM_IS_CPP_RUNTIME to apps/bundle_deploy

* add TVM_IS_CPP_RUNTIME web/Makefile

* update number of expected generated C files for AoT source files

* break out metadata data structures into separate metadata_types.h header to avoid c/c++ issues and remove the need for the TVM_IS_CPP_RUNTIME define

* remove TVM_IS_CPP_RUNTIME from web makefile

* fix metadata.h include-order lint issue

* correct error mask bits

* address PR feedback

* trigger build

* trigger build

* trigger build

* trigger build

* add alternate name for test_graph_executor() too see if it runs in CI

* fix lint

* revert alternate test code

Co-authored-by: Andrew Reusch <areusch@gmail.com>
8d4f4dd

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time

Open Deep Learning Compiler Stack

Documentation | Contributors | Community | Release Notes

Build Status WinMacBuild

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.

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 apache committer model, we aim to create an open source project that is maintained and owned by the community. Check out the Contributor Guide.

Acknowledgement

We learned a lot from the following projects when building TVM.

  • Halide: Part of TVM's TIR and arithmetic simplification module originates from Halide. We also learned and adapted some part of 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.