- 04 Feb, 2020 1 commit
-
-
* [LINT] Fix -Wextra * Fix virtual-dtor
Tianqi Chen committed
-
- 03 Feb, 2020 1 commit
-
-
This is motivated by the want to send an array of strings across the python/C++ boundary. Arrays only support ObjectRef types and so can't carry StringImmNodes. This creates a string reference type, StringImm, which can be used with tvm::Arrays. Change-Id: I598a44536c156b97dbfe3e9518e0a1f705da850c
mbarrett97 committed
-
- 28 Jan, 2020 1 commit
-
-
* Implement pass tracing API * Set is_before correctly * Add docs for trace function * Fix lint * Remove PDB * Ensure trace_func is set before calling * Fix conditional
Jared Roesch committed
-
- 22 Jan, 2020 1 commit
-
-
"driver" normally refers to the "main" function. Rationale: the header exposes set of APIs to drive compilation and should be named as driver api to best reflect its usage.
Tianqi Chen committed
-
- 21 Jan, 2020 2 commits
-
-
Bring up namespace te -- Tensor expression language DSL.
Tianqi Chen committed -
* [REFACTOR] Establish printer in the source folder. As we move towards the unified IR, we will eventually want to build a unified printers for both relay and TIR. This PR isolate the printer component into a separate folder in src as a first step. - Refactored the Doc DSL using Object, clean up APIs. - Isolate out the meta data into a header. - move printer into relay_text_printer, add comments about further TODos. * Rename NodePrinter -> ReprPrinter to distinguish it from other printers
Tianqi Chen committed
-
- 20 Jan, 2020 1 commit
-
-
* [REFACTOR][TYPE] Finish move all types to IR. - Move definition of Ref and TensorType to ir - Move type_functor.h to public header. - Rename RefType -> RelayRefType for clarity. * Add atol
Tianqi Chen committed
-
- 19 Jan, 2020 2 commits
-
-
This PR moves the codegen related code into the target folder, as they are target specific functionalities. We also adopt the term "compiler driver" in common compiler infra such as rust, GHC and clang. As a result, build_module is moved into the driver folder.
Tianqi Chen committed -
TIR is the new namespace for low-level IR for tensor-level optimizations and loop transformations. This PR establishes the namespace and files. - lowered_func.h,buffer.h,data_layout.h -> tir/buffer.h,tir/data_layout.h,tir/lowered_func.h - ir.h -> tir/expr.h, tir/stmt.h - ir_functor_ext.h -> tir/expr_functor.h, tir/stmt_functor.h
Tianqi Chen committed
-
- 18 Jan, 2020 2 commits
-
-
* unify vm and interpreter objects * move closure back vm * adt/closure back to vm.adt/vm.closure * closure base
Zhi committed -
- Fixes issues to enable fp16 vectorizer. Now correct packing and unpacking CUDA code will be emitted. Enabled more unit tests. - Do not emit code to read the first lane from an undef variable int _3; _3 = _3 & ~(0x000000ff << 0) | ... and emit the following code instead: _3 = (((0x000000ff & (_1 >> 0))+(0x000000ff & (_2 >> 0))) << 0); Note that nvcc 10.2 is forgiving and emits the same code for both cases. A warning appears in test_codegen_cuda.py. Signed-off-by: Wei Pan <weip@nvidia.com>
wpan11nv committed
-
- 17 Jan, 2020 2 commits
-
-
Move the conversion extensions to the specific class definitions so that we longer need to include packed_func_ext.
Tianqi Chen committed -
- Remove operator bool from base object ref macro - Raitionale: operator bool can be dangerous for sub-classes that also overloads other operators(e.g. ==). - If bool is still needed, use explicit operator bool. - Use absolute include when necessary - Move type related util to data_type - Isolate stackvm code from compiler
Tianqi Chen committed
-
- 16 Jan, 2020 6 commits
-
-
* [REFACTOR] introduce top - Tensor Operation DSL. Historically we put Tensor, Schedule and compute under the root tvm namespace. This is no longer a good idea as the project's scope grows larger than the tensor operation DSL. This PR introduces top -- a namespace for tensor operational DSL concepts such as schedule, tensor, compute. We moved the related files to the new top subfolder. * Move relevant files into include/tvm/top and src/top
Tianqi Chen committed -
Spread the arithmetic.h into several components and move into arith subfolder. The arith namespace will be used for arithmetic expression pattern detections and simplifications.
Tianqi Chen committed -
* [arith] add ShapeVar representing non-neg valued variable in a tensor shape * bounder remover; deal with div in int_set differently * fix bounder_remover * migrate unittest to use shape_var * use tvm.shape_var in integration & relay tests * add test case; fix Var register * fix lint * fix lint again * add default ShapeVar visitor in Relay * fix override * fix ShapeVar visit bug * revert IntervalSet for shape_var * remove bound_remover * remove is_var; use constructor for shapevar/var instead * ShapeVar -> SizeVar; add constructor comments * shape_var -> size_var in doc * tindex -> size
Yizhi Liu committed -
As part of Unified IR infra. Introduce target folder to store all the compilation target related information.
Tianqi Chen committed -
Tianqi Chen committed
-
This PR introduces more clear naming prefix for C API type codes to avoid conflict with other packages. We also removed TVMArray and TVMType to directly use DLTensor and DLDataType.
Tianqi Chen committed
-
- 15 Jan, 2020 3 commits
-
-
* [REFACTOR] Move support related code to include/tvm/support - tvm/logging.h -> tvm/support/logging.h - remove tvm/base.h, move with into tvm/support/with.h * src/common -> src/support
Tianqi Chen committed -
This PR moves attrs.h into the ir folder as it can serve as a common infra for building ir dats structures. We also moved common container(FloatImm) into ir/expr.h
Tianqi Chen committed -
* [REFACTOR][IR] Unify IntImm and UIntImm This PR unifies UIntImm and IntImm to simplify the codebase. Unsigned integer constants will also be stored as IntImm. For uint constant that does not fit into int64(rare case), we introduced an intrinsic tvm_big_uint_imm to construct such intgers by its lower and higher 32bits. * [REFACTOR][IR] Remove UIntImm to use IntImm * rename big->large
Tianqi Chen committed
-
- 14 Jan, 2020 5 commits
-
-
- Use consistent constructor style to construct objects. - Move env_func to ir as it is mainly used to construct IRs. - Make docs consistent.
Tianqi Chen committed -
* [relay] Relay annotation and partitioning for codegen * Add fusion unit test * fix comments * Update include/tvm/relay/attrs/annotation.h Co-Authored-By: 雾雨魔理沙 <lolisa@marisa.moe> * rebase * remove annotation helper * rebase again Co-authored-by: Cody Yu <comaniac0422@gmail.com> Co-authored-by: 雾雨魔理沙 <lolisa@marisa.moe>
Zhi committed -
Move the relay's pass Infra to ir. Keep FunctionPass in relay as it is local to the dialect.
Tianqi Chen committed -
We will use a single ErrorReporter to report errors during program transformations.
Tianqi Chen committed -
This PR brings relay::Module as the unified IRModule structure. IRModule will be used as the basic unit for transformations through out the stack. - Rename relay::Module -> IRModule - Move relay/module.h -> ir/module.h - ModuleNode::FromExpr -> IRModule::FromExpr - FromText -> IRModule::FromText
Tianqi Chen committed
-
- 11 Jan, 2020 6 commits
-
-
* added conv1d operators to topi. * Started to add python testing. * Added python conv1d implementation for testing. * Wrote test but need to add cuda schedule :( * Cuda schedules working for both conv1d layouts. * All topi tests passing. * Formatting topi. * Removed pad_method option as its probably overkill. * Added relay op definition of conv1d. * End2end conv1d working with onnx. * Lint fixes. * Formatting fixes. * Rebase fix. * Switched to array based attributes for consistency across convs. * Improved onnx parsing and testing for convolutions. * lint fix * Tiny tweak. * Bug fix * Rebase fix. * Add group ignore to onnx conv1d frontend. * Unified MakeConv and fixed documentation. * improved autopadding * Addressed feedback and simplified onnx frontend. * Format fix. * Basic X86 NCW schedule working. * Added nwc schedule. * fixed name * Added more tests and basic x86 schedules. * Format fix. * Added non power of two shape tests.
Josh Fromm committed -
This PR migrates relay's Op into the ir folder. Op and its registry provides an useful mechanism to store any attribute meta-data of an operator include function signatures, lowering rules, side effect etc. These features are not only useful for Relay, but also needed in the low-level IR. At the current moment, intrinsic functions in the low-level IR are simply represented by a string. This means we cannot type-check the low-level IR when the type does not meet the constraint, nor can we obtain further information such as side-effect and read write relation of these intrinsics wrt to arguments. Op will be used as the way to handle primitive ops(in DL terminology) (builtin intrinsics or in compiler terminology). We will perform follow-up refactors to make low-level CallNode take Op as the function argument.
Tianqi Chen committed -
Under the unified IR. We will allow a single IRModule to store different function variants, such as relay::Function, ExternFunc, and low-level function. This PR changes relay::Function -> BaseFunc in the module file to support multiple function variants.
Tianqi Chen committed -
* [TOPI][RELAY][OP] add op crop_and_resize * fix pylint * incorporate comments * fix ci
Yong Wu committed -
This PR moves a few base types from relay and low-level Expr into the ir sub-folder. These classes will serve as a common type system across the stack. Rationale: - PrimExpr for low-level expressions - RelayExpr for advanced features, including Function definition. - Introduce BaseFunc to host all functions, including future PrimFunc(low-level expr functions, subject to discussion). This is a minimum change we can do to unify the classes into a common hierarchy. The main data structure that are variant specific will still be kept in the sub-namespaces. We only include classes that is needed to allow a common Module class. - BaseFunc - GlobalVar - Type definition part of ADT We will only need the BaseFunc and their checked_type to decide the calling convention across the function variants.
Tianqi Chen committed -
* replace TensorObj and TensorValue with NDArray * NodeBase to Object in Python * rebase
Zhi committed
-
- 10 Jan, 2020 1 commit
-
-
Zhao Wu committed
-
- 09 Jan, 2020 4 commits
-
-
* [REFACTOR][IR] tvm::Expr -> PrimExpr(Primitive Expr) As part of unified IR, we will need to unify relay::Expr and the current tvm::Expr under the same base type. From the techinical point of view. tvm::Expr is a "primitive" expression that only contains POD types and handles and does not do life-cycle management. This PR renames Expr->PrimExpr to clarify that. We will send a subsequent PR to introduce the base expr class. * Remove legacy VarExpr and ExprHash/Equal
Tianqi Chen committed -
* [REFACTOR] relay::Module Def -> TypeDef The term Def was not very clear about what is the object of interest(could be function def or type def). Changes the term to TypeDef to be more explicit. * Update include/tvm/relay/module.h Co-Authored-By: Wei Chen <ipondering.weic@gmail.com> Co-authored-by: Wei Chen <ipondering.weic@gmail.com>
Tianqi Chen committed -
* Added 1D pooling to Topi * Added 1D pooling relay op and tests. * Added onnx parsing and tests for maxpool1d and averagepool1d * formatting * moved partial import. * Fixed typo.
Josh Fromm committed -
* [RUNTIME] Fix windows build after the latest dso module change. Switch to shared_ptr to get around a problem in latest MSVC. * [CI] Add github action for win mac build.
Tianqi Chen committed
-
- 08 Jan, 2020 1 commit
-
-
* [REFACTOR][IR] Variable -> VarNode * [REFACTOR][IR] Add/Sub/Mul/Div -> AddNode/SubNode etc. * [REFACTOR][IR] Min/Max/FloorDiv/FloorMod -> MinNode/MaxNode etc. * [REFACTOR][IR] EQ/NE/LT/LE/GT/GE/Select -> EQNode/NENode etc. * [REFACTOR][IR] Add Node suffix to Select/Call/Load/Ramp/Shuffle/Let * [REFACTOR][IR] Add node suffix to IntImm/UIntImm/FloatImm/StringImm * [REFACTOR][IR] Add Node suffix to Any, AttrStmt, AssertStmt * [REFACTOR][IR] Add Node suffix to Store/Provide/Allocate/Free * [REFACTOR][IR] Add Node suffix to ProducerConsumer * Fix lint * style updates, test fixes
Tianqi Chen committed
-
- 07 Jan, 2020 1 commit
-
-
* [RUNTIME][DSO] Improve TVMBackendPackedCFunc to allow return value. Previously the signature of LibraryModule's PackedFunc does not support return value. This wasn't a limitation for our current usecase but could become one as we start to generate more interesting functions. This feature also start to get interesting as we move towards unified object protocol and start to pass object around. This PR enhances the function signature to allow return values. We also created two macros TVM_DLL_EXPORT_PACKED_FUNC and TVM_DLL_EXPORT_TYPED_FUNC to allow manual creation of functions that can be loaded by a LibraryModule. Examples are added in apps/dso_plugin_module. The change to TVMBackendPackedCFunc is backward compatible, as previous function will simply ignore the return value field. * address review comments
Tianqi Chen committed
-