Skip to content

TVM v0.7 Release Note Candidate #6486

@ZihengJiang

Description

@ZihengJiang

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions