This is an automated email from the ASF dual-hosted git repository. tqchen pushed a change to branch ci-docker-staging in repository https://gitbox.apache.org/repos/asf/tvm.git.
omit 0710915 Add test for [skip ci] in commit but not PR title omit 1c3b526 Fix test case omit 70a9bcd Fix condition type omit 114188a Use tvm-bot credentials omit 22d9fd4 Use credentialsId for Jenkins omit 0fad675 Use jenkins-apache-reader, remove labelling omit 77111bb Add script to edit PR title, fix failing test omit be83343 use GitHub JSON API omit d81e590 Add documentation to contributor guidelines omit d0cabea [testing] Try the github-integration plugin omit 68fea93 Address comments, add tests omit 2e210e3 Implement [skip ci] for Jenkins add c945b24 [TVMScript] Add for loop syntax sugar (#9620) add 3c05eb6 Add tvm-bot to triage role. (#9675) add 00db4db Options to create test directory and print commands in AOT Test Runner (#9638) add 3371a76 [microNPU] Add support for SIGMOID (#9627) add fcea393 Add top level redirect from tutorials to tutorial (#9673) add b54beed [TVMC][MicroTVM] Fix tvmc micro `project_dir` arg relative path (#9663) add e8889ae [TVMScript] Add syntax sugar for T.handle and T.match_buffer (#9492) add cd2fa69 [Hexagon] Add RPC Mechanism for Hexagon (#9631) add d13e2b6 Upgrade to latest version of FVP based on Arm(R) Corstone(TM)-300 software (#9672) add 0e0adf5 [Relay] Support nchwc layout in ConvertLayout pass (#9681) add ee629b1 [Frontend][ONNX] Support ONNX Scan operator (#9438) add 1566fb1 [microNPU] Update Conv2D Tests to Use TF API to Gen Test Cases (#9508) add b7ad4e5 Tutorial for running TVM on Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU (#9307) add 3ce4fe4 [TIR][USMP] adding the pass to convert to pool offsets (#9418) add f8f820e Fix TVMC micro import error (#9688) add 6d0761e [RVM] Fix AttributeError when action is not specified (#9683) add 6f623a9 [FIX] Simplify during create prim func (#9691) add 1973c5b Fix conv2d_transpose layout transform issue in trt (#9668) add aa99699 [ONNX][Converter] Fix when onnxoptimizer is unavailable (#9700) add 510f7c6 Don't requantize if bias or quantize scales are approximately equal (#9676) add bedc772 [microNPU] Add support for SPLIT and SPLIT_V (#9621) add e785b26 [TIR] Allow memory (aka storage) scopes to be retrieved/applied to PrimFuncs (#9689) add 404d9cf [ETHOSN] Allow Ethos(TM)-N testing without hardware (#9702) add 40ecfec [TVMScript] Improve printer for TIR syntax sugar (#9680) add 3b28216 Add an option to FQ2I to fail soft or hard (#9660) add bd361b9 [RELAY] [AST] Add virtual_device as a first class field in Relay (#9641) add 01599d1 [SimplifyExpr] Simplify consecutive adds with constants (#9671) add e3379a6 [Relay] PlanDevices supports 'free' on_device annotations (#9693) add 5de8f7c [Hexagon] Detect link-params via IRModule instead of target attribute (#9695) add db78d48 Fix LLVM version for Hexagon (#9711) add a28a8bf [CMSIS-NN] Fixed return data type from pattern callback function (#9682) add 2b35cfd Add Hexagon VTCM and discontiguous allocation support (#9525) add 6efade6 [TVMC] run: Don't use static path to find model.tar (#9712) add c19f193 Follow up from CMSIS-NN pooling failure (#9708) add 5557b8c Improve tvmc error message from lazy-loading frontend imports (#9074) add cb34604 [TOPI] Add generic batch norm (#9694) add 6e9e4e6 [TVMC] Add --opt-level to compile mode (#9722) add a674121 [Relay] Non-recursive dependency graph (#9528) add f0ae9d3 Add `make docs` and doc building instructions (#9534) add 1728782 Fix typos in runtime comments (#9726) add 4e70931 [BugFix] Fix a wrong use of `std::move()` in cross-thread reduction lowering (#9728) add d1dafbd [CUTLASS] More robust support for pattern matching and alignment (#9698) add 69cae0b [Relay, BYOC] Make constant binding in PartitionGraph optional (#9721) add b4d595c Add CMake summary (#9696) add 1f5f3c9 [CUDA] Do not emit vector load on unaligned base offset (#9731) add af869bc Merge Java unittests into GPU unittests (#9732) new f960ab0 [CI] Hotfix Jenkinsfile This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (0710915) \ N -- N -- N refs/heads/ci-docker-staging (f960ab0) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .asf.yaml | 1 + .gitignore | 5 + CMakeLists.txt | 7 + Jenkinsfile | 107 ++-- Makefile | 7 +- apps/cpp_rpc/CMakeLists.txt | 12 +- apps/microtvm/ethosu/README.md | 2 +- apps/microtvm/reference-vm/base-box-tool.py | 2 + cmake/config.cmake | 3 + .../libs/hexagon_rpc_skel}/CMakeLists.txt | 58 ++- cmake/modules/Hexagon.cmake | 141 +++++- cmake/utils/Summary.cmake | 72 +++ cmake/utils/Utils.cmake | 3 + docker/Dockerfile.ci_cpu | 2 +- docker/bash.sh | 11 +- .../install/ubuntu_install_ethosu_driver_stack.sh | 8 +- docker/install/ubuntu_install_python_package.sh | 2 +- docs/README.md | 101 ++++ docs/README.txt | 59 --- docs/conf.py | 6 + docs/contribute/committer_guide.rst | 34 -- docs/legacy_redirect.py | 1 + gallery/how_to/work_with_microtvm/micro_ethosu.py | 536 +++++++++++++++++++++ include/tvm/ir/expr.h | 26 + include/tvm/relay/attrs/call.h | 4 +- include/tvm/relay/attrs/on_device.h | 62 +-- include/tvm/relay/expr.h | 93 ++-- include/tvm/relay/function.h | 3 + include/tvm/runtime/registry.h | 4 +- include/tvm/target/se_scope.h | 7 +- include/tvm/tir/buffer.h | 2 +- include/tvm/tir/stmt_functor.h | 1 + include/tvm/tir/usmp/utils.h | 48 ++ include/tvm/tir/var.h | 2 +- python/gen_requirements.py | 2 +- python/tvm/contrib/cutlass/gen_conv2d.py | 12 +- python/tvm/contrib/cutlass/gen_gemm.py | 21 +- python/tvm/contrib/cutlass/gen_tensor_op.py | 4 +- python/tvm/contrib/{target => hexagon}/__init__.py | 1 + python/tvm/contrib/hexagon/build.py | 300 ++++++++++++ python/tvm/contrib/{ => hexagon}/hexagon.py | 12 +- python/tvm/contrib/hexagon/session.py | 75 +++ python/tvm/contrib/target/onnx.py | 2 +- python/tvm/driver/tvmc/common.py | 15 +- python/tvm/driver/tvmc/compiler.py | 21 +- python/tvm/driver/tvmc/frontends.py | 43 +- python/tvm/driver/tvmc/main.py | 6 + python/tvm/driver/tvmc/micro.py | 27 +- python/tvm/driver/tvmc/model.py | 12 +- python/tvm/driver/tvmc/runner.py | 24 +- .../tvm/relay/backend/contrib/ethosu/__init__.py | 1 - python/tvm/relay/backend/contrib/ethosu/codegen.py | 2 +- python/tvm/relay/backend/contrib/ethosu/errors.py | 35 -- .../tvm/relay/backend/contrib/ethosu/legalize.py | 107 +++- .../relay/backend/contrib/ethosu/te/convolution.py | 6 +- .../relay/backend/contrib/ethosu/te/depthwise.py | 6 +- .../relay/backend/contrib/ethosu/te/identity.py | 6 +- .../tvm/relay/backend/contrib/ethosu/te/pooling.py | 6 +- python/tvm/relay/frontend/onnx.py | 225 ++++++++- python/tvm/relay/op/annotation/annotation.py | 24 +- python/tvm/relay/op/contrib/cmsisnn.py | 4 +- python/tvm/relay/op/contrib/cutlass.py | 81 +++- python/tvm/relay/op/contrib/ethosu.py | 80 ++- python/tvm/relay/op/contrib/tensorrt.py | 5 +- python/tvm/relay/op/nn/_nn.py | 33 +- python/tvm/relay/op/strategy/generic.py | 23 + .../transform/fake_quantization_to_integer.py | 20 +- python/tvm/relay/transform/transform.py | 28 +- python/tvm/script/parser.py | 63 ++- python/tvm/script/tir/__init__.py | 4 +- python/tvm/script/tir/__init__.pyi | 40 +- python/tvm/script/tir/scope_handler.py | 33 +- python/tvm/script/tir/special_stmt.py | 53 +- python/tvm/script/tir/ty.py | 74 +++ python/tvm/target/target.py | 16 +- python/tvm/testing/__init__.py | 2 + python/tvm/testing/tir.py | 48 ++ python/tvm/tir/analysis/analysis.py | 68 +++ python/tvm/tir/usmp/__init__.py | 1 + python/tvm/tir/usmp/{ => transform}/__init__.py | 3 +- .../tir/usmp/{analysis => transform}/_ffi_api.py | 2 +- .../analysis.py => transform/transform.py} | 31 +- python/tvm/topi/cuda/conv2d_alter_op.py | 4 + python/tvm/topi/generic/nn.py | 17 + python/tvm/topi/nn/__init__.py | 1 + python/tvm/topi/nn/batch_norm.py | 110 +++++ python/tvm/topi/testing/__init__.py | 1 + python/tvm/topi/testing/batch_norm.py | 89 ++++ rust/tvm-sys/Cargo.toml | 2 +- rust/tvm/src/ir/relay/mod.rs | 2 + src/printer/relay_text_printer.cc | 11 +- src/printer/text_printer.cc | 57 ++- src/printer/text_printer.h | 7 +- src/printer/tvmscript_printer.cc | 112 ++++- src/relay/analysis/dependency_graph.cc | 38 +- src/relay/backend/contrib/cmsisnn/relay_to_tir.cc | 11 +- .../contrib/example_target_hooks/relay_to_tir.cc | 9 +- src/relay/backend/te_compiler.cc | 42 +- src/relay/backend/vm/compiler.cc | 17 +- src/relay/ir/expr.cc | 51 +- src/relay/ir/function.cc | 5 +- src/relay/ir/indexed_graph.cc | 20 + src/relay/op/call/call.cc | 43 +- src/relay/op/call/call.h | 34 +- src/relay/op/memory/on_device.cc | 81 ++-- src/relay/op/memory/on_device.h | 75 ++- src/relay/op/nn/nn.cc | 3 +- src/relay/transforms/device_aware_visitors.cc | 15 +- src/relay/transforms/device_aware_visitors.h | 19 +- src/relay/transforms/device_domains.cc | 56 ++- src/relay/transforms/device_domains.h | 19 +- src/relay/transforms/device_planner.cc | 314 +++++++----- .../transforms/fake_quantization_to_integer.cc | 43 +- src/relay/transforms/fold_constant.cc | 6 +- src/relay/transforms/memory_alloc.cc | 77 ++- src/relay/transforms/partition_graph.cc | 23 +- src/relay/transforms/simplify_expr.cc | 44 ++ src/relay/transforms/to_a_normal_form.cc | 8 +- src/runtime/contrib/ethosn/ethosn_runtime.cc | 4 + src/runtime/hexagon/hexagon/hexagon_buffer.cc | 239 ++++++--- src/runtime/hexagon/hexagon/hexagon_buffer.h | 91 ++-- src/runtime/hexagon/hexagon/hexagon_common.cc | 8 +- src/runtime/hexagon/hexagon/hexagon_common.h | 2 + .../hexagon/hexagon/hexagon_device_api_v2.cc | 83 ++-- src/runtime/hexagon/rpc/android/session.cc | 120 +++++ .../runtime/hexagon/rpc/android_bash.sh.template | 8 +- src/runtime/hexagon/rpc/hexagon/rpc_server.cc | 271 +++++++++++ .../runtime/hexagon/rpc/hexagon_rpc.idl | 13 +- src/runtime/registry.cc | 6 +- src/runtime/vm/executable.cc | 2 +- src/target/llvm/codegen_hexagon.cc | 8 +- src/target/llvm/llvm_common.h | 3 +- src/target/se_scope.cc | 6 - src/target/source/codegen_c.cc | 13 + src/target/target.cc | 4 - src/te/operation/create_primfunc.cc | 34 +- src/tir/analysis/device_constraint_utils.cc | 514 ++++++++++++++++++++ src/tir/analysis/device_constraint_utils.h | 98 ++++ src/tir/ir/stmt.cc | 9 +- src/tir/transforms/lower_cross_thread_reduction.cc | 2 +- .../convert_pool_allocations_to_offsets.cc | 349 ++++++++++++++ src/tir/usmp/utils.cc | 39 ++ src/topi/schedule.cc | 3 + tests/cpp/relay/op/memory/on_device_test.cc | 89 ++++ tests/lint/check_file_type.py | 2 + tests/lint/cppdocs.sh | 3 +- tests/lint/pylint.sh | 8 +- tests/micro/common/test_tvmc.py | 37 +- tests/python/contrib/test_cmsisnn/test_conv2d.py | 15 +- tests/python/contrib/test_cmsisnn/utils.py | 19 +- tests/python/contrib/test_cutlass.py | 71 +-- .../python/contrib/test_ethosu/relay_ir_builder.py | 295 ------------ tests/python/contrib/test_ethosu/test_codegen.py | 393 ++++++++------- tests/python/contrib/test_ethosu/test_legalize.py | 437 ++++++++++++----- .../contrib/test_ethosu/test_lookup_table.py | 2 +- .../contrib/test_ethosu/test_lut_optimizer.py | 4 +- .../contrib/test_ethosu/test_replace_conv2d.py | 2 +- .../test_ethosu/test_replace_depthwise_conv2d.py | 2 +- tests/python/contrib/test_hexagon/conftest.py | 105 ++++ .../contrib/test_hexagon/proxy_rpc/test_matmul.py | 92 +--- .../contrib/test_hexagon/{ => rpc}/__init__.py | 2 +- .../contrib/test_hexagon/rpc}/conftest.py | 14 +- .../contrib/test_hexagon/rpc/test_launcher.md | 98 ++++ .../contrib/test_hexagon/rpc/test_launcher.py | 261 ++++++++++ tests/python/driver/tvmc/conftest.py | 1 + tests/python/driver/tvmc/test_frontends.py | 52 ++ tests/python/driver/tvmc/test_mlf.py | 27 ++ tests/python/frontend/onnx/test_forward.py | 169 ++++++- tests/python/relay/aot/aot_test_utils.py | 34 +- tests/python/relay/aot/corstone300.mk | 3 +- .../python/relay/op/annotation/test_annotation.py | 18 +- tests/python/relay/test_op_level1.py | 48 ++ tests/python/relay/test_pass_convert_op_layout.py | 111 +++++ .../test_pass_fake_quantization_to_integer.py | 29 +- tests/python/relay/test_pass_fold_constant.py | 2 +- tests/python/relay/test_pass_partition_graph.py | 50 +- tests/python/relay/test_pass_plan_devices.py | 149 ++++-- tests/python/relay/test_pass_simplify_expr.py | 42 ++ tests/python/relay/test_vm.py | 6 +- .../tir/analysis/test_device_constraint_utils.py | 70 +++ tests/python/topi/python/test_topi_batch_norm.py | 115 +++++ tests/python/unittest/test_ci.py | 132 ----- tests/python/unittest/test_target_codegen_cuda.py | 78 +-- .../python/unittest/test_target_codegen_hexagon.py | 4 +- tests/python/unittest/test_te_create_primfunc.py | 16 +- ...ransform_convert_pool_allocations_to_offsets.py | 523 ++++++++++++++++++++ .../python/unittest/test_tvmscript_error_report.py | 50 +- .../python/unittest/test_tvmscript_syntax_sugar.py | 84 ++++ tests/scripts/ci.py | 232 +++++++++ tests/scripts/git_skip_ci.py | 110 ----- tests/scripts/task_ci_setup.sh | 4 +- tests/scripts/task_config_build_arm.sh | 1 + tests/scripts/task_config_build_cpu.sh | 1 + tests/scripts/task_config_build_gpu.sh | 1 + tests/scripts/task_config_build_gpu_other.sh | 1 + tests/scripts/task_config_build_i386.sh | 1 + tests/scripts/task_config_build_qemu.sh | 1 + tests/scripts/task_config_build_wasm.sh | 1 + tests/scripts/task_cpp_unittest.sh | 8 +- tests/scripts/task_lint.sh | 6 +- tests/scripts/task_python_docs.sh | 27 +- 201 files changed, 8537 insertions(+), 2155 deletions(-) copy {apps/hexagon_proxy_rpc/cmake/hexagon => cmake/libs/hexagon_rpc_skel}/CMakeLists.txt (57%) create mode 100644 cmake/utils/Summary.cmake create mode 100644 docs/README.md delete mode 100644 docs/README.txt create mode 100644 gallery/how_to/work_with_microtvm/micro_ethosu.py copy python/tvm/contrib/{target => hexagon}/__init__.py (97%) create mode 100644 python/tvm/contrib/hexagon/build.py rename python/tvm/contrib/{ => hexagon}/hexagon.py (95%) create mode 100644 python/tvm/contrib/hexagon/session.py delete mode 100644 python/tvm/relay/backend/contrib/ethosu/errors.py create mode 100644 python/tvm/testing/tir.py copy python/tvm/tir/usmp/{ => transform}/__init__.py (93%) copy python/tvm/tir/usmp/{analysis => transform}/_ffi_api.py (94%) copy python/tvm/tir/usmp/{analysis/analysis.py => transform/transform.py} (51%) create mode 100644 python/tvm/topi/nn/batch_norm.py create mode 100644 python/tvm/topi/testing/batch_norm.py create mode 100644 src/runtime/hexagon/rpc/android/session.cc copy cmake/modules/contrib/CODEGENC.cmake => src/runtime/hexagon/rpc/android_bash.sh.template (77%) create mode 100644 src/runtime/hexagon/rpc/hexagon/rpc_server.cc copy web/jest.config.js => src/runtime/hexagon/rpc/hexagon_rpc.idl (78%) create mode 100644 src/tir/analysis/device_constraint_utils.cc create mode 100644 src/tir/analysis/device_constraint_utils.h create mode 100644 src/tir/usmp/transform/convert_pool_allocations_to_offsets.cc create mode 100644 tests/cpp/relay/op/memory/on_device_test.cc delete mode 100644 tests/python/contrib/test_ethosu/relay_ir_builder.py copy tests/python/contrib/test_hexagon/{ => rpc}/__init__.py (94%) copy tests/{micro/stm32 => python/contrib/test_hexagon/rpc}/conftest.py (73%) create mode 100644 tests/python/contrib/test_hexagon/rpc/test_launcher.md create mode 100644 tests/python/contrib/test_hexagon/rpc/test_launcher.py create mode 100644 tests/python/tir/analysis/test_device_constraint_utils.py create mode 100644 tests/python/topi/python/test_topi_batch_norm.py delete mode 100644 tests/python/unittest/test_ci.py create mode 100644 tests/python/unittest/test_tir_usmp_transform_convert_pool_allocations_to_offsets.py create mode 100644 tests/scripts/ci.py delete mode 100755 tests/scripts/git_skip_ci.py