TVM Monthly - June 2021

TVM Monthly - June 2021

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.

Features and Improvements Highlights

Community

In June of 2021, we welcomed many new contributors to the project. Importantly, we welcome @echuraev, @wyc-ruiker as the new reviewers. Thanks to everyone for the hard work and contributions!

This forum got 115k pageviews, 2.7k user visits in the last month.

Pull Requests

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

Relay

  • Update unique operator to match ONNX output (1D only) #8099
  • Refactor strided_slice and add axes argument #8165
  • Support converting TF combined_nms using Relay all_class_nms #8174
  • Convert a fake quantized or QAT graph into QNN ops #8126
  • make simplify inference iterative #8246
  • Enable layout transformation for image.resize op #8205
  • Additional gradients #8307
  • Enable group_conv1d import through conv2d conversion. #8321
  • fix first-order AD tuple/projection expr duplication #8318
  • Add negative log likelihood loss (nll_loss) op #8056
  • Remove in-place modification of attributes in layout transform #8309
  • Fix test_rewrite_function_with_fuzzy_body test check #8287
  • Fix type relation for batch_matmul #8376
  • Support slash in identifier. #8352
  • Resize 1D #8346
  • Fix index order in conv2d computation for Arm CPU. #8361
  • Add support of conv2d with NHWC for Mali #8422
  • Add support of conv2d with NHWC for Bifrost #8430
  • Add mixed precision (e.g. FP16) model conversion pass #8069
  • Modify create_executor to pass params #8418
  • Batch_matmul to dense optimization #8440
  • Add ConvInteger support. #8456
  • Add RandomUniform converter and tests to onnx frontend. #8426
  • Allow importing models with malformed Loop nodes. #8475
  • Switch from CompileEngine to TECompiler in Interpreter #8486

Vm

  • Add function attribute for shape func for profiling #8148
  • Improve error messages #8218
  • try reallocation once when OOM #8285
  • Fix the shape function of conv & Add dynamic support for conv2d nhwc #8480
  • Allow serialization of function attrs which are strings #8485

Vulkan

  • Minor updates following Vulkan target query implementation #8151
  • Remove dependency on Target from -from_device functionality. #8171
  • Compatibility fix for test_vulkan_unique() #8186
  • Corrected typo in Vulkan capability error messages #8187
  • Pull out vulkan initialization into VulkanInstance and VulkanDevice #8188
  • Move ownership of per-CPU-thread objects to VulkanDeviceAPI #8196
  • Fixed SPIR-V scoping bug with threadIdx #8281
  • Implement sync for SyncThread("warp") #8320
  • Added debug saving of Vulkan shaders, environment variable documentation #8333
  • Improved error message for extern calls passed to SPIR-V codegen #8332
  • Add parametrization to vulkan unit tests. #8348

Tvmc

  • Fix tvmc compile to extract target and target_host from --target #8176
  • Add a --config option to tvmc compile #8253
  • Fix inconsistent usage of host_name -> hostname #8324
  • Add vulkan to targets of tvmc run. #8359

Ci

  • Fix Lint Issue #8185
  • Fix the sphinx doc style for sphinx4 #8198
  • Fix python file format due to changes in black #8194
  • Use pre-built binaries instead of compiled #8245
  • Install curl in the context of ubuntu_install_nodejs.sh #8326
  • Pin mypy version #8329

Metal

  • Fix the rest memory leaks in Metal runtime #8175
  • Remove matching Metal to OpenCL in tophub #8211
  • Reduce number of threads for reduction layers #8206
  • Fix run metal model when non first device is selected #8261
  • Fix bad stream after interrupted tuning session #8244
  • Add pass for splitting kernel with huge number of args #8313

Refactor

  • Re-organize Containers into SubFolders #8183
  • Remove dead code from depthwise_conv2d for Intel graphics #8381
  • Enforce attaching storage scope to PointerType #8366

Topi

  • Fix conv2d_nchw for opencl intel graphics #8201
  • Allow cblas batch_matmul implicit batch_size broadcast #8250
  • Removed requirement for GPU from topi conv2d_cudnn.cuda and conv3d_cudnn.cuda #8276
  • Parametrized tests in test_topi_dense.py, split out gpu-independent implementations #8336
  • Bugfix for topi.prod #8416
  • Fix the integer overflow problem of the scatter_nd op. #8415
  • Add support for arbitrary dtypes to CSRMV and CSRMM #8437

Fix

  • Allow tokenizer to parse numbers greater than INT_MAX. #8120
  • QEMU RPC issue #8021
  • Detect like cores by looking at scaling_max_freq instead of cpuinfo_max_freq #8370
  • Fix depthwise conv2d on non-cuda GPU platforms #8379
  • Fix wrong log of tir pass VerifyMemory #8445
  • Explicitly retain __hash__ of StringImm #8449
  • Update stale relay.Module API in docs/comments #8411
  • Remove unused variable in GraphExecutorCodegen #8465
  • Compiler supports input with a slash #8481
  • Minor misspelling #8476

Frontend

  • Adding TF2 frontend code with support for control flow ops #8142
  • Speed up Fold Constant #8208
  • Tensorflow frontend op refactor #8179
  • Support for broadcasting in batch_matmul when shapes differ #8251
  • Adding InversePermutation Op #8277
  • Check LLVM enabled/installed #8414
  • Stridedslice and concat_v2 fix #8483

Tir

  • Fix data dependent indexing when lowering TE to TIR #8217
  • Tighten up invariance of CopyOnWrite in recursive stmt visitor #8358
  • fix storage rewrite index remap #8338

Tvmscript

  • Add tir.min node in tvm script #8219
  • Fix printing of rank 0 buffer access #8215
  • add more type support in script function parameter #8235
  • specialize #8354
  • TVMScript Parser support BufferSlice indices #8408
  • Support tir.abs node in tvm script #8488

Microtvm

  • make RVM memory and number of cores variable #8154
  • Add QEMU build to RVM image #8190
  • Add wait to QEMU Setup #8236
  • Add Nucleo stm32l4r5zi board to zephyr #8386
  • Refactor uTVM to microTVM #8283
  • Add fixture to zephyr test #8393
  • Fix Stack Size Issue for Zephyr AOT Demo on Physical Hardware #8453
  • Fix clock skew on virtualbox #8395

Docker

  • Add external directory mount #8144
  • Update tensorflow/tflite/xgboost versions #8306
  • fix sphinx install versions #8316
  • Fix ordering of tf and tflite installs in ci_qemu #8315
  • Update lint to reflect the latest state #8330
  • Update gpg server #8319
  • fix keras install #8391

Unittests

  • Automatic parametrization over targets, with explicit opt-out #8010
  • Added a meta-test for tvm.testing.fixture behavior in case of a broken fixture. #8343
  • Minor fixes to unit tests for cudnn/vulkan targets #8462

Docs

  • Prevented docs/1 file from being generated. #8029
  • Fix for broken link in apps for wasm-standalone dir #8045
  • Add docs for Pass Instrument #8220
  • Corrected typo in googletest build instructions. #8459

Onnx

  • Support Bidirectional RNNs #8337
  • Wrap 'If' if it has multiple outputs #8385

Bugfix

  • fix segfault when cudnnDestroy called with destroyed cuda context #8267
  • Fix broadcast type func with incomplete type #8438
  • do not simplify 'Any() - Any()' to 0 #8266

Contributors Who Reviewed Pull Requests

Note: The format is name (number of activities) Disclaimer: The number of activities does not directly correspond to the community’s view about the significance of contributions.

tqchen (62), masahi (37), comaniac (36), areusch (30), leandron (24), mbrookhart (22), jcf94 (18), junrushao1994 (17), tkonolige (15), jroesch (11), jwfromm (11), trevor-m (8), Hzfengsy (8), manupa-arm (7), FrozenGene (6), tmoreau89 (5), altanh (5), merrymercy (4), zhiics (4), YuchenJin (4), ZihengJiang (3), anijain2305 (3), vinx13 (3), mbaret (3), u99127 (3), giuseros (3), echuraev (3), gromero (3), hogepodge (3), zackcquic (3), d-smirnov (2), ANSHUMAN87 (2), yongwww (2), lhutton1 (2), electriclilies (2), csullivan (2), Mousius (2), MarisaKirisame (1), vegaluisjose (1), Lunderberg (1), liangfu (1), mehrdadh (1), rkimball (1), wyc-ruiker (1), AndrewZhaoLuo (1), mdw-octoml (1), elvin-n (1), zxybazh (1), mherkazandjian (1), apeskov (1)

Contributors Whose Pull Requests were Updated

Note: The format is name (number of activities)

Lunderberg (26), mehrdadh (13), hogepodge (13), mbrookhart (10), tqchen (7), masahi (7), leandron (7), echuraev (7), u99127 (6), tkonolige (5), csullivan (5), elvin-n (5), merrymercy (4), kparzysz-quic (4), AndrewZhaoLuo (4), jwfromm (3), d-smirnov (3), wyc-ruiker (3), euntaik (3), rohanmukh (3), rafzi (3), ganler (3), ZihengJiang (2), comaniac (2), giuseros (2), altanh (2), electriclilies (2), Beya2019 (2), CircleSpin (2), tristan-arm (2), lmxyy (2), schilkunda-amba (2), mherkazandjian (2), akmaru (2), KJlaccHoeUM9l (2), icemelon9 (1), anijain2305 (1), areusch (1), jroesch (1), kevinthesun (1), junrushao1994 (1), trevor-m (1), liangfu (1), mbaret (1), gromero (1), xqdan (1), hypercubestart (1), manupa-arm (1), ymwangg (1), YuchenJin (1), mdw-octoml (1), hgt312 (1), jtuyls (1), zxybazh (1), mikepapadim (1), zhanghaohit (1), zackcquic (1), Johnson9009 (1), AnastasiaStulova (1), zhuzilin (1), Mousius (1), domin1985 (1), fantasyRqg (1), MatthewARM (1), lygztq (1), kueitang (1)

1 Like