Overview
v0.7 is brings many major features. The community works together to refactor the internal code base to bring an unified IR code structure with unified IRModule, type system and pass infrastructure. We have also bought many exciting new features, some highlights include:
- Initial automatic scheduling support
- Initial command line driver interface
- WebGPU and webassembly support
- Better first class rust support in the codebase
- Intial Hexagon support
- Bring your own codegen (BYOC) support
The community also continues to bring high quality improvements to the existing modules including, but not limited to: better frontend coverage, performance, quantization, uTVM and dynamic shape support.
New Features
Automatic Scheduling (Experimental)
BYOC
- External codegen support in Relay (#4482),(#4544)
- Bring Your Own Codegen Guide -- Part 1 #4602
- Bring Your Own Codegen Guide -- Part 2 #4718
- Relay annotation and partitioning for external compilers #4570
- JSON Runtime with DNNL End-to-End Flow #5919
- Handle one symbol for each runtime #5989
- Run accelerator specific optimizations #6068
- Arm Compute Library integration #5915
- Retire the example json runtime #6177
- json_node.h should include data_type.h #6224
- Improve installation tutorial #6170
- Add support for dense (fully connected) layer #6254
- Introduce the Ethos-N BYOC integration #6222
- Enable remote device via environment variables #6279
- Improved pooling support #6248
- Add support for quantized convolution #6335
- CoreML codegen #5634
Operator Coverage
- Add strided_set operation (#4303)
- Add support for conv3d (#4400), pool3d (#4478), 3d upsampling ops (#4584)
- Add group convolution for VTA (#4421)
- Add 1d deconvolution op (#4476)
- Allow batch matmul to be fused into injective ops (#4537)
- Add native depthtospace and spacetodepth operators (#4566)
- Add CUDNN conv3d support (#4418)
- Dilation2D operator support #5033
- Isfinite operator #4981
- Unravel Index operator #5082
- Add thrust support for nms #5116
- Resize3d, Upsample3d op support #5633
- Add operator Correlation #5628
- affine_grid and grid_sample #5657
- Sparse to dense operator #5447
- Conv3d_transpose op support added #5737
- add op crop_and_resize #4417
- Add bitwise ops #4815
- Sparse to dense operator #5447
- support dynamic NMS(Non Maximum Suppression), symbolic begin, end, and strides for strided_slice #4312
- Conv3d_transpose op support added #5737
- ReverseSequence operator #5495
- Conv1D #4639
- 1D Pooling #4663
Quantization
- Channel wise quantization - Quantize & Requantize #4629
- Support QNN ops. #5066
- Adding support for QNN subtract op #5153
- TFLite QNN Tutorial #5595
- Tutorial: Deploy Quantized Model on CUDA #4667
- Support asymmetric per-layer quantized operators #6109
Relay
- Add convertlayout pass in Relay (#4335, #4600)
- Added Merge Composite pass #4771
- Call graph for relay #4922
- Add inline pass #4927
- Target annotation for external codegen #4933
- GradientCell Relay Pass #5039
- Add MergeCompilerRegions pass #5134
- Non-recursive Graph Vistor and Rewriter (#4886)
- [Blocksparse] Pipeline for lowering dense model to sparse-dense (#5377)
- Relay op strategy #4644
- Static Tensor Array (#5103)
- Memory planner (part 1) #5144
- ONNX codegen #5052
- Add Parser 2.0 #5932, part 2 #6162
- Basic block normal form #6152
- Convert Layout pass. #4664
- Pattern Language, Matcher, Rewriter, and Function Paritioner #5231
Runtime and Backend
Rust Support
- Revive the Rust + SGX refactor #4976
- Improve Rust bindings: Map, Array, String, various IR nodes #6339
- Rust Refactor Stage 4: Rewrite Rust graph runtime to use new APIs #5830
- Second stage of Rust Refactor #5527
tvm crate stage 3 of Rust refactor #5769
- Add first stage of updating and rewriting Rust bindings. #5526
TIR
- Introduce StructuralHash for the Unified IR. #5160
- Introduce StructuralEqual Infra for the unified IR. #5154
- Introduce ExprDeepEqual, Remove IRDeepCompare #5206
- [TIR] Introduce BufferLoad/Store (#5205)
- Improved massive build times caused by tir.floormod and tir.floordiv. Fixed Topi testcase. #5666
- Buffer logger assert removed #6147
- Enhance VerifyGPUCode #6194
- HoistIfThenElse added #6066
- Hybrid Script Support for TIR #6227
- Migrate Low-level Passes to Pass Manager #5198
- HoistIfThenElse added #6066
- Hybrid Script Support for TIR #6227
- Block scope hoisting added #6238
TE
- reverse-mode autodiff without any optimization #5121
- Tensor Expression Debug Display (TEDD) #4651
- Optimize and eliminate the Jacobian tensor for te.autodiff #6078
TVMC(Experimental)
Overview
v0.7 is brings many major features. The community works together to refactor the internal code base to bring an unified IR code structure with unified IRModule, type system and pass infrastructure. We have also bought many exciting new features, some highlights include:
The community also continues to bring high quality improvements to the existing modules including, but not limited to: better frontend coverage, performance, quantization, uTVM and dynamic shape support.
New Features
Automatic Scheduling (Experimental)
BYOC
Operator Coverage
Quantization
Relay
Runtime and Backend
Rust Support
tvmcrate stage 3 of Rust refactor #5769TIR
TE
TVMC(Experimental)