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
- 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
- Docs
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).