TVM Monthly - June 2023

TVM Monthly - June 2023

Note: This montly report contains main branch only.

As discussed by the TVM PMC, our goal is to provide a monthly summary of the project so users and developers can get a better understanding of the goings on of the TVM community.

Feedback and suggestions are welcomed so that we can further improve these updates.

Community

During June of 2023 we welcomed many new contributors to the project. Importantly we welcomed Aleksei as new reviewers. Thanks to everyone for the hard work and contributions!

We continue to improve TensorIR, Frontend and other runtimes. TensorIR was enhanced in recent months.

Pull Requests

The below is high-level summary of the PRs closed in the last month grouped by area.

Community

  • #15086 - Aleksei-grovety → Reviewer

TIR

  • #15168 - [Schedule] Support padding-by-factor in PadEinsum
  • #15106 - [TensorIR][ROCm] AMD Matrix Core Support
  • #15165 - Expose UndefinedVars to Python
  • #15163 - Fix RenewDef for symbolic input shapes
  • #15142 - [Schedule] Enhance compute-inline for fusion
  • #15150 - Fix typo in code example
  • #15144 - [TensorIR][Schedule] New schedule primitive unsafe_hide_buffer_access
  • #15146 - Block dependence analysis without schedules
  • #15119 - Avoid duplicate GlobalVar names in SplitHostDevice
  • #15129 - [Arith]Recognize empty extents
  • #15037 - Handle DeclBuffer in CacheReadWrite schedule primitive
  • #15098 - [Ethos-U]Handle DeclBuffer in Ethos-U inputs
  • #15044 - [USMP] Preserve DeclBuffer in PoolAllocationToOffsetConverter
  • #15078 - Handle DeclBuffer in LowerThreadAllreduce
  • #15094 - Handle DeclBuffer in MergeDynamicSharedMemoryAllocations
  • #15093 - Handle DeclBuffer in StorageAccessInfoLower
  • #15045 - Handle DeclBuffer in InjectDoubleBuffer
  • #15096 - Handle DeclBuffer in RemoveNoOp
  • #15091 - [TVMScript] Convert tir.op operands to PrimExpr
  • #15076 - [CodeGen] Define PackedFunc error code in MakePackedAPI
  • #15102 - Update primfunc host attachment to include host
  • #14854 - [Compute-at] Enable complex floordiv/floormod expressions in compute_at
  • #15041 - Handle DeclBuffer in LowerCustomDatatypes
  • #15038 - Handle DeclBuffer in Inline/ComputeAt/ReverseComputeAt
  • #15052 - [Analysis] Handle DeclBuffer in FlopEstimator
  • #15051 - Handle DeclBuffer in StorageRewrite
  • #15050 - [Schedule] Fix decompose_padding bug with dtypes
  • #15034 - Refactor BlockScope outside schedule
  • #15054 - Handle DeclBuffer in IRSubstitute
  • #14986 - Move SplitHostDevice to before MakePackedAPI
  • #15042 - Handle DeclBuffer in StorageFlatten’s input
  • #15040 - Preserve object equality in Buffer::GetFlattenedBuffer
  • #14693 - Enhance TVMScript Buffer Slice Access
  • #14988 - Handle callees on same target, different codegen
  • #14951 - Keep trivial LetStmt in tir.Simplify when used in buffer decl
  • #14944 - Restrict tir.transform.LowerTVMBuiltin to host functions
  • #14990 - [IR,TE,TIR] Use f-strings for string formatting, NFC

TVMScript

  • #15083 - Avoid visiting repetition tensor in SetCommonPrefix Visitor

MetaSchedule

  • #14673 - Introduce MMA Tensor Core Multilevel Tiling

Arith

  • #15131 - Hotfix flaky test in padded matmul
  • #15120 - NormalizeToIterSum
  • #15081 - Improve arith simplify to handle symbolic reshape pattern

AOT

  • #15033 - Avoid Var-to-Var Let binding in AOTExecutorCodegen
  • #15032 - Remove duplication in tvm.testing.aot.compile_models

Adreno

  • #15061 - [TOPI]Fix problem with ceil_log2
  • #15003 - [DOCKER]Docker setup changes for multi user environments

Hexagon

  • #14997 - Remove “c” as aot_host_target tvm/contrib/hexagon/pytest_pl…

OpenCL & CLML

  • #14972 - [OPENCL] Always use convert_T for type conversion

ROCm

  • #15088 - [Target]Replace rocm arch parsing from int to string

CMSIS-NN

  • #15059 - Update CMSIS-NN release to v4.1.0

micoNPU

  • #15159 - [microNPU][ETHOSU] Fix compiler attributes types
  • #15147 - [microNPU][ETHOSU] Add option to disable copying constants for case without cascader
  • #15069 - [microNPU][ETHOSU] Fix SoftMax legalization parameters
  • #15115 - [microNPU][ETHOSU] Upgrade to 23.05 version of Arm(R) Ethos™-U NPU drivers
  • #15114 - [microNPU] Upgrade Vela to v3.8.0
  • #15104 - [microNPU][ETHOSU] Fix minimum buffer size
  • #15063 - [microNPU][ETHOSU] Fix CopyComputeReordering pass arguments

Runtime

  • #15182 - Add weak symbol to builtin fp16
  • #15161 - Clean TVM stacktrace in error messages
  • #15162 - Support void as dtype in FFI

BYOC & Relay & TOPI & Frontend

  • BYOC
    • #15046 - Add GEMM kernel from FasterTransformer as submodule
    • #15029 - Hide internal cutlass symbols
  • Relay
    • #15090 - [Bugfix] Insertion of “device_copy” CallNode to Resolve Device Conflict on Unconstrained Nodes
    • #15122 - [Bugfix][Keras] Fix SeparableConv2D conversion in dilation_rate attribute
    • #15107 - [Bugfix][Keras] Fix a wrong variable name in keras frontend
    • #15053 - [Bugfix][Keras] Fix the wrong implementation logic about cropping2D
    • #15068 - Improve the “clip” op optimization in simplify expr pass
    • #15082 - [Bugfix][Keras] Fix UpSampling2D about the wrong assertion about size
    • #15060 - [Bugfix][keras] Fix the bug about the attribute ‘output_padding’ in Deconv
  • TOPI
    • #15018 - Fix dynamic dimensions support for Dense on TOPI side
  • Frontend
    • #15173 - [TFLITE][BugFix] Fix int16 transpose conv loading
    • #14801 - [Paddle] [PaddlePaddle Hackathon 4]add attribute support for gaussian_random/softplus/Conv3d/Conv2d
    • #14973 - [Paddle] [PaddlePaddle Hackathon 4] add convert support for tanhshrink/pool3d/set_value ops for paddle frontend
    • #15017 - [ONNX] Fix bug in scatter_elements

LLVM

  • #15127 - Remove the “ret_void” argument of AddFunction
  • #15139 - Minor refactor to LLVMModuleNode::SaveToFile

TVMC

  • #14994 - [Bugfix] Fix tvmc option for printing which operators are offloaded to the Ethos-U

CI & BugFix * Docs

  • CI
    • #15179 - [Testing] Utility method to run TVM on remote device
    • #15138 - [Test] Improve check for TVMError exception in test_cast
    • #15062 - Clone submodule recursively
    • #15065 - Revert “Make Graviton3 default AArch64 job runner node (#14983)”
    • #14983 - Make Graviton3 default AArch64 job runner node
    • #15056 - [Bugfix]Fix CacheControl version constraint violation
  • BugFix
    • #14960 - [Bug] Add typing_extensions requirement again
    • #15015 - [Hotfix] Remove LOG(INFO) from unsupported dtype legalization pass
  • Docs
    • #15126 - [DOC] Add RPC System Setup Document
    • #15071 - [#15043]Updated the copyright year from 2020 to 2023
    • #15055 - [#14992][DOC][TUTORIAL] Fix typo for the ‘Making your Hardware Accelerator TVM-ready with UMA’

Docker

  • #15149 - Fix build.sh environment variables
  • #15105 - Update docker images for llvm-16
  • #15092 - Update ci-cortexm docker image to contain CMSIS-NN release v…
  • #15095 - Add build.sh environment variables
  • #15067 - Migrate arm docker image to use llvm packages
  • #15031 - Update ci_cpu docker image to one containing polly package f…

Misc

  • #15167 - [Python] Enhance Wheel Packaging
  • #15166 - [Target] Add MetaSchedule-compatible attributes to OpenCL
  • #15154 - [Minor] Fix Compilation Warnings
  • #15132 - [NDArray] Allow creating a view from a strided array
  • #15116 - [RPC] Add Missing Option “port_end” to RPC Proxy
  • #15057 - [QNN] Implement quantized avg_pool2d
  • #15073 - [CodeGenC] Use PrimFuncNode::ret_type in function signature
  • #15036 - [StackVM] Updated CodeGenStackVM to handle DeclBuffer
  • #15035 - [Vulkan] Allow DeclBuffer in CodeGenSPIRV
  • #15022 - [Build] Fix missing virtual destructor in SIBuilder
  • #14922 - [OpenCLML] Reactor and introduce on chip memory and memory planner
  • #15016 - Fix type parse error about AdaptiveMaxPool
  • #14949 - [CodegenC] Updated unit test for sorted CodegenC output
  • #15007 - [Minor] Fix compilation warnings
  • #15000 - [CMAKE] Introduce dummy build as an option
  • #14863 - [DataType] Initial support of fp8 (e4m3/e5m2)

Contributors Whose Pull Requests were Updated

Note: The format is name (number of activities).

Disclaimer: number of activities do not directly correspond to the community’s view about the significance of contributions. Data is from 2023-06-01&to=2023-06-30.

Lunderberg(28), junrushao(9), Aleksei-grovety(7), jikechao(7), masahi(5), tqchen(5), kparzysz-quic(3), quic-sanirudh(3), ashutosh-arm(2), cchung100m(2), Hzfengsy(2), vvchernov(2), yzh119(2), echuraev(1), vinx13(1), srkreddy1238(1), leandron(1), lhutton1(1).

2 Likes