TVM Monthly - February 2020
As discussed by the TVM PPMC, 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
We welcome one new committers this cycle, @janimesh, and three reviewers @comaniac, @optima2005, @huajsj.
This forum got 100k page views, 2.8k user visits in the last month.
Pull Requests
The below is high-level summary of the PRs closed in the last month grouped by area.
Fixes
- conv3d_ndhwc schedule #4775
- fix #4670: add bias for fc layer #4801
- Change color channel from BGR to RGB for darknet preprocessing #4794
- Solve ARM BIG.LITTLE heterogeneous multicores #4747
- Create a StringImm reference type #4806
- Fix -Wextra #4804
- Minor bug fixes in AutoTVM for QNN graphs #4797
- Fixed subprocess creation under windows #4820
- It's gpu not cpu. #4832
- Improve tol to resolve flaky case #4836
- comaniac -> reviewer #4841
- Fixed process termination routine in windows #4844
- test_cuddn flaky #4846
- Mxnet parser for Qnn dialect #4714
- Enhance cc.cross_compiler #4817
- Fixed crash caused by reversing bitwise operations #4852
- reverse some changes made for intel_graphics/conv2d.py in PR #4849 #4853
- const auto p -> const auto& p #4861
- Fix onnx import bugs #4750
- Explicit llvm::StringRef to std::string conversion #4859
- Optimize x86 conv3d_ndhwc using data packing approach. #4866
- Update the runtime PackedFunc for module #4871
- improve antlr import error message #4888
- Update faq.md #4893
- Fix alpha_equal bug for attribute check #4897
- Fix issues in cuda codegen #4876
- Support range in index based tuners #4870
- Fast exponent #4790
- Fixed: Bitwise ops on floats causing wrong code generation and crashes. #4892
- Fix tvm.target.generic_func runtime detection #4910
- Support cuda tensorcore subbyte int data type in auto tensorcore #4546
- @anijain2305 -> Committer #4921
- topi/tests/python/test_topi_sort.py::test_argsort #4891
- Use opencv reisze method for preprocessing of image in darknet #4883
- Fix build breaks with StringRef changes #4923
- remove unnecessary spliting in the cached chunk #4935
- Fixing an Infinite Loop case in UnmatchedChecker. #4881
- Tensor Expression Debug Display (TEDD) #4651
- Add a tutorial for PyTorch #4936
- Remove SGX toolchain installation from CI Dockerfile #4948
- YoloV3 Support #4887
- Fix tedd tutorial after strategy change #4947
- Bump up dev version #4941
- Allow customize MKLDNN library location #4814
- Move Ops in relay.op.contrib.* #4942
- Added CopyFromBytes and CopyToBytes convenience methods to NDArray. Fixed typos. #4970
- Fix gcn tutorial failure #4994
- @huajsj -> Reviewer #4993
- Fix stride default value None in torch.nn.functional.avg_pool #4984
- fix ROCm strategy for winograd conv selection #5001
- Fix get_valid_count flaky test for cuda #4901
- @optima2005 -> reviewer #5004
- Change Scala Linter scalafmt => scalastyle #4998
- kill from tvm import te #5007
- Docs and Readme updated as per new namespace change #4989
- Chisel fixes and de10nano support #4986
- Conditions updated to cover better user scenarios #4951
- Tighten split's extent #4931
- Fix gpu not found when running TVM docker #4975
- typo #5008
- Fixes for pylint==2.4.4 #4849
- Add docs for tvm.ir #4869
Relay
- Expose vm OptimizeModule to Python #4800
- Add parser support for logical operators #4642
- Conv2D padding representation #4787
- Add bitwise ops #4815
- Add support for quantized LOGISTIC #4696
- Added Merge Composite pass #4771
- Fix VM compiler for while loop with free vars #4889
- Fix bug in re-processing call node in MergeComposite pass #4879
- NHWC import support. #4899
- Expose FunctionGetAttr to Python #4905
- Fix FuseBatchNorm output cast error if need_cast is True #4894
- Fix an assertion exposed by loop vectorizer #4916
- Relay op strategy #4644
- Add a PyTorch to Relay Parser #4497
- Support data types for CSourceModuleCodegen args and output #4934
- fix error message #4945
- Clean up and refactor PyTorch frontend #4944
- Relay pass to use fast exp/tanh #4873
- call graph for relay #4922
- Add inline pass #4927
- Target annotation for external codegen #4933
- BatchNorm support with run-time mean and variance calculation #4990
- Reduce plevel of conv2d winograd implementation on cuda #4987
- add operation tan to TVM #4938
- outline and inline lifted functions for external codegen #4996
Qnn
- Doc fix on convolution and dequantize #4799
- Conv2D with dilation support. #4796
- Optimize lowering for requantize and FixedPointMultiply. #4798
- More doc fix on quantize and convolution #4874
- Add support for per channel weight scale in dense op #4880
- Add support for quantized models via QNN #4977
- Add support for quantized models via QNN (#4977)" #5013
Topi
- upsample operator 'NCHWinic' format support. #4791
- Injective schedule improvement #4786
- Missing header #4865
- Enable vectorization on fp16 type #4867
- fix docs errors #4973
Refactor
- tvm._ffi #4813
- Establish tvm.runtime #4818
- move vm.py under runtime and adt to runtime.container.py #4855
- establish tvm.ir, migrate corresponding files #4862
- Polish tvm.runtime, tvm.runtime.module API update #4837
- Establish tvm.target #4872
- Establish tvm.tir #4877
- Establish tvm.te and tvm.driver #4900
- Establish tvm.arith #4904
- Polish ffi convention. #4912
- Remove legacy python files. #4943
- refactor build module to take IRModule #4988
Frontend
- Dynamically calculate input_stats of any fake_quant range #4789
- LSTM Support #4825
- Add MIRROR_PAD operator #4822
- use qnn helper function in softmax #4840
- Add Resize op converter #4838
- Add support for TFLite_Detection_PostProcess #4543
- Fix tests for tflite unary elemwise operations #4913
- GaussianDropout/Noise parsing support #4928
- Add parser support for 'square' operator #4915
- make_loss operator support #4930
- Add parser support for l2_normalization #4966
- ReadVariableOp operator support #4952
- Check graph inputs match expected #4992
- support multiply outputs #4980
Ci
- Update ci-gpu to v0.60 #4827
- Update ci-gpu torch1.4 and onnx1.6 #4826
- Update ci-lint to v0.60 #4850
- Update ci-lint to pylint2.4.4 #4851
- Cleanup logfile before tutorial runs #4896
- Update ci docker to add autodocsumm #4903
- Add autodocsum as dep #4902
- Add pre-check script to check sphinx doc build. #4956
- pin xgboost dependency version to 0.90 #4965
Doc
- Fix doc after moving to unified IR #4835
- Introduction to module serialization #4564
- ConvertLayout - Call RemoveUnunsedFunctions. #4834
- Fix bugs that override n_trials #4842
- Update the vm doc #4868
- Refine the example description of max/min/sum/tag_scope #4974
Docs
- Fix vta tutorial #4809
- Introduce how to add hardware backend to FAQ #4898
- Update API docs to reflect the status after the refactor. #4907
- Fix sphinx warnings #4917
- Fix Sphinx Warnings (RST indent, cross-ref, and image scale) #4920
- Fix Sphinx Warning: the target found for cross-reference #4925
- Sphinx – Introduce alias detection. #4954
- Fix Warnings from #4942 #4959
- Fix sphinx precheck #4967
Runtime
- Fix memory leakage of TVMByteArray #4856
- Fix TVM_DLL_EXPORT_TYPED_FUNC to work on Windows #4955
- Fix memory leak when using openMP #4811
- Export GraphRuntime in tvm_runtime.dll #5002
- MISRA-C compliant TVM runtime #3934
Tflite
Torch
- Upsampling op support and enable registering a user defined op conversion map #4961
- fix unordered dictionary problem for python version under 3.6 #4982
Contributors Who Reviewed Pull Requests
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.
tqchen (72), ZihengJiang (39), zhiics (39), FrozenGene (20), comaniac (20), anijain2305 (19), masahi (17), yzhliu (14), icemelon9 (12), kevinthesun (10), jwfromm (10), vinx13 (9), jroesch (9), wweic (7), liangfu (7), MarisaKirisame (6), tmoreau89 (6), u99127 (6), merrymercy (5), Laurawly (4), wyc-ruiker (4), mbaret (4), Hzfengsy (4), cchung100m (3), inadob (3), jackwish (3), kparzysz-quic (3), srkreddy1238 (2), apivovarov (2), slyubomirsky (2), vegaluisjose (2), soiferj (2), eqy (1), kazum (1), yongwww (1), weberlo (1), yidawang (1), junrushao1994 (1), cbalint13 (1), ehsanmok (1), leandron (1), alexwong (1), paddyhoran (1), broune (1), minminsun (1), yongfeng-nv (1)
Contributors Whose Pull Requests were Updated
Note: The format is name (number of activities)
tqchen (58), masahi (11), anijain2305 (8), tmoreau89 (8), comaniac (8), inadob (8), soiferj (7), icemelon9 (6), zhiics (6), mbaret (4), wpan11nv (4), hlu1 (3), FrozenGene (3), alexgl-github (3), shoubhik (3), merrymercy (2), siju-samuel (2), nhynes (2), cchung100m (2), jwfromm (2), huajsj (2), wyc-ruiker (2), vv1133 (2), jmorrill (2), alexwong (2), Coderx7 (2), dpankratz (2), vizero1 (2), yongfeng-nv (2), ZihengJiang (1), MarisaKirisame (1), Laurawly (1), kevinthesun (1), apivovarov (1), were (1), abergeron (1), yidawang (1), cclauss (1), BenjaminTu (1), hcho3 (1), zxy844288792 (1), kice (1), csarofeen (1), maheshambule (1), robo-corg (1), badenh (1), clhne (1), Orion34C (1), yhcvb (1), kshitij12345 (1)