You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2020/11/04 14:49:37 UTC

[incubator-tvm-site] branch asf-site updated: Docs build at Wed Nov 4 09:48:50 EST 2020

This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-tvm-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new fd7e59b  Docs build at Wed Nov  4 09:48:50 EST 2020
fd7e59b is described below

commit fd7e59b7e20df0b9617462a9ab8aa7951d704ce2
Author: tqchen <ti...@gmail.com>
AuthorDate: Wed Nov 4 09:48:53 2020 -0500

    Docs build at Wed Nov  4 09:48:50 EST 2020
---
 .../tune_simple_template.py                        |    4 +
 .../tune_simple_template.ipynb                     |    2 +-
 .../matrix_multiply.py                             |   10 +-
 .../tune_conv2d_cuda.ipynb                         |    2 +-
 .../relay_quick_start.ipynb                        |    2 +-
 .../tune_relay_cuda.py                             |    8 +-
 .../tune_relay_mobile_gpu.ipynb                    |    6 +-
 .../tune_conv2d_cuda.py                            |    4 +
 .../matrix_multiply_opt.ipynb                      |    8 +-
 .../from_keras.ipynb                               |    2 +-
 .../tensor_expr_get_started.py                     |    4 +-
 .../deploy_model_on_android.ipynb                  |    4 +-
 .../deploy_model_on_android.py                     |    4 +-
 .../tune_relay_vta.ipynb                           |    6 +-
 .../cross_compilation_and_rpc.ipynb                |    4 +-
 .../deploy_quantized.ipynb                         |    2 +-
 .../deploy_quantized.py                            |    2 +-
 .../tune_relay_vta.py                              |    6 +-
 .../tensorize.ipynb                                |    6 +-
 .../tune_conv2d_layer_cuda.py                      |   12 +-
 .../matrix_multiply_opt.py                         |    8 +-
 .../696dd37904ef92773435ca321ff41bfb/from_onnx.py  |    2 +-
 .../relay_quick_start.py                           |    4 +-
 .../from_pytorch.ipynb                             |    2 +-
 .../tensor_expr_get_started.ipynb                  |    2 +-
 .../tune_relay_cuda.ipynb                          |    6 +-
 .../deploy_prequantized.ipynb                      |    2 +-
 .../deploy_model_on_rasp.py                        |    4 +-
 .../tune_relay_x86.py                              |    4 +
 .../deploy_prequantized.py                         |    2 +-
 .../tune_matmul_x86.py                             |   23 +-
 .../tune_relay_x86.ipynb                           |    2 +-
 .../baa4de13ce6d932de43e0eb5c4cb8f16/tensorize.py  |   10 +-
 .../tune_relay_arm.py                              |    8 +-
 .../vta_get_started.py                             |    6 +-
 .../tune_conv2d_layer_cuda.ipynb                   |   10 +-
 .../deploy_model_on_rasp.ipynb                     |    4 +-
 .../deploy_object_detection_pytorch.ipynb          |    2 +-
 .../deploy_classification.ipynb                    |    4 +-
 .../convolution_opt.ipynb                          |    8 +-
 .../convolution_opt.py                             |   10 +-
 .../micro_tflite.ipynb                             |    2 +-
 .../cross_compilation_and_rpc.py                   |    4 +-
 .../matrix_multiply.ipynb                          |    8 +-
 .../tune_relay_mobile_gpu.py                       |    8 +-
 .../from_onnx.ipynb                                |    2 +-
 .../deploy_object_detection_pytorch.py             |    6 +-
 .../deploy_classification.py                       |    4 +-
 .../tune_matmul_x86.ipynb                          |   10 +-
 .../f59fd8b968f7dcde34ed872c8527c192/from_keras.py |   26 +-
 .../vta_get_started.ipynb                          |    6 +-
 .../from_pytorch.py                                |    6 +-
 .../tune_relay_arm.ipynb                           |    6 +-
 .../micro_tflite.py                                |    2 +-
 docs/_sources/api/python/contrib.rst.txt           |    6 +-
 docs/_sources/contribute/error_handling.rst.txt    |    4 +-
 docs/_sources/dev/convert_layout.rst.txt           |    2 +-
 .../introduction_to_module_serialization.rst.txt   |    4 +-
 docs/_sources/dev/pass_infra.rst.txt               |    6 +-
 .../dev/relay_bring_your_own_codegen.rst.txt       |   12 +-
 .../auto_scheduler/sg_execution_times.rst.txt      |    6 +-
 .../auto_scheduler/tune_conv2d_layer_cuda.rst.txt  |  367 ++--
 .../auto_scheduler/tune_matmul_x86.rst.txt         |   47 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |   16 +-
 .../tutorials/autotvm/tune_conv2d_cuda.rst.txt     |   48 +-
 .../tutorials/autotvm/tune_relay_arm.rst.txt       |    8 +-
 .../tutorials/autotvm/tune_relay_cuda.rst.txt      |    8 +-
 .../autotvm/tune_relay_mobile_gpu.rst.txt          |    8 +-
 .../tutorials/autotvm/tune_relay_x86.rst.txt       |    4 +
 .../tutorials/autotvm/tune_simple_template.rst.txt |   24 +-
 .../tutorials/dev/bring_your_own_datatypes.rst.txt |    8 +-
 .../tutorials/dev/sg_execution_times.rst.txt       |    8 +-
 docs/_sources/tutorials/dev/use_pass_infra.rst.txt |  102 +-
 docs/_sources/tutorials/frontend/build_gcn.rst.txt |    2 -
 .../frontend/deploy_model_on_android.rst.txt       |    6 +-
 .../frontend/deploy_model_on_rasp.rst.txt          |    4 +-
 .../deploy_object_detection_pytorch.rst.txt        |   22 +-
 .../tutorials/frontend/deploy_prequantized.rst.txt |   12 +-
 .../frontend/deploy_prequantized_tflite.rst.txt    |    4 +-
 .../tutorials/frontend/deploy_quantized.rst.txt    |    2 +-
 .../tutorials/frontend/deploy_ssd_gluoncv.rst.txt  |    2 +-
 .../_sources/tutorials/frontend/from_keras.rst.txt |   28 +-
 docs/_sources/tutorials/frontend/from_onnx.rst.txt |    6 +-
 .../tutorials/frontend/from_pytorch.rst.txt        |    6 +-
 .../tutorials/frontend/from_tensorflow.rst.txt     |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |   40 +-
 .../get_started/cross_compilation_and_rpc.rst.txt  |    6 +-
 .../get_started/relay_quick_start.rst.txt          |    6 +-
 .../get_started/sg_execution_times.rst.txt         |   10 +-
 .../get_started/tensor_expr_get_started.rst.txt    |    6 +-
 docs/_sources/tutorials/index.rst.txt              |   18 +-
 docs/_sources/tutorials/language/reduction.rst.txt |    4 +-
 .../tutorials/language/schedule_primitives.rst.txt |   14 +-
 .../tutorials/language/sg_execution_times.rst.txt  |   18 +-
 docs/_sources/tutorials/language/tensorize.rst.txt |   14 +-
 .../tutorials/language/tuple_inputs.rst.txt        |    8 +-
 docs/_sources/tutorials/micro/micro_tflite.rst.txt |    2 +-
 .../tutorials/micro/sg_execution_times.rst.txt     |    4 +-
 .../tutorials/optimize/opt_conv_cuda.rst.txt       |    2 +-
 .../tutorials/optimize/opt_conv_tensorcore.rst.txt |    2 +-
 docs/_sources/tutorials/optimize/opt_gemm.rst.txt  |   24 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |   10 +-
 docs/_sources/tutorials/topi/intro_topi.rst.txt    |    2 +-
 .../tutorials/topi/sg_execution_times.rst.txt      |    4 +-
 docs/_sources/vta/dev/hardware.rst.txt             |   12 +-
 docs/_sources/vta/dev/index.rst.txt                |    2 +-
 docs/_sources/vta/install.rst.txt                  |    2 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    4 +-
 .../vta/tutorials/autotvm/tune_relay_vta.rst.txt   |    8 +-
 .../frontend/deploy_classification.rst.txt         |    8 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    4 +-
 .../_sources/vta/tutorials/matrix_multiply.rst.txt |   14 +-
 .../vta/tutorials/optimize/convolution_opt.rst.txt |   14 +-
 .../tutorials/optimize/matrix_multiply_opt.rst.txt |   16 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../vta/tutorials/sg_execution_times.rst.txt       |    6 +-
 .../_sources/vta/tutorials/vta_get_started.rst.txt |   14 +-
 docs/_static/css/gallery.css                       |  192 ++
 docs/_static/css/tlcpack_theme.css                 | 1054 ++++++++++
 docs/_static/img/close-icon.svg                    |    3 +
 docs/_static/img/downangle.svg                     |    3 +
 docs/_static/img/dropdown-icon.svg                 |    3 +
 docs/_static/img/dwonloaddoc.svg                   |    5 +
 docs/_static/img/hide.svg                          |    3 +
 docs/_static/img/menu-icon.svg                     |    5 +
 docs/_static/img/nextarrow.svg                     |    4 +
 docs/_static/img/note.svg                          |    5 +
 docs/_static/img/pattern.svg                       |  114 ++
 docs/_static/img/prevarrow.svg                     |    4 +
 docs/_static/img/right.svg                         |    3 +
 docs/_static/img/rightangle.svg                    |    3 +
 docs/_static/img/show.svg                          |    4 +
 docs/_static/img/source.svg                        |    5 +
 docs/_static/js/tlcpack_theme.js                   |   42 +
 docs/api/doxygen/algorithm_8h.html                 |    2 +-
 docs/api/doxygen/algorithm_8h__incl.svg            | 1481 +++++++-------
 docs/api/doxygen/analyzer_8h.html                  |    4 +-
 docs/api/doxygen/analyzer_8h__dep__incl.svg        | 1325 +++++++------
 docs/api/doxygen/analyzer_8h__incl.svg             |  862 ++++----
 docs/api/doxygen/annotation_8h.html                |    2 +-
 docs/api/doxygen/annotation_8h__incl.svg           |  756 +++----
 docs/api/doxygen/array__utils_8h.html              |    2 +-
 docs/api/doxygen/array__utils_8h__incl.svg         | 1058 +++++-----
 docs/api/doxygen/attr__registry__map_8h.html       |    2 +-
 docs/api/doxygen/attr__registry__map_8h__incl.svg  |  444 ++---
 .../api/doxygen/attr__registry__map_8h_source.html |    2 +-
 docs/api/doxygen/auto__schedule_8h.html            |    2 +-
 docs/api/doxygen/auto__schedule_8h__incl.svg       |  912 ++++-----
 docs/api/doxygen/auto__scheduler_2feature_8h.html  |    2 +-
 .../doxygen/auto__scheduler_2feature_8h__incl.svg  | 1143 ++++++-----
 docs/api/doxygen/autodiff_8h.html                  |    2 +-
 docs/api/doxygen/autodiff_8h__incl.svg             | 1002 +++++-----
 docs/api/doxygen/base_8h.html                      |    6 +-
 docs/api/doxygen/base_8h__incl.svg                 |  822 ++++----
 docs/api/doxygen/base_8h_source.html               |    2 +-
 docs/api/doxygen/bias__add_8h.html                 |    2 +-
 docs/api/doxygen/bias__add_8h__incl.svg            | 1344 ++++++-------
 docs/api/doxygen/bias__add_8h_source.html          |    2 +-
 docs/api/doxygen/bitserial_8h.html                 |    2 +-
 docs/api/doxygen/bitserial_8h__incl.svg            |  896 ++++-----
 docs/api/doxygen/bound_8h.html                     |    4 +-
 docs/api/doxygen/bound_8h__dep__incl.svg           |  885 +++++----
 docs/api/doxygen/bound_8h__incl.svg                |  870 ++++----
 docs/api/doxygen/broadcast_8h.html                 |    2 +-
 docs/api/doxygen/broadcast_8h__incl.svg            | 1371 +++++++------
 docs/api/doxygen/broadcast_8h_source.html          |    2 +-
 docs/api/doxygen/buffer_8h.html                    |    4 +-
 docs/api/doxygen/buffer_8h__dep__incl.svg          |  927 ++++-----
 docs/api/doxygen/buffer_8h__incl.svg               |  742 +++----
 docs/api/doxygen/builtin_8h.html                   |    2 +-
 docs/api/doxygen/builtin_8h__incl.svg              | 1012 +++++-----
 docs/api/doxygen/bytecode_8h.html                  |    3 +-
 docs/api/doxygen/bytecode_8h__incl.svg             |  139 +-
 docs/api/doxygen/bytecode_8h_source.html           |  100 +-
 docs/api/doxygen/c__runtime__api_8h.html           |   27 +
 docs/api/doxygen/c__runtime__api_8h_source.html    |    5 +-
 docs/api/doxygen/classtvm_1_1BaseExprNode.html     |    4 +-
 docs/api/doxygen/classtvm_1_1BaseFuncNode.html     |    2 +-
 docs/api/doxygen/classtvm_1_1ConstructorNode.html  |    2 +-
 docs/api/doxygen/classtvm_1_1FloatImmNode.html     |    4 +-
 docs/api/doxygen/classtvm_1_1GlobalVarNode.html    |    2 +-
 .../classtvm_1_1IRModuleNode__coll__graph.svg      |   33 +-
 docs/api/doxygen/classtvm_1_1IntImmNode.html       |    4 +-
 docs/api/doxygen/classtvm_1_1OpNode.html           |    2 +-
 docs/api/doxygen/classtvm_1_1PrimExprNode.html     |    6 +-
 .../classtvm_1_1PrimExpr__inherit__graph.svg       |   25 +-
 docs/api/doxygen/classtvm_1_1RelayExprNode.html    |    2 +-
 .../classtvm_1_1arith_1_1ConstraintContext.html    |    2 +-
 .../doxygen/classtvm_1_1arith_1_1IterMapExpr.html  |    2 +-
 .../classtvm_1_1arith_1_1IterMapExprNode.html      |    4 +-
 ...tvm_1_1arith_1_1IterMapExpr__inherit__graph.svg |  117 +-
 ...classtvm_1_1arith_1_1IterSplitExpr-members.html |   17 +-
 .../classtvm_1_1arith_1_1IterSplitExpr.html        |   50 +-
 .../classtvm_1_1arith_1_1IterSplitExprNode.html    |    4 +-
 ...stvm_1_1arith_1_1IterSplitExpr__coll__graph.svg |   93 +-
 ...m_1_1arith_1_1IterSplitExpr__inherit__graph.svg |   93 +-
 .../classtvm_1_1arith_1_1IterSumExprNode.html      |    4 +-
 ...1auto__scheduler_1_1AnnotationStep-members.html |    3 +-
 ...sstvm_1_1auto__scheduler_1_1AnnotationStep.html |   11 +-
 ...o__scheduler_1_1AnnotationStepNode-members.html |    2 +-
 ...m_1_1auto__scheduler_1_1AnnotationStepNode.html |    8 +-
 ...o__scheduler_1_1AnnotationStep__coll__graph.svg |   45 +-
 ...scheduler_1_1AnnotationStep__inherit__graph.svg |   45 +-
 ..._1auto__scheduler_1_1CacheReadStep-members.html |    3 +-
 ...asstvm_1_1auto__scheduler_1_1CacheReadStep.html |   11 +-
 ...to__scheduler_1_1CacheReadStepNode-members.html |    2 +-
 ...vm_1_1auto__scheduler_1_1CacheReadStepNode.html |    8 +-
 ...to__scheduler_1_1CacheReadStep__coll__graph.svg |   45 +-
 ..._scheduler_1_1CacheReadStep__inherit__graph.svg |   45 +-
 ...1auto__scheduler_1_1CacheWriteStep-members.html |    3 +-
 ...sstvm_1_1auto__scheduler_1_1CacheWriteStep.html |   11 +-
 ...o__scheduler_1_1CacheWriteStepNode-members.html |    2 +-
 ...m_1_1auto__scheduler_1_1CacheWriteStepNode.html |    8 +-
 ...o__scheduler_1_1CacheWriteStep__coll__graph.svg |   45 +-
 ...scheduler_1_1CacheWriteStep__inherit__graph.svg |   45 +-
 ..._1auto__scheduler_1_1ComputeAtStep-members.html |    3 +-
 ...asstvm_1_1auto__scheduler_1_1ComputeAtStep.html |   11 +-
 ...to__scheduler_1_1ComputeAtStepNode-members.html |    2 +-
 ...vm_1_1auto__scheduler_1_1ComputeAtStepNode.html |    8 +-
 ...to__scheduler_1_1ComputeAtStep__coll__graph.svg |   45 +-
 ..._scheduler_1_1ComputeAtStep__inherit__graph.svg |   45 +-
 ...m_1_1auto__scheduler_1_1ComputeDAG-members.html |    4 +-
 .../classtvm_1_1auto__scheduler_1_1ComputeDAG.html |   40 +-
 ...to__scheduler_1_1ComputeInlineStep-members.html |    3 +-
 ...vm_1_1auto__scheduler_1_1ComputeInlineStep.html |   11 +-
 ...scheduler_1_1ComputeInlineStepNode-members.html |    2 +-
 ..._1auto__scheduler_1_1ComputeInlineStepNode.html |    8 +-
 ...scheduler_1_1ComputeInlineStep__coll__graph.svg |   45 +-
 ...eduler_1_1ComputeInlineStep__inherit__graph.svg |   45 +-
 ...auto__scheduler_1_1ComputeRootStep-members.html |    3 +-
 ...stvm_1_1auto__scheduler_1_1ComputeRootStep.html |   11 +-
 ...__scheduler_1_1ComputeRootStepNode-members.html |    2 +-
 ..._1_1auto__scheduler_1_1ComputeRootStepNode.html |    8 +-
 ...__scheduler_1_1ComputeRootStep__coll__graph.svg |   45 +-
 ...cheduler_1_1ComputeRootStep__inherit__graph.svg |   45 +-
 ..._scheduler_1_1FollowFusedSplitStep-members.html |    7 +-
 ...1_1auto__scheduler_1_1FollowFusedSplitStep.html |   11 +-
 ...eduler_1_1FollowFusedSplitStepNode-members.html |    2 +-
 ...uto__scheduler_1_1FollowFusedSplitStepNode.html |    8 +-
 ...eduler_1_1FollowFusedSplitStep__coll__graph.svg |   45 +-
 ...ler_1_1FollowFusedSplitStep__inherit__graph.svg |   45 +-
 ...auto__scheduler_1_1FollowSplitStep-members.html |    7 +-
 ...stvm_1_1auto__scheduler_1_1FollowSplitStep.html |   11 +-
 ...__scheduler_1_1FollowSplitStepNode-members.html |    2 +-
 ..._1_1auto__scheduler_1_1FollowSplitStepNode.html |    8 +-
 ...__scheduler_1_1FollowSplitStep__coll__graph.svg |   45 +-
 ...cheduler_1_1FollowSplitStep__inherit__graph.svg |   45 +-
 ...tvm_1_1auto__scheduler_1_1FuseStep-members.html |    7 +-
 .../classtvm_1_1auto__scheduler_1_1FuseStep.html   |   11 +-
 ...1_1auto__scheduler_1_1FuseStepNode-members.html |    2 +-
 ...lasstvm_1_1auto__scheduler_1_1FuseStepNode.html |    8 +-
 ...1_1auto__scheduler_1_1FuseStep__coll__graph.svg |   45 +-
 ...auto__scheduler_1_1FuseStep__inherit__graph.svg |   45 +-
 ...m_1_1auto__scheduler_1_1PragmaStep-members.html |    7 +-
 .../classtvm_1_1auto__scheduler_1_1PragmaStep.html |   11 +-
 ...1auto__scheduler_1_1PragmaStepNode-members.html |    2 +-
 ...sstvm_1_1auto__scheduler_1_1PragmaStepNode.html |    8 +-
 ...1auto__scheduler_1_1PragmaStep__coll__graph.svg |   45 +-
 ...to__scheduler_1_1PragmaStep__inherit__graph.svg |   45 +-
 ..._1_1auto__scheduler_1_1ReorderStep-members.html |    7 +-
 ...classtvm_1_1auto__scheduler_1_1ReorderStep.html |   11 +-
 ...auto__scheduler_1_1ReorderStepNode-members.html |    2 +-
 ...stvm_1_1auto__scheduler_1_1ReorderStepNode.html |    8 +-
 ...auto__scheduler_1_1ReorderStep__coll__graph.svg |   45 +-
 ...o__scheduler_1_1ReorderStep__inherit__graph.svg |   45 +-
 ..._1_1auto__scheduler_1_1RfactorStep-members.html |    7 +-
 ...classtvm_1_1auto__scheduler_1_1RfactorStep.html |   11 +-
 ...auto__scheduler_1_1RfactorStepNode-members.html |    2 +-
 ...stvm_1_1auto__scheduler_1_1RfactorStepNode.html |    8 +-
 ...auto__scheduler_1_1RfactorStep__coll__graph.svg |   45 +-
 ...o__scheduler_1_1RfactorStep__inherit__graph.svg |   45 +-
 ...vm_1_1auto__scheduler_1_1SplitStep-members.html |    7 +-
 .../classtvm_1_1auto__scheduler_1_1SplitStep.html  |   11 +-
 ..._1auto__scheduler_1_1SplitStepNode-members.html |    2 +-
 ...asstvm_1_1auto__scheduler_1_1SplitStepNode.html |    8 +-
 ..._1auto__scheduler_1_1SplitStep__coll__graph.svg |   45 +-
 ...uto__scheduler_1_1SplitStep__inherit__graph.svg |   45 +-
 ...lasstvm_1_1auto__scheduler_1_1Step-members.html |    3 +-
 .../classtvm_1_1auto__scheduler_1_1Step.html       |   33 +-
 ...tvm_1_1auto__scheduler_1_1Step__coll__graph.svg |   41 +-
 ..._1_1auto__scheduler_1_1Step__inherit__graph.svg |   97 +-
 ...uto__scheduler_1_1StorageAlignStep-members.html |    7 +-
 ...tvm_1_1auto__scheduler_1_1StorageAlignStep.html |   11 +-
 ..._scheduler_1_1StorageAlignStepNode-members.html |    2 +-
 ...1_1auto__scheduler_1_1StorageAlignStepNode.html |    8 +-
 ..._scheduler_1_1StorageAlignStep__coll__graph.svg |   45 +-
 ...heduler_1_1StorageAlignStep__inherit__graph.svg |   45 +-
 .../classtvm_1_1parser_1_1SourceMap-members.html   |   11 +-
 .../doxygen/classtvm_1_1parser_1_1SourceMap.html   |   33 +-
 ...lasstvm_1_1parser_1_1SourceMap__coll__graph.svg |   45 +-
 ...stvm_1_1parser_1_1SourceMap__inherit__graph.svg |   45 +-
 .../api/doxygen/classtvm_1_1relay_1_1CallNode.html |    2 +-
 .../doxygen/classtvm_1_1relay_1_1ConstantNode.html |    2 +-
 .../doxygen/classtvm_1_1relay_1_1FunctionNode.html |    2 +-
 docs/api/doxygen/classtvm_1_1relay_1_1IfNode.html  |    2 +-
 docs/api/doxygen/classtvm_1_1relay_1_1LetNode.html |    2 +-
 .../doxygen/classtvm_1_1relay_1_1MatchNode.html    |    2 +-
 .../classtvm_1_1relay_1_1RefCreateNode.html        |    2 +-
 .../doxygen/classtvm_1_1relay_1_1RefReadNode.html  |    2 +-
 .../doxygen/classtvm_1_1relay_1_1RefWriteNode.html |    2 +-
 .../doxygen/classtvm_1_1relay_1_1TempExprNode.html |    2 +-
 .../classtvm_1_1relay_1_1TupleGetItemNode.html     |    2 +-
 .../doxygen/classtvm_1_1relay_1_1TupleNode.html    |    2 +-
 docs/api/doxygen/classtvm_1_1relay_1_1VarNode.html |    2 +-
 .../doxygen/classtvm_1_1runtime_1_1Optional.html   |    2 +-
 .../classtvm_1_1runtime_1_1TVMArgValue.html        |    2 +-
 ...m_1_1runtime_1_1TVMArgValue__inherit__graph.svg |  103 +-
 ...1_1runtime_1_1TVMMovableArgValue__-members.html |   30 +-
 ...lasstvm_1_1runtime_1_1TVMMovableArgValue__.html |  155 +-
 ...untime_1_1TVMMovableArgValue____coll__graph.svg |  133 +-
 ...ime_1_1TVMMovableArgValue____inherit__graph.svg |  105 +-
 .../classtvm_1_1runtime_1_1TVMPODValue__.html      |    2 +-
 ...1_1runtime_1_1TVMPODValue____inherit__graph.svg |  168 +-
 ...1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html |    6 +-
 docs/api/doxygen/classtvm_1_1tir_1_1AddNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1AndNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1AnyNode.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1BinaryOpNode.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1BroadcastNode.html  |    4 +-
 .../doxygen/classtvm_1_1tir_1_1BufferLoadNode.html |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1CallNode.html  |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1CastNode.html  |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1CmpOpNode.html |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1DivNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1EQNode.html    |    4 +-
 .../doxygen/classtvm_1_1tir_1_1ExprFunctor.html    |    2 +-
 .../doxygen/classtvm_1_1tir_1_1FloorDivNode.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1FloorModNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1GENode.html    |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1GTNode.html    |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1LTNode.html    |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1LetNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1LoadNode.html  |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1MaxNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1MinNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1ModNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1MulNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1NENode.html    |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1NotNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1OrNode.html    |    4 +-
 .../doxygen/classtvm_1_1tir_1_1PrimFuncNode.html   |    2 +-
 .../classtvm_1_1tir_1_1ProducerLoadNode.html       |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1RampNode.html  |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1ReduceNode.html |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1SelectNode.html |    4 +-
 .../doxygen/classtvm_1_1tir_1_1ShuffleNode.html    |    4 +-
 .../doxygen/classtvm_1_1tir_1_1SizeVarNode.html    |    4 +-
 .../doxygen/classtvm_1_1tir_1_1StringImmNode.html  |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1SubNode.html   |    4 +-
 docs/api/doxygen/classtvm_1_1tir_1_1VarNode.html   |    4 +-
 docs/api/doxygen/codegen_8h.html                   |    2 +-
 docs/api/doxygen/codegen_8h__incl.svg              |  944 ++++-----
 docs/api/doxygen/codegen_8h_source.html            |    2 +-
 docs/api/doxygen/compute__dag_8h.html              |   12 +-
 docs/api/doxygen/compute__dag_8h__incl.svg         |  914 ++++-----
 docs/api/doxygen/compute__dag_8h_source.html       |    6 +-
 docs/api/doxygen/constant__utils_8h.html           |    4 +-
 docs/api/doxygen/constant__utils_8h__dep__incl.svg |  177 +-
 docs/api/doxygen/constant__utils_8h__incl.svg      | 1511 +++++++-------
 docs/api/doxygen/constant__utils_8h_source.html    |    2 +-
 docs/api/doxygen/cost__model_8h.html               |    2 +-
 docs/api/doxygen/cost__model_8h__incl.svg          |  906 ++++-----
 docs/api/doxygen/cublas_8h.html                    |    2 +-
 docs/api/doxygen/cublas_8h__incl.svg               | 2028 ++++++++++---------
 docs/api/doxygen/cuda_2dense_8h.html               |    2 +-
 docs/api/doxygen/cuda_2dense_8h__incl.svg          | 1331 +++++++------
 docs/api/doxygen/cuda_2dense_8h_source.html        |    2 +-
 docs/api/doxygen/cuda_2injective_8h.html           |    2 +-
 docs/api/doxygen/cuda_2injective_8h__incl.svg      | 1353 +++++++------
 docs/api/doxygen/cuda_2normalization_8h.html       |    2 +-
 docs/api/doxygen/cuda_2normalization_8h__incl.svg  | 1351 +++++++------
 docs/api/doxygen/cuda_2pooling_8h.html             |    2 +-
 docs/api/doxygen/cuda_2pooling_8h__incl.svg        | 1369 +++++++------
 docs/api/doxygen/cuda_2reduction_8h.html           |    2 +-
 docs/api/doxygen/cuda_2reduction_8h__incl.svg      | 1353 +++++++------
 docs/api/doxygen/cuda_2reduction_8h_source.html    |    2 +-
 docs/api/doxygen/cuda_2softmax_8h.html             |    2 +-
 docs/api/doxygen/cuda_2softmax_8h__incl.svg        | 1353 +++++++------
 docs/api/doxygen/data__layout_8h.html              |    2 +-
 docs/api/doxygen/data__layout_8h__incl.svg         | 1002 +++++-----
 docs/api/doxygen/data__layout_8h_source.html       |    4 +-
 docs/api/doxygen/data__type_8h.html                |    6 +-
 docs/api/doxygen/data__type_8h__incl.svg           |  104 +-
 docs/api/doxygen/data__type_8h_source.html         |    2 +-
 docs/api/doxygen/dataflow__matcher_8h__incl.svg    | 1088 +++++-----
 docs/api/doxygen/dataflow__pattern_8h__incl.svg    | 1092 +++++-----
 .../dataflow__pattern__functor_8h__incl.svg        | 1094 +++++-----
 .../dataflow__pattern__functor_8h_source.html      |    2 +-
 docs/api/doxygen/debug_8h.html                     |    2 +-
 docs/api/doxygen/debug_8h__incl.svg                |  788 ++++----
 docs/api/doxygen/detail_2broadcast_8h.html         |    4 +-
 .../doxygen/detail_2broadcast_8h__dep__incl.svg    |  105 +-
 docs/api/doxygen/detail_2broadcast_8h__incl.svg    | 1445 +++++++-------
 docs/api/doxygen/detail_2broadcast_8h_source.html  |    4 +-
 docs/api/doxygen/detail_2extern_8h.html            |    2 +-
 docs/api/doxygen/detail_2extern_8h__incl.svg       | 1413 +++++++------
 docs/api/doxygen/detail_2extern_8h_source.html     |    4 +-
 docs/api/doxygen/device__api_8h.html               |    2 +-
 docs/api/doxygen/device__api_8h__incl.svg          |  410 ++--
 docs/api/doxygen/device__api_8h_source.html        |    2 +-
 docs/api/doxygen/device__copy_8h.html              |    2 +-
 docs/api/doxygen/device__copy_8h__incl.svg         |  756 +++----
 docs/api/doxygen/diagnostic_8h.html                |    4 +-
 docs/api/doxygen/diagnostic_8h__dep__incl.svg      |  839 ++++----
 docs/api/doxygen/diagnostic_8h__incl.svg           |  918 ++++-----
 docs/api/doxygen/diagnostic_8h_source.html         |    2 +-
 docs/api/doxygen/dilate_8h.html                    |    2 +-
 docs/api/doxygen/dilate_8h__incl.svg               | 1040 +++++-----
 docs/api/doxygen/dilate_8h_source.html             |    2 +-
 docs/api/doxygen/dir_000002_000008.html            |    2 +-
 .../dir_194ecda214f05a38134392ac6a69b970_dep.svg   |    4 +-
 .../dir_1f1b12d204a071c9e67e47fcbb552b86_dep.svg   |    4 +-
 .../dir_8e4e25e66b8623d88c5b5dd2040bca97_dep.svg   |    4 +-
 .../dir_b4c7d8e826c599ba55146c099a14beb5_dep.svg   |    4 +-
 .../dir_f97d855a3173728370e632aa77170e34_dep.svg   |    4 +-
 docs/api/doxygen/driver__api_8h.html               |    2 +-
 docs/api/doxygen/driver__api_8h__incl.svg          |  928 ++++-----
 docs/api/doxygen/elemwise_8h.html                  |    2 +-
 docs/api/doxygen/elemwise_8h__incl.svg             | 1665 ++++++++--------
 docs/api/doxygen/elemwise_8h_source.html           |    4 +-
 docs/api/doxygen/env__func_8h.html                 |    2 +-
 docs/api/doxygen/env__func_8h__incl.svg            |  564 +++---
 docs/api/doxygen/env__func_8h_source.html          |    4 +-
 docs/api/doxygen/error_8h.html                     |    4 +-
 docs/api/doxygen/error_8h__dep__incl.svg           |  253 +--
 docs/api/doxygen/error_8h__incl.svg                |  914 ++++-----
 docs/api/doxygen/executable_8h.html                |    2 +-
 docs/api/doxygen/executable_8h__incl.svg           |  463 ++---
 docs/api/doxygen/flatten_8h.html                   |    2 +-
 docs/api/doxygen/flatten_8h__incl.svg              | 1447 +++++++-------
 docs/api/doxygen/functions_a.html                  |    2 +-
 docs/api/doxygen/functions_c.html                  |    5 +-
 docs/api/doxygen/functions_func_a.html             |    2 +-
 docs/api/doxygen/functions_func_c.html             |    7 +-
 docs/api/doxygen/functions_func_g.html             |    3 +-
 docs/api/doxygen/functions_func_i.html             |    6 +-
 docs/api/doxygen/functions_func_o.html             |   37 +-
 docs/api/doxygen/functions_func_r.html             |    2 +-
 docs/api/doxygen/functions_func_s.html             |    2 +-
 docs/api/doxygen/functions_func_t.html             |   38 +-
 docs/api/doxygen/functions_g.html                  |    3 +-
 docs/api/doxygen/functions_i.html                  |    6 +-
 docs/api/doxygen/functions_o.html                  |   37 +-
 docs/api/doxygen/functions_r.html                  |    4 +-
 docs/api/doxygen/functions_s.html                  |    4 +-
 docs/api/doxygen/functions_t.html                  |   38 +-
 docs/api/doxygen/functions_v.html                  |    4 +-
 docs/api/doxygen/functor_8h_source.html            |    2 +-
 docs/api/doxygen/fuse_8h.html                      |    2 +-
 docs/api/doxygen/fuse_8h__incl.svg                 | 1058 +++++-----
 docs/api/doxygen/generic_2default_8h.html          |    2 +-
 docs/api/doxygen/generic_2default_8h__incl.svg     | 1353 +++++++------
 docs/api/doxygen/generic_2extern_8h.html           |    2 +-
 docs/api/doxygen/generic_2extern_8h__incl.svg      | 1391 +++++++------
 docs/api/doxygen/generic_2injective_8h.html        |    2 +-
 docs/api/doxygen/generic_2injective_8h__incl.svg   | 1353 +++++++------
 docs/api/doxygen/generic__func_8h.html             |    2 +-
 docs/api/doxygen/generic__func_8h__incl.svg        |  742 +++----
 docs/api/doxygen/generic__func_8h_source.html      |    4 +-
 docs/api/doxygen/globals_func.html                 |    3 +
 docs/api/doxygen/globals_t.html                    |    3 +
 docs/api/doxygen/hierarchy.html                    |    6 +-
 docs/api/doxygen/image_8h.html                     |    2 +-
 docs/api/doxygen/image_8h__incl.svg                |  896 ++++-----
 docs/api/doxygen/inherit_graph_123.svg             |   52 +-
 docs/api/doxygen/inherits.html                     |    2 +-
 docs/api/doxygen/int__set_8h.html                  |    4 +-
 docs/api/doxygen/int__set_8h__dep__incl.svg        | 1388 ++++++-------
 docs/api/doxygen/int__set_8h__incl.svg             |  772 ++++----
 docs/api/doxygen/int__solver_8h.html               |    2 +-
 docs/api/doxygen/int__solver_8h__incl.svg          | 1006 +++++-----
 docs/api/doxygen/interpreter_8h.html               |    2 +-
 docs/api/doxygen/interpreter_8h__incl.svg          | 1004 +++++-----
 docs/api/doxygen/ir_2adt_8h.html                   |    4 +-
 docs/api/doxygen/ir_2adt_8h__dep__incl.svg         |  859 ++++----
 docs/api/doxygen/ir_2adt_8h__incl.svg              |  730 +++----
 docs/api/doxygen/ir_2attrs_8h.html                 |    2 +-
 docs/api/doxygen/ir_2attrs_8h__incl.svg            |  750 +++----
 docs/api/doxygen/ir_2attrs_8h_source.html          |    6 +-
 docs/api/doxygen/ir_2expr_8h.html                  |    4 +-
 docs/api/doxygen/ir_2expr_8h__dep__incl.svg        |  984 ++++-----
 docs/api/doxygen/ir_2expr_8h__incl.svg             |  698 +++----
 docs/api/doxygen/ir_2expr_8h_source.html           |    6 +-
 docs/api/doxygen/ir_2function_8h.html              |    2 +-
 docs/api/doxygen/ir_2function_8h__dep__incl.svg    |    2 +-
 docs/api/doxygen/ir_2function_8h__incl.svg         |  778 ++++----
 docs/api/doxygen/ir_2module_8h.html                |    4 +-
 docs/api/doxygen/ir_2module_8h__dep__incl.svg      |  865 ++++----
 docs/api/doxygen/ir_2module_8h__incl.svg           |  910 ++++-----
 docs/api/doxygen/ir_2module_8h_source.html         |    2 +-
 docs/api/doxygen/ir_2op_8h__incl.svg               |  966 ++++-----
 docs/api/doxygen/ir_2op_8h_source.html             |    4 +-
 docs/api/doxygen/ir_2transform_8h.html             |    4 +-
 docs/api/doxygen/ir_2transform_8h__dep__incl.svg   |  221 ++-
 docs/api/doxygen/ir_2transform_8h__incl.svg        |  930 ++++-----
 docs/api/doxygen/ir_2transform_8h_source.html      |    2 +-
 docs/api/doxygen/ir_2type_8h.html                  |    4 +-
 docs/api/doxygen/ir_2type_8h__dep__incl.svg        |  926 ++++-----
 docs/api/doxygen/ir_2type_8h__incl.svg             |  662 +++----
 docs/api/doxygen/iter__affine__map_8h.html         |    6 +-
 docs/api/doxygen/iter__affine__map_8h__incl.svg    | 1714 +++++++++-------
 docs/api/doxygen/iter__affine__map_8h_source.html  |   58 +-
 docs/api/doxygen/local__response__norm_8h.html     |    2 +-
 .../api/doxygen/local__response__norm_8h__incl.svg | 2024 ++++++++++---------
 .../doxygen/local__response__norm_8h_source.html   |    2 +-
 docs/api/doxygen/loop__state_8h.html               |    2 +-
 docs/api/doxygen/loop__state_8h__incl.svg          |  930 ++++-----
 docs/api/doxygen/loop__state_8h_source.html        |    4 +-
 docs/api/doxygen/mapping_8h.html                   |    2 +-
 docs/api/doxygen/mapping_8h__incl.svg              | 2024 ++++++++++---------
 docs/api/doxygen/measure_8h__incl.svg              |  908 ++++-----
 docs/api/doxygen/measure_8h_source.html            |    2 +-
 docs/api/doxygen/measure__record_8h.html           |    2 +-
 docs/api/doxygen/measure__record_8h__incl.svg      |  896 ++++-----
 docs/api/doxygen/memory__manager_8h.html           |    2 +-
 docs/api/doxygen/memory__manager_8h__incl.svg      |  271 ++-
 docs/api/doxygen/memory__manager_8h_source.html    |    2 +-
 docs/api/doxygen/namespacemembers_enum.html        |    3 +
 docs/api/doxygen/namespacemembers_f.html           |    2 +-
 docs/api/doxygen/namespacemembers_l.html           |   11 +-
 docs/api/doxygen/namespacemembers_type.html        |    2 +-
 .../doxygen/namespacetvm_1_1auto__scheduler.html   |   40 +
 docs/api/doxygen/namespacetvm_1_1relay.html        |   13 +-
 docs/api/doxygen/ndarray_8h.html                   |    2 +-
 docs/api/doxygen/ndarray_8h__incl.svg              |  239 ++-
 docs/api/doxygen/ndarray_8h_source.html            |    8 +-
 docs/api/doxygen/nn_2bnn_8h.html                   |    2 +-
 docs/api/doxygen/nn_2bnn_8h__incl.svg              | 1094 +++++-----
 docs/api/doxygen/nn_2bnn_8h_source.html            |    4 +-
 docs/api/doxygen/nn_2dense_8h.html                 |    2 +-
 docs/api/doxygen/nn_2dense_8h__incl.svg            | 2024 ++++++++++---------
 docs/api/doxygen/nn_2dense_8h_source.html          |    4 +-
 docs/api/doxygen/nn_2pooling_8h.html               |    2 +-
 docs/api/doxygen/nn_2pooling_8h__incl.svg          | 1390 ++++++-------
 docs/api/doxygen/nn_2pooling_8h_source.html        |    2 +-
 docs/api/doxygen/nn_2softmax_8h.html               |    2 +-
 docs/api/doxygen/nn_2softmax_8h__incl.svg          | 1364 ++++++-------
 docs/api/doxygen/nn_2softmax_8h_source.html        |    2 +-
 docs/api/doxygen/node_2container_8h.html           |    4 +-
 docs/api/doxygen/node_2container_8h__dep__incl.svg |  998 +++++-----
 docs/api/doxygen/node_2container_8h__incl.svg      |  426 ++--
 docs/api/doxygen/node_2container_8h_source.html    |    2 +-
 docs/api/doxygen/node_8h.html                      |    4 +-
 docs/api/doxygen/node_8h__dep__incl.svg            |  922 ++++-----
 docs/api/doxygen/node_8h__incl.svg                 |  618 +++---
 docs/api/doxygen/object_8h.html                    |    2 +-
 docs/api/doxygen/object_8h__dep__incl.svg          | 1188 +++++------
 docs/api/doxygen/object_8h_source.html             |    4 +-
 docs/api/doxygen/operation_8h__dep__incl.svg       |  315 +--
 docs/api/doxygen/operation_8h__incl.svg            | 1050 +++++-----
 docs/api/doxygen/operation_8h_source.html          |    2 +-
 docs/api/doxygen/packed__func_8h.html              |   10 +-
 docs/api/doxygen/packed__func_8h__incl.svg         |  394 ++--
 docs/api/doxygen/packed__func_8h_source.html       |  128 +-
 docs/api/doxygen/pad__utils_8h.html                |    2 +-
 docs/api/doxygen/pad__utils_8h__incl.svg           | 1070 +++++-----
 docs/api/doxygen/parser_8h.html                    |    2 +-
 docs/api/doxygen/parser_8h__incl.svg               |  440 ++--
 docs/api/doxygen/pattern_8h.html                   |    2 +-
 docs/api/doxygen/pattern_8h__incl.svg              |  818 ++++----
 docs/api/doxygen/pattern__functor_8h.html          |    2 +-
 docs/api/doxygen/pattern__functor_8h__incl.svg     | 1082 +++++-----
 docs/api/doxygen/pattern__functor_8h_source.html   |    2 +-
 docs/api/doxygen/ravel__unravel_8h.html            |    2 +-
 docs/api/doxygen/ravel__unravel_8h__incl.svg       | 1054 +++++-----
 docs/api/doxygen/ravel__unravel_8h_source.html     |    4 +-
 docs/api/doxygen/reduce_8h.html                    |    2 +-
 docs/api/doxygen/reduce_8h__incl.svg               |  756 +++----
 docs/api/doxygen/reduction_8h.html                 |    2 +-
 docs/api/doxygen/reduction_8h__incl.svg            |  991 ++++-----
 docs/api/doxygen/reduction_8h_source.html          |    2 +-
 docs/api/doxygen/reflection_8h.html                |    4 +-
 docs/api/doxygen/reflection_8h__dep__incl.svg      |  910 ++++-----
 docs/api/doxygen/reflection_8h__incl.svg           |  546 ++---
 docs/api/doxygen/reflection_8h_source.html         |    2 +-
 docs/api/doxygen/registry_8h.html                  |    2 +-
 docs/api/doxygen/registry_8h__incl.svg             |  416 ++--
 docs/api/doxygen/relay_2adt_8h.html                |    2 +-
 docs/api/doxygen/relay_2adt_8h__incl.svg           | 1134 +++++------
 docs/api/doxygen/relay_2analysis_8h__incl.svg      | 1487 +++++++-------
 docs/api/doxygen/relay_2attrs_2memory_8h__incl.svg | 1092 +++++-----
 docs/api/doxygen/relay_2attrs_2nn_8h.html          |    2 +-
 docs/api/doxygen/relay_2attrs_2nn_8h__incl.svg     |  898 ++++-----
 docs/api/doxygen/relay_2attrs_2transform_8h.html   |    2 +-
 .../doxygen/relay_2attrs_2transform_8h__incl.svg   | 1481 +++++++-------
 docs/api/doxygen/relay_2attrs_2vm_8h.html          |    2 +-
 docs/api/doxygen/relay_2attrs_2vm_8h__incl.svg     |  758 +++----
 docs/api/doxygen/relay_2expr_8h.html               |    2 +-
 docs/api/doxygen/relay_2expr_8h__incl.svg          | 1084 +++++-----
 docs/api/doxygen/relay_2expr__functor_8h.html      |    2 +-
 docs/api/doxygen/relay_2expr__functor_8h__incl.svg | 1066 +++++-----
 .../doxygen/relay_2expr__functor_8h_source.html    |    2 +-
 docs/api/doxygen/relay_2feature_8h__incl.svg       |  986 ++++-----
 docs/api/doxygen/relay_2function_8h__incl.svg      | 1431 +++++++------
 docs/api/doxygen/relay_2op_8h.html                 |    2 +-
 docs/api/doxygen/relay_2op_8h__incl.svg            | 1100 +++++-----
 docs/api/doxygen/relay_2op__attr__types_8h.html    |    6 +-
 .../doxygen/relay_2op__attr__types_8h_source.html  |    8 +-
 docs/api/doxygen/relay_2qnn_2attrs_8h.html         |    2 +-
 docs/api/doxygen/relay_2qnn_2attrs_8h__incl.svg    |  756 +++----
 docs/api/doxygen/relay_2type_8h.html               |    2 +-
 docs/api/doxygen/relay_2type_8h__incl.svg          | 1058 +++++-----
 docs/api/doxygen/reorg_8h.html                     |    2 +-
 docs/api/doxygen/reorg_8h__incl.svg                | 1025 +++++-----
 docs/api/doxygen/reorg_8h_source.html              |    2 +-
 docs/api/doxygen/repr__printer_8h.html             |    2 +-
 docs/api/doxygen/repr__printer_8h__dep__incl.svg   |  914 ++++-----
 docs/api/doxygen/rocblas_8h.html                   |    2 +-
 docs/api/doxygen/rocblas_8h__incl.svg              | 2028 ++++++++++---------
 docs/api/doxygen/rocm_2dense_8h.html               |    2 +-
 docs/api/doxygen/rocm_2dense_8h__incl.svg          | 1365 +++++++------
 docs/api/doxygen/rocm_2dense_8h_source.html        |    2 +-
 docs/api/doxygen/rocm_2injective_8h.html           |    2 +-
 docs/api/doxygen/rocm_2injective_8h__incl.svg      | 1359 +++++++------
 docs/api/doxygen/rocm_2normalization_8h.html       |    2 +-
 docs/api/doxygen/rocm_2normalization_8h__incl.svg  | 1321 ++++++------
 docs/api/doxygen/rocm_2pooling_8h.html             |    2 +-
 docs/api/doxygen/rocm_2pooling_8h__incl.svg        | 1375 +++++++------
 docs/api/doxygen/rocm_2reduction_8h.html           |    2 +-
 docs/api/doxygen/rocm_2reduction_8h__incl.svg      | 1359 +++++++------
 docs/api/doxygen/rocm_2softmax_8h.html             |    2 +-
 docs/api/doxygen/rocm_2softmax_8h__incl.svg        | 1359 +++++++------
 .../doxygen/runtime_2container_8h__dep__incl.svg   |    2 +-
 docs/api/doxygen/runtime_2container_8h_source.html |    2 +-
 docs/api/doxygen/runtime_2memory_8h.html           |    2 +-
 docs/api/doxygen/runtime_2memory_8h__dep__incl.svg | 1022 +++++-----
 docs/api/doxygen/runtime_2module_8h.html           |    2 +-
 docs/api/doxygen/runtime_2module_8h__incl.svg      |  396 ++--
 docs/api/doxygen/runtime_2module_8h_source.html    |    2 +-
 docs/api/doxygen/runtime_2vm_2vm_8h.html           |    2 +-
 docs/api/doxygen/runtime_2vm_2vm_8h__incl.svg      |  615 +++---
 docs/api/doxygen/runtime_2vm_2vm_8h_source.html    |    6 +-
 docs/api/doxygen/schedule_8h.html                  |    4 +-
 docs/api/doxygen/schedule_8h__dep__incl.svg        |  879 ++++----
 docs/api/doxygen/schedule_8h__incl.svg             |  986 ++++-----
 docs/api/doxygen/schedule__pass_8h__incl.svg       | 1136 +++++------
 docs/api/doxygen/search/all_1.js                   |    2 +-
 docs/api/doxygen/search/all_10.js                  |    2 +-
 docs/api/doxygen/search/all_12.js                  |    7 +-
 docs/api/doxygen/search/all_13.js                  |   12 +-
 docs/api/doxygen/search/all_14.js                  |   25 +-
 docs/api/doxygen/search/all_16.js                  |    2 +-
 docs/api/doxygen/search/all_3.js                   |    2 +-
 docs/api/doxygen/search/all_6.js                   |    2 +-
 docs/api/doxygen/search/all_7.js                   |    2 +-
 docs/api/doxygen/search/all_9.js                   |   11 +-
 docs/api/doxygen/search/all_c.js                   |    3 +-
 docs/api/doxygen/search/all_e.js                   |    1 +
 docs/api/doxygen/search/all_f.js                   |   11 +-
 docs/api/doxygen/search/enums_7.js                 |    3 +-
 docs/api/doxygen/search/enums_8.js                 |    4 +-
 docs/api/doxygen/search/enums_9.js                 |    3 +-
 docs/api/doxygen/search/enums_a.js                 |    3 +-
 docs/api/doxygen/search/enums_b.js                 |    9 +-
 docs/api/doxygen/search/enums_c.html               |   26 +
 docs/api/doxygen/search/{enums_b.js => enums_c.js} |    0
 docs/api/doxygen/search/enumvalues_4.js            |    1 +
 docs/api/doxygen/search/enumvalues_8.js            |    3 +-
 docs/api/doxygen/search/enumvalues_a.js            |    3 +-
 docs/api/doxygen/search/functions_1.js             |    2 +-
 docs/api/doxygen/search/functions_10.js            |    2 +-
 docs/api/doxygen/search/functions_12.js            |    2 +-
 docs/api/doxygen/search/functions_13.js            |    4 +-
 docs/api/doxygen/search/functions_14.js            |    7 +-
 docs/api/doxygen/search/functions_3.js             |    2 +-
 docs/api/doxygen/search/functions_7.js             |    2 +-
 docs/api/doxygen/search/functions_9.js             |    2 +-
 docs/api/doxygen/search/functions_f.js             |   11 +-
 docs/api/doxygen/search/searchdata.js              |    2 +-
 docs/api/doxygen/search/typedefs_5.js              |    2 +-
 docs/api/doxygen/search__policy_8h.html            |    2 +-
 docs/api/doxygen/search__policy_8h__incl.svg       |  944 ++++-----
 docs/api/doxygen/search__task_8h.html              |    2 +-
 docs/api/doxygen/search__task_8h__incl.svg         | 1251 ++++++------
 docs/api/doxygen/search__task_8h_source.html       |    2 +-
 docs/api/doxygen/serializer_8h.html                |    2 +-
 docs/api/doxygen/serializer_8h__incl.svg           |  149 +-
 docs/api/doxygen/source__map_8h.html               |    4 +-
 docs/api/doxygen/source__map_8h__dep__incl.svg     |  865 ++++----
 docs/api/doxygen/source__map_8h__incl.svg          |  692 +++----
 docs/api/doxygen/source__map_8h_source.html        |    4 +-
 docs/api/doxygen/span_8h.html                      |    4 +-
 docs/api/doxygen/span_8h__dep__incl.svg            | 1080 +++++-----
 docs/api/doxygen/span_8h__incl.svg                 |  634 +++---
 docs/api/doxygen/stmt_8h.html                      |    4 +-
 docs/api/doxygen/stmt_8h__dep__incl.svg            |  863 ++++----
 docs/api/doxygen/stmt_8h__incl.svg                 |  826 ++++----
 docs/api/doxygen/stmt__functor_8h.html             |    2 +-
 docs/api/doxygen/stmt__functor_8h__incl.svg        |  876 ++++----
 docs/api/doxygen/structtvm_1_1tir_1_1LENode.html   |    4 +-
 docs/api/doxygen/structural__equal_8h.html         |    2 +-
 docs/api/doxygen/structural__equal_8h__incl.svg    |  472 ++---
 docs/api/doxygen/structural__hash_8h.html          |    2 +-
 docs/api/doxygen/structural__hash_8h__incl.svg     |  476 ++---
 docs/api/doxygen/tag_8h.html                       |    2 +-
 docs/api/doxygen/tag_8h__incl.svg                  |  730 +++----
 docs/api/doxygen/target_8h.html                    |    2 +-
 docs/api/doxygen/target_8h__incl.svg               |  710 +++----
 docs/api/doxygen/target__info_8h.html              |    2 +-
 docs/api/doxygen/target__info_8h__incl.svg         |  716 +++----
 docs/api/doxygen/target__kind_8h.html              |    2 +-
 docs/api/doxygen/target__kind_8h__incl.svg         |  666 +++----
 docs/api/doxygen/target__kind_8h_source.html       |    4 +-
 docs/api/doxygen/tensor_8h.html                    |    2 +-
 docs/api/doxygen/tensor_8h__dep__incl.svg          |  803 ++++----
 docs/api/doxygen/tensor_8h__incl.svg               | 1000 +++++-----
 docs/api/doxygen/tensor_8h_source.html             |    2 +-
 docs/api/doxygen/tensor__intrin_8h.html            |    4 +-
 docs/api/doxygen/tensor__intrin_8h__dep__incl.svg  |  827 ++++----
 docs/api/doxygen/tensor__intrin_8h__incl.svg       | 1000 +++++-----
 docs/api/doxygen/tensor__type_8h.html              |    2 +-
 docs/api/doxygen/tensor__type_8h__incl.svg         |  716 +++----
 docs/api/doxygen/tensor__type_8h_source.html       |    2 +-
 docs/api/doxygen/tensor__utils_8h.html             |    2 +-
 docs/api/doxygen/tensor__utils_8h__incl.svg        | 1058 +++++-----
 docs/api/doxygen/tir_2analysis_8h.html             |    2 +-
 docs/api/doxygen/tir_2analysis_8h__dep__incl.svg   |  185 +-
 docs/api/doxygen/tir_2analysis_8h__incl.svg        | 1333 +++++++------
 docs/api/doxygen/tir_2expr_8h.html                 |    2 +-
 docs/api/doxygen/tir_2expr_8h__incl.svg            |  802 ++++----
 docs/api/doxygen/tir_2expr__functor_8h.html        |    2 +-
 docs/api/doxygen/tir_2expr__functor_8h__incl.svg   |  820 ++++----
 docs/api/doxygen/tir_2function_8h.html             |    4 +-
 docs/api/doxygen/tir_2function_8h__dep__incl.svg   |  385 ++--
 docs/api/doxygen/tir_2function_8h__incl.svg        |  926 ++++-----
 docs/api/doxygen/tir_2op_8h.html                   |    4 +-
 docs/api/doxygen/tir_2op_8h__dep__incl.svg         |  941 ++++-----
 docs/api/doxygen/tir_2op_8h__incl.svg              |  952 ++++-----
 docs/api/doxygen/tir_2op__attr__types_8h.html      |    2 +-
 .../doxygen/tir_2op__attr__types_8h__dep__incl.svg |  195 +-
 docs/api/doxygen/tir_2transform_8h.html            |    2 +-
 docs/api/doxygen/tir_2transform_8h__incl.svg       | 1720 ++++++++--------
 docs/api/doxygen/topi_2nn_8h.html                  |    2 +-
 docs/api/doxygen/topi_2nn_8h__incl.svg             | 2095 ++++++++++----------
 docs/api/doxygen/topi_2nn_8h_source.html           |    4 +-
 docs/api/doxygen/topi_2transform_8h.html           |    3 +-
 docs/api/doxygen/topi_2transform_8h__incl.svg      | 1432 ++++++-------
 docs/api/doxygen/topi_2transform_8h_source.html    |   63 +-
 docs/api/doxygen/transform__step_8h.html           |    2 +-
 docs/api/doxygen/transform__step_8h__incl.svg      |  920 ++++-----
 docs/api/doxygen/transform__step_8h_source.html    |  113 +-
 docs/api/doxygen/type__functor_8h.html             |    2 +-
 docs/api/doxygen/type__functor_8h__incl.svg        | 1070 +++++-----
 docs/api/doxygen/type__functor_8h_source.html      |    2 +-
 docs/api/doxygen/type__relation_8h.html            |    2 +-
 docs/api/doxygen/type__relation_8h__incl.svg       |  936 ++++-----
 docs/api/doxygen/utils_8h.html                     |    2 +-
 docs/api/doxygen/utils_8h__incl.svg                |  714 +++----
 docs/api/doxygen/var_8h.html                       |    4 +-
 docs/api/doxygen/var_8h__dep__incl.svg             | 1025 +++++-----
 docs/api/doxygen/var_8h__incl.svg                  |  722 +++----
 docs/api/doxygen/vision_8h.html                    |    2 +-
 docs/api/doxygen/vision_8h__incl.svg               |  896 ++++-----
 docs/api/doxygen/with_8h.html                      |    2 +-
 docs/api/doxygen/with_8h__dep__incl.svg            | 1258 ++++++------
 docs/api/doxygen/x86_2bnn_8h.html                  |    2 +-
 docs/api/doxygen/x86_2bnn_8h__incl.svg             | 1325 ++++++-------
 docs/api/doxygen/x86_2default_8h.html              |    2 +-
 docs/api/doxygen/x86_2default_8h__incl.svg         | 1353 +++++++------
 docs/api/doxygen/x86_2injective_8h.html            |    2 +-
 docs/api/doxygen/x86_2injective_8h__incl.svg       | 1325 ++++++-------
 .../javadoc/org/apache/tvm/class-use/Function.html |   12 +-
 .../javadoc/org/apache/tvm/class-use/Module.html   |    8 +-
 docs/api/links.html                                |  172 +-
 docs/api/python/auto_scheduler.html                |  444 ++++-
 docs/api/python/autotvm.html                       |  184 +-
 docs/api/python/contrib.html                       |  232 ++-
 docs/api/python/driver.html                        |  174 +-
 docs/api/python/error.html                         |  174 +-
 docs/api/python/graph_runtime.html                 |  174 +-
 docs/api/python/index.html                         |  174 +-
 docs/api/python/ir.html                            |  174 +-
 docs/api/python/micro.html                         |  174 +-
 docs/api/python/ndarray.html                       |  174 +-
 docs/api/python/relay/analysis.html                |  222 ++-
 docs/api/python/relay/backend.html                 |  174 +-
 docs/api/python/relay/dataflow_pattern.html        |  174 +-
 docs/api/python/relay/frontend.html                |  187 +-
 docs/api/python/relay/image.html                   |  174 +-
 docs/api/python/relay/index.html                   |  191 +-
 docs/api/python/relay/nn.html                      |  176 +-
 docs/api/python/relay/testing.html                 |  174 +-
 docs/api/python/relay/transform.html               |  226 ++-
 docs/api/python/relay/vision.html                  |  174 +-
 docs/api/python/rpc.html                           |  176 +-
 docs/api/python/runtime.html                       |  174 +-
 docs/api/python/target.html                        |  174 +-
 docs/api/python/te.html                            |  174 +-
 docs/api/python/tir.html                           |  174 +-
 docs/api/python/topi.html                          |  174 +-
 docs/api/python/vta/index.html                     |  174 +-
 docs/api/rust/.lock                                |    0
 docs/api/rust/COPYRIGHT.txt                        |   45 +
 docs/api/rust/FiraSans-LICENSE.txt                 |   94 +
 docs/api/rust/FiraSans-Medium.woff                 |  Bin 0 -> 186824 bytes
 docs/api/rust/FiraSans-Regular.woff                |  Bin 0 -> 183268 bytes
 docs/api/rust/LICENSE-APACHE.txt                   |  201 ++
 docs/api/rust/LICENSE-MIT.txt                      |   23 +
 docs/api/rust/SourceCodePro-LICENSE.txt            |   93 +
 docs/api/rust/SourceCodePro-Regular.woff           |  Bin 0 -> 55472 bytes
 docs/api/rust/SourceCodePro-Semibold.woff          |  Bin 0 -> 55360 bytes
 docs/api/rust/SourceSerifPro-Bold.ttf.woff         |  Bin 0 -> 93248 bytes
 docs/api/rust/SourceSerifPro-It.ttf.woff           |  Bin 0 -> 36200 bytes
 docs/api/rust/SourceSerifPro-LICENSE.md            |   93 +
 docs/api/rust/SourceSerifPro-Regular.ttf.woff      |  Bin 0 -> 88596 bytes
 docs/api/rust/array/all.html                       |    4 +
 docs/api/rust/array/fn.main.html                   |    2 +
 docs/api/rust/array/index.html                     |    3 +
 docs/api/rust/array/sidebar-items.js               |    1 +
 docs/api/rust/ayu.css                              |    1 +
 docs/api/rust/basics/all.html                      |    4 +
 docs/api/rust/basics/fn.main.html                  |    2 +
 docs/api/rust/basics/index.html                    |    3 +
 docs/api/rust/basics/sidebar-items.js              |    1 +
 docs/api/rust/brush.svg                            |    1 +
 docs/api/rust/compiler_ext/all.html                |    4 +
 docs/api/rust/compiler_ext/fn.tvm_export.html      |    2 +
 docs/api/rust/compiler_ext/index.html              |    3 +
 docs/api/rust/compiler_ext/sidebar-items.js        |    1 +
 docs/api/rust/dark.css                             |    1 +
 docs/api/rust/down-arrow.svg                       |    1 +
 docs/api/rust/error/all.html                       |    4 +
 docs/api/rust/error/fn.main.html                   |    2 +
 docs/api/rust/error/index.html                     |    3 +
 docs/api/rust/error/sidebar-items.js               |    1 +
 docs/api/rust/favicon.ico                          |  Bin 0 -> 23229 bytes
 docs/api/rust/float/all.html                       |    4 +
 docs/api/rust/float/fn.main.html                   |    2 +
 docs/api/rust/float/index.html                     |    3 +
 docs/api/rust/float/sidebar-items.js               |    1 +
 .../rust/implementors/core/clone/trait.Clone.js    |    5 +
 docs/api/rust/implementors/core/cmp/trait.Eq.js    |    5 +
 docs/api/rust/implementors/core/cmp/trait.Ord.js   |    4 +
 .../rust/implementors/core/cmp/trait.PartialEq.js  |    6 +
 .../rust/implementors/core/cmp/trait.PartialOrd.js |    4 +
 .../rust/implementors/core/convert/trait.AsRef.js  |    4 +
 .../rust/implementors/core/convert/trait.From.js   |    6 +
 .../implementors/core/convert/trait.TryFrom.js     |    6 +
 .../implementors/core/default/trait.Default.js     |    4 +
 docs/api/rust/implementors/core/fmt/trait.Debug.js |    7 +
 .../rust/implementors/core/fmt/trait.Display.js    |    6 +
 docs/api/rust/implementors/core/hash/trait.Hash.js |    5 +
 .../core/iter/traits/collect/trait.FromIterator.js |    3 +
 .../core/iter/traits/collect/trait.IntoIterator.js |    3 +
 .../core/iter/traits/iterator/trait.Iterator.js    |    3 +
 .../rust/implementors/core/marker/trait.Copy.js    |    3 +
 .../rust/implementors/core/marker/trait.Freeze.js  |    7 +
 .../rust/implementors/core/marker/trait.Send.js    |    7 +
 .../implementors/core/marker/trait.StructuralEq.js |    3 +
 .../core/marker/trait.StructuralPartialEq.js       |    4 +
 .../rust/implementors/core/marker/trait.Sync.js    |    7 +
 .../rust/implementors/core/marker/trait.Unpin.js   |    7 +
 .../implementors/core/ops/deref/trait.Deref.js     |    4 +
 .../rust/implementors/core/ops/drop/trait.Drop.js  |    4 +
 .../rust/implementors/core/str/trait.FromStr.js    |    3 +
 .../implementors/serde/de/trait.Deserialize.js     |    3 +
 .../rust/implementors/serde/ser/trait.Serialize.js |    3 +
 .../api/rust/implementors/std/error/trait.Error.js |    6 +
 .../implementors/std/panic/trait.RefUnwindSafe.js  |    7 +
 .../implementors/std/panic/trait.UnwindSafe.js     |    7 +
 .../rust/implementors/structopt/trait.StructOpt.js |    3 +
 .../structopt/trait.StructOptInternal.js           |    3 +
 .../tvm/runtime/function/trait.ToFunction.js       |    3 +
 .../tvm/runtime/function/trait.Typed.js            |    3 +
 .../tvm/runtime/ndarray/trait.Num32.js             |    3 +
 .../implementors/tvm/runtime/trait.IsObject.js     |    3 +
 .../implementors/tvm/runtime/trait.IsObjectRef.js  |    3 +
 .../rust/implementors/tvm_graph_rt/trait.Module.js |    3 +
 .../implementors/tvm_graph_rt/trait.PackedFunc.js  |    3 +
 .../tvm_rt/function/trait.ToFunction.js            |    3 +
 .../implementors/tvm_rt/function/trait.Typed.js    |    3 +
 .../implementors/tvm_rt/ndarray/trait.Num32.js     |    3 +
 .../implementors/tvm_rt/object/trait.IsObject.js   |    3 +
 .../tvm_rt/object/trait.IsObjectRef.js             |    3 +
 .../tvm_sys/packed_func/trait.PackedFunc.js        |    3 +
 docs/api/rust/int/all.html                         |    4 +
 docs/api/rust/int/fn.main.html                     |    2 +
 docs/api/rust/int/index.html                       |    3 +
 docs/api/rust/int/sidebar-items.js                 |    1 +
 docs/api/rust/light.css                            |    1 +
 docs/api/rust/main.js                              |    7 +
 docs/api/rust/normalize.css                        |    2 +
 docs/api/rust/noscript.css                         |    1 +
 docs/api/rust/resnet/all.html                      |    4 +
 docs/api/rust/resnet/fn.main.html                  |    2 +
 docs/api/rust/resnet/index.html                    |    3 +
 docs/api/rust/resnet/sidebar-items.js              |    1 +
 docs/api/rust/rust-logo.png                        |  Bin 0 -> 5758 bytes
 docs/api/rust/rustdoc.css                          |    1 +
 docs/api/rust/search-index.js                      |   21 +
 docs/api/rust/settings.css                         |    1 +
 docs/api/rust/settings.html                        |    3 +
 docs/api/rust/settings.js                          |    1 +
 docs/api/rust/source-files.js                      |   20 +
 docs/api/rust/source-script.js                     |    1 +
 docs/api/rust/src/array/array.rs.html              |  130 ++
 docs/api/rust/src/basics/main.rs.html              |  106 +
 docs/api/rust/src/compiler_ext/lib.rs.html         |   74 +
 docs/api/rust/src/error/error.rs.html              |   94 +
 docs/api/rust/src/float/float.rs.html              |  104 +
 docs/api/rust/src/int/int.rs.html                  |   94 +
 docs/api/rust/src/resnet/main.rs.html              |  250 +++
 docs/api/rust/src/string/string.rs.html            |  122 ++
 docs/api/rust/src/test_rt_nn/main.rs.html          |  202 ++
 docs/api/rust/src/test_rt_tvm_basic/main.rs.html   |   98 +
 docs/api/rust/src/test_rt_tvm_dso/main.rs.html     |   82 +
 docs/api/rust/src/test_rt_wasm32/main.rs.html      |  112 ++
 docs/api/rust/src/tvm/ir/arith.rs.html             |   96 +
 docs/api/rust/src/tvm/ir/attrs.rs.html             |   62 +
 .../rust/src/tvm/ir/diagnostics/codespan.rs.html   |  436 ++++
 docs/api/rust/src/tvm/ir/diagnostics/mod.rs.html   |  494 +++++
 docs/api/rust/src/tvm/ir/expr.rs.html              |  204 ++
 docs/api/rust/src/tvm/ir/function.rs.html          |   96 +
 docs/api/rust/src/tvm/ir/mod.rs.html               |   72 +
 docs/api/rust/src/tvm/ir/module.rs.html            |  346 ++++
 docs/api/rust/src/tvm/ir/op.rs.html                |   90 +
 docs/api/rust/src/tvm/ir/relay/attrs/mod.rs.html   |   46 +
 docs/api/rust/src/tvm/ir/relay/attrs/nn.rs.html    |  220 ++
 .../rust/src/tvm/ir/relay/attrs/transform.rs.html  |   66 +
 docs/api/rust/src/tvm/ir/relay/mod.rs.html         | 1174 +++++++++++
 docs/api/rust/src/tvm/ir/source_map.rs.html        |  118 ++
 docs/api/rust/src/tvm/ir/span.rs.html              |  146 ++
 docs/api/rust/src/tvm/ir/tir.rs.html               |  174 ++
 docs/api/rust/src/tvm/ir/ty.rs.html                |  488 +++++
 docs/api/rust/src/tvm/lib.rs.html                  |  152 ++
 docs/api/rust/src/tvm/python.rs.html               |  124 ++
 docs/api/rust/src/tvm/runtime/graph_rt.rs.html     |  198 ++
 docs/api/rust/src/tvm/runtime/mod.rs.html          |   48 +
 docs/api/rust/src/tvm/transform.rs.html            |  230 +++
 docs/api/rust/src/tvm_graph_rt/allocator.rs.html   |  150 ++
 docs/api/rust/src/tvm_graph_rt/array.rs.html       |  806 ++++++++
 docs/api/rust/src/tvm_graph_rt/errors.rs.html      |  114 ++
 docs/api/rust/src/tvm_graph_rt/graph.rs.html       | 1050 ++++++++++
 docs/api/rust/src/tvm_graph_rt/lib.rs.html         |  156 ++
 docs/api/rust/src/tvm_graph_rt/module/dso.rs.html  |  300 +++
 docs/api/rust/src/tvm_graph_rt/module/mod.rs.html  |  132 ++
 .../rust/src/tvm_graph_rt/module/syslib.rs.html    |  150 ++
 docs/api/rust/src/tvm_graph_rt/threading.rs.html   |  530 +++++
 docs/api/rust/src/tvm_graph_rt/workspace.rs.html   |  282 +++
 docs/api/rust/src/tvm_macros/external.rs.html      |  334 ++++
 docs/api/rust/src/tvm_macros/import_module.rs.html |  270 +++
 docs/api/rust/src/tvm_macros/lib.rs.html           |   86 +
 docs/api/rust/src/tvm_macros/object.rs.html        |  382 ++++
 docs/api/rust/src/tvm_macros/util.rs.html          |  100 +
 docs/api/rust/src/tvm_rt/array.rs.html             |  350 ++++
 docs/api/rust/src/tvm_rt/context.rs.html           |  198 ++
 docs/api/rust/src/tvm_rt/errors.rs.html            |  198 ++
 docs/api/rust/src/tvm_rt/function.rs.html          |  732 +++++++
 docs/api/rust/src/tvm_rt/lib.rs.html               |  264 +++
 docs/api/rust/src/tvm_rt/map.rs.html               |  534 +++++
 docs/api/rust/src/tvm_rt/module.rs.html            |  264 +++
 docs/api/rust/src/tvm_rt/ndarray.rs.html           | 1012 ++++++++++
 docs/api/rust/src/tvm_rt/object/mod.rs.html        |  206 ++
 docs/api/rust/src/tvm_rt/object/object_ptr.rs.html |  904 +++++++++
 docs/api/rust/src/tvm_rt/string.rs.html            |  286 +++
 docs/api/rust/src/tvm_rt/to_function.rs.html       |  586 ++++++
 docs/api/rust/src/tvm_rt/value.rs.html             |  218 ++
 docs/api/rust/src/tvm_sys/array.rs.html            |  130 ++
 docs/api/rust/src/tvm_sys/byte_array.rs.html       |  262 +++
 docs/api/rust/src/tvm_sys/context.rs.html          |  596 ++++++
 docs/api/rust/src/tvm_sys/datatype.rs.html         |  424 ++++
 docs/api/rust/src/tvm_sys/errors.rs.html           |   96 +
 docs/api/rust/src/tvm_sys/lib.rs.html              |  146 ++
 docs/api/rust/src/tvm_sys/packed_func.rs.html      |  858 ++++++++
 docs/api/rust/src/tvm_sys/value.rs.html            |  194 ++
 .../rust/tvm-sys/src/c_runtime_api.rs.html         |    9 +
 docs/api/rust/src/tyck/tyck.rs.html                |  102 +
 docs/api/rust/storage.js                           |    1 +
 docs/api/rust/string/all.html                      |    4 +
 docs/api/rust/string/fn.main.html                  |    2 +
 docs/api/rust/string/index.html                    |    3 +
 docs/api/rust/string/sidebar-items.js              |    1 +
 docs/api/rust/test_rt_nn/all.html                  |    4 +
 docs/api/rust/test_rt_nn/constant.BATCH_SIZE.html  |    2 +
 docs/api/rust/test_rt_nn/constant.IN_DIM.html      |    2 +
 docs/api/rust/test_rt_nn/fn.main.html              |    2 +
 docs/api/rust/test_rt_nn/index.html                |    4 +
 docs/api/rust/test_rt_nn/sidebar-items.js          |    1 +
 docs/api/rust/test_rt_tvm_basic/all.html           |    4 +
 docs/api/rust/test_rt_tvm_basic/fn.main.html       |    2 +
 docs/api/rust/test_rt_tvm_basic/index.html         |    4 +
 docs/api/rust/test_rt_tvm_basic/sidebar-items.js   |    1 +
 .../tvm_mod/ext/fn.__tvm_main__.html               |    2 +
 .../tvm_mod/ext/fn.__tvm_module_ctx.html           |    2 +
 .../tvm_mod/ext/fn.__tvm_module_startup.html       |    2 +
 .../tvm_mod/ext/fn.default_function.html           |    2 +
 .../rust/test_rt_tvm_basic/tvm_mod/ext/index.html  |    3 +
 .../test_rt_tvm_basic/tvm_mod/ext/sidebar-items.js |    1 +
 .../test_rt_tvm_basic/tvm_mod/fn.__tvm_main__.html |    2 +
 .../tvm_mod/fn.__tvm_module_ctx.html               |    2 +
 .../tvm_mod/fn.__tvm_module_startup.html           |    2 +
 .../tvm_mod/fn.default_function.html               |    2 +
 docs/api/rust/test_rt_tvm_basic/tvm_mod/index.html |    4 +
 .../test_rt_tvm_basic/tvm_mod/sidebar-items.js     |    1 +
 docs/api/rust/test_rt_tvm_dso/all.html             |    4 +
 docs/api/rust/test_rt_tvm_dso/fn.main.html         |    2 +
 docs/api/rust/test_rt_tvm_dso/index.html           |    3 +
 docs/api/rust/test_rt_tvm_dso/sidebar-items.js     |    1 +
 docs/api/rust/test_rt_wasm32/all.html              |    4 +
 .../test_rt_wasm32/fn.__get_tvm_module_ctx.html    |    2 +
 docs/api/rust/test_rt_wasm32/fn.main.html          |    2 +
 docs/api/rust/test_rt_wasm32/index.html            |    4 +
 docs/api/rust/test_rt_wasm32/sidebar-items.js      |    1 +
 .../test_rt_wasm32/static.__tvm_module_ctx.html    |    2 +
 docs/api/rust/theme.js                             |    1 +
 docs/api/rust/tvm/all.html                         |    4 +
 docs/api/rust/tvm/context/enum.DeviceType.html     |   49 +
 docs/api/rust/tvm/context/fn.get_device_attr.html  |    2 +
 docs/api/rust/tvm/context/index.html               |    7 +
 docs/api/rust/tvm/context/sidebar-items.js         |    1 +
 docs/api/rust/tvm/context/struct.Context.html      |   43 +
 .../tvm/context/struct.UnsupportedDeviceError.html |   21 +
 docs/api/rust/tvm/enum.DeviceType.html             |   49 +
 docs/api/rust/tvm/enum.Error.html                  |   42 +
 docs/api/rust/tvm/enum.NDArrayError.html           |   34 +
 docs/api/rust/tvm/errors/enum.Error.html           |   42 +
 docs/api/rust/tvm/errors/enum.NDArrayError.html    |   34 +
 docs/api/rust/tvm/errors/index.html                |    4 +
 docs/api/rust/tvm/errors/sidebar-items.js          |    1 +
 .../tvm/errors/struct.FunctionNotFoundError.html   |   21 +
 .../rust/tvm/errors/struct.TypeMismatchError.html  |   25 +
 docs/api/rust/tvm/fn.version.html                  |    3 +
 docs/api/rust/tvm/function/enum.ArgValue.html      |  450 +++++
 docs/api/rust/tvm/function/enum.RetValue.html      |  356 ++++
 .../ffi/constant.DLDataTypeCode_kDLBfloat.html     |    2 +
 .../ffi/constant.DLDataTypeCode_kDLFloat.html      |    2 +
 .../ffi/constant.DLDataTypeCode_kDLInt.html        |    2 +
 .../ffi/constant.DLDataTypeCode_kDLUInt.html       |    2 +
 .../function/ffi/constant.DLDeviceType_kDLCPU.html |    3 +
 .../ffi/constant.DLDeviceType_kDLCPUPinned.html    |    4 +
 .../ffi/constant.DLDeviceType_kDLExtDev.html       |    5 +
 .../function/ffi/constant.DLDeviceType_kDLGPU.html |    3 +
 .../ffi/constant.DLDeviceType_kDLMetal.html        |    3 +
 .../ffi/constant.DLDeviceType_kDLOpenCL.html       |    3 +
 .../ffi/constant.DLDeviceType_kDLROCM.html         |    3 +
 .../function/ffi/constant.DLDeviceType_kDLVPI.html |    3 +
 .../ffi/constant.DLDeviceType_kDLVulkan.html       |    3 +
 .../tvm/function/ffi/constant.DLPACK_VERSION.html  |    2 +
 .../rust/tvm/function/ffi/constant.INT16_MAX.html  |    2 +
 .../rust/tvm/function/ffi/constant.INT16_MIN.html  |    2 +
 .../rust/tvm/function/ffi/constant.INT32_MAX.html  |    2 +
 .../rust/tvm/function/ffi/constant.INT32_MIN.html  |    2 +
 .../rust/tvm/function/ffi/constant.INT8_MAX.html   |    2 +
 .../rust/tvm/function/ffi/constant.INT8_MIN.html   |    2 +
 .../rust/tvm/function/ffi/constant.INTPTR_MAX.html |    2 +
 .../rust/tvm/function/ffi/constant.INTPTR_MIN.html |    2 +
 .../tvm/function/ffi/constant.INT_FAST16_MAX.html  |    2 +
 .../tvm/function/ffi/constant.INT_FAST16_MIN.html  |    2 +
 .../tvm/function/ffi/constant.INT_FAST32_MAX.html  |    2 +
 .../tvm/function/ffi/constant.INT_FAST32_MIN.html  |    2 +
 .../tvm/function/ffi/constant.INT_FAST8_MAX.html   |    2 +
 .../tvm/function/ffi/constant.INT_FAST8_MIN.html   |    2 +
 .../tvm/function/ffi/constant.INT_LEAST16_MAX.html |    2 +
 .../tvm/function/ffi/constant.INT_LEAST16_MIN.html |    2 +
 .../tvm/function/ffi/constant.INT_LEAST32_MAX.html |    2 +
 .../tvm/function/ffi/constant.INT_LEAST32_MIN.html |    2 +
 .../tvm/function/ffi/constant.INT_LEAST8_MAX.html  |    2 +
 .../tvm/function/ffi/constant.INT_LEAST8_MIN.html  |    2 +
 .../tvm/function/ffi/constant.PTRDIFF_MAX.html     |    2 +
 .../tvm/function/ffi/constant.PTRDIFF_MIN.html     |    2 +
 .../tvm/function/ffi/constant.SIG_ATOMIC_MAX.html  |    2 +
 .../tvm/function/ffi/constant.SIG_ATOMIC_MIN.html  |    2 +
 .../rust/tvm/function/ffi/constant.SIZE_MAX.html   |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgFloat.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgInt.html    |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMBytes.html     |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMContext.html   |    2 +
 ...constant.TVMArgTypeCode_kTVMDLTensorHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMDataType.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtBegin.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtEnd.html    |    2 +
 .../constant.TVMArgTypeCode_kTVMExtReserveEnd.html |    2 +
 .../constant.TVMArgTypeCode_kTVMModuleHandle.html  |    2 +
 .../constant.TVMArgTypeCode_kTVMNDArrayHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMFirst.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMLast.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNullptr.html   |    2 +
 .../constant.TVMArgTypeCode_kTVMObjectHandle.html  |    2 +
 ...tant.TVMArgTypeCode_kTVMObjectRValueRefArg.html |    2 +
 .../constant.TVMArgTypeCode_kTVMOpaqueHandle.html  |    2 +
 ...nstant.TVMArgTypeCode_kTVMPackedFuncHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMStr.html       |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLAOCL.html     |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLHexagon.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLMicroDev.html |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLSDAccel.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLWebGPU.html   |    2 +
 .../ffi/constant.TVMDeviceExtType_kOpenGL.html     |    2 +
 .../tvm/function/ffi/constant.TVM_VERSION.html     |    2 +
 .../rust/tvm/function/ffi/constant.UINT16_MAX.html |    2 +
 .../rust/tvm/function/ffi/constant.UINT32_MAX.html |    2 +
 .../rust/tvm/function/ffi/constant.UINT8_MAX.html  |    2 +
 .../tvm/function/ffi/constant.UINTPTR_MAX.html     |    2 +
 .../tvm/function/ffi/constant.UINT_FAST16_MAX.html |    2 +
 .../tvm/function/ffi/constant.UINT_FAST32_MAX.html |    2 +
 .../tvm/function/ffi/constant.UINT_FAST8_MAX.html  |    2 +
 .../function/ffi/constant.UINT_LEAST16_MAX.html    |    2 +
 .../function/ffi/constant.UINT_LEAST32_MAX.html    |    2 +
 .../tvm/function/ffi/constant.UINT_LEAST8_MAX.html |    2 +
 .../rust/tvm/function/ffi/constant.WINT_MAX.html   |    2 +
 .../rust/tvm/function/ffi/constant.WINT_MIN.html   |    2 +
 .../tvm/function/ffi/constant._ATFILE_SOURCE.html  |    2 +
 .../tvm/function/ffi/constant._BITS_WCHAR_H.html   |    2 +
 .../tvm/function/ffi/constant._DEFAULT_SOURCE.html |    2 +
 .../tvm/function/ffi/constant._FEATURES_H.html     |    2 +
 .../tvm/function/ffi/constant._POSIX_C_SOURCE.html |    2 +
 .../tvm/function/ffi/constant._POSIX_SOURCE.html   |    2 +
 .../tvm/function/ffi/constant._STDC_PREDEF_H.html  |    2 +
 .../rust/tvm/function/ffi/constant._STDINT_H.html  |    2 +
 .../tvm/function/ffi/constant._SYS_CDEFS_H.html    |    2 +
 .../tvm/function/ffi/constant.__GLIBC_MINOR__.html |    2 +
 .../rust/tvm/function/ffi/constant.__GLIBC__.html  |    2 +
 .../tvm/function/ffi/constant.__GNU_LIBRARY__.html |    2 +
 .../ffi/constant.__STDC_IEC_559_COMPLEX__.html     |    2 +
 .../function/ffi/constant.__STDC_IEC_559__.html    |    2 +
 .../function/ffi/constant.__STDC_ISO_10646__.html  |    2 +
 .../function/ffi/constant.__STDC_NO_THREADS__.html |    2 +
 .../function/ffi/constant.__SYSCALL_WORDSIZE.html  |    2 +
 .../tvm/function/ffi/constant.__USE_ATFILE.html    |    2 +
 .../function/ffi/constant.__USE_FORTIFY_LEVEL.html |    2 +
 .../tvm/function/ffi/constant.__USE_ISOC11.html    |    2 +
 .../tvm/function/ffi/constant.__USE_ISOC95.html    |    2 +
 .../tvm/function/ffi/constant.__USE_ISOC99.html    |    2 +
 .../rust/tvm/function/ffi/constant.__USE_MISC.html |    2 +
 .../tvm/function/ffi/constant.__USE_POSIX.html     |    2 +
 .../function/ffi/constant.__USE_POSIX199309.html   |    2 +
 .../function/ffi/constant.__USE_POSIX199506.html   |    2 +
 .../tvm/function/ffi/constant.__USE_POSIX2.html    |    2 +
 .../ffi/constant.__USE_POSIX_IMPLICITLY.html       |    2 +
 .../tvm/function/ffi/constant.__USE_XOPEN2K.html   |    2 +
 .../tvm/function/ffi/constant.__USE_XOPEN2K8.html  |    2 +
 .../rust/tvm/function/ffi/constant.__WORDSIZE.html |    2 +
 .../ffi/constant.__WORDSIZE_TIME64_COMPAT32.html   |    2 +
 .../tvm/function/ffi/fn.TVMAPISetLastError.html    |    5 +
 .../rust/tvm/function/ffi/fn.TVMArrayAlloc.html    |   13 +
 .../tvm/function/ffi/fn.TVMArrayCopyFromBytes.html |    7 +
 .../tvm/function/ffi/fn.TVMArrayCopyFromTo.html    |    7 +
 .../tvm/function/ffi/fn.TVMArrayCopyToBytes.html   |    7 +
 .../api/rust/tvm/function/ffi/fn.TVMArrayFree.html |    5 +
 .../tvm/function/ffi/fn.TVMArrayFromDLPack.html    |    7 +
 .../rust/tvm/function/ffi/fn.TVMArrayToDLPack.html |    7 +
 .../function/ffi/fn.TVMBackendAllocWorkspace.html  |   12 +
 .../function/ffi/fn.TVMBackendFreeWorkspace.html   |    8 +
 .../function/ffi/fn.TVMBackendGetFuncFromEnv.html  |    9 +
 .../function/ffi/fn.TVMBackendParallelBarrier.html |    6 +
 .../function/ffi/fn.TVMBackendParallelLaunch.html  |    8 +
 .../ffi/fn.TVMBackendRegisterSystemLibSymbol.html  |    6 +
 .../tvm/function/ffi/fn.TVMBackendRunOnce.html     |   10 +
 .../tvm/function/ffi/fn.TVMCFuncSetReturn.html     |    9 +
 .../rust/tvm/function/ffi/fn.TVMCbArgToReturn.html |    8 +
 .../ffi/fn.TVMDLManagedTensorCallDeleter.html      |    4 +
 .../function/ffi/fn.TVMDeviceAllocDataSpace.html   |   10 +
 .../function/ffi/fn.TVMDeviceCopyDataFromTo.html   |   14 +
 .../function/ffi/fn.TVMDeviceFreeDataSpace.html    |    6 +
 docs/api/rust/tvm/function/ffi/fn.TVMFuncCall.html |   16 +
 .../function/ffi/fn.TVMFuncCreateFromCFunc.html    |    9 +
 docs/api/rust/tvm/function/ffi/fn.TVMFuncFree.html |    5 +
 .../rust/tvm/function/ffi/fn.TVMFuncGetGlobal.html |    7 +
 .../function/ffi/fn.TVMFuncListGlobalNames.html    |    6 +
 .../tvm/function/ffi/fn.TVMFuncRegisterGlobal.html |    7 +
 .../tvm/function/ffi/fn.TVMFuncRemoveGlobal.html   |    4 +
 .../rust/tvm/function/ffi/fn.TVMGetLastError.html  |    8 +
 docs/api/rust/tvm/function/ffi/fn.TVMModFree.html  |    9 +
 .../tvm/function/ffi/fn.TVMModGetFunction.html     |    8 +
 .../api/rust/tvm/function/ffi/fn.TVMModImport.html |    7 +
 .../tvm/function/ffi/fn.TVMModLoadFromFile.html    |    9 +
 .../tvm/function/ffi/fn.TVMObjectDerivedFrom.html  |    7 +
 .../rust/tvm/function/ffi/fn.TVMObjectFree.html    |    7 +
 .../tvm/function/ffi/fn.TVMObjectGetTypeIndex.html |    6 +
 .../rust/tvm/function/ffi/fn.TVMObjectRetain.html  |    6 +
 .../function/ffi/fn.TVMObjectTypeKey2Index.html    |    6 +
 .../api/rust/tvm/function/ffi/fn.TVMSetStream.html |   10 +
 .../rust/tvm/function/ffi/fn.TVMStreamCreate.html  |    7 +
 .../rust/tvm/function/ffi/fn.TVMStreamFree.html    |    7 +
 .../ffi/fn.TVMStreamStreamSynchronize.html         |    8 +
 .../rust/tvm/function/ffi/fn.TVMSynchronize.html   |    7 +
 docs/api/rust/tvm/function/ffi/index.html          |  182 ++
 docs/api/rust/tvm/function/ffi/sidebar-items.js    |    1 +
 .../rust/tvm/function/ffi/struct.DLContext.html    |   47 +
 .../rust/tvm/function/ffi/struct.DLDataType.html   |   54 +
 .../tvm/function/ffi/struct.DLManagedTensor.html   |   40 +
 .../api/rust/tvm/function/ffi/struct.DLTensor.html |   63 +
 .../rust/tvm/function/ffi/struct.TVMByteArray.html |   33 +
 .../function/ffi/struct.TVMParallelGroupEnv.html   |   30 +
 .../tvm/function/ffi/type.BackendPackedCFunc.html  |    2 +
 .../rust/tvm/function/ffi/type.DLDataTypeCode.html |    3 +
 .../rust/tvm/function/ffi/type.DLDeviceType.html   |    3 +
 .../tvm/function/ffi/type.FTVMParallelLambda.html  |    6 +
 .../rust/tvm/function/ffi/type.TVMArgTypeCode.html |   14 +
 .../rust/tvm/function/ffi/type.TVMArrayHandle.html |    3 +
 .../function/ffi/type.TVMBackendPackedCFunc.html   |   10 +
 .../api/rust/tvm/function/ffi/type.TVMContext.html |    3 +
 .../tvm/function/ffi/type.TVMDeviceExtType.html    |    3 +
 .../ffi/type.TVMExtensionFuncDeclarer.html         |    7 +
 .../tvm/function/ffi/type.TVMFunctionHandle.html   |    3 +
 .../tvm/function/ffi/type.TVMModuleHandle.html     |    3 +
 .../tvm/function/ffi/type.TVMObjectHandle.html     |    3 +
 .../rust/tvm/function/ffi/type.TVMPackedCFunc.html |   10 +
 .../function/ffi/type.TVMPackedCFuncFinalizer.html |    4 +
 .../tvm/function/ffi/type.TVMRetValueHandle.html   |    3 +
 .../tvm/function/ffi/type.TVMStreamHandle.html     |    4 +
 .../rust/tvm/function/ffi/type.int_fast16_t.html   |    2 +
 .../rust/tvm/function/ffi/type.int_fast32_t.html   |    2 +
 .../rust/tvm/function/ffi/type.int_fast64_t.html   |    2 +
 .../rust/tvm/function/ffi/type.int_fast8_t.html    |    2 +
 .../rust/tvm/function/ffi/type.int_least16_t.html  |    2 +
 .../rust/tvm/function/ffi/type.int_least32_t.html  |    2 +
 .../rust/tvm/function/ffi/type.int_least64_t.html  |    2 +
 .../rust/tvm/function/ffi/type.int_least8_t.html   |    2 +
 docs/api/rust/tvm/function/ffi/type.intmax_t.html  |    2 +
 .../rust/tvm/function/ffi/type.tvm_index_t.html    |    3 +
 .../rust/tvm/function/ffi/type.uint_fast16_t.html  |    2 +
 .../rust/tvm/function/ffi/type.uint_fast32_t.html  |    2 +
 .../rust/tvm/function/ffi/type.uint_fast64_t.html  |    2 +
 .../rust/tvm/function/ffi/type.uint_fast8_t.html   |    2 +
 .../rust/tvm/function/ffi/type.uint_least16_t.html |    2 +
 .../rust/tvm/function/ffi/type.uint_least32_t.html |    2 +
 .../rust/tvm/function/ffi/type.uint_least64_t.html |    2 +
 .../rust/tvm/function/ffi/type.uint_least8_t.html  |    2 +
 docs/api/rust/tvm/function/ffi/type.uintmax_t.html |    2 +
 docs/api/rust/tvm/function/ffi/type.wchar_t.html   |    2 +
 docs/api/rust/tvm/function/ffi/union.TVMValue.html |   47 +
 docs/api/rust/tvm/function/fn.register.html        |   20 +
 .../rust/tvm/function/fn.register_override.html    |    4 +
 .../api/rust/tvm/function/fn.register_untyped.html |    2 +
 docs/api/rust/tvm/function/index.html              |   27 +
 docs/api/rust/tvm/function/sidebar-items.js        |    1 +
 docs/api/rust/tvm/function/struct.Function.html    |   38 +
 docs/api/rust/tvm/function/trait.ToFunction.html   |   22 +
 docs/api/rust/tvm/function/trait.Typed.html        |   14 +
 docs/api/rust/tvm/function/type.Result.html        |    2 +
 docs/api/rust/tvm/index.html                       |   33 +
 docs/api/rust/tvm/ir/arith/index.html              |    3 +
 docs/api/rust/tvm/ir/arith/sidebar-items.js        |    1 +
 .../rust/tvm/ir/arith/struct.ConstIntBound.html    |   30 +
 .../tvm/ir/arith/struct.ConstIntBoundNode.html     |   21 +
 docs/api/rust/tvm/ir/attrs/index.html              |    3 +
 docs/api/rust/tvm/ir/attrs/sidebar-items.js        |    1 +
 docs/api/rust/tvm/ir/attrs/struct.Attrs.html       |   30 +
 .../rust/tvm/ir/attrs/struct.BaseAttrsNode.html    |   19 +
 .../rust/tvm/ir/diagnostics/codespan/fn.init.html  |    4 +
 .../rust/tvm/ir/diagnostics/codespan/index.html    |    8 +
 .../tvm/ir/diagnostics/codespan/sidebar-items.js   |    1 +
 .../tvm/ir/diagnostics/enum.DiagnosticLevel.html   |   22 +
 .../rust/tvm/ir/diagnostics/fn.clear_renderer.html |    2 +
 .../diagnostics/fn.diagnositc_renderer_render.html |    2 +
 .../diagnostics/fn.diagnostic_context_default.html |    2 +
 .../diagnostics/fn.diagnostic_context_render.html  |    2 +
 .../tvm/ir/diagnostics/fn.diagnostic_renderer.html |    2 +
 docs/api/rust/tvm/ir/diagnostics/fn.emit.html      |    2 +
 .../rust/tvm/ir/diagnostics/fn.get_renderer.html   |    2 +
 docs/api/rust/tvm/ir/diagnostics/index.html        |   13 +
 docs/api/rust/tvm/ir/diagnostics/sidebar-items.js  |    1 +
 .../rust/tvm/ir/diagnostics/struct.Diagnostic.html |   30 +
 .../ir/diagnostics/struct.DiagnosticBuilder.html   |   22 +
 .../ir/diagnostics/struct.DiagnosticContext.html   |   35 +
 .../diagnostics/struct.DiagnosticContextNode.html  |   26 +
 .../tvm/ir/diagnostics/struct.DiagnosticNode.html  |   26 +
 .../ir/diagnostics/struct.DiagnosticRenderer.html  |   31 +
 .../diagnostics/struct.DiagnosticRendererNode.html |   28 +
 docs/api/rust/tvm/ir/expr/fn._as_text.html         |    2 +
 docs/api/rust/tvm/ir/expr/fn.as_text.html          |    2 +
 docs/api/rust/tvm/ir/expr/index.html               |    4 +
 docs/api/rust/tvm/ir/expr/sidebar-items.js         |    1 +
 docs/api/rust/tvm/ir/expr/struct.BaseExpr.html     |   30 +
 docs/api/rust/tvm/ir/expr/struct.BaseExprNode.html |   19 +
 docs/api/rust/tvm/ir/expr/struct.GlobalVar.html    |   30 +
 .../api/rust/tvm/ir/expr/struct.GlobalVarNode.html |   20 +
 docs/api/rust/tvm/ir/expr/struct.PrimExpr.html     |   30 +
 docs/api/rust/tvm/ir/expr/struct.PrimExprNode.html |   20 +
 docs/api/rust/tvm/ir/function/index.html           |    4 +
 docs/api/rust/tvm/ir/function/sidebar-items.js     |    1 +
 docs/api/rust/tvm/ir/function/struct.BaseFunc.html |   30 +
 .../rust/tvm/ir/function/struct.BaseFuncNode.html  |   20 +
 docs/api/rust/tvm/ir/function/type.DictAttrs.html  |    2 +
 docs/api/rust/tvm/ir/index.html                    |    4 +
 docs/api/rust/tvm/ir/module/enum.Error.html        |   28 +
 docs/api/rust/tvm/ir/module/fn.module_add_def.html |    2 +
 .../tvm/ir/module/fn.module_get_global_var.html    |    2 +
 .../tvm/ir/module/fn.module_get_global_vars.html   |    2 +
 docs/api/rust/tvm/ir/module/fn.module_lookup.html  |    2 +
 .../rust/tvm/ir/module/fn.module_lookup_str.html   |    2 +
 .../rust/tvm/ir/module/fn.parse_expression.html    |    2 +
 docs/api/rust/tvm/ir/module/fn.parse_module.html   |    2 +
 docs/api/rust/tvm/ir/module/index.html             |    5 +
 docs/api/rust/tvm/ir/module/sidebar-items.js       |    1 +
 docs/api/rust/tvm/ir/module/struct.IRModule.html   |   30 +
 .../rust/tvm/ir/module/struct.IRModuleNode.html    |   22 +
 docs/api/rust/tvm/ir/op/index.html                 |    3 +
 docs/api/rust/tvm/ir/op/sidebar-items.js           |    1 +
 docs/api/rust/tvm/ir/op/struct.Op.html             |   30 +
 docs/api/rust/tvm/ir/op/struct.OpNode.html         |   27 +
 docs/api/rust/tvm/ir/relay/attrs/index.html        |    3 +
 docs/api/rust/tvm/ir/relay/attrs/nn/index.html     |    3 +
 .../rust/tvm/ir/relay/attrs/nn/sidebar-items.js    |    1 +
 .../ir/relay/attrs/nn/struct.BatchNormAttrs.html   |   30 +
 .../relay/attrs/nn/struct.BatchNormAttrsNode.html  |   23 +
 .../tvm/ir/relay/attrs/nn/struct.BiasAddAttrs.html |   30 +
 .../ir/relay/attrs/nn/struct.BiasAddAttrsNode.html |   20 +
 .../tvm/ir/relay/attrs/nn/struct.Conv2DAttrs.html  |   30 +
 .../ir/relay/attrs/nn/struct.Conv2DAttrsNode.html  |   29 +
 .../tvm/ir/relay/attrs/nn/struct.DenseAttrs.html   |   30 +
 .../ir/relay/attrs/nn/struct.DenseAttrsNode.html   |   21 +
 .../relay/attrs/nn/struct.GlobalPool2DAttrs.html   |   30 +
 .../attrs/nn/struct.GlobalPool2DAttrsNode.html     |   20 +
 .../ir/relay/attrs/nn/struct.MaxPool2DAttrs.html   |   30 +
 .../relay/attrs/nn/struct.MaxPool2DAttrsNode.html  |   24 +
 .../tvm/ir/relay/attrs/nn/struct.SoftmaxAttrs.html |   30 +
 .../ir/relay/attrs/nn/struct.SoftmaxAttrsNode.html |   20 +
 docs/api/rust/tvm/ir/relay/attrs/sidebar-items.js  |    1 +
 .../rust/tvm/ir/relay/attrs/transform/index.html   |    3 +
 .../tvm/ir/relay/attrs/transform/sidebar-items.js  |    1 +
 .../attrs/transform/struct.ExpandDimsAttrs.html    |   30 +
 .../transform/struct.ExpandDimsAttrsNode.html      |   21 +
 docs/api/rust/tvm/ir/relay/index.html              |    5 +
 docs/api/rust/tvm/ir/relay/sidebar-items.js        |    1 +
 docs/api/rust/tvm/ir/relay/struct.Call.html        |   30 +
 docs/api/rust/tvm/ir/relay/struct.CallNode.html    |   23 +
 docs/api/rust/tvm/ir/relay/struct.Clause.html      |   30 +
 docs/api/rust/tvm/ir/relay/struct.ClauseNode.html  |   21 +
 docs/api/rust/tvm/ir/relay/struct.Constant.html    |   30 +
 .../api/rust/tvm/ir/relay/struct.ConstantNode.html |   20 +
 docs/api/rust/tvm/ir/relay/struct.Constructor.html |   30 +
 .../rust/tvm/ir/relay/struct.ConstructorNode.html  |   22 +
 docs/api/rust/tvm/ir/relay/struct.Expr.html        |   34 +
 docs/api/rust/tvm/ir/relay/struct.ExprNode.html    |   21 +
 docs/api/rust/tvm/ir/relay/struct.Function.html    |   30 +
 .../api/rust/tvm/ir/relay/struct.FunctionNode.html |   23 +
 docs/api/rust/tvm/ir/relay/struct.Id.html          |   30 +
 docs/api/rust/tvm/ir/relay/struct.IdNode.html      |   20 +
 docs/api/rust/tvm/ir/relay/struct.If.html          |   30 +
 docs/api/rust/tvm/ir/relay/struct.IfNode.html      |   22 +
 docs/api/rust/tvm/ir/relay/struct.Let.html         |   30 +
 docs/api/rust/tvm/ir/relay/struct.LetNode.html     |   22 +
 docs/api/rust/tvm/ir/relay/struct.Match.html       |   30 +
 docs/api/rust/tvm/ir/relay/struct.MatchNode.html   |   22 +
 docs/api/rust/tvm/ir/relay/struct.Pattern.html     |   30 +
 .../tvm/ir/relay/struct.PatternConstructor.html    |   30 +
 .../ir/relay/struct.PatternConstructorNode.html    |   21 +
 docs/api/rust/tvm/ir/relay/struct.PatternNode.html |   20 +
 .../api/rust/tvm/ir/relay/struct.PatternTuple.html |   30 +
 .../rust/tvm/ir/relay/struct.PatternTupleNode.html |   20 +
 docs/api/rust/tvm/ir/relay/struct.PatternVar.html  |   30 +
 .../rust/tvm/ir/relay/struct.PatternVarNode.html   |   20 +
 .../rust/tvm/ir/relay/struct.PatternWildcard.html  |   30 +
 .../tvm/ir/relay/struct.PatternWildcardNode.html   |   19 +
 docs/api/rust/tvm/ir/relay/struct.RefCreate.html   |   30 +
 .../rust/tvm/ir/relay/struct.RefCreateNode.html    |   20 +
 docs/api/rust/tvm/ir/relay/struct.RefRead.html     |   30 +
 docs/api/rust/tvm/ir/relay/struct.RefReadNode.html |   20 +
 docs/api/rust/tvm/ir/relay/struct.RefWrite.html    |   30 +
 .../api/rust/tvm/ir/relay/struct.RefWriteNode.html |   21 +
 docs/api/rust/tvm/ir/relay/struct.Tuple.html       |   30 +
 .../api/rust/tvm/ir/relay/struct.TupleGetItem.html |   30 +
 .../rust/tvm/ir/relay/struct.TupleGetItemNode.html |   21 +
 docs/api/rust/tvm/ir/relay/struct.TupleNode.html   |   20 +
 docs/api/rust/tvm/ir/relay/struct.Var.html         |   30 +
 docs/api/rust/tvm/ir/relay/struct.VarNode.html     |   21 +
 docs/api/rust/tvm/ir/sidebar-items.js              |    1 +
 docs/api/rust/tvm/ir/source_map/index.html         |    5 +
 docs/api/rust/tvm/ir/source_map/sidebar-items.js   |    1 +
 docs/api/rust/tvm/ir/source_map/struct.Source.html |   30 +
 .../rust/tvm/ir/source_map/struct.SourceMap.html   |   30 +
 .../tvm/ir/source_map/struct.SourceMapNode.html    |   23 +
 .../rust/tvm/ir/source_map/struct.SourceNode.html  |   25 +
 docs/api/rust/tvm/ir/span/index.html               |    5 +
 docs/api/rust/tvm/ir/span/sidebar-items.js         |    1 +
 docs/api/rust/tvm/ir/span/struct.SourceName.html   |   30 +
 .../rust/tvm/ir/span/struct.SourceNameNode.html    |   21 +
 docs/api/rust/tvm/ir/span/struct.Span.html         |   30 +
 docs/api/rust/tvm/ir/span/struct.SpanNode.html     |   30 +
 docs/api/rust/tvm/ir/tir/index.html                |    3 +
 docs/api/rust/tvm/ir/tir/sidebar-items.js          |    1 +
 docs/api/rust/tvm/ir/tir/struct.Add.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.AddNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.And.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.AndNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Cast.html          |   30 +
 docs/api/rust/tvm/ir/tir/struct.CastNode.html      |   20 +
 docs/api/rust/tvm/ir/tir/struct.Div.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.DivNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Eq.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.EqNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.FloorDiv.html      |   30 +
 docs/api/rust/tvm/ir/tir/struct.FloorDivNode.html  |   21 +
 docs/api/rust/tvm/ir/tir/struct.FloorMod.html      |   30 +
 docs/api/rust/tvm/ir/tir/struct.FloorModNode.html  |   21 +
 docs/api/rust/tvm/ir/tir/struct.Ge.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.GeNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.Gt.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.GtNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.IntImm.html        |   30 +
 docs/api/rust/tvm/ir/tir/struct.IntImmNode.html    |   20 +
 docs/api/rust/tvm/ir/tir/struct.Le.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.LeNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.Let.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.LetNode.html       |   22 +
 docs/api/rust/tvm/ir/tir/struct.Lt.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.LtNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.Max.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.MaxNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Min.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.MinNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Mod.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.ModNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Mul.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.MulNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Ne.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.NeNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.Not.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.NotNode.html       |   20 +
 docs/api/rust/tvm/ir/tir/struct.Or.html            |   30 +
 docs/api/rust/tvm/ir/tir/struct.OrNode.html        |   21 +
 docs/api/rust/tvm/ir/tir/struct.Ramp.html          |   30 +
 docs/api/rust/tvm/ir/tir/struct.RampNode.html      |   22 +
 docs/api/rust/tvm/ir/tir/struct.Select.html        |   30 +
 docs/api/rust/tvm/ir/tir/struct.SelectNode.html    |   22 +
 docs/api/rust/tvm/ir/tir/struct.Sub.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.SubNode.html       |   21 +
 docs/api/rust/tvm/ir/tir/struct.Var.html           |   30 +
 docs/api/rust/tvm/ir/tir/struct.VarNode.html       |   20 +
 docs/api/rust/tvm/ir/ty/enum.TypeKind.html         |   23 +
 docs/api/rust/tvm/ir/ty/index.html                 |    7 +
 docs/api/rust/tvm/ir/ty/sidebar-items.js           |    1 +
 docs/api/rust/tvm/ir/ty/struct.BaseTensorType.html |   30 +
 .../rust/tvm/ir/ty/struct.BaseTensorTypeNode.html  |   19 +
 docs/api/rust/tvm/ir/ty/struct.FuncType.html       |   30 +
 docs/api/rust/tvm/ir/ty/struct.FuncTypeNode.html   |   29 +
 docs/api/rust/tvm/ir/ty/struct.GlobalTypeVar.html  |   30 +
 .../rust/tvm/ir/ty/struct.GlobalTypeVarNode.html   |   22 +
 docs/api/rust/tvm/ir/ty/struct.IncompleteType.html |   30 +
 .../rust/tvm/ir/ty/struct.IncompleteTypeNode.html  |   20 +
 docs/api/rust/tvm/ir/ty/struct.PointerType.html    |   30 +
 .../api/rust/tvm/ir/ty/struct.PointerTypeNode.html |   21 +
 docs/api/rust/tvm/ir/ty/struct.PrimType.html       |   30 +
 docs/api/rust/tvm/ir/ty/struct.PrimTypeNode.html   |   21 +
 docs/api/rust/tvm/ir/ty/struct.RefType.html        |   30 +
 .../rust/tvm/ir/ty/struct.RelayRefTypeNode.html    |   20 +
 docs/api/rust/tvm/ir/ty/struct.TensorType.html     |   30 +
 docs/api/rust/tvm/ir/ty/struct.TensorTypeNode.html |   21 +
 docs/api/rust/tvm/ir/ty/struct.TupleType.html      |   30 +
 docs/api/rust/tvm/ir/ty/struct.TupleTypeNode.html  |   20 +
 docs/api/rust/tvm/ir/ty/struct.Type.html           |   30 +
 docs/api/rust/tvm/ir/ty/struct.TypeConstraint.html |   30 +
 .../rust/tvm/ir/ty/struct.TypeConstraintNode.html  |   19 +
 docs/api/rust/tvm/ir/ty/struct.TypeNode.html       |   20 +
 docs/api/rust/tvm/ir/ty/struct.TypeVar.html        |   30 +
 docs/api/rust/tvm/ir/ty/struct.TypeVarNode.html    |   21 +
 docs/api/rust/tvm/macro.export!.html               |   10 +
 docs/api/rust/tvm/macro.export.html                |    6 +
 docs/api/rust/tvm/macro.export_mod!.html           |   10 +
 docs/api/rust/tvm/macro.export_mod.html            |    6 +
 docs/api/rust/tvm/macro.export_pass!.html          |   10 +
 docs/api/rust/tvm/macro.export_pass.html           |    6 +
 docs/api/rust/tvm/macro.initialize!.html           |   10 +
 docs/api/rust/tvm/macro.initialize.html            |   11 +
 docs/api/rust/tvm/module/fn.load_from_file.html    |    2 +
 docs/api/rust/tvm/module/fn.runtime_enabled.html   |    2 +
 docs/api/rust/tvm/module/index.html                |    7 +
 docs/api/rust/tvm/module/sidebar-items.js          |    1 +
 docs/api/rust/tvm/module/struct.Module.html        |   37 +
 docs/api/rust/tvm/ndarray/index.html               |   23 +
 docs/api/rust/tvm/ndarray/sidebar-items.js         |    1 +
 docs/api/rust/tvm/ndarray/struct.NDArray.html      |   71 +
 .../rust/tvm/ndarray/struct.NDArrayContainer.html  |   17 +
 docs/api/rust/tvm/ndarray/trait.Num32.html         |    8 +
 docs/api/rust/tvm/python/fn.load.html              |    7 +
 docs/api/rust/tvm/python/index.html                |    4 +
 docs/api/rust/tvm/python/sidebar-items.js          |    1 +
 .../rust/tvm/runtime/array/fn.array_get_item.html  |    2 +
 docs/api/rust/tvm/runtime/array/fn.array_size.html |    2 +
 docs/api/rust/tvm/runtime/array/index.html         |    4 +
 docs/api/rust/tvm/runtime/array/sidebar-items.js   |    1 +
 docs/api/rust/tvm/runtime/array/struct.Array.html  |   32 +
 .../rust/tvm/runtime/array/struct.IntoIter.html    |  138 ++
 .../rust/tvm/runtime/context/enum.DeviceType.html  |   49 +
 .../tvm/runtime/context/fn.get_device_attr.html    |    2 +
 docs/api/rust/tvm/runtime/context/index.html       |    7 +
 docs/api/rust/tvm/runtime/context/sidebar-items.js |    1 +
 .../rust/tvm/runtime/context/struct.Context.html   |   43 +
 .../context/struct.UnsupportedDeviceError.html     |   21 +
 docs/api/rust/tvm/runtime/enum.ArgValue.html       |  450 +++++
 docs/api/rust/tvm/runtime/enum.DeviceType.html     |   49 +
 docs/api/rust/tvm/runtime/enum.Error.html          |   42 +
 docs/api/rust/tvm/runtime/enum.NDArrayError.html   |   34 +
 docs/api/rust/tvm/runtime/enum.RetValue.html       |  356 ++++
 docs/api/rust/tvm/runtime/errors/enum.Error.html   |   42 +
 .../rust/tvm/runtime/errors/enum.NDArrayError.html |   34 +
 docs/api/rust/tvm/runtime/errors/index.html        |    4 +
 docs/api/rust/tvm/runtime/errors/sidebar-items.js  |    1 +
 .../errors/struct.FunctionNotFoundError.html       |   21 +
 .../runtime/errors/struct.TypeMismatchError.html   |   25 +
 docs/api/rust/tvm/runtime/fn.debug_print.html      |    2 +
 docs/api/rust/tvm/runtime/fn.get_last_error.html   |    3 +
 docs/api/rust/tvm/runtime/fn.structural_equal.html |    2 +
 docs/api/rust/tvm/runtime/fn.structural_hash.html  |    2 +
 docs/api/rust/tvm/runtime/fn.version.html          |    3 +
 .../rust/tvm/runtime/function/enum.ArgValue.html   |  450 +++++
 .../rust/tvm/runtime/function/enum.RetValue.html   |  356 ++++
 .../ffi/constant.DLDataTypeCode_kDLBfloat.html     |    2 +
 .../ffi/constant.DLDataTypeCode_kDLFloat.html      |    2 +
 .../ffi/constant.DLDataTypeCode_kDLInt.html        |    2 +
 .../ffi/constant.DLDataTypeCode_kDLUInt.html       |    2 +
 .../function/ffi/constant.DLDeviceType_kDLCPU.html |    3 +
 .../ffi/constant.DLDeviceType_kDLCPUPinned.html    |    4 +
 .../ffi/constant.DLDeviceType_kDLExtDev.html       |    5 +
 .../function/ffi/constant.DLDeviceType_kDLGPU.html |    3 +
 .../ffi/constant.DLDeviceType_kDLMetal.html        |    3 +
 .../ffi/constant.DLDeviceType_kDLOpenCL.html       |    3 +
 .../ffi/constant.DLDeviceType_kDLROCM.html         |    3 +
 .../function/ffi/constant.DLDeviceType_kDLVPI.html |    3 +
 .../ffi/constant.DLDeviceType_kDLVulkan.html       |    3 +
 .../function/ffi/constant.DLPACK_VERSION.html      |    2 +
 .../runtime/function/ffi/constant.INT16_MAX.html   |    2 +
 .../runtime/function/ffi/constant.INT16_MIN.html   |    2 +
 .../runtime/function/ffi/constant.INT32_MAX.html   |    2 +
 .../runtime/function/ffi/constant.INT32_MIN.html   |    2 +
 .../runtime/function/ffi/constant.INT8_MAX.html    |    2 +
 .../runtime/function/ffi/constant.INT8_MIN.html    |    2 +
 .../runtime/function/ffi/constant.INTPTR_MAX.html  |    2 +
 .../runtime/function/ffi/constant.INTPTR_MIN.html  |    2 +
 .../function/ffi/constant.INT_FAST16_MAX.html      |    2 +
 .../function/ffi/constant.INT_FAST16_MIN.html      |    2 +
 .../function/ffi/constant.INT_FAST32_MAX.html      |    2 +
 .../function/ffi/constant.INT_FAST32_MIN.html      |    2 +
 .../function/ffi/constant.INT_FAST8_MAX.html       |    2 +
 .../function/ffi/constant.INT_FAST8_MIN.html       |    2 +
 .../function/ffi/constant.INT_LEAST16_MAX.html     |    2 +
 .../function/ffi/constant.INT_LEAST16_MIN.html     |    2 +
 .../function/ffi/constant.INT_LEAST32_MAX.html     |    2 +
 .../function/ffi/constant.INT_LEAST32_MIN.html     |    2 +
 .../function/ffi/constant.INT_LEAST8_MAX.html      |    2 +
 .../function/ffi/constant.INT_LEAST8_MIN.html      |    2 +
 .../runtime/function/ffi/constant.PTRDIFF_MAX.html |    2 +
 .../runtime/function/ffi/constant.PTRDIFF_MIN.html |    2 +
 .../function/ffi/constant.SIG_ATOMIC_MAX.html      |    2 +
 .../function/ffi/constant.SIG_ATOMIC_MIN.html      |    2 +
 .../runtime/function/ffi/constant.SIZE_MAX.html    |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgFloat.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgInt.html    |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMBytes.html     |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMContext.html   |    2 +
 ...constant.TVMArgTypeCode_kTVMDLTensorHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMDataType.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtBegin.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtEnd.html    |    2 +
 .../constant.TVMArgTypeCode_kTVMExtReserveEnd.html |    2 +
 .../constant.TVMArgTypeCode_kTVMModuleHandle.html  |    2 +
 .../constant.TVMArgTypeCode_kTVMNDArrayHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMFirst.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMLast.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNullptr.html   |    2 +
 .../constant.TVMArgTypeCode_kTVMObjectHandle.html  |    2 +
 ...tant.TVMArgTypeCode_kTVMObjectRValueRefArg.html |    2 +
 .../constant.TVMArgTypeCode_kTVMOpaqueHandle.html  |    2 +
 ...nstant.TVMArgTypeCode_kTVMPackedFuncHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMStr.html       |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLAOCL.html     |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLHexagon.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLMicroDev.html |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLSDAccel.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLWebGPU.html   |    2 +
 .../ffi/constant.TVMDeviceExtType_kOpenGL.html     |    2 +
 .../runtime/function/ffi/constant.TVM_VERSION.html |    2 +
 .../runtime/function/ffi/constant.UINT16_MAX.html  |    2 +
 .../runtime/function/ffi/constant.UINT32_MAX.html  |    2 +
 .../runtime/function/ffi/constant.UINT8_MAX.html   |    2 +
 .../runtime/function/ffi/constant.UINTPTR_MAX.html |    2 +
 .../function/ffi/constant.UINT_FAST16_MAX.html     |    2 +
 .../function/ffi/constant.UINT_FAST32_MAX.html     |    2 +
 .../function/ffi/constant.UINT_FAST8_MAX.html      |    2 +
 .../function/ffi/constant.UINT_LEAST16_MAX.html    |    2 +
 .../function/ffi/constant.UINT_LEAST32_MAX.html    |    2 +
 .../function/ffi/constant.UINT_LEAST8_MAX.html     |    2 +
 .../runtime/function/ffi/constant.WINT_MAX.html    |    2 +
 .../runtime/function/ffi/constant.WINT_MIN.html    |    2 +
 .../function/ffi/constant._ATFILE_SOURCE.html      |    2 +
 .../function/ffi/constant._BITS_WCHAR_H.html       |    2 +
 .../function/ffi/constant._DEFAULT_SOURCE.html     |    2 +
 .../runtime/function/ffi/constant._FEATURES_H.html |    2 +
 .../function/ffi/constant._POSIX_C_SOURCE.html     |    2 +
 .../function/ffi/constant._POSIX_SOURCE.html       |    2 +
 .../function/ffi/constant._STDC_PREDEF_H.html      |    2 +
 .../runtime/function/ffi/constant._STDINT_H.html   |    2 +
 .../function/ffi/constant._SYS_CDEFS_H.html        |    2 +
 .../function/ffi/constant.__GLIBC_MINOR__.html     |    2 +
 .../runtime/function/ffi/constant.__GLIBC__.html   |    2 +
 .../function/ffi/constant.__GNU_LIBRARY__.html     |    2 +
 .../ffi/constant.__STDC_IEC_559_COMPLEX__.html     |    2 +
 .../function/ffi/constant.__STDC_IEC_559__.html    |    2 +
 .../function/ffi/constant.__STDC_ISO_10646__.html  |    2 +
 .../function/ffi/constant.__STDC_NO_THREADS__.html |    2 +
 .../function/ffi/constant.__SYSCALL_WORDSIZE.html  |    2 +
 .../function/ffi/constant.__USE_ATFILE.html        |    2 +
 .../function/ffi/constant.__USE_FORTIFY_LEVEL.html |    2 +
 .../function/ffi/constant.__USE_ISOC11.html        |    2 +
 .../function/ffi/constant.__USE_ISOC95.html        |    2 +
 .../function/ffi/constant.__USE_ISOC99.html        |    2 +
 .../runtime/function/ffi/constant.__USE_MISC.html  |    2 +
 .../runtime/function/ffi/constant.__USE_POSIX.html |    2 +
 .../function/ffi/constant.__USE_POSIX199309.html   |    2 +
 .../function/ffi/constant.__USE_POSIX199506.html   |    2 +
 .../function/ffi/constant.__USE_POSIX2.html        |    2 +
 .../ffi/constant.__USE_POSIX_IMPLICITLY.html       |    2 +
 .../function/ffi/constant.__USE_XOPEN2K.html       |    2 +
 .../function/ffi/constant.__USE_XOPEN2K8.html      |    2 +
 .../runtime/function/ffi/constant.__WORDSIZE.html  |    2 +
 .../ffi/constant.__WORDSIZE_TIME64_COMPAT32.html   |    2 +
 .../function/ffi/fn.TVMAPISetLastError.html        |    5 +
 .../tvm/runtime/function/ffi/fn.TVMArrayAlloc.html |   13 +
 .../function/ffi/fn.TVMArrayCopyFromBytes.html     |    7 +
 .../function/ffi/fn.TVMArrayCopyFromTo.html        |    7 +
 .../function/ffi/fn.TVMArrayCopyToBytes.html       |    7 +
 .../tvm/runtime/function/ffi/fn.TVMArrayFree.html  |    5 +
 .../function/ffi/fn.TVMArrayFromDLPack.html        |    7 +
 .../runtime/function/ffi/fn.TVMArrayToDLPack.html  |    7 +
 .../function/ffi/fn.TVMBackendAllocWorkspace.html  |   12 +
 .../function/ffi/fn.TVMBackendFreeWorkspace.html   |    8 +
 .../function/ffi/fn.TVMBackendGetFuncFromEnv.html  |    9 +
 .../function/ffi/fn.TVMBackendParallelBarrier.html |    6 +
 .../function/ffi/fn.TVMBackendParallelLaunch.html  |    8 +
 .../ffi/fn.TVMBackendRegisterSystemLibSymbol.html  |    6 +
 .../runtime/function/ffi/fn.TVMBackendRunOnce.html |   10 +
 .../runtime/function/ffi/fn.TVMCFuncSetReturn.html |    9 +
 .../runtime/function/ffi/fn.TVMCbArgToReturn.html  |    8 +
 .../ffi/fn.TVMDLManagedTensorCallDeleter.html      |    4 +
 .../function/ffi/fn.TVMDeviceAllocDataSpace.html   |   10 +
 .../function/ffi/fn.TVMDeviceCopyDataFromTo.html   |   14 +
 .../function/ffi/fn.TVMDeviceFreeDataSpace.html    |    6 +
 .../tvm/runtime/function/ffi/fn.TVMFuncCall.html   |   16 +
 .../function/ffi/fn.TVMFuncCreateFromCFunc.html    |    9 +
 .../tvm/runtime/function/ffi/fn.TVMFuncFree.html   |    5 +
 .../runtime/function/ffi/fn.TVMFuncGetGlobal.html  |    7 +
 .../function/ffi/fn.TVMFuncListGlobalNames.html    |    6 +
 .../function/ffi/fn.TVMFuncRegisterGlobal.html     |    7 +
 .../function/ffi/fn.TVMFuncRemoveGlobal.html       |    4 +
 .../runtime/function/ffi/fn.TVMGetLastError.html   |    8 +
 .../tvm/runtime/function/ffi/fn.TVMModFree.html    |    9 +
 .../runtime/function/ffi/fn.TVMModGetFunction.html |    8 +
 .../tvm/runtime/function/ffi/fn.TVMModImport.html  |    7 +
 .../function/ffi/fn.TVMModLoadFromFile.html        |    9 +
 .../function/ffi/fn.TVMObjectDerivedFrom.html      |    7 +
 .../tvm/runtime/function/ffi/fn.TVMObjectFree.html |    7 +
 .../function/ffi/fn.TVMObjectGetTypeIndex.html     |    6 +
 .../runtime/function/ffi/fn.TVMObjectRetain.html   |    6 +
 .../function/ffi/fn.TVMObjectTypeKey2Index.html    |    6 +
 .../tvm/runtime/function/ffi/fn.TVMSetStream.html  |   10 +
 .../runtime/function/ffi/fn.TVMStreamCreate.html   |    7 +
 .../tvm/runtime/function/ffi/fn.TVMStreamFree.html |    7 +
 .../ffi/fn.TVMStreamStreamSynchronize.html         |    8 +
 .../runtime/function/ffi/fn.TVMSynchronize.html    |    7 +
 docs/api/rust/tvm/runtime/function/ffi/index.html  |  182 ++
 .../rust/tvm/runtime/function/ffi/sidebar-items.js |    1 +
 .../tvm/runtime/function/ffi/struct.DLContext.html |   47 +
 .../runtime/function/ffi/struct.DLDataType.html    |   54 +
 .../function/ffi/struct.DLManagedTensor.html       |   40 +
 .../tvm/runtime/function/ffi/struct.DLTensor.html  |   63 +
 .../runtime/function/ffi/struct.TVMByteArray.html  |   33 +
 .../function/ffi/struct.TVMParallelGroupEnv.html   |   30 +
 .../function/ffi/type.BackendPackedCFunc.html      |    2 +
 .../runtime/function/ffi/type.DLDataTypeCode.html  |    3 +
 .../runtime/function/ffi/type.DLDeviceType.html    |    3 +
 .../function/ffi/type.FTVMParallelLambda.html      |    6 +
 .../runtime/function/ffi/type.TVMArgTypeCode.html  |   14 +
 .../runtime/function/ffi/type.TVMArrayHandle.html  |    3 +
 .../function/ffi/type.TVMBackendPackedCFunc.html   |   10 +
 .../tvm/runtime/function/ffi/type.TVMContext.html  |    3 +
 .../function/ffi/type.TVMDeviceExtType.html        |    3 +
 .../ffi/type.TVMExtensionFuncDeclarer.html         |    7 +
 .../function/ffi/type.TVMFunctionHandle.html       |    3 +
 .../runtime/function/ffi/type.TVMModuleHandle.html |    3 +
 .../runtime/function/ffi/type.TVMObjectHandle.html |    3 +
 .../runtime/function/ffi/type.TVMPackedCFunc.html  |   10 +
 .../function/ffi/type.TVMPackedCFuncFinalizer.html |    4 +
 .../function/ffi/type.TVMRetValueHandle.html       |    3 +
 .../runtime/function/ffi/type.TVMStreamHandle.html |    4 +
 .../runtime/function/ffi/type.int_fast16_t.html    |    2 +
 .../runtime/function/ffi/type.int_fast32_t.html    |    2 +
 .../runtime/function/ffi/type.int_fast64_t.html    |    2 +
 .../tvm/runtime/function/ffi/type.int_fast8_t.html |    2 +
 .../runtime/function/ffi/type.int_least16_t.html   |    2 +
 .../runtime/function/ffi/type.int_least32_t.html   |    2 +
 .../runtime/function/ffi/type.int_least64_t.html   |    2 +
 .../runtime/function/ffi/type.int_least8_t.html    |    2 +
 .../tvm/runtime/function/ffi/type.intmax_t.html    |    2 +
 .../tvm/runtime/function/ffi/type.tvm_index_t.html |    3 +
 .../runtime/function/ffi/type.uint_fast16_t.html   |    2 +
 .../runtime/function/ffi/type.uint_fast32_t.html   |    2 +
 .../runtime/function/ffi/type.uint_fast64_t.html   |    2 +
 .../runtime/function/ffi/type.uint_fast8_t.html    |    2 +
 .../runtime/function/ffi/type.uint_least16_t.html  |    2 +
 .../runtime/function/ffi/type.uint_least32_t.html  |    2 +
 .../runtime/function/ffi/type.uint_least64_t.html  |    2 +
 .../runtime/function/ffi/type.uint_least8_t.html   |    2 +
 .../tvm/runtime/function/ffi/type.uintmax_t.html   |    2 +
 .../tvm/runtime/function/ffi/type.wchar_t.html     |    2 +
 .../tvm/runtime/function/ffi/union.TVMValue.html   |   47 +
 .../api/rust/tvm/runtime/function/fn.register.html |   20 +
 .../tvm/runtime/function/fn.register_override.html |    4 +
 .../tvm/runtime/function/fn.register_untyped.html  |    2 +
 docs/api/rust/tvm/runtime/function/index.html      |   27 +
 .../api/rust/tvm/runtime/function/sidebar-items.js |    1 +
 .../rust/tvm/runtime/function/struct.Function.html |   38 +
 .../tvm/runtime/function/trait.ToFunction.html     |   22 +
 .../api/rust/tvm/runtime/function/trait.Typed.html |   14 +
 .../api/rust/tvm/runtime/function/type.Result.html |    2 +
 docs/api/rust/tvm/runtime/graph_rt/index.html      |    4 +
 .../api/rust/tvm/runtime/graph_rt/sidebar-items.js |    1 +
 .../rust/tvm/runtime/graph_rt/struct.GraphRt.html  |   21 +
 docs/api/rust/tvm/runtime/index.html               |   39 +
 docs/api/rust/tvm/runtime/macro.check_call!.html   |   10 +
 docs/api/rust/tvm/runtime/macro.check_call.html    |    6 +
 docs/api/rust/tvm/runtime/macro.external!.html     |   10 +
 docs/api/rust/tvm/runtime/macro.external.html      |    2 +
 docs/api/rust/tvm/runtime/macro.tvm_call!.html     |   10 +
 docs/api/rust/tvm/runtime/macro.tvm_call.html      |    6 +
 .../rust/tvm/runtime/map/fn.array_get_item.html    |    2 +
 docs/api/rust/tvm/runtime/map/fn.map_count.html    |    2 +
 docs/api/rust/tvm/runtime/map/fn.map_get_item.html |    2 +
 docs/api/rust/tvm/runtime/map/fn.map_items.html    |    2 +
 docs/api/rust/tvm/runtime/map/fn.map_size.html     |    2 +
 docs/api/rust/tvm/runtime/map/index.html           |    4 +
 docs/api/rust/tvm/runtime/map/sidebar-items.js     |    1 +
 docs/api/rust/tvm/runtime/map/struct.IntoIter.html |  138 ++
 docs/api/rust/tvm/runtime/map/struct.Map.html      |   34 +
 .../rust/tvm/runtime/module/fn.load_from_file.html |    2 +
 .../tvm/runtime/module/fn.runtime_enabled.html     |    2 +
 docs/api/rust/tvm/runtime/module/index.html        |    7 +
 docs/api/rust/tvm/runtime/module/sidebar-items.js  |    1 +
 .../api/rust/tvm/runtime/module/struct.Module.html |   37 +
 docs/api/rust/tvm/runtime/ndarray/index.html       |   23 +
 docs/api/rust/tvm/runtime/ndarray/sidebar-items.js |    1 +
 .../rust/tvm/runtime/ndarray/struct.NDArray.html   |   71 +
 .../runtime/ndarray/struct.NDArrayContainer.html   |   17 +
 docs/api/rust/tvm/runtime/ndarray/trait.Num32.html |    8 +
 .../rust/tvm/runtime/object/fn.debug_print.html    |    2 +
 .../tvm/runtime/object/fn.structural_equal.html    |    2 +
 .../tvm/runtime/object/fn.structural_hash.html     |    2 +
 docs/api/rust/tvm/runtime/object/index.html        |   14 +
 docs/api/rust/tvm/runtime/object/sidebar-items.js  |    1 +
 .../api/rust/tvm/runtime/object/struct.Object.html |   25 +
 .../rust/tvm/runtime/object/struct.ObjectPtr.html  |  118 ++
 .../rust/tvm/runtime/object/struct.ObjectRef.html  |   30 +
 .../rust/tvm/runtime/object/trait.IsObject.html    |   14 +
 .../rust/tvm/runtime/object/trait.IsObjectRef.html |   21 +
 docs/api/rust/tvm/runtime/sidebar-items.js         |    1 +
 docs/api/rust/tvm/runtime/string/index.html        |    3 +
 docs/api/rust/tvm/runtime/string/sidebar-items.js  |    1 +
 .../api/rust/tvm/runtime/string/struct.String.html |   49 +
 .../rust/tvm/runtime/string/struct.StringObj.html  |   16 +
 docs/api/rust/tvm/runtime/struct.ByteArray.html    |   30 +
 docs/api/rust/tvm/runtime/struct.Context.html      |   43 +
 docs/api/rust/tvm/runtime/struct.DataType.html     |   47 +
 docs/api/rust/tvm/runtime/struct.Function.html     |   38 +
 .../tvm/runtime/struct.FunctionNotFoundError.html  |   21 +
 docs/api/rust/tvm/runtime/struct.Module.html       |   37 +
 docs/api/rust/tvm/runtime/struct.NDArray.html      |   71 +
 docs/api/rust/tvm/runtime/struct.Object.html       |   25 +
 docs/api/rust/tvm/runtime/struct.ObjectPtr.html    |  118 ++
 docs/api/rust/tvm/runtime/struct.ObjectRef.html    |   30 +
 docs/api/rust/tvm/runtime/struct.String.html       |   49 +
 docs/api/rust/tvm/runtime/struct.StringObj.html    |   16 +
 .../rust/tvm/runtime/struct.TypeMismatchError.html |   25 +
 docs/api/rust/tvm/runtime/trait.IsObject.html      |   14 +
 docs/api/rust/tvm/runtime/trait.IsObjectRef.html   |   21 +
 docs/api/rust/tvm/runtime/value/index.html         |    5 +
 docs/api/rust/tvm/runtime/value/sidebar-items.js   |    1 +
 docs/api/rust/tvm/sidebar-items.js                 |    1 +
 docs/api/rust/tvm/struct.Context.html              |   43 +
 docs/api/rust/tvm/struct.DataType.html             |   47 +
 docs/api/rust/tvm/struct.Function.html             |   38 +
 .../api/rust/tvm/struct.FunctionNotFoundError.html |   21 +
 docs/api/rust/tvm/struct.Module.html               |   37 +
 docs/api/rust/tvm/struct.NDArray.html              |   71 +
 docs/api/rust/tvm/struct.TypeMismatchError.html    |   25 +
 .../rust/tvm/transform/fn.create_func_pass.html    |    2 +
 docs/api/rust/tvm/transform/fn.function_pass.html  |    2 +
 docs/api/rust/tvm/transform/index.html             |    5 +
 docs/api/rust/tvm/transform/sidebar-items.js       |    1 +
 docs/api/rust/tvm/transform/struct.PassInfo.html   |   30 +
 .../rust/tvm/transform/struct.PassInfoNode.html    |   22 +
 docs/api/rust/tvm/transform/type.IRModule.html     |    2 +
 docs/api/rust/tvm/transform/type.Pass.html         |    2 +
 docs/api/rust/tvm/transform/type.PassContext.html  |    2 +
 docs/api/rust/tvm/value/index.html                 |    5 +
 docs/api/rust/tvm/value/sidebar-items.js           |    1 +
 docs/api/rust/tvm_graph_rt/all.html                |    4 +
 .../tvm_graph_rt/array/constant.DTYPE_FLOAT32.html |   10 +
 .../tvm_graph_rt/array/constant.DTYPE_FLOAT64.html |   10 +
 .../tvm_graph_rt/array/constant.DTYPE_INT32.html   |   10 +
 .../tvm_graph_rt/array/constant.DTYPE_UINT32.html  |   10 +
 docs/api/rust/tvm_graph_rt/array/enum.Storage.html |   10 +
 .../api/rust/tvm_graph_rt/array/struct.Tensor.html |   10 +
 .../rust/tvm_graph_rt/constant.DTYPE_FLOAT32.html  |    2 +
 .../rust/tvm_graph_rt/constant.DTYPE_FLOAT64.html  |    2 +
 .../rust/tvm_graph_rt/constant.DTYPE_INT32.html    |    2 +
 .../rust/tvm_graph_rt/constant.DTYPE_UINT32.html   |    2 +
 docs/api/rust/tvm_graph_rt/enum.ArgValue.html      |   90 +
 docs/api/rust/tvm_graph_rt/enum.RetValue.html      |   79 +
 docs/api/rust/tvm_graph_rt/enum.Storage.html       |   26 +
 .../rust/tvm_graph_rt/errors/enum.ArrayError.html  |   24 +
 .../tvm_graph_rt/errors/enum.GraphFormatError.html |   29 +
 docs/api/rust/tvm_graph_rt/errors/index.html       |    4 +
 docs/api/rust/tvm_graph_rt/errors/sidebar-items.js |    1 +
 .../errors/struct.FunctionNotFound.html            |   19 +
 .../tvm_graph_rt/errors/struct.InvalidPointer.html |   19 +
 .../ffi/constant.DLDataTypeCode_kDLBfloat.html     |    2 +
 .../ffi/constant.DLDataTypeCode_kDLFloat.html      |    2 +
 .../ffi/constant.DLDataTypeCode_kDLInt.html        |    2 +
 .../ffi/constant.DLDataTypeCode_kDLUInt.html       |    2 +
 .../ffi/constant.DLDeviceType_kDLCPU.html          |    3 +
 .../ffi/constant.DLDeviceType_kDLCPUPinned.html    |    4 +
 .../ffi/constant.DLDeviceType_kDLExtDev.html       |    5 +
 .../ffi/constant.DLDeviceType_kDLGPU.html          |    3 +
 .../ffi/constant.DLDeviceType_kDLMetal.html        |    3 +
 .../ffi/constant.DLDeviceType_kDLOpenCL.html       |    3 +
 .../ffi/constant.DLDeviceType_kDLROCM.html         |    3 +
 .../ffi/constant.DLDeviceType_kDLVPI.html          |    3 +
 .../ffi/constant.DLDeviceType_kDLVulkan.html       |    3 +
 .../tvm_graph_rt/ffi/constant.DLPACK_VERSION.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INT16_MAX.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INT16_MIN.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INT32_MAX.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INT32_MIN.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INT8_MAX.html   |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INT8_MIN.html   |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INTPTR_MAX.html |    2 +
 .../rust/tvm_graph_rt/ffi/constant.INTPTR_MIN.html |    2 +
 .../tvm_graph_rt/ffi/constant.INT_FAST16_MAX.html  |    2 +
 .../tvm_graph_rt/ffi/constant.INT_FAST16_MIN.html  |    2 +
 .../tvm_graph_rt/ffi/constant.INT_FAST32_MAX.html  |    2 +
 .../tvm_graph_rt/ffi/constant.INT_FAST32_MIN.html  |    2 +
 .../tvm_graph_rt/ffi/constant.INT_FAST8_MAX.html   |    2 +
 .../tvm_graph_rt/ffi/constant.INT_FAST8_MIN.html   |    2 +
 .../tvm_graph_rt/ffi/constant.INT_LEAST16_MAX.html |    2 +
 .../tvm_graph_rt/ffi/constant.INT_LEAST16_MIN.html |    2 +
 .../tvm_graph_rt/ffi/constant.INT_LEAST32_MAX.html |    2 +
 .../tvm_graph_rt/ffi/constant.INT_LEAST32_MIN.html |    2 +
 .../tvm_graph_rt/ffi/constant.INT_LEAST8_MAX.html  |    2 +
 .../tvm_graph_rt/ffi/constant.INT_LEAST8_MIN.html  |    2 +
 .../tvm_graph_rt/ffi/constant.PTRDIFF_MAX.html     |    2 +
 .../tvm_graph_rt/ffi/constant.PTRDIFF_MIN.html     |    2 +
 .../tvm_graph_rt/ffi/constant.SIG_ATOMIC_MAX.html  |    2 +
 .../tvm_graph_rt/ffi/constant.SIG_ATOMIC_MIN.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.SIZE_MAX.html   |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgFloat.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgInt.html    |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMBytes.html     |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMContext.html   |    2 +
 ...constant.TVMArgTypeCode_kTVMDLTensorHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMDataType.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtBegin.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtEnd.html    |    2 +
 .../constant.TVMArgTypeCode_kTVMExtReserveEnd.html |    2 +
 .../constant.TVMArgTypeCode_kTVMModuleHandle.html  |    2 +
 .../constant.TVMArgTypeCode_kTVMNDArrayHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMFirst.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMLast.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNullptr.html   |    2 +
 .../constant.TVMArgTypeCode_kTVMObjectHandle.html  |    2 +
 ...tant.TVMArgTypeCode_kTVMObjectRValueRefArg.html |    2 +
 .../constant.TVMArgTypeCode_kTVMOpaqueHandle.html  |    2 +
 ...nstant.TVMArgTypeCode_kTVMPackedFuncHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMStr.html       |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLAOCL.html     |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLHexagon.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLMicroDev.html |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLSDAccel.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLWebGPU.html   |    2 +
 .../ffi/constant.TVMDeviceExtType_kOpenGL.html     |    2 +
 .../tvm_graph_rt/ffi/constant.TVM_VERSION.html     |    2 +
 .../rust/tvm_graph_rt/ffi/constant.UINT16_MAX.html |    2 +
 .../rust/tvm_graph_rt/ffi/constant.UINT32_MAX.html |    2 +
 .../rust/tvm_graph_rt/ffi/constant.UINT8_MAX.html  |    2 +
 .../tvm_graph_rt/ffi/constant.UINTPTR_MAX.html     |    2 +
 .../tvm_graph_rt/ffi/constant.UINT_FAST16_MAX.html |    2 +
 .../tvm_graph_rt/ffi/constant.UINT_FAST32_MAX.html |    2 +
 .../tvm_graph_rt/ffi/constant.UINT_FAST8_MAX.html  |    2 +
 .../ffi/constant.UINT_LEAST16_MAX.html             |    2 +
 .../ffi/constant.UINT_LEAST32_MAX.html             |    2 +
 .../tvm_graph_rt/ffi/constant.UINT_LEAST8_MAX.html |    2 +
 .../rust/tvm_graph_rt/ffi/constant.WINT_MAX.html   |    2 +
 .../rust/tvm_graph_rt/ffi/constant.WINT_MIN.html   |    2 +
 .../tvm_graph_rt/ffi/constant._ATFILE_SOURCE.html  |    2 +
 .../tvm_graph_rt/ffi/constant._BITS_WCHAR_H.html   |    2 +
 .../tvm_graph_rt/ffi/constant._DEFAULT_SOURCE.html |    2 +
 .../tvm_graph_rt/ffi/constant._FEATURES_H.html     |    2 +
 .../tvm_graph_rt/ffi/constant._POSIX_C_SOURCE.html |    2 +
 .../tvm_graph_rt/ffi/constant._POSIX_SOURCE.html   |    2 +
 .../tvm_graph_rt/ffi/constant._STDC_PREDEF_H.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant._STDINT_H.html  |    2 +
 .../tvm_graph_rt/ffi/constant._SYS_CDEFS_H.html    |    2 +
 .../tvm_graph_rt/ffi/constant.__GLIBC_MINOR__.html |    2 +
 .../rust/tvm_graph_rt/ffi/constant.__GLIBC__.html  |    2 +
 .../tvm_graph_rt/ffi/constant.__GNU_LIBRARY__.html |    2 +
 .../ffi/constant.__STDC_IEC_559_COMPLEX__.html     |    2 +
 .../ffi/constant.__STDC_IEC_559__.html             |    2 +
 .../ffi/constant.__STDC_ISO_10646__.html           |    2 +
 .../ffi/constant.__STDC_NO_THREADS__.html          |    2 +
 .../ffi/constant.__SYSCALL_WORDSIZE.html           |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_ATFILE.html    |    2 +
 .../ffi/constant.__USE_FORTIFY_LEVEL.html          |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_ISOC11.html    |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_ISOC95.html    |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_ISOC99.html    |    2 +
 .../rust/tvm_graph_rt/ffi/constant.__USE_MISC.html |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_POSIX.html     |    2 +
 .../ffi/constant.__USE_POSIX199309.html            |    2 +
 .../ffi/constant.__USE_POSIX199506.html            |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_POSIX2.html    |    2 +
 .../ffi/constant.__USE_POSIX_IMPLICITLY.html       |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_XOPEN2K.html   |    2 +
 .../tvm_graph_rt/ffi/constant.__USE_XOPEN2K8.html  |    2 +
 .../rust/tvm_graph_rt/ffi/constant.__WORDSIZE.html |    2 +
 .../ffi/constant.__WORDSIZE_TIME64_COMPAT32.html   |    2 +
 .../tvm_graph_rt/ffi/fn.TVMAPISetLastError.html    |    5 +
 .../rust/tvm_graph_rt/ffi/fn.TVMArrayAlloc.html    |   13 +
 .../tvm_graph_rt/ffi/fn.TVMArrayCopyFromBytes.html |    7 +
 .../tvm_graph_rt/ffi/fn.TVMArrayCopyFromTo.html    |    7 +
 .../tvm_graph_rt/ffi/fn.TVMArrayCopyToBytes.html   |    7 +
 .../api/rust/tvm_graph_rt/ffi/fn.TVMArrayFree.html |    5 +
 .../tvm_graph_rt/ffi/fn.TVMArrayFromDLPack.html    |    7 +
 .../rust/tvm_graph_rt/ffi/fn.TVMArrayToDLPack.html |    7 +
 .../ffi/fn.TVMBackendAllocWorkspace.html           |   12 +
 .../ffi/fn.TVMBackendFreeWorkspace.html            |    8 +
 .../ffi/fn.TVMBackendGetFuncFromEnv.html           |    9 +
 .../ffi/fn.TVMBackendParallelBarrier.html          |    6 +
 .../ffi/fn.TVMBackendParallelLaunch.html           |    8 +
 .../ffi/fn.TVMBackendRegisterSystemLibSymbol.html  |    6 +
 .../tvm_graph_rt/ffi/fn.TVMBackendRunOnce.html     |   10 +
 .../tvm_graph_rt/ffi/fn.TVMCFuncSetReturn.html     |    9 +
 .../rust/tvm_graph_rt/ffi/fn.TVMCbArgToReturn.html |    8 +
 .../ffi/fn.TVMDLManagedTensorCallDeleter.html      |    4 +
 .../ffi/fn.TVMDeviceAllocDataSpace.html            |   10 +
 .../ffi/fn.TVMDeviceCopyDataFromTo.html            |   14 +
 .../ffi/fn.TVMDeviceFreeDataSpace.html             |    6 +
 docs/api/rust/tvm_graph_rt/ffi/fn.TVMFuncCall.html |   16 +
 .../ffi/fn.TVMFuncCreateFromCFunc.html             |    9 +
 docs/api/rust/tvm_graph_rt/ffi/fn.TVMFuncFree.html |    5 +
 .../rust/tvm_graph_rt/ffi/fn.TVMFuncGetGlobal.html |    7 +
 .../ffi/fn.TVMFuncListGlobalNames.html             |    6 +
 .../tvm_graph_rt/ffi/fn.TVMFuncRegisterGlobal.html |    7 +
 .../tvm_graph_rt/ffi/fn.TVMFuncRemoveGlobal.html   |    4 +
 .../rust/tvm_graph_rt/ffi/fn.TVMGetLastError.html  |    8 +
 docs/api/rust/tvm_graph_rt/ffi/fn.TVMModFree.html  |    9 +
 .../tvm_graph_rt/ffi/fn.TVMModGetFunction.html     |    8 +
 .../api/rust/tvm_graph_rt/ffi/fn.TVMModImport.html |    7 +
 .../tvm_graph_rt/ffi/fn.TVMModLoadFromFile.html    |    9 +
 .../tvm_graph_rt/ffi/fn.TVMObjectDerivedFrom.html  |    7 +
 .../rust/tvm_graph_rt/ffi/fn.TVMObjectFree.html    |    7 +
 .../tvm_graph_rt/ffi/fn.TVMObjectGetTypeIndex.html |    6 +
 .../rust/tvm_graph_rt/ffi/fn.TVMObjectRetain.html  |    6 +
 .../ffi/fn.TVMObjectTypeKey2Index.html             |    6 +
 .../api/rust/tvm_graph_rt/ffi/fn.TVMSetStream.html |   10 +
 .../rust/tvm_graph_rt/ffi/fn.TVMStreamCreate.html  |    7 +
 .../rust/tvm_graph_rt/ffi/fn.TVMStreamFree.html    |    7 +
 .../ffi/fn.TVMStreamStreamSynchronize.html         |    8 +
 .../rust/tvm_graph_rt/ffi/fn.TVMSynchronize.html   |    7 +
 docs/api/rust/tvm_graph_rt/ffi/index.html          |  182 ++
 docs/api/rust/tvm_graph_rt/ffi/sidebar-items.js    |    1 +
 .../rust/tvm_graph_rt/ffi/struct.DLContext.html    |   44 +
 .../rust/tvm_graph_rt/ffi/struct.DLDataType.html   |   51 +
 .../tvm_graph_rt/ffi/struct.DLManagedTensor.html   |   38 +
 .../api/rust/tvm_graph_rt/ffi/struct.DLTensor.html |   64 +
 .../rust/tvm_graph_rt/ffi/struct.TVMByteArray.html |   31 +
 .../ffi/struct.TVMParallelGroupEnv.html            |   28 +
 .../tvm_graph_rt/ffi/type.BackendPackedCFunc.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.DLDataTypeCode.html |    3 +
 .../rust/tvm_graph_rt/ffi/type.DLDeviceType.html   |    3 +
 .../tvm_graph_rt/ffi/type.FTVMParallelLambda.html  |    6 +
 .../rust/tvm_graph_rt/ffi/type.TVMArgTypeCode.html |   14 +
 .../rust/tvm_graph_rt/ffi/type.TVMArrayHandle.html |    3 +
 .../ffi/type.TVMBackendPackedCFunc.html            |   10 +
 .../api/rust/tvm_graph_rt/ffi/type.TVMContext.html |    3 +
 .../tvm_graph_rt/ffi/type.TVMDeviceExtType.html    |    3 +
 .../ffi/type.TVMExtensionFuncDeclarer.html         |    7 +
 .../tvm_graph_rt/ffi/type.TVMFunctionHandle.html   |    3 +
 .../tvm_graph_rt/ffi/type.TVMModuleHandle.html     |    3 +
 .../tvm_graph_rt/ffi/type.TVMObjectHandle.html     |    3 +
 .../rust/tvm_graph_rt/ffi/type.TVMPackedCFunc.html |   10 +
 .../ffi/type.TVMPackedCFuncFinalizer.html          |    4 +
 .../tvm_graph_rt/ffi/type.TVMRetValueHandle.html   |    3 +
 .../tvm_graph_rt/ffi/type.TVMStreamHandle.html     |    4 +
 .../rust/tvm_graph_rt/ffi/type.int_fast16_t.html   |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_fast32_t.html   |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_fast64_t.html   |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_fast8_t.html    |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_least16_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_least32_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_least64_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.int_least8_t.html   |    2 +
 docs/api/rust/tvm_graph_rt/ffi/type.intmax_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.tvm_index_t.html    |    3 +
 .../rust/tvm_graph_rt/ffi/type.uint_fast16_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_fast32_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_fast64_t.html  |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_fast8_t.html   |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_least16_t.html |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_least32_t.html |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_least64_t.html |    2 +
 .../rust/tvm_graph_rt/ffi/type.uint_least8_t.html  |    2 +
 docs/api/rust/tvm_graph_rt/ffi/type.uintmax_t.html |    2 +
 docs/api/rust/tvm_graph_rt/ffi/type.wchar_t.html   |    2 +
 docs/api/rust/tvm_graph_rt/ffi/union.TVMValue.html |   45 +
 .../rust/tvm_graph_rt/fn.TVMAPISetLastError.html   |    2 +
 .../tvm_graph_rt/fn.TVMBackendAllocWorkspace.html  |    2 +
 .../tvm_graph_rt/fn.TVMBackendFreeWorkspace.html   |    2 +
 .../tvm_graph_rt/fn.TVMBackendParallelBarrier.html |    2 +
 .../tvm_graph_rt/fn.TVMBackendParallelLaunch.html  |    2 +
 docs/api/rust/tvm_graph_rt/fn.TVMGetLastError.html |    2 +
 docs/api/rust/tvm_graph_rt/fn.load_param_dict.html |    3 +
 docs/api/rust/tvm_graph_rt/fn.remove_item.html     |    2 +
 .../tvm_graph_rt/graph/fn.load_param_dict.html     |   10 +
 docs/api/rust/tvm_graph_rt/graph/struct.Entry.html |   10 +
 docs/api/rust/tvm_graph_rt/graph/struct.Graph.html |   10 +
 .../tvm_graph_rt/graph/struct.GraphExecutor.html   |   10 +
 docs/api/rust/tvm_graph_rt/graph/struct.Node.html  |   10 +
 docs/api/rust/tvm_graph_rt/index.html              |   36 +
 docs/api/rust/tvm_graph_rt/macro.call_packed!.html |   10 +
 docs/api/rust/tvm_graph_rt/macro.call_packed.html  |   10 +
 .../rust/tvm_graph_rt/macro.import_module!.html    |   10 +
 .../api/rust/tvm_graph_rt/macro.import_module.html |    2 +
 .../tvm_graph_rt/module/dso/struct.DsoModule.html  |   10 +
 .../module/syslib/struct.SystemLibModule.html      |   10 +
 .../api/rust/tvm_graph_rt/module/trait.Module.html |   10 +
 .../tvm_graph_rt/packed_func/enum.ArgValue.html    |   90 +
 .../tvm_graph_rt/packed_func/enum.RetValue.html    |   79 +
 docs/api/rust/tvm_graph_rt/packed_func/index.html  |   11 +
 .../rust/tvm_graph_rt/packed_func/sidebar-items.js |    1 +
 .../tvm_graph_rt/packed_func/trait.PackedFunc.html |    3 +
 .../tvm_graph_rt/packed_func/union.TVMValue.html   |   45 +
 docs/api/rust/tvm_graph_rt/sidebar-items.js        |    1 +
 docs/api/rust/tvm_graph_rt/struct.DLTensor.html    |   64 +
 docs/api/rust/tvm_graph_rt/struct.DsoModule.html   |   13 +
 docs/api/rust/tvm_graph_rt/struct.Entry.html       |   19 +
 .../rust/tvm_graph_rt/struct.FuncCallError.html    |   19 +
 docs/api/rust/tvm_graph_rt/struct.Graph.html       |   32 +
 .../rust/tvm_graph_rt/struct.GraphExecutor.html    |   37 +
 docs/api/rust/tvm_graph_rt/struct.Node.html        |   21 +
 .../rust/tvm_graph_rt/struct.SystemLibModule.html  |   12 +
 docs/api/rust/tvm_graph_rt/struct.Tensor.html      |   62 +
 .../tvm_graph_rt/struct.ValueDowncastError.html    |   23 +
 .../threading/fn.TVMBackendParallelBarrier.html    |   10 +
 .../threading/fn.TVMBackendParallelLaunch.html     |   10 +
 docs/api/rust/tvm_graph_rt/trait.Module.html       |    6 +
 docs/api/rust/tvm_graph_rt/trait.PackedFunc.html   |    3 +
 docs/api/rust/tvm_graph_rt/union.TVMValue.html     |   45 +
 .../workspace/fn.TVMBackendAllocWorkspace.html     |   10 +
 .../workspace/fn.TVMBackendFreeWorkspace.html      |   10 +
 .../tvm_graph_rt/workspace/fn.remove_item.html     |   10 +
 docs/api/rust/tvm_macros/all.html                  |    4 +
 docs/api/rust/tvm_macros/derive.Object.html        |    8 +
 docs/api/rust/tvm_macros/index.html                |    4 +
 docs/api/rust/tvm_macros/macro.external!.html      |   10 +
 docs/api/rust/tvm_macros/macro.external.html       |    2 +
 docs/api/rust/tvm_macros/macro.import_module!.html |   10 +
 docs/api/rust/tvm_macros/macro.import_module.html  |    2 +
 docs/api/rust/tvm_macros/sidebar-items.js          |    1 +
 docs/api/rust/tvm_rt/all.html                      |    4 +
 docs/api/rust/tvm_rt/array/fn.array_get_item.html  |    2 +
 docs/api/rust/tvm_rt/array/fn.array_size.html      |    2 +
 docs/api/rust/tvm_rt/array/index.html              |    4 +
 docs/api/rust/tvm_rt/array/sidebar-items.js        |    1 +
 docs/api/rust/tvm_rt/array/struct.Array.html       |   29 +
 docs/api/rust/tvm_rt/array/struct.IntoIter.html    |  135 ++
 docs/api/rust/tvm_rt/context/enum.DeviceType.html  |   47 +
 .../rust/tvm_rt/context/fn.get_device_attr.html    |    2 +
 docs/api/rust/tvm_rt/context/index.html            |    7 +
 docs/api/rust/tvm_rt/context/sidebar-items.js      |    1 +
 docs/api/rust/tvm_rt/context/struct.Context.html   |   41 +
 .../context/struct.UnsupportedDeviceError.html     |   19 +
 docs/api/rust/tvm_rt/enum.ArgValue.html            |  124 ++
 docs/api/rust/tvm_rt/enum.DeviceType.html          |   47 +
 docs/api/rust/tvm_rt/enum.RetValue.html            |  111 ++
 docs/api/rust/tvm_rt/errors/enum.Error.html        |   39 +
 docs/api/rust/tvm_rt/errors/enum.NDArrayError.html |   32 +
 docs/api/rust/tvm_rt/errors/index.html             |    4 +
 docs/api/rust/tvm_rt/errors/sidebar-items.js       |    1 +
 .../errors/struct.FunctionNotFoundError.html       |   19 +
 .../tvm_rt/errors/struct.TypeMismatchError.html    |   23 +
 docs/api/rust/tvm_rt/fn.get_last_error.html        |    3 +
 docs/api/rust/tvm_rt/fn.version.html               |    3 +
 docs/api/rust/tvm_rt/function/enum.ArgValue.html   |  124 ++
 docs/api/rust/tvm_rt/function/enum.RetValue.html   |  111 ++
 .../ffi/constant.DLDataTypeCode_kDLBfloat.html     |    2 +
 .../ffi/constant.DLDataTypeCode_kDLFloat.html      |    2 +
 .../ffi/constant.DLDataTypeCode_kDLInt.html        |    2 +
 .../ffi/constant.DLDataTypeCode_kDLUInt.html       |    2 +
 .../function/ffi/constant.DLDeviceType_kDLCPU.html |    3 +
 .../ffi/constant.DLDeviceType_kDLCPUPinned.html    |    4 +
 .../ffi/constant.DLDeviceType_kDLExtDev.html       |    5 +
 .../function/ffi/constant.DLDeviceType_kDLGPU.html |    3 +
 .../ffi/constant.DLDeviceType_kDLMetal.html        |    3 +
 .../ffi/constant.DLDeviceType_kDLOpenCL.html       |    3 +
 .../ffi/constant.DLDeviceType_kDLROCM.html         |    3 +
 .../function/ffi/constant.DLDeviceType_kDLVPI.html |    3 +
 .../ffi/constant.DLDeviceType_kDLVulkan.html       |    3 +
 .../function/ffi/constant.DLPACK_VERSION.html      |    2 +
 .../tvm_rt/function/ffi/constant.INT16_MAX.html    |    2 +
 .../tvm_rt/function/ffi/constant.INT16_MIN.html    |    2 +
 .../tvm_rt/function/ffi/constant.INT32_MAX.html    |    2 +
 .../tvm_rt/function/ffi/constant.INT32_MIN.html    |    2 +
 .../tvm_rt/function/ffi/constant.INT8_MAX.html     |    2 +
 .../tvm_rt/function/ffi/constant.INT8_MIN.html     |    2 +
 .../tvm_rt/function/ffi/constant.INTPTR_MAX.html   |    2 +
 .../tvm_rt/function/ffi/constant.INTPTR_MIN.html   |    2 +
 .../function/ffi/constant.INT_FAST16_MAX.html      |    2 +
 .../function/ffi/constant.INT_FAST16_MIN.html      |    2 +
 .../function/ffi/constant.INT_FAST32_MAX.html      |    2 +
 .../function/ffi/constant.INT_FAST32_MIN.html      |    2 +
 .../function/ffi/constant.INT_FAST8_MAX.html       |    2 +
 .../function/ffi/constant.INT_FAST8_MIN.html       |    2 +
 .../function/ffi/constant.INT_LEAST16_MAX.html     |    2 +
 .../function/ffi/constant.INT_LEAST16_MIN.html     |    2 +
 .../function/ffi/constant.INT_LEAST32_MAX.html     |    2 +
 .../function/ffi/constant.INT_LEAST32_MIN.html     |    2 +
 .../function/ffi/constant.INT_LEAST8_MAX.html      |    2 +
 .../function/ffi/constant.INT_LEAST8_MIN.html      |    2 +
 .../tvm_rt/function/ffi/constant.PTRDIFF_MAX.html  |    2 +
 .../tvm_rt/function/ffi/constant.PTRDIFF_MIN.html  |    2 +
 .../function/ffi/constant.SIG_ATOMIC_MAX.html      |    2 +
 .../function/ffi/constant.SIG_ATOMIC_MIN.html      |    2 +
 .../tvm_rt/function/ffi/constant.SIZE_MAX.html     |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgFloat.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgInt.html    |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMBytes.html     |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMContext.html   |    2 +
 ...constant.TVMArgTypeCode_kTVMDLTensorHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMDataType.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtBegin.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtEnd.html    |    2 +
 .../constant.TVMArgTypeCode_kTVMExtReserveEnd.html |    2 +
 .../constant.TVMArgTypeCode_kTVMModuleHandle.html  |    2 +
 .../constant.TVMArgTypeCode_kTVMNDArrayHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMFirst.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMLast.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNullptr.html   |    2 +
 .../constant.TVMArgTypeCode_kTVMObjectHandle.html  |    2 +
 ...tant.TVMArgTypeCode_kTVMObjectRValueRefArg.html |    2 +
 .../constant.TVMArgTypeCode_kTVMOpaqueHandle.html  |    2 +
 ...nstant.TVMArgTypeCode_kTVMPackedFuncHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMStr.html       |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLAOCL.html     |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLHexagon.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLMicroDev.html |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLSDAccel.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLWebGPU.html   |    2 +
 .../ffi/constant.TVMDeviceExtType_kOpenGL.html     |    2 +
 .../tvm_rt/function/ffi/constant.TVM_VERSION.html  |    2 +
 .../tvm_rt/function/ffi/constant.UINT16_MAX.html   |    2 +
 .../tvm_rt/function/ffi/constant.UINT32_MAX.html   |    2 +
 .../tvm_rt/function/ffi/constant.UINT8_MAX.html    |    2 +
 .../tvm_rt/function/ffi/constant.UINTPTR_MAX.html  |    2 +
 .../function/ffi/constant.UINT_FAST16_MAX.html     |    2 +
 .../function/ffi/constant.UINT_FAST32_MAX.html     |    2 +
 .../function/ffi/constant.UINT_FAST8_MAX.html      |    2 +
 .../function/ffi/constant.UINT_LEAST16_MAX.html    |    2 +
 .../function/ffi/constant.UINT_LEAST32_MAX.html    |    2 +
 .../function/ffi/constant.UINT_LEAST8_MAX.html     |    2 +
 .../tvm_rt/function/ffi/constant.WINT_MAX.html     |    2 +
 .../tvm_rt/function/ffi/constant.WINT_MIN.html     |    2 +
 .../function/ffi/constant._ATFILE_SOURCE.html      |    2 +
 .../function/ffi/constant._BITS_WCHAR_H.html       |    2 +
 .../function/ffi/constant._DEFAULT_SOURCE.html     |    2 +
 .../tvm_rt/function/ffi/constant._FEATURES_H.html  |    2 +
 .../function/ffi/constant._POSIX_C_SOURCE.html     |    2 +
 .../function/ffi/constant._POSIX_SOURCE.html       |    2 +
 .../function/ffi/constant._STDC_PREDEF_H.html      |    2 +
 .../tvm_rt/function/ffi/constant._STDINT_H.html    |    2 +
 .../tvm_rt/function/ffi/constant._SYS_CDEFS_H.html |    2 +
 .../function/ffi/constant.__GLIBC_MINOR__.html     |    2 +
 .../tvm_rt/function/ffi/constant.__GLIBC__.html    |    2 +
 .../function/ffi/constant.__GNU_LIBRARY__.html     |    2 +
 .../ffi/constant.__STDC_IEC_559_COMPLEX__.html     |    2 +
 .../function/ffi/constant.__STDC_IEC_559__.html    |    2 +
 .../function/ffi/constant.__STDC_ISO_10646__.html  |    2 +
 .../function/ffi/constant.__STDC_NO_THREADS__.html |    2 +
 .../function/ffi/constant.__SYSCALL_WORDSIZE.html  |    2 +
 .../tvm_rt/function/ffi/constant.__USE_ATFILE.html |    2 +
 .../function/ffi/constant.__USE_FORTIFY_LEVEL.html |    2 +
 .../tvm_rt/function/ffi/constant.__USE_ISOC11.html |    2 +
 .../tvm_rt/function/ffi/constant.__USE_ISOC95.html |    2 +
 .../tvm_rt/function/ffi/constant.__USE_ISOC99.html |    2 +
 .../tvm_rt/function/ffi/constant.__USE_MISC.html   |    2 +
 .../tvm_rt/function/ffi/constant.__USE_POSIX.html  |    2 +
 .../function/ffi/constant.__USE_POSIX199309.html   |    2 +
 .../function/ffi/constant.__USE_POSIX199506.html   |    2 +
 .../tvm_rt/function/ffi/constant.__USE_POSIX2.html |    2 +
 .../ffi/constant.__USE_POSIX_IMPLICITLY.html       |    2 +
 .../function/ffi/constant.__USE_XOPEN2K.html       |    2 +
 .../function/ffi/constant.__USE_XOPEN2K8.html      |    2 +
 .../tvm_rt/function/ffi/constant.__WORDSIZE.html   |    2 +
 .../ffi/constant.__WORDSIZE_TIME64_COMPAT32.html   |    2 +
 .../tvm_rt/function/ffi/fn.TVMAPISetLastError.html |    5 +
 .../rust/tvm_rt/function/ffi/fn.TVMArrayAlloc.html |   13 +
 .../function/ffi/fn.TVMArrayCopyFromBytes.html     |    7 +
 .../tvm_rt/function/ffi/fn.TVMArrayCopyFromTo.html |    7 +
 .../function/ffi/fn.TVMArrayCopyToBytes.html       |    7 +
 .../rust/tvm_rt/function/ffi/fn.TVMArrayFree.html  |    5 +
 .../tvm_rt/function/ffi/fn.TVMArrayFromDLPack.html |    7 +
 .../tvm_rt/function/ffi/fn.TVMArrayToDLPack.html   |    7 +
 .../function/ffi/fn.TVMBackendAllocWorkspace.html  |   12 +
 .../function/ffi/fn.TVMBackendFreeWorkspace.html   |    8 +
 .../function/ffi/fn.TVMBackendGetFuncFromEnv.html  |    9 +
 .../function/ffi/fn.TVMBackendParallelBarrier.html |    6 +
 .../function/ffi/fn.TVMBackendParallelLaunch.html  |    8 +
 .../ffi/fn.TVMBackendRegisterSystemLibSymbol.html  |    6 +
 .../tvm_rt/function/ffi/fn.TVMBackendRunOnce.html  |   10 +
 .../tvm_rt/function/ffi/fn.TVMCFuncSetReturn.html  |    9 +
 .../tvm_rt/function/ffi/fn.TVMCbArgToReturn.html   |    8 +
 .../ffi/fn.TVMDLManagedTensorCallDeleter.html      |    4 +
 .../function/ffi/fn.TVMDeviceAllocDataSpace.html   |   10 +
 .../function/ffi/fn.TVMDeviceCopyDataFromTo.html   |   14 +
 .../function/ffi/fn.TVMDeviceFreeDataSpace.html    |    6 +
 .../rust/tvm_rt/function/ffi/fn.TVMFuncCall.html   |   16 +
 .../function/ffi/fn.TVMFuncCreateFromCFunc.html    |    9 +
 .../rust/tvm_rt/function/ffi/fn.TVMFuncFree.html   |    5 +
 .../tvm_rt/function/ffi/fn.TVMFuncGetGlobal.html   |    7 +
 .../function/ffi/fn.TVMFuncListGlobalNames.html    |    6 +
 .../function/ffi/fn.TVMFuncRegisterGlobal.html     |    7 +
 .../function/ffi/fn.TVMFuncRemoveGlobal.html       |    4 +
 .../tvm_rt/function/ffi/fn.TVMGetLastError.html    |    8 +
 .../rust/tvm_rt/function/ffi/fn.TVMModFree.html    |    9 +
 .../tvm_rt/function/ffi/fn.TVMModGetFunction.html  |    8 +
 .../rust/tvm_rt/function/ffi/fn.TVMModImport.html  |    7 +
 .../tvm_rt/function/ffi/fn.TVMModLoadFromFile.html |    9 +
 .../function/ffi/fn.TVMObjectDerivedFrom.html      |    7 +
 .../rust/tvm_rt/function/ffi/fn.TVMObjectFree.html |    7 +
 .../function/ffi/fn.TVMObjectGetTypeIndex.html     |    6 +
 .../tvm_rt/function/ffi/fn.TVMObjectRetain.html    |    6 +
 .../function/ffi/fn.TVMObjectTypeKey2Index.html    |    6 +
 .../rust/tvm_rt/function/ffi/fn.TVMSetStream.html  |   10 +
 .../tvm_rt/function/ffi/fn.TVMStreamCreate.html    |    7 +
 .../rust/tvm_rt/function/ffi/fn.TVMStreamFree.html |    7 +
 .../ffi/fn.TVMStreamStreamSynchronize.html         |    8 +
 .../tvm_rt/function/ffi/fn.TVMSynchronize.html     |    7 +
 docs/api/rust/tvm_rt/function/ffi/index.html       |  182 ++
 docs/api/rust/tvm_rt/function/ffi/sidebar-items.js |    1 +
 .../rust/tvm_rt/function/ffi/struct.DLContext.html |   45 +
 .../tvm_rt/function/ffi/struct.DLDataType.html     |   52 +
 .../function/ffi/struct.DLManagedTensor.html       |   38 +
 .../rust/tvm_rt/function/ffi/struct.DLTensor.html  |   61 +
 .../tvm_rt/function/ffi/struct.TVMByteArray.html   |   31 +
 .../function/ffi/struct.TVMParallelGroupEnv.html   |   28 +
 .../function/ffi/type.BackendPackedCFunc.html      |    2 +
 .../tvm_rt/function/ffi/type.DLDataTypeCode.html   |    3 +
 .../tvm_rt/function/ffi/type.DLDeviceType.html     |    3 +
 .../function/ffi/type.FTVMParallelLambda.html      |    6 +
 .../tvm_rt/function/ffi/type.TVMArgTypeCode.html   |   14 +
 .../tvm_rt/function/ffi/type.TVMArrayHandle.html   |    3 +
 .../function/ffi/type.TVMBackendPackedCFunc.html   |   10 +
 .../rust/tvm_rt/function/ffi/type.TVMContext.html  |    3 +
 .../tvm_rt/function/ffi/type.TVMDeviceExtType.html |    3 +
 .../ffi/type.TVMExtensionFuncDeclarer.html         |    7 +
 .../function/ffi/type.TVMFunctionHandle.html       |    3 +
 .../tvm_rt/function/ffi/type.TVMModuleHandle.html  |    3 +
 .../tvm_rt/function/ffi/type.TVMObjectHandle.html  |    3 +
 .../tvm_rt/function/ffi/type.TVMPackedCFunc.html   |   10 +
 .../function/ffi/type.TVMPackedCFuncFinalizer.html |    4 +
 .../function/ffi/type.TVMRetValueHandle.html       |    3 +
 .../tvm_rt/function/ffi/type.TVMStreamHandle.html  |    4 +
 .../tvm_rt/function/ffi/type.int_fast16_t.html     |    2 +
 .../tvm_rt/function/ffi/type.int_fast32_t.html     |    2 +
 .../tvm_rt/function/ffi/type.int_fast64_t.html     |    2 +
 .../rust/tvm_rt/function/ffi/type.int_fast8_t.html |    2 +
 .../tvm_rt/function/ffi/type.int_least16_t.html    |    2 +
 .../tvm_rt/function/ffi/type.int_least32_t.html    |    2 +
 .../tvm_rt/function/ffi/type.int_least64_t.html    |    2 +
 .../tvm_rt/function/ffi/type.int_least8_t.html     |    2 +
 .../rust/tvm_rt/function/ffi/type.intmax_t.html    |    2 +
 .../rust/tvm_rt/function/ffi/type.tvm_index_t.html |    3 +
 .../tvm_rt/function/ffi/type.uint_fast16_t.html    |    2 +
 .../tvm_rt/function/ffi/type.uint_fast32_t.html    |    2 +
 .../tvm_rt/function/ffi/type.uint_fast64_t.html    |    2 +
 .../tvm_rt/function/ffi/type.uint_fast8_t.html     |    2 +
 .../tvm_rt/function/ffi/type.uint_least16_t.html   |    2 +
 .../tvm_rt/function/ffi/type.uint_least32_t.html   |    2 +
 .../tvm_rt/function/ffi/type.uint_least64_t.html   |    2 +
 .../tvm_rt/function/ffi/type.uint_least8_t.html    |    2 +
 .../rust/tvm_rt/function/ffi/type.uintmax_t.html   |    2 +
 .../api/rust/tvm_rt/function/ffi/type.wchar_t.html |    2 +
 .../rust/tvm_rt/function/ffi/union.TVMValue.html   |   45 +
 docs/api/rust/tvm_rt/function/fn.register.html     |   20 +
 .../rust/tvm_rt/function/fn.register_override.html |    4 +
 .../rust/tvm_rt/function/fn.register_untyped.html  |    2 +
 docs/api/rust/tvm_rt/function/index.html           |   27 +
 docs/api/rust/tvm_rt/function/sidebar-items.js     |    1 +
 docs/api/rust/tvm_rt/function/struct.Function.html |   43 +
 .../api/rust/tvm_rt/function/trait.ToFunction.html |   22 +
 docs/api/rust/tvm_rt/function/trait.Typed.html     |   14 +
 docs/api/rust/tvm_rt/function/type.Result.html     |    2 +
 docs/api/rust/tvm_rt/index.html                    |   30 +
 docs/api/rust/tvm_rt/macro.check_call!.html        |   10 +
 docs/api/rust/tvm_rt/macro.check_call.html         |    6 +
 docs/api/rust/tvm_rt/macro.external!.html          |   10 +
 docs/api/rust/tvm_rt/macro.external.html           |    2 +
 docs/api/rust/tvm_rt/macro.tvm_call!.html          |   10 +
 docs/api/rust/tvm_rt/macro.tvm_call.html           |    6 +
 docs/api/rust/tvm_rt/map/fn.array_get_item.html    |    2 +
 docs/api/rust/tvm_rt/map/fn.map_count.html         |    2 +
 docs/api/rust/tvm_rt/map/fn.map_get_item.html      |    2 +
 docs/api/rust/tvm_rt/map/fn.map_items.html         |    2 +
 docs/api/rust/tvm_rt/map/fn.map_size.html          |    2 +
 docs/api/rust/tvm_rt/map/index.html                |    4 +
 docs/api/rust/tvm_rt/map/sidebar-items.js          |    1 +
 docs/api/rust/tvm_rt/map/struct.IntoIter.html      |  135 ++
 docs/api/rust/tvm_rt/map/struct.Map.html           |   32 +
 docs/api/rust/tvm_rt/module/fn.load_from_file.html |    2 +
 .../api/rust/tvm_rt/module/fn.runtime_enabled.html |    2 +
 docs/api/rust/tvm_rt/module/index.html             |    7 +
 docs/api/rust/tvm_rt/module/sidebar-items.js       |    1 +
 docs/api/rust/tvm_rt/module/struct.Module.html     |   35 +
 docs/api/rust/tvm_rt/ndarray/index.html            |   23 +
 docs/api/rust/tvm_rt/ndarray/sidebar-items.js      |    1 +
 docs/api/rust/tvm_rt/ndarray/struct.NDArray.html   |   81 +
 .../tvm_rt/ndarray/struct.NDArrayContainer.html    |   15 +
 docs/api/rust/tvm_rt/ndarray/trait.Num32.html      |    8 +
 docs/api/rust/tvm_rt/object/fn.debug_print.html    |    2 +
 .../rust/tvm_rt/object/fn.structural_equal.html    |    2 +
 .../api/rust/tvm_rt/object/fn.structural_hash.html |    2 +
 docs/api/rust/tvm_rt/object/index.html             |   14 +
 .../tvm_rt/object/object_ptr/struct.Object.html    |   10 +
 .../tvm_rt/object/object_ptr/struct.ObjectPtr.html |   10 +
 .../tvm_rt/object/object_ptr/struct.ObjectRef.html |   10 +
 .../tvm_rt/object/object_ptr/trait.IsObject.html   |   10 +
 docs/api/rust/tvm_rt/object/sidebar-items.js       |    1 +
 docs/api/rust/tvm_rt/object/struct.Object.html     |   23 +
 docs/api/rust/tvm_rt/object/struct.ObjectPtr.html  |   35 +
 docs/api/rust/tvm_rt/object/struct.ObjectRef.html  |   28 +
 docs/api/rust/tvm_rt/object/trait.IsObject.html    |   14 +
 docs/api/rust/tvm_rt/object/trait.IsObjectRef.html |   21 +
 docs/api/rust/tvm_rt/sidebar-items.js              |    1 +
 docs/api/rust/tvm_rt/string/index.html             |    3 +
 docs/api/rust/tvm_rt/string/sidebar-items.js       |    1 +
 docs/api/rust/tvm_rt/string/struct.String.html     |   47 +
 docs/api/rust/tvm_rt/string/struct.StringObj.html  |   14 +
 docs/api/rust/tvm_rt/struct.ByteArray.html         |   28 +
 docs/api/rust/tvm_rt/struct.Context.html           |   41 +
 docs/api/rust/tvm_rt/struct.DataType.html          |   45 +
 .../api/rust/tvm_rt/to_function/enum.ArgValue.html |   10 +
 .../api/rust/tvm_rt/to_function/enum.RetValue.html |   10 +
 .../ffi/constant.DLDataTypeCode_kDLBfloat.html     |   10 +
 .../ffi/constant.DLDataTypeCode_kDLFloat.html      |   10 +
 .../ffi/constant.DLDataTypeCode_kDLInt.html        |   10 +
 .../ffi/constant.DLDataTypeCode_kDLUInt.html       |   10 +
 .../ffi/constant.DLDeviceType_kDLCPU.html          |   10 +
 .../ffi/constant.DLDeviceType_kDLCPUPinned.html    |   10 +
 .../ffi/constant.DLDeviceType_kDLExtDev.html       |   10 +
 .../ffi/constant.DLDeviceType_kDLGPU.html          |   10 +
 .../ffi/constant.DLDeviceType_kDLMetal.html        |   10 +
 .../ffi/constant.DLDeviceType_kDLOpenCL.html       |   10 +
 .../ffi/constant.DLDeviceType_kDLROCM.html         |   10 +
 .../ffi/constant.DLDeviceType_kDLVPI.html          |   10 +
 .../ffi/constant.DLDeviceType_kDLVulkan.html       |   10 +
 .../to_function/ffi/constant.DLPACK_VERSION.html   |   10 +
 .../tvm_rt/to_function/ffi/constant.INT16_MAX.html |   10 +
 .../tvm_rt/to_function/ffi/constant.INT16_MIN.html |   10 +
 .../tvm_rt/to_function/ffi/constant.INT32_MAX.html |   10 +
 .../tvm_rt/to_function/ffi/constant.INT32_MIN.html |   10 +
 .../tvm_rt/to_function/ffi/constant.INT8_MAX.html  |   10 +
 .../tvm_rt/to_function/ffi/constant.INT8_MIN.html  |   10 +
 .../to_function/ffi/constant.INTPTR_MAX.html       |   10 +
 .../to_function/ffi/constant.INTPTR_MIN.html       |   10 +
 .../to_function/ffi/constant.INT_FAST16_MAX.html   |   10 +
 .../to_function/ffi/constant.INT_FAST16_MIN.html   |   10 +
 .../to_function/ffi/constant.INT_FAST32_MAX.html   |   10 +
 .../to_function/ffi/constant.INT_FAST32_MIN.html   |   10 +
 .../to_function/ffi/constant.INT_FAST8_MAX.html    |   10 +
 .../to_function/ffi/constant.INT_FAST8_MIN.html    |   10 +
 .../to_function/ffi/constant.INT_LEAST16_MAX.html  |   10 +
 .../to_function/ffi/constant.INT_LEAST16_MIN.html  |   10 +
 .../to_function/ffi/constant.INT_LEAST32_MAX.html  |   10 +
 .../to_function/ffi/constant.INT_LEAST32_MIN.html  |   10 +
 .../to_function/ffi/constant.INT_LEAST8_MAX.html   |   10 +
 .../to_function/ffi/constant.INT_LEAST8_MIN.html   |   10 +
 .../to_function/ffi/constant.PTRDIFF_MAX.html      |   10 +
 .../to_function/ffi/constant.PTRDIFF_MIN.html      |   10 +
 .../to_function/ffi/constant.SIG_ATOMIC_MAX.html   |   10 +
 .../to_function/ffi/constant.SIG_ATOMIC_MIN.html   |   10 +
 .../tvm_rt/to_function/ffi/constant.SIZE_MAX.html  |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgFloat.html  |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgInt.html    |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMBytes.html     |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMContext.html   |   10 +
 ...constant.TVMArgTypeCode_kTVMDLTensorHandle.html |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMDataType.html  |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtBegin.html  |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtEnd.html    |   10 +
 .../constant.TVMArgTypeCode_kTVMExtReserveEnd.html |   10 +
 .../constant.TVMArgTypeCode_kTVMModuleHandle.html  |   10 +
 .../constant.TVMArgTypeCode_kTVMNDArrayHandle.html |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMFirst.html |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMLast.html  |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMNullptr.html   |   10 +
 .../constant.TVMArgTypeCode_kTVMObjectHandle.html  |   10 +
 ...tant.TVMArgTypeCode_kTVMObjectRValueRefArg.html |   10 +
 .../constant.TVMArgTypeCode_kTVMOpaqueHandle.html  |   10 +
 ...nstant.TVMArgTypeCode_kTVMPackedFuncHandle.html |   10 +
 .../ffi/constant.TVMArgTypeCode_kTVMStr.html       |   10 +
 .../ffi/constant.TVMDeviceExtType_kDLAOCL.html     |   10 +
 .../ffi/constant.TVMDeviceExtType_kDLHexagon.html  |   10 +
 .../ffi/constant.TVMDeviceExtType_kDLMicroDev.html |   10 +
 .../ffi/constant.TVMDeviceExtType_kDLSDAccel.html  |   10 +
 .../ffi/constant.TVMDeviceExtType_kDLWebGPU.html   |   10 +
 .../ffi/constant.TVMDeviceExtType_kOpenGL.html     |   10 +
 .../to_function/ffi/constant.TVM_VERSION.html      |   10 +
 .../to_function/ffi/constant.UINT16_MAX.html       |   10 +
 .../to_function/ffi/constant.UINT32_MAX.html       |   10 +
 .../tvm_rt/to_function/ffi/constant.UINT8_MAX.html |   10 +
 .../to_function/ffi/constant.UINTPTR_MAX.html      |   10 +
 .../to_function/ffi/constant.UINT_FAST16_MAX.html  |   10 +
 .../to_function/ffi/constant.UINT_FAST32_MAX.html  |   10 +
 .../to_function/ffi/constant.UINT_FAST8_MAX.html   |   10 +
 .../to_function/ffi/constant.UINT_LEAST16_MAX.html |   10 +
 .../to_function/ffi/constant.UINT_LEAST32_MAX.html |   10 +
 .../to_function/ffi/constant.UINT_LEAST8_MAX.html  |   10 +
 .../tvm_rt/to_function/ffi/constant.WINT_MAX.html  |   10 +
 .../tvm_rt/to_function/ffi/constant.WINT_MIN.html  |   10 +
 .../to_function/ffi/constant._ATFILE_SOURCE.html   |   10 +
 .../to_function/ffi/constant._BITS_WCHAR_H.html    |   10 +
 .../to_function/ffi/constant._DEFAULT_SOURCE.html  |   10 +
 .../to_function/ffi/constant._FEATURES_H.html      |   10 +
 .../to_function/ffi/constant._POSIX_C_SOURCE.html  |   10 +
 .../to_function/ffi/constant._POSIX_SOURCE.html    |   10 +
 .../to_function/ffi/constant._STDC_PREDEF_H.html   |   10 +
 .../tvm_rt/to_function/ffi/constant._STDINT_H.html |   10 +
 .../to_function/ffi/constant._SYS_CDEFS_H.html     |   10 +
 .../to_function/ffi/constant.__GLIBC_MINOR__.html  |   10 +
 .../tvm_rt/to_function/ffi/constant.__GLIBC__.html |   10 +
 .../to_function/ffi/constant.__GNU_LIBRARY__.html  |   10 +
 .../ffi/constant.__STDC_IEC_559_COMPLEX__.html     |   10 +
 .../to_function/ffi/constant.__STDC_IEC_559__.html |   10 +
 .../ffi/constant.__STDC_ISO_10646__.html           |   10 +
 .../ffi/constant.__STDC_NO_THREADS__.html          |   10 +
 .../ffi/constant.__SYSCALL_WORDSIZE.html           |   10 +
 .../to_function/ffi/constant.__USE_ATFILE.html     |   10 +
 .../ffi/constant.__USE_FORTIFY_LEVEL.html          |   10 +
 .../to_function/ffi/constant.__USE_ISOC11.html     |   10 +
 .../to_function/ffi/constant.__USE_ISOC95.html     |   10 +
 .../to_function/ffi/constant.__USE_ISOC99.html     |   10 +
 .../to_function/ffi/constant.__USE_MISC.html       |   10 +
 .../to_function/ffi/constant.__USE_POSIX.html      |   10 +
 .../ffi/constant.__USE_POSIX199309.html            |   10 +
 .../ffi/constant.__USE_POSIX199506.html            |   10 +
 .../to_function/ffi/constant.__USE_POSIX2.html     |   10 +
 .../ffi/constant.__USE_POSIX_IMPLICITLY.html       |   10 +
 .../to_function/ffi/constant.__USE_XOPEN2K.html    |   10 +
 .../to_function/ffi/constant.__USE_XOPEN2K8.html   |   10 +
 .../to_function/ffi/constant.__WORDSIZE.html       |   10 +
 .../ffi/constant.__WORDSIZE_TIME64_COMPAT32.html   |   10 +
 .../to_function/ffi/fn.TVMAPISetLastError.html     |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMArrayAlloc.html   |   10 +
 .../to_function/ffi/fn.TVMArrayCopyFromBytes.html  |   10 +
 .../to_function/ffi/fn.TVMArrayCopyFromTo.html     |   10 +
 .../to_function/ffi/fn.TVMArrayCopyToBytes.html    |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMArrayFree.html    |   10 +
 .../to_function/ffi/fn.TVMArrayFromDLPack.html     |   10 +
 .../to_function/ffi/fn.TVMArrayToDLPack.html       |   10 +
 .../ffi/fn.TVMBackendAllocWorkspace.html           |   10 +
 .../ffi/fn.TVMBackendFreeWorkspace.html            |   10 +
 .../ffi/fn.TVMBackendGetFuncFromEnv.html           |   10 +
 .../ffi/fn.TVMBackendParallelBarrier.html          |   10 +
 .../ffi/fn.TVMBackendParallelLaunch.html           |   10 +
 .../ffi/fn.TVMBackendRegisterSystemLibSymbol.html  |   10 +
 .../to_function/ffi/fn.TVMBackendRunOnce.html      |   10 +
 .../to_function/ffi/fn.TVMCFuncSetReturn.html      |   10 +
 .../to_function/ffi/fn.TVMCbArgToReturn.html       |   10 +
 .../ffi/fn.TVMDLManagedTensorCallDeleter.html      |   10 +
 .../ffi/fn.TVMDeviceAllocDataSpace.html            |   10 +
 .../ffi/fn.TVMDeviceCopyDataFromTo.html            |   10 +
 .../to_function/ffi/fn.TVMDeviceFreeDataSpace.html |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMFuncCall.html     |   10 +
 .../to_function/ffi/fn.TVMFuncCreateFromCFunc.html |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMFuncFree.html     |   10 +
 .../to_function/ffi/fn.TVMFuncGetGlobal.html       |   10 +
 .../to_function/ffi/fn.TVMFuncListGlobalNames.html |   10 +
 .../to_function/ffi/fn.TVMFuncRegisterGlobal.html  |   10 +
 .../to_function/ffi/fn.TVMFuncRemoveGlobal.html    |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMGetLastError.html |   10 +
 .../rust/tvm_rt/to_function/ffi/fn.TVMModFree.html |   10 +
 .../to_function/ffi/fn.TVMModGetFunction.html      |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMModImport.html    |   10 +
 .../to_function/ffi/fn.TVMModLoadFromFile.html     |   10 +
 .../to_function/ffi/fn.TVMObjectDerivedFrom.html   |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMObjectFree.html   |   10 +
 .../to_function/ffi/fn.TVMObjectGetTypeIndex.html  |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMObjectRetain.html |   10 +
 .../to_function/ffi/fn.TVMObjectTypeKey2Index.html |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMSetStream.html    |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMStreamCreate.html |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMStreamFree.html   |   10 +
 .../ffi/fn.TVMStreamStreamSynchronize.html         |   10 +
 .../tvm_rt/to_function/ffi/fn.TVMSynchronize.html  |   10 +
 docs/api/rust/tvm_rt/to_function/ffi/index.html    |   10 +
 .../tvm_rt/to_function/ffi/struct.DLContext.html   |   10 +
 .../tvm_rt/to_function/ffi/struct.DLDataType.html  |   10 +
 .../to_function/ffi/struct.DLManagedTensor.html    |   10 +
 .../tvm_rt/to_function/ffi/struct.DLTensor.html    |   10 +
 .../to_function/ffi/struct.TVMByteArray.html       |   10 +
 .../ffi/struct.TVMParallelGroupEnv.html            |   10 +
 .../to_function/ffi/type.BackendPackedCFunc.html   |   10 +
 .../to_function/ffi/type.DLDataTypeCode.html       |   10 +
 .../tvm_rt/to_function/ffi/type.DLDeviceType.html  |   10 +
 .../to_function/ffi/type.FTVMParallelLambda.html   |   10 +
 .../to_function/ffi/type.TVMArgTypeCode.html       |   10 +
 .../to_function/ffi/type.TVMArrayHandle.html       |   10 +
 .../ffi/type.TVMBackendPackedCFunc.html            |   10 +
 .../tvm_rt/to_function/ffi/type.TVMContext.html    |   10 +
 .../to_function/ffi/type.TVMDeviceExtType.html     |   10 +
 .../ffi/type.TVMExtensionFuncDeclarer.html         |   10 +
 .../to_function/ffi/type.TVMFunctionHandle.html    |   10 +
 .../to_function/ffi/type.TVMModuleHandle.html      |   10 +
 .../to_function/ffi/type.TVMObjectHandle.html      |   10 +
 .../to_function/ffi/type.TVMPackedCFunc.html       |   10 +
 .../ffi/type.TVMPackedCFuncFinalizer.html          |   10 +
 .../to_function/ffi/type.TVMRetValueHandle.html    |   10 +
 .../to_function/ffi/type.TVMStreamHandle.html      |   10 +
 .../tvm_rt/to_function/ffi/type.int_fast16_t.html  |   10 +
 .../tvm_rt/to_function/ffi/type.int_fast32_t.html  |   10 +
 .../tvm_rt/to_function/ffi/type.int_fast64_t.html  |   10 +
 .../tvm_rt/to_function/ffi/type.int_fast8_t.html   |   10 +
 .../tvm_rt/to_function/ffi/type.int_least16_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.int_least32_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.int_least64_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.int_least8_t.html  |   10 +
 .../rust/tvm_rt/to_function/ffi/type.intmax_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.tvm_index_t.html   |   10 +
 .../tvm_rt/to_function/ffi/type.uint_fast16_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.uint_fast32_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.uint_fast64_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.uint_fast8_t.html  |   10 +
 .../to_function/ffi/type.uint_least16_t.html       |   10 +
 .../to_function/ffi/type.uint_least32_t.html       |   10 +
 .../to_function/ffi/type.uint_least64_t.html       |   10 +
 .../tvm_rt/to_function/ffi/type.uint_least8_t.html |   10 +
 .../tvm_rt/to_function/ffi/type.uintmax_t.html     |   10 +
 .../rust/tvm_rt/to_function/ffi/type.wchar_t.html  |   10 +
 .../tvm_rt/to_function/ffi/union.TVMValue.html     |   10 +
 .../rust/tvm_rt/to_function/trait.ToFunction.html  |   10 +
 docs/api/rust/tvm_rt/to_function/trait.Typed.html  |   10 +
 docs/api/rust/tvm_rt/value/index.html              |    5 +
 docs/api/rust/tvm_rt/value/sidebar-items.js        |    1 +
 docs/api/rust/tvm_sys/all.html                     |    4 +
 docs/api/rust/tvm_sys/array/index.html             |    2 +
 docs/api/rust/tvm_sys/array/sidebar-items.js       |    1 +
 docs/api/rust/tvm_sys/byte_array/index.html        |    4 +
 docs/api/rust/tvm_sys/byte_array/sidebar-items.js  |    1 +
 .../rust/tvm_sys/byte_array/struct.ByteArray.html  |   28 +
 docs/api/rust/tvm_sys/context/enum.DeviceType.html |   48 +
 docs/api/rust/tvm_sys/context/index.html           |   20 +
 docs/api/rust/tvm_sys/context/sidebar-items.js     |    1 +
 docs/api/rust/tvm_sys/context/struct.Context.html  |   41 +
 .../context/struct.UnsupportedDeviceError.html     |   19 +
 .../tvm_sys/datatype/enum.ParseDataTypeError.html  |   25 +
 docs/api/rust/tvm_sys/datatype/index.html          |    4 +
 docs/api/rust/tvm_sys/datatype/sidebar-items.js    |    1 +
 .../api/rust/tvm_sys/datatype/struct.DataType.html |   45 +
 docs/api/rust/tvm_sys/errors/index.html            |    3 +
 docs/api/rust/tvm_sys/errors/sidebar-items.js      |    1 +
 .../rust/tvm_sys/errors/struct.FuncCallError.html  |   19 +
 .../tvm_sys/errors/struct.ValueDowncastError.html  |   23 +
 .../ffi/constant.DLDataTypeCode_kDLBfloat.html     |    2 +
 .../ffi/constant.DLDataTypeCode_kDLFloat.html      |    2 +
 .../ffi/constant.DLDataTypeCode_kDLInt.html        |    2 +
 .../ffi/constant.DLDataTypeCode_kDLUInt.html       |    2 +
 .../tvm_sys/ffi/constant.DLDeviceType_kDLCPU.html  |    3 +
 .../ffi/constant.DLDeviceType_kDLCPUPinned.html    |    4 +
 .../ffi/constant.DLDeviceType_kDLExtDev.html       |    5 +
 .../tvm_sys/ffi/constant.DLDeviceType_kDLGPU.html  |    3 +
 .../ffi/constant.DLDeviceType_kDLMetal.html        |    3 +
 .../ffi/constant.DLDeviceType_kDLOpenCL.html       |    3 +
 .../tvm_sys/ffi/constant.DLDeviceType_kDLROCM.html |    3 +
 .../tvm_sys/ffi/constant.DLDeviceType_kDLVPI.html  |    3 +
 .../ffi/constant.DLDeviceType_kDLVulkan.html       |    3 +
 .../rust/tvm_sys/ffi/constant.DLPACK_VERSION.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INT16_MAX.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INT16_MIN.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INT32_MAX.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INT32_MIN.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INT8_MAX.html   |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INT8_MIN.html   |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INTPTR_MAX.html |    2 +
 docs/api/rust/tvm_sys/ffi/constant.INTPTR_MIN.html |    2 +
 .../rust/tvm_sys/ffi/constant.INT_FAST16_MAX.html  |    2 +
 .../rust/tvm_sys/ffi/constant.INT_FAST16_MIN.html  |    2 +
 .../rust/tvm_sys/ffi/constant.INT_FAST32_MAX.html  |    2 +
 .../rust/tvm_sys/ffi/constant.INT_FAST32_MIN.html  |    2 +
 .../rust/tvm_sys/ffi/constant.INT_FAST8_MAX.html   |    2 +
 .../rust/tvm_sys/ffi/constant.INT_FAST8_MIN.html   |    2 +
 .../rust/tvm_sys/ffi/constant.INT_LEAST16_MAX.html |    2 +
 .../rust/tvm_sys/ffi/constant.INT_LEAST16_MIN.html |    2 +
 .../rust/tvm_sys/ffi/constant.INT_LEAST32_MAX.html |    2 +
 .../rust/tvm_sys/ffi/constant.INT_LEAST32_MIN.html |    2 +
 .../rust/tvm_sys/ffi/constant.INT_LEAST8_MAX.html  |    2 +
 .../rust/tvm_sys/ffi/constant.INT_LEAST8_MIN.html  |    2 +
 .../api/rust/tvm_sys/ffi/constant.PTRDIFF_MAX.html |    2 +
 .../api/rust/tvm_sys/ffi/constant.PTRDIFF_MIN.html |    2 +
 .../rust/tvm_sys/ffi/constant.SIG_ATOMIC_MAX.html  |    2 +
 .../rust/tvm_sys/ffi/constant.SIG_ATOMIC_MIN.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.SIZE_MAX.html   |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgFloat.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMArgInt.html    |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMBytes.html     |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMContext.html   |    2 +
 ...constant.TVMArgTypeCode_kTVMDLTensorHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMDataType.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtBegin.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMExtEnd.html    |    2 +
 .../constant.TVMArgTypeCode_kTVMExtReserveEnd.html |    2 +
 .../constant.TVMArgTypeCode_kTVMModuleHandle.html  |    2 +
 .../constant.TVMArgTypeCode_kTVMNDArrayHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMFirst.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNNVMLast.html  |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMNullptr.html   |    2 +
 .../constant.TVMArgTypeCode_kTVMObjectHandle.html  |    2 +
 ...tant.TVMArgTypeCode_kTVMObjectRValueRefArg.html |    2 +
 .../constant.TVMArgTypeCode_kTVMOpaqueHandle.html  |    2 +
 ...nstant.TVMArgTypeCode_kTVMPackedFuncHandle.html |    2 +
 .../ffi/constant.TVMArgTypeCode_kTVMStr.html       |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLAOCL.html     |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLHexagon.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLMicroDev.html |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLSDAccel.html  |    2 +
 .../ffi/constant.TVMDeviceExtType_kDLWebGPU.html   |    2 +
 .../ffi/constant.TVMDeviceExtType_kOpenGL.html     |    2 +
 .../api/rust/tvm_sys/ffi/constant.TVM_VERSION.html |    2 +
 docs/api/rust/tvm_sys/ffi/constant.UINT16_MAX.html |    2 +
 docs/api/rust/tvm_sys/ffi/constant.UINT32_MAX.html |    2 +
 docs/api/rust/tvm_sys/ffi/constant.UINT8_MAX.html  |    2 +
 .../api/rust/tvm_sys/ffi/constant.UINTPTR_MAX.html |    2 +
 .../rust/tvm_sys/ffi/constant.UINT_FAST16_MAX.html |    2 +
 .../rust/tvm_sys/ffi/constant.UINT_FAST32_MAX.html |    2 +
 .../rust/tvm_sys/ffi/constant.UINT_FAST8_MAX.html  |    2 +
 .../tvm_sys/ffi/constant.UINT_LEAST16_MAX.html     |    2 +
 .../tvm_sys/ffi/constant.UINT_LEAST32_MAX.html     |    2 +
 .../rust/tvm_sys/ffi/constant.UINT_LEAST8_MAX.html |    2 +
 docs/api/rust/tvm_sys/ffi/constant.WINT_MAX.html   |    2 +
 docs/api/rust/tvm_sys/ffi/constant.WINT_MIN.html   |    2 +
 .../rust/tvm_sys/ffi/constant._ATFILE_SOURCE.html  |    2 +
 .../rust/tvm_sys/ffi/constant._BITS_WCHAR_H.html   |    2 +
 .../rust/tvm_sys/ffi/constant._DEFAULT_SOURCE.html |    2 +
 .../api/rust/tvm_sys/ffi/constant._FEATURES_H.html |    2 +
 .../rust/tvm_sys/ffi/constant._POSIX_C_SOURCE.html |    2 +
 .../rust/tvm_sys/ffi/constant._POSIX_SOURCE.html   |    2 +
 .../rust/tvm_sys/ffi/constant._STDC_PREDEF_H.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant._STDINT_H.html  |    2 +
 .../rust/tvm_sys/ffi/constant._SYS_CDEFS_H.html    |    2 +
 .../rust/tvm_sys/ffi/constant.__GLIBC_MINOR__.html |    2 +
 docs/api/rust/tvm_sys/ffi/constant.__GLIBC__.html  |    2 +
 .../rust/tvm_sys/ffi/constant.__GNU_LIBRARY__.html |    2 +
 .../ffi/constant.__STDC_IEC_559_COMPLEX__.html     |    2 +
 .../tvm_sys/ffi/constant.__STDC_IEC_559__.html     |    2 +
 .../tvm_sys/ffi/constant.__STDC_ISO_10646__.html   |    2 +
 .../tvm_sys/ffi/constant.__STDC_NO_THREADS__.html  |    2 +
 .../tvm_sys/ffi/constant.__SYSCALL_WORDSIZE.html   |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_ATFILE.html    |    2 +
 .../tvm_sys/ffi/constant.__USE_FORTIFY_LEVEL.html  |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_ISOC11.html    |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_ISOC95.html    |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_ISOC99.html    |    2 +
 docs/api/rust/tvm_sys/ffi/constant.__USE_MISC.html |    2 +
 .../api/rust/tvm_sys/ffi/constant.__USE_POSIX.html |    2 +
 .../tvm_sys/ffi/constant.__USE_POSIX199309.html    |    2 +
 .../tvm_sys/ffi/constant.__USE_POSIX199506.html    |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_POSIX2.html    |    2 +
 .../ffi/constant.__USE_POSIX_IMPLICITLY.html       |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_XOPEN2K.html   |    2 +
 .../rust/tvm_sys/ffi/constant.__USE_XOPEN2K8.html  |    2 +
 docs/api/rust/tvm_sys/ffi/constant.__WORDSIZE.html |    2 +
 .../ffi/constant.__WORDSIZE_TIME64_COMPAT32.html   |    2 +
 .../rust/tvm_sys/ffi/fn.TVMAPISetLastError.html    |    5 +
 docs/api/rust/tvm_sys/ffi/fn.TVMArrayAlloc.html    |   13 +
 .../rust/tvm_sys/ffi/fn.TVMArrayCopyFromBytes.html |    7 +
 .../rust/tvm_sys/ffi/fn.TVMArrayCopyFromTo.html    |    7 +
 .../rust/tvm_sys/ffi/fn.TVMArrayCopyToBytes.html   |    7 +
 docs/api/rust/tvm_sys/ffi/fn.TVMArrayFree.html     |    5 +
 .../rust/tvm_sys/ffi/fn.TVMArrayFromDLPack.html    |    7 +
 docs/api/rust/tvm_sys/ffi/fn.TVMArrayToDLPack.html |    7 +
 .../tvm_sys/ffi/fn.TVMBackendAllocWorkspace.html   |   12 +
 .../tvm_sys/ffi/fn.TVMBackendFreeWorkspace.html    |    8 +
 .../tvm_sys/ffi/fn.TVMBackendGetFuncFromEnv.html   |    9 +
 .../tvm_sys/ffi/fn.TVMBackendParallelBarrier.html  |    6 +
 .../tvm_sys/ffi/fn.TVMBackendParallelLaunch.html   |    8 +
 .../ffi/fn.TVMBackendRegisterSystemLibSymbol.html  |    6 +
 .../api/rust/tvm_sys/ffi/fn.TVMBackendRunOnce.html |   10 +
 .../api/rust/tvm_sys/ffi/fn.TVMCFuncSetReturn.html |    9 +
 docs/api/rust/tvm_sys/ffi/fn.TVMCbArgToReturn.html |    8 +
 .../ffi/fn.TVMDLManagedTensorCallDeleter.html      |    4 +
 .../tvm_sys/ffi/fn.TVMDeviceAllocDataSpace.html    |   10 +
 .../tvm_sys/ffi/fn.TVMDeviceCopyDataFromTo.html    |   14 +
 .../tvm_sys/ffi/fn.TVMDeviceFreeDataSpace.html     |    6 +
 docs/api/rust/tvm_sys/ffi/fn.TVMFuncCall.html      |   16 +
 .../tvm_sys/ffi/fn.TVMFuncCreateFromCFunc.html     |    9 +
 docs/api/rust/tvm_sys/ffi/fn.TVMFuncFree.html      |    5 +
 docs/api/rust/tvm_sys/ffi/fn.TVMFuncGetGlobal.html |    7 +
 .../tvm_sys/ffi/fn.TVMFuncListGlobalNames.html     |    6 +
 .../rust/tvm_sys/ffi/fn.TVMFuncRegisterGlobal.html |    7 +
 .../rust/tvm_sys/ffi/fn.TVMFuncRemoveGlobal.html   |    4 +
 docs/api/rust/tvm_sys/ffi/fn.TVMGetLastError.html  |    8 +
 docs/api/rust/tvm_sys/ffi/fn.TVMModFree.html       |    9 +
 .../api/rust/tvm_sys/ffi/fn.TVMModGetFunction.html |    8 +
 docs/api/rust/tvm_sys/ffi/fn.TVMModImport.html     |    7 +
 .../rust/tvm_sys/ffi/fn.TVMModLoadFromFile.html    |    9 +
 .../rust/tvm_sys/ffi/fn.TVMObjectDerivedFrom.html  |    7 +
 docs/api/rust/tvm_sys/ffi/fn.TVMObjectFree.html    |    7 +
 .../rust/tvm_sys/ffi/fn.TVMObjectGetTypeIndex.html |    6 +
 docs/api/rust/tvm_sys/ffi/fn.TVMObjectRetain.html  |    6 +
 .../tvm_sys/ffi/fn.TVMObjectTypeKey2Index.html     |    6 +
 docs/api/rust/tvm_sys/ffi/fn.TVMSetStream.html     |   10 +
 docs/api/rust/tvm_sys/ffi/fn.TVMStreamCreate.html  |    7 +
 docs/api/rust/tvm_sys/ffi/fn.TVMStreamFree.html    |    7 +
 .../tvm_sys/ffi/fn.TVMStreamStreamSynchronize.html |    8 +
 docs/api/rust/tvm_sys/ffi/fn.TVMSynchronize.html   |    7 +
 docs/api/rust/tvm_sys/ffi/index.html               |  182 ++
 docs/api/rust/tvm_sys/ffi/sidebar-items.js         |    1 +
 docs/api/rust/tvm_sys/ffi/struct.DLContext.html    |   35 +
 docs/api/rust/tvm_sys/ffi/struct.DLDataType.html   |   52 +
 .../rust/tvm_sys/ffi/struct.DLManagedTensor.html   |   38 +
 docs/api/rust/tvm_sys/ffi/struct.DLTensor.html     |   61 +
 docs/api/rust/tvm_sys/ffi/struct.TVMByteArray.html |   31 +
 .../tvm_sys/ffi/struct.TVMParallelGroupEnv.html    |   28 +
 .../rust/tvm_sys/ffi/type.BackendPackedCFunc.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.DLDataTypeCode.html |    3 +
 docs/api/rust/tvm_sys/ffi/type.DLDeviceType.html   |    4 +
 .../rust/tvm_sys/ffi/type.FTVMParallelLambda.html  |    6 +
 docs/api/rust/tvm_sys/ffi/type.TVMArgTypeCode.html |   14 +
 docs/api/rust/tvm_sys/ffi/type.TVMArrayHandle.html |    3 +
 .../tvm_sys/ffi/type.TVMBackendPackedCFunc.html    |   10 +
 docs/api/rust/tvm_sys/ffi/type.TVMContext.html     |   13 +
 .../rust/tvm_sys/ffi/type.TVMDeviceExtType.html    |    3 +
 .../tvm_sys/ffi/type.TVMExtensionFuncDeclarer.html |    7 +
 .../rust/tvm_sys/ffi/type.TVMFunctionHandle.html   |    3 +
 .../api/rust/tvm_sys/ffi/type.TVMModuleHandle.html |    3 +
 .../api/rust/tvm_sys/ffi/type.TVMObjectHandle.html |    3 +
 docs/api/rust/tvm_sys/ffi/type.TVMPackedCFunc.html |   10 +
 .../tvm_sys/ffi/type.TVMPackedCFuncFinalizer.html  |    4 +
 .../rust/tvm_sys/ffi/type.TVMRetValueHandle.html   |    3 +
 .../api/rust/tvm_sys/ffi/type.TVMStreamHandle.html |    4 +
 docs/api/rust/tvm_sys/ffi/type.int_fast16_t.html   |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_fast32_t.html   |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_fast64_t.html   |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_fast8_t.html    |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_least16_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_least32_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_least64_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.int_least8_t.html   |    2 +
 docs/api/rust/tvm_sys/ffi/type.intmax_t.html       |    2 +
 docs/api/rust/tvm_sys/ffi/type.tvm_index_t.html    |    3 +
 docs/api/rust/tvm_sys/ffi/type.uint_fast16_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_fast32_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_fast64_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_fast8_t.html   |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_least16_t.html |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_least32_t.html |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_least64_t.html |    2 +
 docs/api/rust/tvm_sys/ffi/type.uint_least8_t.html  |    2 +
 docs/api/rust/tvm_sys/ffi/type.uintmax_t.html      |    2 +
 docs/api/rust/tvm_sys/ffi/type.wchar_t.html        |    2 +
 docs/api/rust/tvm_sys/ffi/union.TVMValue.html      |   57 +
 docs/api/rust/tvm_sys/index.html                   |   14 +
 docs/api/rust/tvm_sys/macro.call_packed!.html      |   10 +
 docs/api/rust/tvm_sys/macro.call_packed.html       |   10 +
 docs/api/rust/tvm_sys/macro.try_downcast!.html     |   10 +
 docs/api/rust/tvm_sys/macro.try_downcast.html      |    6 +
 .../rust/tvm_sys/packed_func/enum.ArgValue.html    |  146 ++
 .../rust/tvm_sys/packed_func/enum.RetValue.html    |  117 ++
 docs/api/rust/tvm_sys/packed_func/index.html       |    9 +
 docs/api/rust/tvm_sys/packed_func/sidebar-items.js |    1 +
 .../rust/tvm_sys/packed_func/trait.PackedFunc.html |    3 +
 docs/api/rust/tvm_sys/sidebar-items.js             |    1 +
 docs/api/rust/tvm_sys/value/index.html             |    3 +
 docs/api/rust/tvm_sys/value/sidebar-items.js       |    1 +
 .../value/struct.UnsupportedDeviceError.html       |   19 +
 docs/api/rust/tyck/all.html                        |    4 +
 docs/api/rust/tyck/fn.main.html                    |    2 +
 docs/api/rust/tyck/index.html                      |    4 +
 docs/api/rust/tyck/sidebar-items.js                |    1 +
 docs/api/rust/tyck/struct.Opt.html                 |   24 +
 docs/api/rust/wheel.svg                            |    1 +
 docs/api/typedoc/assets/js/main.js                 |    2 +-
 docs/api/typedoc/classes/bytestreamreader.html     |   13 +-
 docs/api/typedoc/classes/cachedcallstack.html      |   35 +-
 docs/api/typedoc/classes/dlcontext.html            |   11 +-
 docs/api/typedoc/classes/dldatatype.html           |   13 +-
 docs/api/typedoc/classes/environment.html          |   13 +-
 docs/api/typedoc/classes/ffilibrary.html           |   21 +-
 docs/api/typedoc/classes/graphruntime.html         |   17 +-
 docs/api/typedoc/classes/instance.html             |   41 +-
 docs/api/typedoc/classes/memory.html               |   35 +-
 docs/api/typedoc/classes/module.html               |   11 +-
 docs/api/typedoc/classes/ndarray.html              |   23 +-
 docs/api/typedoc/classes/packedfunccell.html       |    7 +-
 docs/api/typedoc/classes/rpcserver.html            |   15 +-
 docs/api/typedoc/classes/scalar.html               |    7 +-
 docs/api/typedoc/classes/webgpucontext.html        |   13 +-
 docs/api/typedoc/enums/argtypecode.html            |   31 +-
 docs/api/typedoc/enums/aynccallbackcode.html       |    5 +-
 docs/api/typedoc/enums/dldatatypecode.html         |    9 +-
 docs/api/typedoc/enums/rpcserverstate.html         |   13 +-
 docs/api/typedoc/enums/sizeof.html                 |   19 +-
 docs/api/typedoc/index.html                        |  115 +-
 docs/api/typedoc/interfaces/disposable.html        |    3 +-
 docs/api/typedoc/interfaces/functioninfo.html      |    7 +-
 docs/api/typedoc/interfaces/libraryprovider.html   |    5 +-
 docs/contribute/code_guide.html                    |  174 +-
 docs/contribute/code_review.html                   |  174 +-
 docs/contribute/committer_guide.html               |  174 +-
 docs/contribute/community.html                     |  174 +-
 docs/contribute/document.html                      |  174 +-
 docs/contribute/error_handling.html                |  178 +-
 docs/contribute/git_howto.html                     |  174 +-
 docs/contribute/index.html                         |  172 +-
 docs/contribute/pull_request.html                  |  174 +-
 docs/contribute/release_process.html               |  174 +-
 docs/deploy/android.html                           |  174 +-
 docs/deploy/arm_compute_lib.html                   |  174 +-
 docs/deploy/cpp_deploy.html                        |  174 +-
 docs/deploy/hls.html                               |  174 +-
 docs/deploy/index.html                             |  172 +-
 docs/deploy/integrate.html                         |  174 +-
 docs/deploy/tensorrt.html                          |  174 +-
 docs/dev/benchmark.html                            |  174 +-
 docs/dev/codebase_walkthrough.html                 |  174 +-
 docs/dev/convert_layout.html                       |  176 +-
 docs/dev/debugger.html                             |  174 +-
 docs/dev/frontend/tensorflow.html                  |  174 +-
 docs/dev/how_to.html                               |  172 +-
 docs/dev/hybrid_script.html                        |  174 +-
 docs/dev/index.html                                |  172 +-
 docs/dev/inferbound.html                           |  174 +-
 docs/dev/introduction_to_module_serialization.html |  178 +-
 docs/dev/pass_infra.html                           |  180 +-
 docs/dev/relay_add_op.html                         |  174 +-
 docs/dev/relay_add_pass.html                       |  174 +-
 docs/dev/relay_bring_your_own_codegen.html         |  186 +-
 docs/dev/relay_intro.html                          |  174 +-
 docs/dev/relay_op_strategy.html                    |  174 +-
 docs/dev/runtime.html                              |  174 +-
 docs/dev/security.html                             |  174 +-
 docs/dev/virtual_machine.html                      |  174 +-
 docs/faq.html                                      |  172 +-
 docs/genindex.html                                 |  258 ++-
 docs/index.html                                    |  172 +-
 docs/install/docker.html                           |  174 +-
 docs/install/from_source.html                      |  174 +-
 docs/install/index.html                            |  172 +-
 docs/install/nnpack.html                           |  176 +-
 docs/langref/hybrid_script.html                    |  174 +-
 docs/langref/index.html                            |  172 +-
 docs/langref/relay_adt.html                        |  174 +-
 docs/langref/relay_expr.html                       |  174 +-
 docs/langref/relay_op.html                         |  174 +-
 docs/langref/relay_pattern.html                    |  174 +-
 docs/langref/relay_type.html                       |  174 +-
 docs/objects.inv                                   |  Bin 17193 -> 17289 bytes
 docs/py-modindex.html                              |  170 +-
 docs/search.html                                   |  168 +-
 docs/searchindex.js                                |    2 +-
 .../auto_scheduler/sg_execution_times.html         |  176 +-
 .../auto_scheduler/tune_conv2d_layer_cuda.html     |  546 +++--
 docs/tutorials/auto_scheduler/tune_matmul_x86.html |  224 ++-
 docs/tutorials/autotvm/sg_execution_times.html     |  184 +-
 docs/tutorials/autotvm/tune_conv2d_cuda.html       |  221 ++-
 docs/tutorials/autotvm/tune_relay_arm.html         |  183 +-
 docs/tutorials/autotvm/tune_relay_cuda.html        |  183 +-
 docs/tutorials/autotvm/tune_relay_mobile_gpu.html  |  183 +-
 docs/tutorials/autotvm/tune_relay_x86.html         |  177 +-
 docs/tutorials/autotvm/tune_simple_template.html   |  197 +-
 docs/tutorials/dev/bring_your_own_datatypes.html   |  182 +-
 docs/tutorials/dev/low_level_custom_pass.html      |  174 +-
 docs/tutorials/dev/sg_execution_times.html         |  178 +-
 docs/tutorials/dev/use_pass_infra.html             |  276 ++-
 docs/tutorials/frontend/build_gcn.html             |  178 +-
 .../frontend/deploy_model_on_android.html          |  182 +-
 docs/tutorials/frontend/deploy_model_on_rasp.html  |  180 +-
 .../frontend/deploy_object_detection_pytorch.html  |  206 +-
 docs/tutorials/frontend/deploy_prequantized.html   |  188 +-
 .../frontend/deploy_prequantized_tflite.html       |  180 +-
 docs/tutorials/frontend/deploy_quantized.html      |  182 +-
 docs/tutorials/frontend/deploy_sparse.html         |  176 +-
 docs/tutorials/frontend/deploy_ssd_gluoncv.html    |  178 +-
 docs/tutorials/frontend/from_caffe2.html           |  176 +-
 docs/tutorials/frontend/from_coreml.html           |  180 +-
 docs/tutorials/frontend/from_darknet.html          |  176 +-
 docs/tutorials/frontend/from_keras.html            |  211 +-
 docs/tutorials/frontend/from_mxnet.html            |  176 +-
 docs/tutorials/frontend/from_onnx.html             |  186 +-
 docs/tutorials/frontend/from_pytorch.html          |  182 +-
 docs/tutorials/frontend/from_tensorflow.html       |  178 +-
 docs/tutorials/frontend/from_tflite.html           |  176 +-
 docs/tutorials/frontend/sg_execution_times.html    |  210 +-
 docs/tutorials/frontend/using_external_lib.html    |  176 +-
 .../get_started/cross_compilation_and_rpc.html     |  180 +-
 docs/tutorials/get_started/relay_quick_start.html  |  280 ++-
 docs/tutorials/get_started/sg_execution_times.html |  180 +-
 .../get_started/tensor_expr_get_started.html       |  180 +-
 .../get_started/tvmc_command_line_driver.html      |  174 +-
 docs/tutorials/index.html                          |  188 +-
 docs/tutorials/language/extern_op.html             |  174 +-
 docs/tutorials/language/intrin_math.html           |  174 +-
 docs/tutorials/language/reduction.html             |  178 +-
 docs/tutorials/language/scan.html                  |  174 +-
 docs/tutorials/language/schedule_primitives.html   |  188 +-
 docs/tutorials/language/sg_execution_times.html    |  188 +-
 docs/tutorials/language/tedd.html                  |  174 +-
 docs/tutorials/language/tensorize.html             |  200 +-
 docs/tutorials/language/tuple_inputs.html          |  182 +-
 docs/tutorials/micro/micro_tflite.html             |  176 +-
 docs/tutorials/micro/sg_execution_times.html       |  174 +-
 docs/tutorials/optimize/opt_conv_cuda.html         |  176 +-
 docs/tutorials/optimize/opt_conv_tensorcore.html   |  176 +-
 docs/tutorials/optimize/opt_gemm.html              |  198 +-
 .../optimize/opt_matmul_auto_tensorcore.html       |  174 +-
 docs/tutorials/optimize/sg_execution_times.html    |  180 +-
 docs/tutorials/topi/intro_topi.html                |  176 +-
 docs/tutorials/topi/sg_execution_times.html        |  174 +-
 docs/vta/dev/config.html                           |  176 +-
 docs/vta/dev/hardware.html                         |  188 +-
 docs/vta/dev/index.html                            |  176 +-
 docs/vta/index.html                                |  172 +-
 docs/vta/install.html                              |  176 +-
 docs/vta/tutorials/autotvm/sg_execution_times.html |  174 +-
 docs/vta/tutorials/autotvm/tune_relay_vta.html     |  367 ++--
 .../tutorials/frontend/deploy_classification.html  |  198 +-
 .../vta/tutorials/frontend/sg_execution_times.html |  174 +-
 docs/vta/tutorials/index.html                      |  174 +-
 docs/vta/tutorials/matrix_multiply.html            |  190 +-
 docs/vta/tutorials/optimize/convolution_opt.html   |  190 +-
 .../tutorials/optimize/matrix_multiply_opt.html    |  192 +-
 .../vta/tutorials/optimize/sg_execution_times.html |  176 +-
 docs/vta/tutorials/sg_execution_times.html         |  176 +-
 docs/vta/tutorials/vta_get_started.html            |  190 +-
 2932 files changed, 157383 insertions(+), 95357 deletions(-)

diff --git a/docs/_downloads/0bb862dbb3a4c434477f93fe2c147fbb/tune_simple_template.py b/docs/_downloads/0bb862dbb3a4c434477f93fe2c147fbb/tune_simple_template.py
index 357abf1..b5167b3 100644
--- a/docs/_downloads/0bb862dbb3a4c434477f93fe2c147fbb/tune_simple_template.py
+++ b/docs/_downloads/0bb862dbb3a4c434477f93fe2c147fbb/tune_simple_template.py
@@ -26,6 +26,10 @@ The first step is defining a search space.
 The second step is running a search algorithm to explore through this space.
 In this tutorial, you can learn how to perform these two steps in TVM.
 The whole workflow is illustrated by a matrix multiplication example.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
 ######################################################################
diff --git a/docs/_downloads/0d95a85fc279fdff660608ef305b9107/tune_simple_template.ipynb b/docs/_downloads/0d95a85fc279fdff660608ef305b9107/tune_simple_template.ipynb
index 7af6ec2..b49ccad 100644
--- a/docs/_downloads/0d95a85fc279fdff660608ef305b9107/tune_simple_template.ipynb
+++ b/docs/_downloads/0d95a85fc279fdff660608ef305b9107/tune_simple_template.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nWriting tunable template and Using auto-tuner\n=============================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_\n\nThis is an introduction tutorial to the auto-tuning module in TVM.\n\nThere are two steps in auto-tuning.\nThe first step is defining a search space.\nThe second step is running a search algorithm to explore through this space.\nIn this tutorial, you can learn how to perform these two steps in TVM.\nThe whole workflow is  [...]
+        "\nWriting tunable template and Using auto-tuner\n=============================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_\n\nThis is an introduction tutorial to the auto-tuning module in TVM.\n\nThere are two steps in auto-tuning.\nThe first step is defining a search space.\nThe second step is running a search algorithm to explore through this space.\nIn this tutorial, you can learn how to perform these two steps in TVM.\nThe whole workflow is  [...]
       ]
     },
     {
diff --git a/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py b/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py
index 71a8f67..593ac3c 100644
--- a/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py
+++ b/docs/_downloads/1195277fef6a622db64b78b4ea799ed4/matrix_multiply.py
@@ -40,7 +40,7 @@ from tvm import te
 import vta
 import numpy as np
 from tvm import rpc
-from tvm.contrib import util
+from tvm.contrib import utils
 from vta.testing import simulator
 
 # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
@@ -86,7 +86,7 @@ elif env.TARGET in ["sim", "tsim"]:
 # The last operation is a cast and copy back to DRAM, into results tensor
 # :code:`C`.
 #
-# .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/gemm_dataflow.png
+# .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/gemm_dataflow.png
 #      :align: center
 
 ######################################################################
@@ -107,7 +107,7 @@ elif env.TARGET in ["sim", "tsim"]:
 #   adding the result matrix to an accumulator matrix, as shown in the
 #   figure below.
 #
-#   .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/tensor_core.png
+#   .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/tensor_core.png
 #        :align: center
 #        :width: 480px
 #
@@ -126,7 +126,7 @@ elif env.TARGET in ["sim", "tsim"]:
 #   contiguous.
 #   The resulting tiled tensor has a shape of (2, 4, 2, 2).
 #
-#   .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/data_tiling.png
+#   .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/data_tiling.png
 #        :align: center
 #        :width: 480px
 #
@@ -389,7 +389,7 @@ print(vta.lower(s, [A, B, C], simple_mode=True))
 my_gemm = vta.build(s, [A, B, C], "ext_dev", env.target_host, name="my_gemm")
 
 # Write the compiled module into an object file.
-temp = util.tempdir()
+temp = utils.tempdir()
 my_gemm.save(temp.relpath("gemm.o"))
 
 # Send the executable over RPC
diff --git a/docs/_downloads/2354a24ad8bc07194943c49f2fb48874/tune_conv2d_cuda.ipynb b/docs/_downloads/2354a24ad8bc07194943c49f2fb48874/tune_conv2d_cuda.ipynb
index 5a77399..8353b85 100644
--- a/docs/_downloads/2354a24ad8bc07194943c49f2fb48874/tune_conv2d_cuda.ipynb
+++ b/docs/_downloads/2354a24ad8bc07194943c49f2fb48874/tune_conv2d_cuda.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nTuning High Performance Convolution on NVIDIA GPUs\n=========================================================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_\n\nThis is an advanced tutorial for writing high performance tunable template for\nNVIDIA GPU. By running auto-tuner on this template, we can outperform the\nvendor provided library CuDNN in many cases.\n\n"
+        "\nTuning High Performance Convolution on NVIDIA GPUs\n=========================================================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_\n\nThis is an advanced tutorial for writing high performance tunable template for\nNVIDIA GPU. By running auto-tuner on this template, we can outperform the\nvendor provided library CuDNN in many cases.\n\nNote that this tutorial will not run on Windows or recent versions of macOS. To\nget it [...]
       ]
     },
     {
diff --git a/docs/_downloads/24a7471da81b18c4ba77d215289aed2f/relay_quick_start.ipynb b/docs/_downloads/24a7471da81b18c4ba77d215289aed2f/relay_quick_start.ipynb
index 188ce15..1068889 100644
--- a/docs/_downloads/24a7471da81b18c4ba77d215289aed2f/relay_quick_start.ipynb
+++ b/docs/_downloads/24a7471da81b18c4ba77d215289aed2f/relay_quick_start.ipynb
@@ -105,7 +105,7 @@
       },
       "outputs": [],
       "source": [
-        "# save the graph, lib and params into separate files\nfrom tvm.contrib import util\n\ntemp = util.tempdir()\npath_lib = temp.relpath(\"deploy_lib.tar\")\nlib.export_library(path_lib)\nprint(temp.listdir())"
+        "# save the graph, lib and params into separate files\nfrom tvm.contrib import utils\n\ntemp = utils.tempdir()\npath_lib = temp.relpath(\"deploy_lib.tar\")\nlib.export_library(path_lib)\nprint(temp.listdir())"
       ]
     },
     {
diff --git a/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py b/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py
index 4636103..f9b8921 100644
--- a/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py
+++ b/docs/_downloads/272a5a893d007658546dc0eaf0a7aeed/tune_relay_cuda.py
@@ -33,6 +33,10 @@ these operators, it will query this log file to get the best knob values.
 We also released pre-tuned parameters for some NVIDIA GPUs. You can go to
 `NVIDIA GPU Benchmark <https://github.com/apache/incubator-tvm/wiki/Benchmark#nvidia-gpu>`_
 to see the results.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
 ######################################################################
@@ -65,7 +69,7 @@ from tvm import autotvm
 from tvm import relay
 import tvm.relay.testing
 from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
-from tvm.contrib.util import tempdir
+from tvm.contrib.utils import tempdir
 import tvm.contrib.graph_runtime as runtime
 
 #################################################################
@@ -313,7 +317,7 @@ def tune_and_evaluate(tuning_opt):
 #      import logging
 #      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 #
-#   Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+#   Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
 
 
 #################################################################
diff --git a/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb b/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb
index b867ec4..52ce8d8 100644
--- a/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb
+++ b/docs/_downloads/2c0ed53a9ebd68caf76cd8235fae2711/tune_relay_mobile_gpu.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nAuto-tuning a convolutional network for Mobile GPU\n==================================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_, `Eddie Yan <https://github.com/eqy>`_\n\nAuto-tuning for a specific device is critical for getting the best\nperformance. This is a tutorial about how to tune a whole convolutional\nnetwork.\n\nThe operator implementation for Mobile GPU in TVM is written in template form.\nThe template has many tunable knobs (tile [...]
+        "\nAuto-tuning a convolutional network for Mobile GPU\n==================================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_, `Eddie Yan <https://github.com/eqy>`_\n\nAuto-tuning for a specific device is critical for getting the best\nperformance. This is a tutorial about how to tune a whole convolutional\nnetwork.\n\nThe operator implementation for Mobile GPU in TVM is written in template form.\nThe template has many tunable knobs (tile [...]
       ]
     },
     {
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "import os\n\nimport numpy as np\n\nimport tvm\nfrom tvm import te\nfrom tvm import autotvm\nfrom tvm import relay\nimport tvm.relay.testing\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\nfrom tvm.contrib.util import tempdir\nimport tvm.contrib.graph_runtime as runtime"
+        "import os\n\nimport numpy as np\n\nimport tvm\nfrom tvm import te\nfrom tvm import autotvm\nfrom tvm import relay\nimport tvm.relay.testing\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\nfrom tvm.contrib.utils import tempdir\nimport tvm.contrib.graph_runtime as runtime"
       ]
     },
     {
@@ -140,7 +140,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
+        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
       ]
     }
   ],
diff --git a/docs/_downloads/2c8ef0390ad4c53ca85671fa36c33b26/tune_conv2d_cuda.py b/docs/_downloads/2c8ef0390ad4c53ca85671fa36c33b26/tune_conv2d_cuda.py
index ce9c198..b307077 100644
--- a/docs/_downloads/2c8ef0390ad4c53ca85671fa36c33b26/tune_conv2d_cuda.py
+++ b/docs/_downloads/2c8ef0390ad4c53ca85671fa36c33b26/tune_conv2d_cuda.py
@@ -22,6 +22,10 @@ Tuning High Performance Convolution on NVIDIA GPUs
 This is an advanced tutorial for writing high performance tunable template for
 NVIDIA GPU. By running auto-tuner on this template, we can outperform the
 vendor provided library CuDNN in many cases.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
 ######################################################################
diff --git a/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb b/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb
index 289d2b4..7a4a5ca 100644
--- a/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb
+++ b/docs/_downloads/2daaacf3c023a8ad30b14e52b9aaa635/matrix_multiply_opt.ipynb
@@ -33,14 +33,14 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.ge [...]
+        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import utils\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.g [...]
       ]
     },
     {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Computation Declaration\n-----------------------\nAs a first step, we need to describe our matrix multiplication computation.\nWe define the matrix multiplication as the computation one would find in a\nfully connected layer, defined by its batch size, input channels, and output\nchannels.\nThese have to be integer multiples of the VTA tensor shape:\n:code:`BATCH`, :code:`BLOCK_IN`, and :code:`BLOCK_OUT` respectively.\n\nWe've added extra operators to the matrix multiplication t [...]
+        "Computation Declaration\n-----------------------\nAs a first step, we need to describe our matrix multiplication computation.\nWe define the matrix multiplication as the computation one would find in a\nfully connected layer, defined by its batch size, input channels, and output\nchannels.\nThese have to be integer multiples of the VTA tensor shape:\n:code:`BATCH`, :code:`BLOCK_IN`, and :code:`BLOCK_OUT` respectively.\n\nWe've added extra operators to the matrix multiplication t [...]
       ]
     },
     {
@@ -76,7 +76,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Blocking the Computation\n~~~~~~~~~~~~~~~~~~~~~~~~\nThe matrix multiplication is by default too large for activations or weights\nto fit on VTA's on-chip buffers all at once.\nWe block the (1, 1024) by (1024, 1024) matrix multiplication into\nsmaller (1, 256) by (256, 256) matrix multiplications so the intermediate\ntensors can fit on the accelerator's on-chip SRAM.\nThis approach is similar to blocking techniques applied to CPUs and GPUs in\norder to increase cache hit rate.\n\ [...]
+        "Blocking the Computation\n~~~~~~~~~~~~~~~~~~~~~~~~\nThe matrix multiplication is by default too large for activations or weights\nto fit on VTA's on-chip buffers all at once.\nWe block the (1, 1024) by (1024, 1024) matrix multiplication into\nsmaller (1, 256) by (256, 256) matrix multiplications so the intermediate\ntensors can fit on the accelerator's on-chip SRAM.\nThis approach is similar to blocking techniques applied to CPUs and GPUs in\norder to increase cache hit rate.\n\ [...]
       ]
     },
     {
@@ -141,7 +141,7 @@
       },
       "outputs": [],
       "source": [
-        "# Compile the TVM module\nmy_gemm = vta.build(s, [data, weight, res], \"ext_dev\", env.target_host, name=\"my_gemm\")\ntemp = util.tempdir()\nmy_gemm.save(temp.relpath(\"gemm.o\"))\nremote.upload(temp.relpath(\"gemm.o\"))\nf = remote.load_module(\"gemm.o\")\n\n# Get the remote device context\nctx = remote.ext_dev(0)\n\n# Initialize the data and weight arrays randomly in the int range of (-128, 128]\ndata_np = np.random.randint(-128, 128, size=(batch_size, in_channels)).astype(da [...]
+        "# Compile the TVM module\nmy_gemm = vta.build(s, [data, weight, res], \"ext_dev\", env.target_host, name=\"my_gemm\")\ntemp = utils.tempdir()\nmy_gemm.save(temp.relpath(\"gemm.o\"))\nremote.upload(temp.relpath(\"gemm.o\"))\nf = remote.load_module(\"gemm.o\")\n\n# Get the remote device context\nctx = remote.ext_dev(0)\n\n# Initialize the data and weight arrays randomly in the int range of (-128, 128]\ndata_np = np.random.randint(-128, 128, size=(batch_size, in_channels)).astype(d [...]
       ]
     },
     {
diff --git a/docs/_downloads/2e974b05b6d59fcf944f96d27106b994/from_keras.ipynb b/docs/_downloads/2e974b05b6d59fcf944f96d27106b994/from_keras.ipynb
index 52f233d..2380bf8 100644
--- a/docs/_downloads/2e974b05b6d59fcf944f96d27106b994/from_keras.ipynb
+++ b/docs/_downloads/2e974b05b6d59fcf944f96d27106b994/from_keras.ipynb
@@ -44,7 +44,7 @@
       },
       "outputs": [],
       "source": [
-        "weights_url = \"\".join(\n    [\n        \"https://github.com/fchollet/deep-learning-models/releases/\",\n        \"download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5\",\n    ]\n)\nweights_file = \"resnet50_weights.h5\"\nweights_path = download_testdata(weights_url, weights_file, module=\"keras\")\nkeras_resnet50 = keras.applications.resnet50.ResNet50(\n    include_top=True, weights=None, input_shape=(224, 224, 3), classes=1000\n)\nkeras_resnet50.load_weights(weights_path)"
+        "if tuple(keras.__version__.split(\".\")) < (\"2\", \"4\", \"0\"):\n    weights_url = \"\".join(\n        [\n            \"https://github.com/fchollet/deep-learning-models/releases/\",\n            \"download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5\",\n        ]\n    )\n    weights_file = \"resnet50_keras_old.h5\"\nelse:\n    weights_url = \"\".join(\n        [\n            \" https://storage.googleapis.com/tensorflow/keras-applications/\",\n            \"resnet/resne [...]
       ]
     },
     {
diff --git a/docs/_downloads/37c76200603adf82ebeffc23bdef8d31/tensor_expr_get_started.py b/docs/_downloads/37c76200603adf82ebeffc23bdef8d31/tensor_expr_get_started.py
index 0ca2243..7f1bb6a 100644
--- a/docs/_downloads/37c76200603adf82ebeffc23bdef8d31/tensor_expr_get_started.py
+++ b/docs/_downloads/37c76200603adf82ebeffc23bdef8d31/tensor_expr_get_started.py
@@ -210,9 +210,9 @@ else:
 # - cc.create_shared calls a compiler (gcc) to create a shared library
 #
 from tvm.contrib import cc
-from tvm.contrib import util
+from tvm.contrib import utils
 
-temp = util.tempdir()
+temp = utils.tempdir()
 fadd.save(temp.relpath("myadd.o"))
 if tgt == "cuda":
     fadd.imported_modules[0].save(temp.relpath("myadd.ptx"))
diff --git a/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb b/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb
index 75ce1f7..d846f69 100644
--- a/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb
+++ b/docs/_downloads/38606228ff7130fbd6473b7c0625ddcd/deploy_model_on_android.ipynb
@@ -26,7 +26,7 @@
       },
       "outputs": [],
       "source": [
-        "import os\nimport numpy as np\nfrom PIL import Image\nimport keras\nfrom keras.applications.mobilenet_v2 import MobileNetV2\nimport tvm\nfrom tvm import te\nimport tvm.relay as relay\nfrom tvm import rpc\nfrom tvm.contrib import util, ndk, graph_runtime as runtime\nfrom tvm.contrib.download import download_testdata"
+        "import os\nimport numpy as np\nfrom PIL import Image\nimport keras\nfrom keras.applications.mobilenet_v2 import MobileNetV2\nimport tvm\nfrom tvm import te\nimport tvm.relay as relay\nfrom tvm import rpc\nfrom tvm.contrib import utils, ndk, graph_runtime as runtime\nfrom tvm.contrib.download import download_testdata"
       ]
     },
     {
@@ -119,7 +119,7 @@
       },
       "outputs": [],
       "source": [
-        "local_demo = True\n\n# by default on CPU target will execute.\n# select 'cpu', 'opencl' and 'vulkan'\ntest_target = \"cpu\"\n\n# Change target configuration.\n# Run `adb shell cat /proc/cpuinfo` to find the arch.\narch = \"arm64\"\ntarget = \"llvm -mtriple=%s-linux-android\" % arch\ntarget_host = None\n\nif local_demo:\n    target_host = None\n    target = \"llvm\"\nelif test_target == \"opencl\":\n    target_host = target\n    target = \"opencl\"\nelif test_target == \"vulkan\" [...]
+        "local_demo = True\n\n# by default on CPU target will execute.\n# select 'cpu', 'opencl' and 'vulkan'\ntest_target = \"cpu\"\n\n# Change target configuration.\n# Run `adb shell cat /proc/cpuinfo` to find the arch.\narch = \"arm64\"\ntarget = \"llvm -mtriple=%s-linux-android\" % arch\ntarget_host = None\n\nif local_demo:\n    target_host = None\n    target = \"llvm\"\nelif test_target == \"opencl\":\n    target_host = target\n    target = \"opencl\"\nelif test_target == \"vulkan\" [...]
       ]
     },
     {
diff --git a/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py b/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py
index 851810a..35f989c 100644
--- a/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py
+++ b/docs/_downloads/3961fdfa7abff1b6dc996faa43b4c40f/deploy_model_on_android.py
@@ -34,7 +34,7 @@ import tvm
 from tvm import te
 import tvm.relay as relay
 from tvm import rpc
-from tvm.contrib import util, ndk, graph_runtime as runtime
+from tvm.contrib import utils, ndk, graph_runtime as runtime
 from tvm.contrib.download import download_testdata
 
 
@@ -282,7 +282,7 @@ with tvm.transform.PassContext(opt_level=3):
 # change the parameters but keep the result of model as the same.
 
 # Save the library at local temporary directory.
-tmp = util.tempdir()
+tmp = utils.tempdir()
 lib_fname = tmp.relpath("net.so")
 fcompile = ndk.create_shared if not local_demo else None
 lib.export_library(lib_fname, fcompile)
diff --git a/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb b/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb
index 50c182a..9846b89 100644
--- a/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb
+++ b/docs/_downloads/48bd751ebaae08fce134e559f86a25cc/tune_relay_vta.ipynb
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "import os\nfrom mxnet.gluon.model_zoo import vision\nimport numpy as np\nfrom PIL import Image\n\nfrom tvm import topi\nimport tvm\nfrom tvm import te\nfrom tvm import rpc, autotvm, relay\nfrom tvm.contrib import graph_runtime, util, download\nfrom tvm.autotvm.measure.measure_methods import request_remote\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\n\nimport vta\nfrom vta.testing import simulator\nfrom vta.top import graph_pack"
+        "import os\nfrom mxnet.gluon.model_zoo import vision\nimport numpy as np\nfrom PIL import Image\n\nfrom tvm import topi\nimport tvm\nfrom tvm import te\nfrom tvm import rpc, autotvm, relay\nfrom tvm.contrib import graph_runtime, utils, download\nfrom tvm.autotvm.measure.measure_methods import request_remote\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\n\nimport vta\nfrom vta.testing import simulator\nfrom vta.top import graph_pack"
       ]
     },
     {
@@ -144,7 +144,7 @@
       },
       "outputs": [],
       "source": [
-        "def tune_and_evaluate(tuning_opt):\n\n    if env.TARGET != \"sim\":\n        # Get remote from fleet node\n        remote = autotvm.measure.request_remote(\n            env.TARGET, tracker_host, tracker_port, timeout=10000\n        )\n        # Reconfigure the JIT runtime and FPGA.\n        vta.reconfig_runtime(remote)\n        vta.program_fpga(remote, bitstream=None)\n    else:\n        # In simulation mode, host the RPC server locally.\n        remote = rpc.LocalSession()\n\n  [...]
+        "def tune_and_evaluate(tuning_opt):\n\n    if env.TARGET != \"sim\":\n        # Get remote from fleet node\n        remote = autotvm.measure.request_remote(\n            env.TARGET, tracker_host, tracker_port, timeout=10000\n        )\n        # Reconfigure the JIT runtime and FPGA.\n        vta.reconfig_runtime(remote)\n        vta.program_fpga(remote, bitstream=None)\n    else:\n        # In simulation mode, host the RPC server locally.\n        remote = rpc.LocalSession()\n\n  [...]
       ]
     },
     {
@@ -158,7 +158,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
+        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
       ]
     }
   ],
diff --git a/docs/_downloads/4dd41316d6ea7ff2b6993aab65428bf5/cross_compilation_and_rpc.ipynb b/docs/_downloads/4dd41316d6ea7ff2b6993aab65428bf5/cross_compilation_and_rpc.ipynb
index 73d5104..0d6f59c 100644
--- a/docs/_downloads/4dd41316d6ea7ff2b6993aab65428bf5/cross_compilation_and_rpc.ipynb
+++ b/docs/_downloads/4dd41316d6ea7ff2b6993aab65428bf5/cross_compilation_and_rpc.ipynb
@@ -47,7 +47,7 @@
       },
       "outputs": [],
       "source": [
-        "import numpy as np\n\nimport tvm\nfrom tvm import te\nfrom tvm import rpc\nfrom tvm.contrib import util\n\nn = tvm.runtime.convert(1024)\nA = te.placeholder((n,), name=\"A\")\nB = te.compute((n,), lambda i: A[i] + 1.0, name=\"B\")\ns = te.create_schedule(B.op)"
+        "import numpy as np\n\nimport tvm\nfrom tvm import te\nfrom tvm import rpc\nfrom tvm.contrib import utils\n\nn = tvm.runtime.convert(1024)\nA = te.placeholder((n,), name=\"A\")\nB = te.compute((n,), lambda i: A[i] + 1.0, name=\"B\")\ns = te.create_schedule(B.op)"
       ]
     },
     {
@@ -65,7 +65,7 @@
       },
       "outputs": [],
       "source": [
-        "local_demo = True\n\nif local_demo:\n    target = \"llvm\"\nelse:\n    target = \"llvm -mtriple=armv7l-linux-gnueabihf\"\n\nfunc = tvm.build(s, [A, B], target=target, name=\"add_one\")\n# save the lib at a local temp folder\ntemp = util.tempdir()\npath = temp.relpath(\"lib.tar\")\nfunc.export_library(path)"
+        "local_demo = True\n\nif local_demo:\n    target = \"llvm\"\nelse:\n    target = \"llvm -mtriple=armv7l-linux-gnueabihf\"\n\nfunc = tvm.build(s, [A, B], target=target, name=\"add_one\")\n# save the lib at a local temp folder\ntemp = utils.tempdir()\npath = temp.relpath(\"lib.tar\")\nfunc.export_library(path)"
       ]
     },
     {
diff --git a/docs/_downloads/4f4a49a5483a0d0aa4af30f58c3c8664/deploy_quantized.ipynb b/docs/_downloads/4f4a49a5483a0d0aa4af30f58c3c8664/deploy_quantized.ipynb
index 2406d9e..94eabbc 100644
--- a/docs/_downloads/4f4a49a5483a0d0aa4af30f58c3c8664/deploy_quantized.ipynb
+++ b/docs/_downloads/4f4a49a5483a0d0aa4af30f58c3c8664/deploy_quantized.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nDeploy a Quantized Model on Cuda\n================================\n**Author**: `Wuwei Lin <https://github.com/vinx13>`_\n\nThis article is an introductory tutorial of automatic quantization with TVM.\nAutomatic quantization is one of the quantization modes in TVM. More details on\nthe quantization story in TVM can be found\n`here <https://discuss.tvm.ai/t/quantization-story/3920>`_.\nIn this tutorial, we will import a GluonCV pre-trained model on ImageNet to\nRelay, quantize  [...]
+        "\nDeploy a Quantized Model on Cuda\n================================\n**Author**: `Wuwei Lin <https://github.com/vinx13>`_\n\nThis article is an introductory tutorial of automatic quantization with TVM.\nAutomatic quantization is one of the quantization modes in TVM. More details on\nthe quantization story in TVM can be found\n`here <https://discuss.tvm.apache.org/t/quantization-story/3920>`_.\nIn this tutorial, we will import a GluonCV pre-trained model on ImageNet to\nRelay, q [...]
       ]
     },
     {
diff --git a/docs/_downloads/5b32f1dc3e9e2fc5ac5be0918758b967/deploy_quantized.py b/docs/_downloads/5b32f1dc3e9e2fc5ac5be0918758b967/deploy_quantized.py
index 093bd73..e75f6e9 100644
--- a/docs/_downloads/5b32f1dc3e9e2fc5ac5be0918758b967/deploy_quantized.py
+++ b/docs/_downloads/5b32f1dc3e9e2fc5ac5be0918758b967/deploy_quantized.py
@@ -22,7 +22,7 @@ Deploy a Quantized Model on Cuda
 This article is an introductory tutorial of automatic quantization with TVM.
 Automatic quantization is one of the quantization modes in TVM. More details on
 the quantization story in TVM can be found
-`here <https://discuss.tvm.ai/t/quantization-story/3920>`_.
+`here <https://discuss.tvm.apache.org/t/quantization-story/3920>`_.
 In this tutorial, we will import a GluonCV pre-trained model on ImageNet to
 Relay, quantize the Relay model and then perform the inference.
 """
diff --git a/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py b/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py
index cb36040..7f04424 100644
--- a/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py
+++ b/docs/_downloads/612f9e42b0247df5c8ab277534e2af65/tune_relay_vta.py
@@ -62,7 +62,7 @@ from tvm import topi
 import tvm
 from tvm import te
 from tvm import rpc, autotvm, relay
-from tvm.contrib import graph_runtime, util, download
+from tvm.contrib import graph_runtime, utils, download
 from tvm.autotvm.measure.measure_methods import request_remote
 from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
 
@@ -424,7 +424,7 @@ def tune_and_evaluate(tuning_opt):
 
         # Export library
         print("Upload...")
-        temp = util.tempdir()
+        temp = utils.tempdir()
         lib.save(temp.relpath("graphlib.o"))
         remote.upload(temp.relpath("graphlib.o"))
         lib = remote.load_module("graphlib.o")
@@ -507,4 +507,4 @@ tune_and_evaluate(tuning_option)
 #      import logging
 #      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 #
-#   Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+#   Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
diff --git a/docs/_downloads/65bd9927a152de6eed3444185b24287f/tensorize.ipynb b/docs/_downloads/65bd9927a152de6eed3444185b24287f/tensorize.ipynb
index a68a501..da58016 100644
--- a/docs/_downloads/65bd9927a152de6eed3444185b24287f/tensorize.ipynb
+++ b/docs/_downloads/65bd9927a152de6eed3444185b24287f/tensorize.ipynb
@@ -116,7 +116,7 @@
       },
       "outputs": [],
       "source": [
-        "def gemv_impl():\n    cc_code = \"\"\"\n      extern \"C\" int gemv_update(float *cc, float *aa, float *bb, int m, int l, int stride) {\n        for (int i = 0; i < m; ++i) {\n            for (int j = 0; j < l; ++j) {\n                cc[i] += aa[j] * bb[i * stride + j];\n            }\n        }\n        return 0;\n      }\n    \"\"\"\n    from tvm.contrib import util, clang\n\n    temp = util.tempdir()\n    ll_path = temp.relpath(\"temp.ll\")\n    # Create LLVM ir from c sourc [...]
+        "def gemv_impl():\n    cc_code = \"\"\"\n      extern \"C\" int gemv_update(float *cc, float *aa, float *bb, int m, int l, int stride) {\n        for (int i = 0; i < m; ++i) {\n            for (int j = 0; j < l; ++j) {\n                cc[i] += aa[j] * bb[i * stride + j];\n            }\n        }\n        return 0;\n      }\n    \"\"\"\n    from tvm.contrib import utils, clang\n\n    temp = utils.tempdir()\n    ll_path = temp.relpath(\"temp.ll\")\n    # Create LLVM ir from c sou [...]
       ]
     },
     {
@@ -152,7 +152,7 @@
       },
       "outputs": [],
       "source": [
-        "func = tvm.build(s, [A, B, C], target=\"llvm\", name=\"gemv\")\n\nfrom tvm.topi.util import get_const_tuple\n\ndtype = A.dtype\nctx = tvm.context(\"cpu\", 0)\na = np.random.uniform(size=get_const_tuple(A.shape)).astype(dtype)\nb = np.random.uniform(size=get_const_tuple(B.shape)).astype(dtype)\nc = tvm.nd.array(np.zeros(get_const_tuple(C.shape), dtype=dtype), ctx)\nfunc(tvm.nd.array(a, ctx), tvm.nd.array(b, ctx), c)\ntvm.testing.assert_allclose(c.asnumpy(), np.dot(a, b.T), rtol=1e-3)"
+        "func = tvm.build(s, [A, B, C], target=\"llvm\", name=\"gemv\")\n\nfrom tvm.topi.utils import get_const_tuple\n\ndtype = A.dtype\nctx = tvm.context(\"cpu\", 0)\na = np.random.uniform(size=get_const_tuple(A.shape)).astype(dtype)\nb = np.random.uniform(size=get_const_tuple(B.shape)).astype(dtype)\nc = tvm.nd.array(np.zeros(get_const_tuple(C.shape), dtype=dtype), ctx)\nfunc(tvm.nd.array(a, ctx), tvm.nd.array(b, ctx), c)\ntvm.testing.assert_allclose(c.asnumpy(), np.dot(a, b.T), rtol=1e-3)"
       ]
     },
     {
@@ -188,7 +188,7 @@
       },
       "outputs": [],
       "source": [
-        "def gemv_impl():\n    cc_code = \"\"\"\n      extern \"C\" int gemv_update(float *cc, float *aa, float *bb, int m, int l, int stride) {\n        for (int i = 0; i < m; ++i) {\n            for (int j = 0; j < l; ++j) {\n                cc[i] += aa[j] * bb[i * stride + j];\n            }\n        }\n        return 0;\n      }\n      extern \"C\" int gemv_reset(float *cc, int m) {\n        for (int i = 0; i < m; ++i) {\n            cc[i] = 0.0;\n        }\n        return 0;\n       [...]
+        "def gemv_impl():\n    cc_code = \"\"\"\n      extern \"C\" int gemv_update(float *cc, float *aa, float *bb, int m, int l, int stride) {\n        for (int i = 0; i < m; ++i) {\n            for (int j = 0; j < l; ++j) {\n                cc[i] += aa[j] * bb[i * stride + j];\n            }\n        }\n        return 0;\n      }\n      extern \"C\" int gemv_reset(float *cc, int m) {\n        for (int i = 0; i < m; ++i) {\n            cc[i] = 0.0;\n        }\n        return 0;\n       [...]
       ]
     },
     {
diff --git a/docs/_downloads/678f3c372a599a18d909aed0fefb30be/tune_conv2d_layer_cuda.py b/docs/_downloads/678f3c372a599a18d909aed0fefb30be/tune_conv2d_layer_cuda.py
index b800eb4..42273bf 100644
--- a/docs/_downloads/678f3c372a599a18d909aed0fefb30be/tune_conv2d_layer_cuda.py
+++ b/docs/_downloads/678f3c372a599a18d909aed0fefb30be/tune_conv2d_layer_cuda.py
@@ -30,8 +30,14 @@ The auto-scheduler can automatically generate a large search space and
 find a good schedule in the space.
 
 We use a convolution layer as an example in this tutorial.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
+import os
+
 import numpy as np
 import tvm
 from tvm import te, auto_scheduler, topi
@@ -88,11 +94,12 @@ print(task.compute_dag)
 # * see :any:`auto_scheduler.TuningOptions`,
 #   :any:`auto_scheduler.LocalRPCMeasureContext` for more parameters.
 
+log_file = "conv2d.json"
 measure_ctx = auto_scheduler.LocalRPCMeasureContext(min_repeat_ms=300)
 tune_option = auto_scheduler.TuningOptions(
     num_measure_trials=10,
     runner=measure_ctx.runner,
-    measure_callbacks=[auto_scheduler.RecordToFile("conv2d.json")],
+    measure_callbacks=[auto_scheduler.RecordToFile(log_file)],
 )
 
 ######################################################################
@@ -157,7 +164,7 @@ print(
 # print the equivalent python schedule API, and build the binary again.
 
 # Load the measuremnt record for the best schedule
-inp, res = auto_scheduler.load_best("conv2d.json", task.workload_key)
+inp, res = auto_scheduler.load_best(log_file, task.workload_key)
 
 # Print equivalent python schedule API. This can be used for debugging and
 # learning the behavior of the auto-scheduler.
@@ -176,7 +183,6 @@ func = tvm.build(sch, args, target)
 # In the example below we resume the status and do more 5 trials.
 
 
-log_file = "conv2d.json"
 cost_model = auto_scheduler.XGBModel()
 cost_model.update_from_file(log_file)
 search_policy = auto_scheduler.SketchPolicy(
diff --git a/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py b/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py
index 8797c3e..c9d1c13 100644
--- a/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py
+++ b/docs/_downloads/67c18c78b0f12c3be5dc41b22637d719/matrix_multiply_opt.py
@@ -43,7 +43,7 @@ from tvm import te
 import vta
 import numpy as np
 from tvm import rpc
-from tvm.contrib import util
+from tvm.contrib import utils
 from vta.testing import simulator
 
 # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
@@ -88,7 +88,7 @@ elif env.TARGET in ["sim", "tsim"]:
 # matrix multiplication followed by a rectified linear activation.
 # We describe the TVM dataflow graph of the fully connected layer below:
 #
-# .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/fc_dataflow.png
+# .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/fc_dataflow.png
 #      :align: center
 #
 # This computation is intentionally too large to fit onto VTA's on-chip
@@ -183,7 +183,7 @@ print(tvm.lower(s, [data, weight, res], simple_mode=True))
 # We show the outcome of blocking on the computation schedule in the diagram
 # below:
 #
-# .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/blocking.png
+# .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/blocking.png
 #      :align: center
 #      :width: 480px
 #
@@ -311,7 +311,7 @@ print(vta.lower(s, [data, weight, res], simple_mode=True))
 
 # Compile the TVM module
 my_gemm = vta.build(s, [data, weight, res], "ext_dev", env.target_host, name="my_gemm")
-temp = util.tempdir()
+temp = utils.tempdir()
 my_gemm.save(temp.relpath("gemm.o"))
 remote.upload(temp.relpath("gemm.o"))
 f = remote.load_module("gemm.o")
diff --git a/docs/_downloads/696dd37904ef92773435ca321ff41bfb/from_onnx.py b/docs/_downloads/696dd37904ef92773435ca321ff41bfb/from_onnx.py
index 141defe..1557ea5 100644
--- a/docs/_downloads/696dd37904ef92773435ca321ff41bfb/from_onnx.py
+++ b/docs/_downloads/696dd37904ef92773435ca321ff41bfb/from_onnx.py
@@ -111,4 +111,4 @@ plt.show()
 # retains that dynamism upon import, and the compiler attemps to convert the model
 # into a static shapes at compile time. If this fails, there may still be dynamic
 # operations in the model. Not all TVM kernels currently support dynamic shapes,
-# please file an issue on discuss.tvm.ai if you hit an error with dynamic kernels.
+# please file an issue on discuss.tvm.apache.org if you hit an error with dynamic kernels.
diff --git a/docs/_downloads/6a91d98d4242322072303282a1f2de9c/relay_quick_start.py b/docs/_downloads/6a91d98d4242322072303282a1f2de9c/relay_quick_start.py
index cece7ab..6da62f5 100644
--- a/docs/_downloads/6a91d98d4242322072303282a1f2de9c/relay_quick_start.py
+++ b/docs/_downloads/6a91d98d4242322072303282a1f2de9c/relay_quick_start.py
@@ -129,9 +129,9 @@ print(out.flatten()[0:10])
 ####################################################
 
 # save the graph, lib and params into separate files
-from tvm.contrib import util
+from tvm.contrib import utils
 
-temp = util.tempdir()
+temp = utils.tempdir()
 path_lib = temp.relpath("deploy_lib.tar")
 lib.export_library(path_lib)
 print(temp.listdir())
diff --git a/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb b/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb
index f4a039a..6cb27ba 100644
--- a/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb
+++ b/docs/_downloads/6c8a9d3bc4c689f8680a968349965ee5/from_pytorch.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nCompile PyTorch Models\n======================\n**Author**: `Alex Wong <https://github.com/alexwong/>`_\n\nThis article is an introductory tutorial to deploy PyTorch models with Relay.\n\nFor us to begin with, PyTorch should be installed.\nTorchVision is also required since we will be using it as our model zoo.\n\nA quick solution is to install via pip\n\n.. code-block:: bash\n\n    pip install torch==1.4.0\n    pip install torchvision==0.5.0\n\nor please refer to official sit [...]
+        "\nCompile PyTorch Models\n======================\n**Author**: `Alex Wong <https://github.com/alexwong/>`_\n\nThis article is an introductory tutorial to deploy PyTorch models with Relay.\n\nFor us to begin with, PyTorch should be installed.\nTorchVision is also required since we will be using it as our model zoo.\n\nA quick solution is to install via pip\n\n.. code-block:: bash\n\n    pip install torch==1.7.0\n    pip install torchvision==0.8.1\n\nor please refer to official sit [...]
       ]
     },
     {
diff --git a/docs/_downloads/70a0767409e81bb5aaa9ce4e7a151dec/tensor_expr_get_started.ipynb b/docs/_downloads/70a0767409e81bb5aaa9ce4e7a151dec/tensor_expr_get_started.ipynb
index 04be549..6032e06 100644
--- a/docs/_downloads/70a0767409e81bb5aaa9ce4e7a151dec/tensor_expr_get_started.ipynb
+++ b/docs/_downloads/70a0767409e81bb5aaa9ce4e7a151dec/tensor_expr_get_started.ipynb
@@ -184,7 +184,7 @@
       },
       "outputs": [],
       "source": [
-        "from tvm.contrib import cc\nfrom tvm.contrib import util\n\ntemp = util.tempdir()\nfadd.save(temp.relpath(\"myadd.o\"))\nif tgt == \"cuda\":\n    fadd.imported_modules[0].save(temp.relpath(\"myadd.ptx\"))\nif tgt == \"rocm\":\n    fadd.imported_modules[0].save(temp.relpath(\"myadd.hsaco\"))\nif tgt.startswith(\"opencl\"):\n    fadd.imported_modules[0].save(temp.relpath(\"myadd.cl\"))\ncc.create_shared(temp.relpath(\"myadd.so\"), [temp.relpath(\"myadd.o\")])\nprint(temp.listdir())"
+        "from tvm.contrib import cc\nfrom tvm.contrib import utils\n\ntemp = utils.tempdir()\nfadd.save(temp.relpath(\"myadd.o\"))\nif tgt == \"cuda\":\n    fadd.imported_modules[0].save(temp.relpath(\"myadd.ptx\"))\nif tgt == \"rocm\":\n    fadd.imported_modules[0].save(temp.relpath(\"myadd.hsaco\"))\nif tgt.startswith(\"opencl\"):\n    fadd.imported_modules[0].save(temp.relpath(\"myadd.cl\"))\ncc.create_shared(temp.relpath(\"myadd.so\"), [temp.relpath(\"myadd.o\")])\nprint(temp.listdir())"
       ]
     },
     {
diff --git a/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb b/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb
index a8360bc..8fb25bf 100644
--- a/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb
+++ b/docs/_downloads/739deb9ab034a5315ce6ba6bf7e5ff44/tune_relay_cuda.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nAuto-tuning a convolutional network for NVIDIA GPU\n==================================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_, `Eddie Yan <https://github.com/eqy/>`_\n\nAuto-tuning for specific devices and workloads is critical for getting the\nbest performance. This is a tutorial on how to tune a whole convolutional\nnetwork for NVIDIA GPU.\n\nThe operator implementation for NVIDIA GPU in TVM is written in template form.\nThe template ha [...]
+        "\nAuto-tuning a convolutional network for NVIDIA GPU\n==================================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_, `Eddie Yan <https://github.com/eqy/>`_\n\nAuto-tuning for specific devices and workloads is critical for getting the\nbest performance. This is a tutorial on how to tune a whole convolutional\nnetwork for NVIDIA GPU.\n\nThe operator implementation for NVIDIA GPU in TVM is written in template form.\nThe template ha [...]
       ]
     },
     {
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "import os\n\nimport numpy as np\n\nimport tvm\nfrom tvm import te\nfrom tvm import autotvm\nfrom tvm import relay\nimport tvm.relay.testing\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\nfrom tvm.contrib.util import tempdir\nimport tvm.contrib.graph_runtime as runtime"
+        "import os\n\nimport numpy as np\n\nimport tvm\nfrom tvm import te\nfrom tvm import autotvm\nfrom tvm import relay\nimport tvm.relay.testing\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\nfrom tvm.contrib.utils import tempdir\nimport tvm.contrib.graph_runtime as runtime"
       ]
     },
     {
@@ -126,7 +126,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
+        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
       ]
     },
     {
diff --git a/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb b/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb
index c554f0c..d7017cc 100644
--- a/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb
+++ b/docs/_downloads/78da213eae381b8ff94cc356ee7c5423/deploy_prequantized.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nDeploy a Framework-prequantized Model with TVM\n==============================================\n**Author**: `Masahiro Masuda <https://github.com/masahi>`_\n\nThis is a tutorial on loading models quantized by deep learning frameworks into TVM.\nPre-quantized model import is one of the quantization support we have in TVM. More details on\nthe quantization story in TVM can be found\n`here <https://discuss.tvm.ai/t/quantization-story/3920>`_.\n\nHere, we demonstrate how to load an [...]
+        "\nDeploy a Framework-prequantized Model with TVM\n==============================================\n**Author**: `Masahiro Masuda <https://github.com/masahi>`_\n\nThis is a tutorial on loading models quantized by deep learning frameworks into TVM.\nPre-quantized model import is one of the quantization support we have in TVM. More details on\nthe quantization story in TVM can be found\n`here <https://discuss.tvm.apache.org/t/quantization-story/3920>`_.\n\nHere, we demonstrate how to [...]
       ]
     },
     {
diff --git a/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py b/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py
index 8b49a21..3687991 100644
--- a/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py
+++ b/docs/_downloads/83dedc6352b4016772e17480ef01345d/deploy_model_on_rasp.py
@@ -30,7 +30,7 @@ import tvm
 from tvm import te
 import tvm.relay as relay
 from tvm import rpc
-from tvm.contrib import util, graph_runtime as runtime
+from tvm.contrib import utils, graph_runtime as runtime
 from tvm.contrib.download import download_testdata
 
 ######################################################################
@@ -193,7 +193,7 @@ with tvm.transform.PassContext(opt_level=3):
 # change the parameters but keep the result of model as the same.
 
 # Save the library at local temporary directory.
-tmp = util.tempdir()
+tmp = utils.tempdir()
 lib_fname = tmp.relpath("net.tar")
 lib.export_library(lib_fname)
 
diff --git a/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py b/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py
index 1dd947f..b1b7ca2 100644
--- a/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py
+++ b/docs/_downloads/85ba00b8ada85b8c5367f37b526a8caa/tune_relay_x86.py
@@ -23,6 +23,10 @@ Auto-tuning a convolutional network for x86 CPU
 
 This is a tutorial about how to tune convolution neural network
 for x86 CPU.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 import os
 import numpy as np
diff --git a/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py b/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py
index e9f1a4c..beba332 100644
--- a/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py
+++ b/docs/_downloads/8a7f17665207908e373e8146da09443a/deploy_prequantized.py
@@ -22,7 +22,7 @@ Deploy a Framework-prequantized Model with TVM
 This is a tutorial on loading models quantized by deep learning frameworks into TVM.
 Pre-quantized model import is one of the quantization support we have in TVM. More details on
 the quantization story in TVM can be found
-`here <https://discuss.tvm.ai/t/quantization-story/3920>`_.
+`here <https://discuss.tvm.apache.org/t/quantization-story/3920>`_.
 
 Here, we demonstrate how to load and run models quantized by PyTorch, MXNet, and TFLite.
 Once loaded, we can run compiled, quantized models on any hardware TVM supports.
diff --git a/docs/_downloads/91b0339c8f3cc2594cee580dc450149a/tune_matmul_x86.py b/docs/_downloads/91b0339c8f3cc2594cee580dc450149a/tune_matmul_x86.py
index 35c4744..0f2ebe0 100644
--- a/docs/_downloads/91b0339c8f3cc2594cee580dc450149a/tune_matmul_x86.py
+++ b/docs/_downloads/91b0339c8f3cc2594cee580dc450149a/tune_matmul_x86.py
@@ -27,8 +27,14 @@ The auto-scheduler can automatically generate a large search space and
 find a good schedule in the space.
 
 We use matrix multiplication as an example in this tutorial.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
+import os
+
 import numpy as np
 import tvm
 from tvm import te, auto_scheduler
@@ -80,8 +86,9 @@ print(task.compute_dag)
 #   and do more analyses later.
 # * see :any:`auto_scheduler.TuningOptions` for more parameters
 
+log_file = "matmul.json"
 tune_option = auto_scheduler.TuningOptions(
-    num_measure_trials=10, measure_callbacks=[auto_scheduler.RecordToFile("matmul.json")]
+    num_measure_trials=10, measure_callbacks=[auto_scheduler.RecordToFile(log_file)]
 )
 
 ######################################################################
@@ -141,7 +148,7 @@ print(
 # print the equivalent python schedule API, and build the binary again.
 
 # Load the measuremnt record for the best schedule
-inp, res = auto_scheduler.load_best("matmul.json", task.workload_key)
+inp, res = auto_scheduler.load_best(log_file, task.workload_key)
 
 # Print equivalent python schedule API. This can be used for debugging and
 # learning the behavior of the auto-scheduler.
@@ -160,19 +167,21 @@ func = tvm.build(sch, args)
 # In the example below we resume the status and do more 5 trials.
 
 
-def resume_search(task, log_file):
+def resume_search(task, log_file_name):
     cost_model = auto_scheduler.XGBModel()
-    cost_model.update_from_file(log_file)
+    cost_model.update_from_file(log_file_name)
     search_policy = auto_scheduler.SketchPolicy(
-        task, cost_model, init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file)]
+        task,
+        cost_model,
+        init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file_name)],
     )
     tune_option = auto_scheduler.TuningOptions(
-        num_measure_trials=5, measure_callbacks=[auto_scheduler.RecordToFile(log_file)]
+        num_measure_trials=5, measure_callbacks=[auto_scheduler.RecordToFile(log_file_name)]
     )
     sch, args = auto_scheduler.auto_schedule(task, search_policy, tuning_options=tune_option)
 
 
-# resume_search(task, "matmul.json")
+# resume_search(task, log_file)
 
 ######################################################################
 # .. note::
diff --git a/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb b/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb
index fb8aad4..f072ef2 100644
--- a/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb
+++ b/docs/_downloads/b9891d1a23f84eec3271025d99d005f7/tune_relay_x86.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\n\nAuto-tuning a convolutional network for x86 CPU\n===============================================\n**Author**: `Yao Wang <https://github.com/kevinthesun>`_, `Eddie Yan <https://github.com/eqy>`_\n\nThis is a tutorial about how to tune convolution neural network\nfor x86 CPU.\n\n"
+        "\n\nAuto-tuning a convolutional network for x86 CPU\n===============================================\n**Author**: `Yao Wang <https://github.com/kevinthesun>`_, `Eddie Yan <https://github.com/eqy>`_\n\nThis is a tutorial about how to tune convolution neural network\nfor x86 CPU.\n\nNote that this tutorial will not run on Windows or recent versions of macOS. To\nget it to run, you will need to wrap the body of this tutorial in a :code:`if\n__name__ == \"__main__\":` block.\n\n"
       ]
     },
     {
diff --git a/docs/_downloads/baa4de13ce6d932de43e0eb5c4cb8f16/tensorize.py b/docs/_downloads/baa4de13ce6d932de43e0eb5c4cb8f16/tensorize.py
index 601adb8..e91cfe4 100644
--- a/docs/_downloads/baa4de13ce6d932de43e0eb5c4cb8f16/tensorize.py
+++ b/docs/_downloads/baa4de13ce6d932de43e0eb5c4cb8f16/tensorize.py
@@ -160,9 +160,9 @@ def gemv_impl():
         return 0;
       }
     """
-    from tvm.contrib import util, clang
+    from tvm.contrib import utils, clang
 
-    temp = util.tempdir()
+    temp = utils.tempdir()
     ll_path = temp.relpath("temp.ll")
     # Create LLVM ir from c source code
     ll_code = clang.create_llvm(cc_code, output=ll_path)
@@ -182,7 +182,7 @@ print(tvm.lower(s, [A, B, C], simple_mode=True))
 #
 func = tvm.build(s, [A, B, C], target="llvm", name="gemv")
 
-from tvm.topi.util import get_const_tuple
+from tvm.topi.utils import get_const_tuple
 
 dtype = A.dtype
 ctx = tvm.context("cpu", 0)
@@ -228,9 +228,9 @@ def gemv_impl():
         return 0;
       }
     """
-    from tvm.contrib import util, clang
+    from tvm.contrib import utils, clang
 
-    temp = util.tempdir()
+    temp = utils.tempdir()
     ll_path = temp.relpath("temp.ll")
     # Create LLVM ir from c source code
     ll_code = clang.create_llvm(cc_code, output=ll_path)
diff --git a/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py b/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py
index f024ba4..7514ee7 100644
--- a/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py
+++ b/docs/_downloads/baf1373314e0e040008107ff2571b4cd/tune_relay_arm.py
@@ -35,6 +35,10 @@ these operators, it will query this log file to get the best knob values.
 We also released pre-tuned parameters for some arm devices. You can go to
 `ARM CPU Benchmark <https://github.com/apache/incubator-tvm/wiki/Benchmark#arm-cpu>`_
 to see the results.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
 ######################################################################
@@ -67,7 +71,7 @@ from tvm import autotvm
 from tvm import relay
 import tvm.relay.testing
 from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
-from tvm.contrib.util import tempdir
+from tvm.contrib.utils import tempdir
 import tvm.contrib.graph_runtime as runtime
 
 #################################################################
@@ -412,4 +416,4 @@ def tune_and_evaluate(tuning_opt):
 #      import logging
 #      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 #
-#   Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+#   Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
diff --git a/docs/_downloads/bba10250678e70879823196c946734fc/vta_get_started.py b/docs/_downloads/bba10250678e70879823196c946734fc/vta_get_started.py
index 8f37b2d..1a097b8 100644
--- a/docs/_downloads/bba10250678e70879823196c946734fc/vta_get_started.py
+++ b/docs/_downloads/bba10250678e70879823196c946734fc/vta_get_started.py
@@ -67,7 +67,7 @@ env = vta.get_env()
 
 # We'll need the TVM RPC module and the VTA simulator module
 from tvm import rpc
-from tvm.contrib import util
+from tvm.contrib import utils
 from vta.testing import simulator
 
 # We read the Pynq RPC host IP address and port number from the OS environment
@@ -115,7 +115,7 @@ elif env.TARGET == "sim":
 # The last operation is a cast and copy back to DRAM, into results tensor
 # :code:`C`.
 #
-# .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/vadd_dataflow.png
+# .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/vadd_dataflow.png
 #      :align: center
 
 ######################################################################
@@ -320,7 +320,7 @@ my_vadd = vta.build(s, [A, B, C], "ext_dev", env.target_host, name="my_vadd")
 # execution.
 
 # Write the compiled module into an object file.
-temp = util.tempdir()
+temp = utils.tempdir()
 my_vadd.save(temp.relpath("vadd.o"))
 
 # Send the executable over RPC
diff --git a/docs/_downloads/bcb4a24e8acc1ca84214bc8d7fb7954b/tune_conv2d_layer_cuda.ipynb b/docs/_downloads/bcb4a24e8acc1ca84214bc8d7fb7954b/tune_conv2d_layer_cuda.ipynb
index a5ae635..6960e9b 100644
--- a/docs/_downloads/bcb4a24e8acc1ca84214bc8d7fb7954b/tune_conv2d_layer_cuda.ipynb
+++ b/docs/_downloads/bcb4a24e8acc1ca84214bc8d7fb7954b/tune_conv2d_layer_cuda.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\n\nAuto-scheduling a convolution layer for GPU\n===========================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_,             `Chengfan Jia <https://github.com/jcf94/>`_\n\n\nDifferent from the existing `autotvm <tutorials-autotvm-sec>` which relies on \nmanual templates to define the search space, the auto-scheduler does not require any templates.\nUsers only need to write the computation declaration without any schedule commands or tem [...]
+        "\n\nAuto-scheduling a convolution layer for GPU\n===========================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_,             `Chengfan Jia <https://github.com/jcf94/>`_\n\n\nDifferent from the existing `autotvm <tutorials-autotvm-sec>` which relies on \nmanual templates to define the search space, the auto-scheduler does not require any templates.\nUsers only need to write the computation declaration without any schedule commands or tem [...]
       ]
     },
     {
@@ -26,7 +26,7 @@
       },
       "outputs": [],
       "source": [
-        "import numpy as np\nimport tvm\nfrom tvm import te, auto_scheduler, topi\nfrom tvm.topi.testing import conv2d_nchw_python"
+        "import os\n\nimport numpy as np\nimport tvm\nfrom tvm import te, auto_scheduler, topi\nfrom tvm.topi.testing import conv2d_nchw_python"
       ]
     },
     {
@@ -80,7 +80,7 @@
       },
       "outputs": [],
       "source": [
-        "measure_ctx = auto_scheduler.LocalRPCMeasureContext(min_repeat_ms=300)\ntune_option = auto_scheduler.TuningOptions(\n    num_measure_trials=10,\n    runner=measure_ctx.runner,\n    measure_callbacks=[auto_scheduler.RecordToFile(\"conv2d.json\")],\n)"
+        "log_file = \"conv2d.json\"\nmeasure_ctx = auto_scheduler.LocalRPCMeasureContext(min_repeat_ms=300)\ntune_option = auto_scheduler.TuningOptions(\n    num_measure_trials=10,\n    runner=measure_ctx.runner,\n    measure_callbacks=[auto_scheduler.RecordToFile(log_file)],\n)"
       ]
     },
     {
@@ -159,7 +159,7 @@
       },
       "outputs": [],
       "source": [
-        "# Load the measuremnt record for the best schedule\ninp, res = auto_scheduler.load_best(\"conv2d.json\", task.workload_key)\n\n# Print equivalent python schedule API. This can be used for debugging and\n# learning the behavior of the auto-scheduler.\nprint(\"Equivalent python schedule:\")\nprint(task.compute_dag.print_python_code_from_state(inp.state))\n\n# Rebuild the binary. This shows how you can apply the best schedule from a\n# log file without reruning the search again.\ns [...]
+        "# Load the measuremnt record for the best schedule\ninp, res = auto_scheduler.load_best(log_file, task.workload_key)\n\n# Print equivalent python schedule API. This can be used for debugging and\n# learning the behavior of the auto-scheduler.\nprint(\"Equivalent python schedule:\")\nprint(task.compute_dag.print_python_code_from_state(inp.state))\n\n# Rebuild the binary. This shows how you can apply the best schedule from a\n# log file without reruning the search again.\nsch, arg [...]
       ]
     },
     {
@@ -177,7 +177,7 @@
       },
       "outputs": [],
       "source": [
-        "log_file = \"conv2d.json\"\ncost_model = auto_scheduler.XGBModel()\ncost_model.update_from_file(log_file)\nsearch_policy = auto_scheduler.SketchPolicy(\n    task, cost_model, init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file)]\n)\nmeasure_ctx = auto_scheduler.LocalRPCMeasureContext(min_repeat_ms=300)\ntune_option = auto_scheduler.TuningOptions(\n    num_measure_trials=5,\n    runner=measure_ctx.runner,\n    measure_callbacks=[auto_scheduler.RecordToFile(log_fi [...]
+        "cost_model = auto_scheduler.XGBModel()\ncost_model.update_from_file(log_file)\nsearch_policy = auto_scheduler.SketchPolicy(\n    task, cost_model, init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file)]\n)\nmeasure_ctx = auto_scheduler.LocalRPCMeasureContext(min_repeat_ms=300)\ntune_option = auto_scheduler.TuningOptions(\n    num_measure_trials=5,\n    runner=measure_ctx.runner,\n    measure_callbacks=[auto_scheduler.RecordToFile(log_file)],\n)\nsch, args = auto_s [...]
       ]
     }
   ],
diff --git a/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb b/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb
index 53e9cb6..b6c4e85 100644
--- a/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb
+++ b/docs/_downloads/beb2188d497d67b66bcfbc2c254dccb7/deploy_model_on_rasp.ipynb
@@ -26,7 +26,7 @@
       },
       "outputs": [],
       "source": [
-        "import tvm\nfrom tvm import te\nimport tvm.relay as relay\nfrom tvm import rpc\nfrom tvm.contrib import util, graph_runtime as runtime\nfrom tvm.contrib.download import download_testdata"
+        "import tvm\nfrom tvm import te\nimport tvm.relay as relay\nfrom tvm import rpc\nfrom tvm.contrib import utils, graph_runtime as runtime\nfrom tvm.contrib.download import download_testdata"
       ]
     },
     {
@@ -155,7 +155,7 @@
       },
       "outputs": [],
       "source": [
-        "local_demo = True\n\nif local_demo:\n    target = tvm.target.Target(\"llvm\")\nelse:\n    target = tvm.target.arm_cpu(\"rasp3b\")\n    # The above line is a simple form of\n    # target = tvm.target.Target('llvm -device=arm_cpu -model=bcm2837 -mtriple=armv7l-linux-gnueabihf -mattr=+neon')\n\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(func, target, params=params)\n\n# After `relay.build`, you will get three return values: graph,\n# library and the new par [...]
+        "local_demo = True\n\nif local_demo:\n    target = tvm.target.Target(\"llvm\")\nelse:\n    target = tvm.target.arm_cpu(\"rasp3b\")\n    # The above line is a simple form of\n    # target = tvm.target.Target('llvm -device=arm_cpu -model=bcm2837 -mtriple=armv7l-linux-gnueabihf -mattr=+neon')\n\nwith tvm.transform.PassContext(opt_level=3):\n    lib = relay.build(func, target, params=params)\n\n# After `relay.build`, you will get three return values: graph,\n# library and the new par [...]
       ]
     },
     {
diff --git a/docs/_downloads/c49dbffd05b18e5db4049ffe6480aca2/deploy_object_detection_pytorch.ipynb b/docs/_downloads/c49dbffd05b18e5db4049ffe6480aca2/deploy_object_detection_pytorch.ipynb
index c1c6eb0..3bba116 100644
--- a/docs/_downloads/c49dbffd05b18e5db4049ffe6480aca2/deploy_object_detection_pytorch.ipynb
+++ b/docs/_downloads/c49dbffd05b18e5db4049ffe6480aca2/deploy_object_detection_pytorch.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nCompile PyTorch Object Detection Models\n=======================================\nThis article is an introductory tutorial to deploy PyTorch object\ndetection models with Relay VM.\n\nFor us to begin with, PyTorch should be installed.\nTorchVision is also required since we will be using it as our model zoo.\n\nA quick solution is to install via pip\n\n.. code-block:: bash\n\n    pip install torch==1.4.0\n    pip install torchvision==0.5.0\n\nor please refer to official site\nh [...]
+        "\nCompile PyTorch Object Detection Models\n=======================================\nThis article is an introductory tutorial to deploy PyTorch object\ndetection models with Relay VM.\n\nFor us to begin with, PyTorch should be installed.\nTorchVision is also required since we will be using it as our model zoo.\n\nA quick solution is to install via pip\n\n.. code-block:: bash\n\n    pip install torch==1.7.0\n    pip install torchvision==0.8.1\n\nor please refer to official site\nh [...]
       ]
     },
     {
diff --git a/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb b/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb
index b0d0677..21d8062 100644
--- a/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb
+++ b/docs/_downloads/c4d683ae80a4b8a011286f239422638a/deploy_classification.ipynb
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport argparse, json, os, requests, sys, time\nfrom io import BytesIO\nfrom os.path import join, isfile\nfrom PIL import Image\n\nfrom mxnet.gluon.model_zoo import vision\nimport numpy as np\nfrom matplotlib import pyplot as plt\n\nimport tvm\nfrom tvm import te\nfrom tvm import rpc, autotvm, relay\nfrom tvm.contrib import graph_runtime, util, download\nfrom tvm.contrib.debugger import debug_runtime\nfrom tvm.relay impor [...]
+        "from __future__ import absolute_import, print_function\n\nimport argparse, json, os, requests, sys, time\nfrom io import BytesIO\nfrom os.path import join, isfile\nfrom PIL import Image\n\nfrom mxnet.gluon.model_zoo import vision\nimport numpy as np\nfrom matplotlib import pyplot as plt\n\nimport tvm\nfrom tvm import te\nfrom tvm import rpc, autotvm, relay\nfrom tvm.contrib import graph_runtime, utils, download\nfrom tvm.contrib.debugger import debug_runtime\nfrom tvm.relay impo [...]
       ]
     },
     {
@@ -87,7 +87,7 @@
       },
       "outputs": [],
       "source": [
-        "# Load pre-configured AutoTVM schedules\nwith autotvm.tophub.context(target):\n\n    # Populate the shape and data type dictionary for ImageNet classifier input\n    dtype_dict = {\"data\": \"float32\"}\n    shape_dict = {\"data\": (env.BATCH, 3, 224, 224)}\n\n    # Get off the shelf gluon model, and convert to relay\n    gluon_model = vision.get_model(model, pretrained=True)\n\n    # Measure build start time\n    build_start = time.time()\n\n    # Start front end compilation\n  [...]
+        "# Load pre-configured AutoTVM schedules\nwith autotvm.tophub.context(target):\n\n    # Populate the shape and data type dictionary for ImageNet classifier input\n    dtype_dict = {\"data\": \"float32\"}\n    shape_dict = {\"data\": (env.BATCH, 3, 224, 224)}\n\n    # Get off the shelf gluon model, and convert to relay\n    gluon_model = vision.get_model(model, pretrained=True)\n\n    # Measure build start time\n    build_start = time.time()\n\n    # Start front end compilation\n  [...]
       ]
     },
     {
diff --git a/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb b/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb
index ed8fd11..af8d19c 100644
--- a/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb
+++ b/docs/_downloads/c634482de86bbc712f15077b3ec3a92f/convolution_opt.ipynb
@@ -33,14 +33,14 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nimport tvm.testing\nfrom tvm import te\nimport vta\nimport numpy as np\n\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\npo [...]
+        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nimport tvm.testing\nfrom tvm import te\nimport vta\nimport numpy as np\n\nfrom tvm import rpc\nfrom tvm.contrib import utils\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\np [...]
       ]
     },
     {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Computation Declaration\n-----------------------\nAs a first step, we need to describe our 2D convolution computation\nin NCHW format.\n\nWe define the 2D convolution shape by the batch size,\nspatial dimensions, input channels, output channels, kernel dimensions,\nkernel dimensions, padding dimensions, and stride dimensions.\n\nWe pick the shape of the 9th convolutional layer of the ResNet-18\narchitecture as our convolution workload parameters.\n\nWe've added extra operators t [...]
+        "Computation Declaration\n-----------------------\nAs a first step, we need to describe our 2D convolution computation\nin NCHW format.\n\nWe define the 2D convolution shape by the batch size,\nspatial dimensions, input channels, output channels, kernel dimensions,\nkernel dimensions, padding dimensions, and stride dimensions.\n\nWe pick the shape of the 9th convolutional layer of the ResNet-18\narchitecture as our convolution workload parameters.\n\nWe've added extra operators t [...]
       ]
     },
     {
@@ -94,7 +94,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Virtual Threading\n~~~~~~~~~~~~~~~~~\nVirtual threading is a mechanism that increases task-level pipeline\nparallelism in the VTA hardware design.\nPut it another way, it increases compute resource utilization by hiding\nmemory access latency.\n\nIn the implementation below, virtual threading distributes work across two\nthreads split along the output channel axis.\nWe show how work is split when computing the 2D convolution in the figure\nbelow.\n\n![](https://raw.githubusercon [...]
+        "Virtual Threading\n~~~~~~~~~~~~~~~~~\nVirtual threading is a mechanism that increases task-level pipeline\nparallelism in the VTA hardware design.\nPut it another way, it increases compute resource utilization by hiding\nmemory access latency.\n\nIn the implementation below, virtual threading distributes work across two\nthreads split along the output channel axis.\nWe show how work is split when computing the 2D convolution in the figure\nbelow.\n\n![](https://raw.githubusercon [...]
       ]
     },
     {
@@ -159,7 +159,7 @@
       },
       "outputs": [],
       "source": [
-        "# This library facilitates 2D convolution testing\nfrom tvm.topi.testing import conv2d_nchw_python\n\n# Compile the TVM module\nmy_conv = vta.build(s, [data, kernel, res], \"ext_dev\", env.target_host, name=\"my_conv\")\ntemp = util.tempdir()\nmy_conv.save(temp.relpath(\"conv2d.o\"))\nremote.upload(temp.relpath(\"conv2d.o\"))\nf = remote.load_module(\"conv2d.o\")\n\n# Get the remote device context\nctx = remote.ext_dev(0)\n\n# Initialize the data and kernel arrays randomly in th [...]
+        "# This library facilitates 2D convolution testing\nfrom tvm.topi.testing import conv2d_nchw_python\n\n# Compile the TVM module\nmy_conv = vta.build(s, [data, kernel, res], \"ext_dev\", env.target_host, name=\"my_conv\")\ntemp = utils.tempdir()\nmy_conv.save(temp.relpath(\"conv2d.o\"))\nremote.upload(temp.relpath(\"conv2d.o\"))\nf = remote.load_module(\"conv2d.o\")\n\n# Get the remote device context\nctx = remote.ext_dev(0)\n\n# Initialize the data and kernel arrays randomly in t [...]
       ]
     },
     {
diff --git a/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py b/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py
index 2888f34..185b71f 100644
--- a/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py
+++ b/docs/_downloads/cbbaae24e5c894dda1ebeded6fded2c3/convolution_opt.py
@@ -45,7 +45,7 @@ import vta
 import numpy as np
 
 from tvm import rpc
-from tvm.contrib import util
+from tvm.contrib import utils
 from vta.testing import simulator
 
 # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
@@ -93,7 +93,7 @@ elif env.TARGET in ["sim", "tsim"]:
 # convolution followed by a rectified linear activation.
 # We describe the TVM dataflow graph of the 2D convolution layer below:
 #
-# .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/conv2d_dataflow.png
+# .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/conv2d_dataflow.png
 #      :align: center
 #
 # This computation is intentionally too large to fit onto VTA's on-chip
@@ -120,7 +120,7 @@ elif env.TARGET in ["sim", "tsim"]:
 #   loaded from DRAM into VTA's SRAM, following a 2D strided and padded memory
 #   read.
 #
-#   .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/padding.png
+#   .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/padding.png
 #        :align: center
 #        :width: 480px
 
@@ -292,7 +292,7 @@ s[res_conv].reorder(ic_out, b_inn, oc_inn, y_inn, ic_inn, dy, dx, x_inn, b_tns,
 # We show how work is split when computing the 2D convolution in the figure
 # below.
 #
-# .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/virtual_threading.png
+# .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/virtual_threading.png
 #      :align: center
 #      :width: 480px
 
@@ -370,7 +370,7 @@ from tvm.topi.testing import conv2d_nchw_python
 
 # Compile the TVM module
 my_conv = vta.build(s, [data, kernel, res], "ext_dev", env.target_host, name="my_conv")
-temp = util.tempdir()
+temp = utils.tempdir()
 my_conv.save(temp.relpath("conv2d.o"))
 remote.upload(temp.relpath("conv2d.o"))
 f = remote.load_module("conv2d.o")
diff --git a/docs/_downloads/cd8ac9c09164cc04dd9ecd131c536680/micro_tflite.ipynb b/docs/_downloads/cd8ac9c09164cc04dd9ecd131c536680/micro_tflite.ipynb
index c031e24..5b26c9e 100644
--- a/docs/_downloads/cd8ac9c09164cc04dd9ecd131c536680/micro_tflite.ipynb
+++ b/docs/_downloads/cd8ac9c09164cc04dd9ecd131c536680/micro_tflite.ipynb
@@ -26,7 +26,7 @@
       },
       "outputs": [],
       "source": [
-        "# %%\n# Setup\n# -----\n#\n# To get started, TFLite package needs to be installed as prerequisite.\n#\n# install tflite\n#\n# .. code-block:: bash\n#\n#   pip install tflite=2.1.0 --user\n#\n# or you could generate TFLite package yourself. The steps are the following:\n#\n#   Get the flatc compiler.\n#   Please refer to https://github.com/google/flatbuffers for details\n#   and make sure it is properly installed.\n#\n# .. code-block:: bash\n#\n#   flatc --version\n#\n# Get the T [...]
+        "# %%\n# Setup\n# -----\n#\n# To get started, TFLite package needs to be installed as prerequisite.\n#\n# install tflite\n#\n# .. code-block:: bash\n#\n#   pip install tflite=2.1.0 --user\n#\n# or you could generate TFLite package yourself. The steps are the following:\n#\n#   Get the flatc compiler.\n#   Please refer to https://github.com/google/flatbuffers for details\n#   and make sure it is properly installed.\n#\n# .. code-block:: bash\n#\n#   flatc --version\n#\n# Get the T [...]
       ]
     },
     {
diff --git a/docs/_downloads/cfc40d6a8f25c9fce268b6a4f277d915/cross_compilation_and_rpc.py b/docs/_downloads/cfc40d6a8f25c9fce268b6a4f277d915/cross_compilation_and_rpc.py
index 572ebb8..69284c0 100644
--- a/docs/_downloads/cfc40d6a8f25c9fce268b6a4f277d915/cross_compilation_and_rpc.py
+++ b/docs/_downloads/cfc40d6a8f25c9fce268b6a4f277d915/cross_compilation_and_rpc.py
@@ -98,7 +98,7 @@ import numpy as np
 import tvm
 from tvm import te
 from tvm import rpc
-from tvm.contrib import util
+from tvm.contrib import utils
 
 n = tvm.runtime.convert(1024)
 A = te.placeholder((n,), name="A")
@@ -120,7 +120,7 @@ else:
 
 func = tvm.build(s, [A, B], target=target, name="add_one")
 # save the lib at a local temp folder
-temp = util.tempdir()
+temp = utils.tempdir()
 path = temp.relpath("lib.tar")
 func.export_library(path)
 
diff --git a/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb b/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb
index 7f8a2f8..54cb9b1 100644
--- a/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb
+++ b/docs/_downloads/d37aecc420f8b90ce29faee4df5d0bcd/matrix_multiply.ipynb
@@ -33,14 +33,14 @@
       },
       "outputs": [],
       "source": [
-        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.ge [...]
+        "from __future__ import absolute_import, print_function\n\nimport os\nimport tvm\nfrom tvm import te\nimport vta\nimport numpy as np\nfrom tvm import rpc\nfrom tvm.contrib import utils\nfrom vta.testing import simulator\n\n# Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file\nenv = vta.get_env()\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.g [...]
       ]
     },
     {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Computation Declaration\n-----------------------\nIn this example we describe a simple matrix multiplication addition, which\nrequires multiple computation stages, as shown in the dataflow diagram below.\nFirst we describe the input tensors :code:`A` and :code:`B` that are living\nin main memory.\nSecond, we need to declare intermediate tensors :code:`A_buf` and\n:code:`B_buf`, which will live in VTA's on-chip buffers.\nHaving this extra computational stage allows us to explicit [...]
+        "Computation Declaration\n-----------------------\nIn this example we describe a simple matrix multiplication addition, which\nrequires multiple computation stages, as shown in the dataflow diagram below.\nFirst we describe the input tensors :code:`A` and :code:`B` that are living\nin main memory.\nSecond, we need to declare intermediate tensors :code:`A_buf` and\n:code:`B_buf`, which will live in VTA's on-chip buffers.\nHaving this extra computational stage allows us to explicit [...]
       ]
     },
     {
@@ -54,7 +54,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Data Tiling**\n\n  One source of complexity when targeting accelerators is to make sure\n  that the data layout matches the layout imposed by the accelerator design.\n  VTA is designed around a *tensor core* that performs, one matrix-matrix\n  operation per cycle between an activation matrix and a weight matrix,\n  adding the result matrix to an accumulator matrix, as shown in the\n  figure below.\n\n  .. image:: https://raw.gith [...]
+        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Data Tiling**\n\n  One source of complexity when targeting accelerators is to make sure\n  that the data layout matches the layout imposed by the accelerator design.\n  VTA is designed around a *tensor core* that performs, one matrix-matrix\n  operation per cycle between an activation matrix and a weight matrix,\n  adding the result matrix to an accumulator matrix, as shown in the\n  figure below.\n\n  .. image:: https://raw.gith [...]
       ]
     },
     {
@@ -240,7 +240,7 @@
       },
       "outputs": [],
       "source": [
-        "# Build GEMM VTA kernel\nmy_gemm = vta.build(s, [A, B, C], \"ext_dev\", env.target_host, name=\"my_gemm\")\n\n# Write the compiled module into an object file.\ntemp = util.tempdir()\nmy_gemm.save(temp.relpath(\"gemm.o\"))\n\n# Send the executable over RPC\nremote.upload(temp.relpath(\"gemm.o\"))\n\n# Load the compiled module\nf = remote.load_module(\"gemm.o\")"
+        "# Build GEMM VTA kernel\nmy_gemm = vta.build(s, [A, B, C], \"ext_dev\", env.target_host, name=\"my_gemm\")\n\n# Write the compiled module into an object file.\ntemp = utils.tempdir()\nmy_gemm.save(temp.relpath(\"gemm.o\"))\n\n# Send the executable over RPC\nremote.upload(temp.relpath(\"gemm.o\"))\n\n# Load the compiled module\nf = remote.load_module(\"gemm.o\")"
       ]
     },
     {
diff --git a/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py b/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py
index 6125466..b7fbf89 100644
--- a/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py
+++ b/docs/_downloads/e41367a7f459e4f4dca82180009c1539/tune_relay_mobile_gpu.py
@@ -33,6 +33,10 @@ these operators, it will query this log file to get the best knob values.
 We also released pre-tuned parameters for some arm devices. You can go to
 `Mobile GPU Benchmark <https://github.com/apache/incubator-tvm/wiki/Benchmark#mobile-gpu>`_
 to see the results.
+
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
 """
 
 ######################################################################
@@ -66,7 +70,7 @@ from tvm import autotvm
 from tvm import relay
 import tvm.relay.testing
 from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
-from tvm.contrib.util import tempdir
+from tvm.contrib.utils import tempdir
 import tvm.contrib.graph_runtime as runtime
 
 #################################################################
@@ -417,4 +421,4 @@ def tune_and_evaluate(tuning_opt):
 #      import logging
 #      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 #
-#   Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+#   Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
diff --git a/docs/_downloads/e92c7219a1cd7838e61f9683f4228a7f/from_onnx.ipynb b/docs/_downloads/e92c7219a1cd7838e61f9683f4228a7f/from_onnx.ipynb
index 8694d06..8953d2d 100644
--- a/docs/_downloads/e92c7219a1cd7838e61f9683f4228a7f/from_onnx.ipynb
+++ b/docs/_downloads/e92c7219a1cd7838e61f9683f4228a7f/from_onnx.ipynb
@@ -123,7 +123,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Notes\n---------------------------------------------\nBy default, ONNX defines models in terms of dynamic shapes. The ONNX importer\nretains that dynamism upon import, and the compiler attemps to convert the model\ninto a static shapes at compile time. If this fails, there may still be dynamic\noperations in the model. Not all TVM kernels currently support dynamic shapes,\nplease file an issue on discuss.tvm.ai if you hit an error with dynamic kernels.\n\n"
+        "Notes\n---------------------------------------------\nBy default, ONNX defines models in terms of dynamic shapes. The ONNX importer\nretains that dynamism upon import, and the compiler attemps to convert the model\ninto a static shapes at compile time. If this fails, there may still be dynamic\noperations in the model. Not all TVM kernels currently support dynamic shapes,\nplease file an issue on discuss.tvm.apache.org if you hit an error with dynamic kernels.\n\n"
       ]
     }
   ],
diff --git a/docs/_downloads/ec94e7a109437cf90cddcc60a7b5aaea/deploy_object_detection_pytorch.py b/docs/_downloads/ec94e7a109437cf90cddcc60a7b5aaea/deploy_object_detection_pytorch.py
index 6408685..2852dd3 100644
--- a/docs/_downloads/ec94e7a109437cf90cddcc60a7b5aaea/deploy_object_detection_pytorch.py
+++ b/docs/_downloads/ec94e7a109437cf90cddcc60a7b5aaea/deploy_object_detection_pytorch.py
@@ -27,8 +27,8 @@ A quick solution is to install via pip
 
 .. code-block:: bash
 
-    pip install torch==1.4.0
-    pip install torchvision==0.5.0
+    pip install torch==1.7.0
+    pip install torchvision==0.8.1
 
 or please refer to official site
 https://pytorch.org/get-started/locally/
@@ -36,7 +36,7 @@ https://pytorch.org/get-started/locally/
 PyTorch versions should be backwards compatible but should be used
 with the proper TorchVision version.
 
-Currently, TVM supports PyTorch 1.4 and 1.3. Other versions may
+Currently, TVM supports PyTorch 1.7 and 1.4. Other versions may
 be unstable.
 """
 
diff --git a/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py b/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py
index 582eb03..1bf4161 100644
--- a/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py
+++ b/docs/_downloads/ef2454f5c8b007c53ff214943df808ad/deploy_classification.py
@@ -52,7 +52,7 @@ from matplotlib import pyplot as plt
 import tvm
 from tvm import te
 from tvm import rpc, autotvm, relay
-from tvm.contrib import graph_runtime, util, download
+from tvm.contrib import graph_runtime, utils, download
 from tvm.contrib.debugger import debug_runtime
 from tvm.relay import transform
 
@@ -204,7 +204,7 @@ with autotvm.tophub.context(target):
     print(model + " inference graph built in {0:.2f}s!".format(build_time))
 
     # Send the inference library over to the remote RPC server
-    temp = util.tempdir()
+    temp = utils.tempdir()
     lib.export_library(temp.relpath("graphlib.tar"))
     remote.upload(temp.relpath("graphlib.tar"))
     lib = remote.load_module("graphlib.tar")
diff --git a/docs/_downloads/f1a09967bab66114252357e4a9babb45/tune_matmul_x86.ipynb b/docs/_downloads/f1a09967bab66114252357e4a9babb45/tune_matmul_x86.ipynb
index eac1893..ad43051 100644
--- a/docs/_downloads/f1a09967bab66114252357e4a9babb45/tune_matmul_x86.ipynb
+++ b/docs/_downloads/f1a09967bab66114252357e4a9babb45/tune_matmul_x86.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\nAuto-scheduling matrix multiplication for CPU\n=============================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_,             `Chengfan Jia <https://github.com/jcf94/>`_\n\nDifferent from the existing `autotvm <tutorials-autotvm-sec>` which relies on \nmanual templates to define the search space, the auto-scheduler does not require any templates.\nUsers only need to write the computation declaration without any schedule commands or tem [...]
+        "\nAuto-scheduling matrix multiplication for CPU\n=============================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_,             `Chengfan Jia <https://github.com/jcf94/>`_\n\nDifferent from the existing `autotvm <tutorials-autotvm-sec>` which relies on \nmanual templates to define the search space, the auto-scheduler does not require any templates.\nUsers only need to write the computation declaration without any schedule commands or tem [...]
       ]
     },
     {
@@ -26,7 +26,7 @@
       },
       "outputs": [],
       "source": [
-        "import numpy as np\nimport tvm\nfrom tvm import te, auto_scheduler"
+        "import os\n\nimport numpy as np\nimport tvm\nfrom tvm import te, auto_scheduler"
       ]
     },
     {
@@ -80,7 +80,7 @@
       },
       "outputs": [],
       "source": [
-        "tune_option = auto_scheduler.TuningOptions(\n    num_measure_trials=10, measure_callbacks=[auto_scheduler.RecordToFile(\"matmul.json\")]\n)"
+        "log_file = \"matmul.json\"\ntune_option = auto_scheduler.TuningOptions(\n    num_measure_trials=10, measure_callbacks=[auto_scheduler.RecordToFile(log_file)]\n)"
       ]
     },
     {
@@ -159,7 +159,7 @@
       },
       "outputs": [],
       "source": [
-        "# Load the measuremnt record for the best schedule\ninp, res = auto_scheduler.load_best(\"matmul.json\", task.workload_key)\n\n# Print equivalent python schedule API. This can be used for debugging and\n# learning the behavior of the auto-scheduler.\nprint(\"Equivalent python schedule:\")\nprint(task.compute_dag.print_python_code_from_state(inp.state))\n\n# Rebuild the binary. This shows how you can apply the best schedule from a\n# log file without reruning the search again.\ns [...]
+        "# Load the measuremnt record for the best schedule\ninp, res = auto_scheduler.load_best(log_file, task.workload_key)\n\n# Print equivalent python schedule API. This can be used for debugging and\n# learning the behavior of the auto-scheduler.\nprint(\"Equivalent python schedule:\")\nprint(task.compute_dag.print_python_code_from_state(inp.state))\n\n# Rebuild the binary. This shows how you can apply the best schedule from a\n# log file without reruning the search again.\nsch, arg [...]
       ]
     },
     {
@@ -177,7 +177,7 @@
       },
       "outputs": [],
       "source": [
-        "def resume_search(task, log_file):\n    cost_model = auto_scheduler.XGBModel()\n    cost_model.update_from_file(log_file)\n    search_policy = auto_scheduler.SketchPolicy(\n        task, cost_model, init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file)]\n    )\n    tune_option = auto_scheduler.TuningOptions(\n        num_measure_trials=5, measure_callbacks=[auto_scheduler.RecordToFile(log_file)]\n    )\n    sch, args = auto_scheduler.auto_schedule(task, search_po [...]
+        "def resume_search(task, log_file_name):\n    cost_model = auto_scheduler.XGBModel()\n    cost_model.update_from_file(log_file_name)\n    search_policy = auto_scheduler.SketchPolicy(\n        task,\n        cost_model,\n        init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file_name)],\n    )\n    tune_option = auto_scheduler.TuningOptions(\n        num_measure_trials=5, measure_callbacks=[auto_scheduler.RecordToFile(log_file_name)]\n    )\n    sch, args = auto_ [...]
       ]
     },
     {
diff --git a/docs/_downloads/f59fd8b968f7dcde34ed872c8527c192/from_keras.py b/docs/_downloads/f59fd8b968f7dcde34ed872c8527c192/from_keras.py
index 3dcefd5..25a1e5c 100644
--- a/docs/_downloads/f59fd8b968f7dcde34ed872c8527c192/from_keras.py
+++ b/docs/_downloads/f59fd8b968f7dcde34ed872c8527c192/from_keras.py
@@ -45,13 +45,25 @@ import numpy as np
 # Load pretrained keras model
 # ----------------------------
 # We load a pretrained resnet-50 classification model provided by keras.
-weights_url = "".join(
-    [
-        "https://github.com/fchollet/deep-learning-models/releases/",
-        "download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5",
-    ]
-)
-weights_file = "resnet50_weights.h5"
+
+if tuple(keras.__version__.split(".")) < ("2", "4", "0"):
+    weights_url = "".join(
+        [
+            "https://github.com/fchollet/deep-learning-models/releases/",
+            "download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5",
+        ]
+    )
+    weights_file = "resnet50_keras_old.h5"
+else:
+    weights_url = "".join(
+        [
+            " https://storage.googleapis.com/tensorflow/keras-applications/",
+            "resnet/resnet50_weights_tf_dim_ordering_tf_kernels.h5",
+        ]
+    )
+    weights_file = "resnet50_keras_new.h5"
+
+
 weights_path = download_testdata(weights_url, weights_file, module="keras")
 keras_resnet50 = keras.applications.resnet50.ResNet50(
     include_top=True, weights=None, input_shape=(224, 224, 3), classes=1000
diff --git a/docs/_downloads/f5b39ff89c432f7750c338ebf15407f6/vta_get_started.ipynb b/docs/_downloads/f5b39ff89c432f7750c338ebf15407f6/vta_get_started.ipynb
index 114cab3..9163c5e 100644
--- a/docs/_downloads/f5b39ff89c432f7750c338ebf15407f6/vta_get_started.ipynb
+++ b/docs/_downloads/f5b39ff89c432f7750c338ebf15407f6/vta_get_started.ipynb
@@ -62,14 +62,14 @@
       },
       "outputs": [],
       "source": [
-        "# We'll need the TVM RPC module and the VTA simulator module\nfrom tvm import rpc\nfrom tvm.contrib import util\nfrom vta.testing import simulator\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.get(\"VTA_RPC_PORT\", \"9091\"))\n\n# We configure both the bitstream and the runtime system on the Pynq\n# to match the VTA configuration specified by the vta_config.json  [...]
+        "# We'll need the TVM RPC module and the VTA simulator module\nfrom tvm import rpc\nfrom tvm.contrib import utils\nfrom vta.testing import simulator\n\n# We read the Pynq RPC host IP address and port number from the OS environment\nhost = os.environ.get(\"VTA_RPC_HOST\", \"192.168.2.99\")\nport = int(os.environ.get(\"VTA_RPC_PORT\", \"9091\"))\n\n# We configure both the bitstream and the runtime system on the Pynq\n# to match the VTA configuration specified by the vta_config.json [...]
       ]
     },
     {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "Computation Declaration\n-----------------------\nAs a first step, we need to describe our computation.\nTVM adopts tensor semantics, with each intermediate result\nrepresented as multi-dimensional array. The user needs to describe\nthe computation rule that generates the output tensors.\n\nIn this example we describe a vector addition, which requires multiple\ncomputation stages, as shown in the dataflow diagram below.\nFirst we describe the input tensors :code:`A` and :code:`B [...]
+        "Computation Declaration\n-----------------------\nAs a first step, we need to describe our computation.\nTVM adopts tensor semantics, with each intermediate result\nrepresented as multi-dimensional array. The user needs to describe\nthe computation rule that generates the output tensors.\n\nIn this example we describe a vector addition, which requires multiple\ncomputation stages, as shown in the dataflow diagram below.\nFirst we describe the input tensors :code:`A` and :code:`B [...]
       ]
     },
     {
@@ -284,7 +284,7 @@
       },
       "outputs": [],
       "source": [
-        "# Write the compiled module into an object file.\ntemp = util.tempdir()\nmy_vadd.save(temp.relpath(\"vadd.o\"))\n\n# Send the executable over RPC\nremote.upload(temp.relpath(\"vadd.o\"))"
+        "# Write the compiled module into an object file.\ntemp = utils.tempdir()\nmy_vadd.save(temp.relpath(\"vadd.o\"))\n\n# Send the executable over RPC\nremote.upload(temp.relpath(\"vadd.o\"))"
       ]
     },
     {
diff --git a/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py b/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py
index 33a0588..b5bcdf6 100644
--- a/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py
+++ b/docs/_downloads/f83f0c3da8a2ab10657c61e034b7218d/from_pytorch.py
@@ -28,8 +28,8 @@ A quick solution is to install via pip
 
 .. code-block:: bash
 
-    pip install torch==1.4.0
-    pip install torchvision==0.5.0
+    pip install torch==1.7.0
+    pip install torchvision==0.8.1
 
 or please refer to official site
 https://pytorch.org/get-started/locally/
@@ -37,7 +37,7 @@ https://pytorch.org/get-started/locally/
 PyTorch versions should be backwards compatible but should be used
 with the proper TorchVision version.
 
-Currently, TVM supports PyTorch 1.4 and 1.3. Other versions may
+Currently, TVM supports PyTorch 1.7 and 1.4. Other versions may
 be unstable.
 """
 
diff --git a/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb b/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb
index 040c9bc..b8bf4f4 100644
--- a/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb
+++ b/docs/_downloads/f8f7a2adf30f5033603d79cdbacd9235/tune_relay_arm.ipynb
@@ -15,7 +15,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "\n\nAuto-tuning a convolutional network for ARM CPU\n===============================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_, `Zhao Wu <https://github.com/FrozenGene>`_, `Eddie Yan <https://github.com/eqy>`_\n\nAuto-tuning for a specific ARM device is critical for getting the best\nperformance. This is a tutorial about how to tune a whole convolutional\nnetwork.\n\nThe operator implementation for ARM CPU in TVM is written in template form.\n [...]
+        "\n\nAuto-tuning a convolutional network for ARM CPU\n===============================================\n**Author**: `Lianmin Zheng <https://github.com/merrymercy>`_, `Zhao Wu <https://github.com/FrozenGene>`_, `Eddie Yan <https://github.com/eqy>`_\n\nAuto-tuning for a specific ARM device is critical for getting the best\nperformance. This is a tutorial about how to tune a whole convolutional\nnetwork.\n\nThe operator implementation for ARM CPU in TVM is written in template form.\n [...]
       ]
     },
     {
@@ -33,7 +33,7 @@
       },
       "outputs": [],
       "source": [
-        "import os\n\nimport numpy as np\nimport tvm\nfrom tvm import te\nfrom tvm import autotvm\nfrom tvm import relay\nimport tvm.relay.testing\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\nfrom tvm.contrib.util import tempdir\nimport tvm.contrib.graph_runtime as runtime"
+        "import os\n\nimport numpy as np\nimport tvm\nfrom tvm import te\nfrom tvm import autotvm\nfrom tvm import relay\nimport tvm.relay.testing\nfrom tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner\nfrom tvm.contrib.utils import tempdir\nimport tvm.contrib.graph_runtime as runtime"
       ]
     },
     {
@@ -140,7 +140,7 @@
       "cell_type": "markdown",
       "metadata": {},
       "source": [
-        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
+        "<div class=\"alert alert-info\"><h4>Note</h4><p>**Experiencing Difficulties?**\n\n  The auto tuning module is error-prone. If you always see \" 0.00/ 0.00 GFLOPS\",\n  then there must be something wrong.\n\n  First, make sure you set the correct configuration of your device.\n  Then, you can print debug information by adding these lines in the beginning\n  of the script. It will print every measurement result, where you can find useful\n  error messages.\n\n  .. code-block:: pyt [...]
       ]
     }
   ],
diff --git a/docs/_downloads/fd012fa7b67f4e333acce1d25a8e62bc/micro_tflite.py b/docs/_downloads/fd012fa7b67f4e333acce1d25a8e62bc/micro_tflite.py
index 6fd2de1..293f95c 100644
--- a/docs/_downloads/fd012fa7b67f4e333acce1d25a8e62bc/micro_tflite.py
+++ b/docs/_downloads/fd012fa7b67f4e333acce1d25a8e62bc/micro_tflite.py
@@ -98,7 +98,7 @@ import numpy as np
 import tvm
 import tvm.micro as micro
 from tvm.contrib.download import download_testdata
-from tvm.contrib import graph_runtime, util
+from tvm.contrib import graph_runtime, utils
 from tvm import relay
 
 # %%
diff --git a/docs/_sources/api/python/contrib.rst.txt b/docs/_sources/api/python/contrib.rst.txt
index 8ac4e1f..0eb3024 100644
--- a/docs/_sources/api/python/contrib.rst.txt
+++ b/docs/_sources/api/python/contrib.rst.txt
@@ -122,9 +122,9 @@ tvm.contrib.tar
     :members:
 
 
-tvm.contrib.util
-~~~~~~~~~~~~~~~~
-.. automodule:: tvm.contrib.util
+tvm.contrib.utils
+~~~~~~~~~~~~~~~~~
+.. automodule:: tvm.contrib.utils
     :members:
 
 
diff --git a/docs/_sources/contribute/error_handling.rst.txt b/docs/_sources/contribute/error_handling.rst.txt
index 8f71ee6..d31b401 100644
--- a/docs/_sources/contribute/error_handling.rst.txt
+++ b/docs/_sources/contribute/error_handling.rst.txt
@@ -37,14 +37,14 @@ raise an error of the corresponding type.
 Note that you do not have to add a new type
 :py:class:`tvm.error.TVMError` will be raised by default when
 there is no error type prefix in the message.
-This mechanism works for both ``LOG(FATAL)`` and ``CHECK`` macros.
+This mechanism works for both ``LOG(FATAL)`` and ``ICHECK`` macros.
 The following code gives an example on how to do so.
 
 .. code:: c
 
   // src/api_test.cc
   void ErrorTest(int x, int y) {
-    CHECK_EQ(x, y) << "ValueError: expect x and y to be equal."
+    ICHECK_EQ(x, y) << "ValueError: expect x and y to be equal."
     if (x == 1) {
       LOG(FATAL) << "InternalError: cannot reach here";
     }
diff --git a/docs/_sources/dev/convert_layout.rst.txt b/docs/_sources/dev/convert_layout.rst.txt
index 07ebc20..6c9890f 100644
--- a/docs/_sources/dev/convert_layout.rst.txt
+++ b/docs/_sources/dev/convert_layout.rst.txt
@@ -157,7 +157,7 @@ First example is for layout agnostic operators. These operators do not have any
       Layout ret;
 
       if (new_in_layouts.defined()) {
-        CHECK_GE(new_in_layouts.size(), 1);
+        ICHECK_GE(new_in_layouts.size(), 1);
         ret = new_in_layouts[0];
       } else {
         for (size_t i = 0; i < old_in_layouts.size(); ++i) {
diff --git a/docs/_sources/dev/introduction_to_module_serialization.rst.txt b/docs/_sources/dev/introduction_to_module_serialization.rst.txt
index 5451b84..6b2f2ad 100644
--- a/docs/_sources/dev/introduction_to_module_serialization.rst.txt
+++ b/docs/_sources/dev/introduction_to_module_serialization.rst.txt
@@ -32,7 +32,7 @@ Let us build one ResNet-18 workload for GPU as an example first.
 
    from tvm import relay
    from tvm.relay import testing
-   from tvm.contrib import util
+   from tvm.contrib import utils
    import tvm
 
    # Resnet18 workload
@@ -43,7 +43,7 @@ Let us build one ResNet-18 workload for GPU as an example first.
        _, resnet18_lib, _ = relay.build_module.build(resnet18_mod, "cuda", params=resnet18_params)
 
    # create one tempory directory
-   temp = util.tempdir()
+   temp = utils.tempdir()
 
    # path lib
    file_name = "deploy.so"
diff --git a/docs/_sources/dev/pass_infra.rst.txt b/docs/_sources/dev/pass_infra.rst.txt
index 1427608..898e517 100644
--- a/docs/_sources/dev/pass_infra.rst.txt
+++ b/docs/_sources/dev/pass_infra.rst.txt
@@ -276,12 +276,12 @@ order that they were appended to the pass list.
                                       const PassContext& pass_ctx) const {
       Module mod = module;
       for (const Pass& pass : passes) {
-        CHECK(pass.defined()) << "Found undefined pass for optimization.";
+        ICHECK(pass.defined()) << "Found undefined pass for optimization.";
         const PassInfo& pass_info = pass->Info();
         if (!PassEnabled(pass_info))  continue;
         for (const auto& it : pass_info->required) {
           const auto* name = it.as<tvm::ir::StringImm>();
-          CHECK(name);
+          ICHECK(name);
           mod = GetPass(name->value)(mod, pass_ctx);
         }
         mod = pass(mod, pass_ctx);
@@ -306,7 +306,7 @@ pass is registered with an API endpoint as we will show later.
       using tvm::runtime::Registry;
       std::string fpass_name = "relay._transform." + pass_name;
       const auto* f = Registry::Get(fpass_name);
-      CHECK(f != nullptr) << "Cannot find " << fpass_name
+      ICHECK(f != nullptr) << "Cannot find " << fpass_name
                           << "to create the pass " << pass_name;
       return (*f)();
     }
diff --git a/docs/_sources/dev/relay_bring_your_own_codegen.rst.txt b/docs/_sources/dev/relay_bring_your_own_codegen.rst.txt
index f4ee58a..a4d4ebd 100644
--- a/docs/_sources/dev/relay_bring_your_own_codegen.rst.txt
+++ b/docs/_sources/dev/relay_bring_your_own_codegen.rst.txt
@@ -296,7 +296,7 @@ As mentioned in the previous step, in addition to the subgraph input and output
 
     // This example only supports single output.
     auto type_node = call->checked_type().as<TensorTypeNode>();
-    CHECK(type_node != nullptr && runtime::TypeMatch(type_node->dtype, kDLFloat, 32))
+    ICHECK(type_node != nullptr && runtime::TypeMatch(type_node->dtype, kDLFloat, 32))
           << "Only support single output tensor with float type";
 
     // Generate a unique buffer name.
@@ -410,7 +410,7 @@ Implement GenCFunc
 .. code-block:: c++
 
   void GenCFunc(const Function& func) {
-    CHECK(func.defined()) << "Input error: expect a Relay function.";
+    ICHECK(func.defined()) << "Input error: expect a Relay function.";
 
     // Record the external symbol for runtime lookup.
     auto sid = GetExtSymbol(func);
@@ -474,7 +474,7 @@ This function creates a runtime module for the external library. In this example
 
     // Create a CSourceModule
     const auto* pf = runtime::Registry::Get("module.csource_module_create");
-    CHECK(pf != nullptr) << "Cannot find csource module to create the external runtime module";
+    ICHECK(pf != nullptr) << "Cannot find csource module to create the external runtime module";
     return (*pf)(code_stream_.str(), "cc");
   }
 
@@ -556,7 +556,7 @@ In this section, our goal is to implement the following customized TVM runtime m
       ExampleJsonCodeGen codegen(ref);
       std::string code = codegen.gen(); // Note 1
       const auto* pf = runtime::Registry::Get("module.examplejson_module_create"); // Note 2
-      CHECK(pf != nullptr) << "Cannot find ExampleJson module to create the external runtime module";
+      ICHECK(pf != nullptr) << "Cannot find ExampleJson module to create the external runtime module";
       return (*pf)(code);
   }
   TVM_REGISTER_GLOBAL("relay.ext.examplejsoncompiler").set_body_typed(ExampleJsonCompiler);
@@ -785,7 +785,7 @@ After the construction, we should have the above class variables ready. We then
 
         // Copy input tensors to corresponding data entries.
         for (auto i = 0; i < args.size(); ++i) {
-          CHECK(args[i].type_code() == kNDArrayContainer || args[i].type_code() == kArrayHandle)
+          ICHECK(args[i].type_code() == kNDArrayContainer || args[i].type_code() == kArrayHandle)
               << "Expect NDArray or DLTensor as inputs\n";
           if (args[i].type_code() == kArrayHandle) {
             DLTensor* arg = args[i];
@@ -800,7 +800,7 @@ After the construction, we should have the above class variables ready. We then
         for (const auto& it : this->graph_[this->curr_subgraph_]) {
           this->Run(it.id, it.inputs, it.output);
         }
-        CHECK_GT(graph_.count(this->curr_subgraph_), 0U);
+        ICHECK_GT(graph_.count(this->curr_subgraph_), 0U);
 
         // Copy the output from a data entry back to TVM runtime argument.
         auto out_idx = graph_[this->curr_subgraph_].back().output;
diff --git a/docs/_sources/tutorials/auto_scheduler/sg_execution_times.rst.txt b/docs/_sources/tutorials/auto_scheduler/sg_execution_times.rst.txt
index 8856d90..bfe3d78 100644
--- a/docs/_sources/tutorials/auto_scheduler/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/auto_scheduler/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**05:10.193** total execution time for **tutorials_auto_scheduler** files:
+**03:25.669** total execution time for **tutorials_auto_scheduler** files:
 
-- **03:13.532**: :ref:`sphx_glr_tutorials_auto_scheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
-- **01:56.661**: :ref:`sphx_glr_tutorials_auto_scheduler_tune_matmul_x86.py` (``tune_matmul_x86.py``)
+- **01:48.967**: :ref:`sphx_glr_tutorials_auto_scheduler_tune_matmul_x86.py` (``tune_matmul_x86.py``)
+- **01:36.702**: :ref:`sphx_glr_tutorials_auto_scheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
diff --git a/docs/_sources/tutorials/auto_scheduler/tune_conv2d_layer_cuda.rst.txt b/docs/_sources/tutorials/auto_scheduler/tune_conv2d_layer_cuda.rst.txt
index 10ea58e..614a707 100644
--- a/docs/_sources/tutorials/auto_scheduler/tune_conv2d_layer_cuda.rst.txt
+++ b/docs/_sources/tutorials/auto_scheduler/tune_conv2d_layer_cuda.rst.txt
@@ -22,10 +22,16 @@ find a good schedule in the space.
 
 We use a convolution layer as an example in this tutorial.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 
 .. code-block:: default
 
 
+    import os
+
     import numpy as np
     import tvm
     from tvm import te, auto_scheduler, topi
@@ -124,11 +130,12 @@ mainly specify how we do the measurement during the search and auto-tuning.
 .. code-block:: default
 
 
+    log_file = "conv2d.json"
     measure_ctx = auto_scheduler.LocalRPCMeasureContext(min_repeat_ms=300)
     tune_option = auto_scheduler.TuningOptions(
         num_measure_trials=10,
         runner=measure_ctx.runner,
-        measure_callbacks=[auto_scheduler.RecordToFile("conv2d.json")],
+        measure_callbacks=[auto_scheduler.RecordToFile(log_file)],
     )
 
 
@@ -202,14 +209,14 @@ cooperative fetching, unrolling and operator fusion.
                  kernel: Buffer(kernel_2: Pointer(float32), float32, [512, 512, 3, 3], []),
                  data: Buffer(data_2: Pointer(float32), float32, [1, 512, 7, 7], [])}
       buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute} {
-      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 128;
+      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 112;
       attr [compute_3: Pointer(float32)] "storage_scope" = "local";
-      allocate(compute_3, float32, [14]);
+      allocate(compute_3, float32, [7]);
       attr [pad_temp.shared: Pointer(float32)] "storage_scope" = "shared";
-      allocate(pad_temp.shared, float32, [504]);
+      allocate(pad_temp.shared, float32, [54]);
       attr [kernel.shared: Pointer(float32)] "storage_scope" = "shared";
-      allocate(kernel.shared, float32, [96]);
-      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14 {
+      allocate(kernel.shared, float32, [576]);
+      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32 {
         compute_3[0] = 0f32
         compute_3[1] = 0f32
         compute_3[2] = 0f32
@@ -217,142 +224,185 @@ cooperative fetching, unrolling and operator fusion.
         compute_3[4] = 0f32
         compute_3[5] = 0f32
         compute_3[6] = 0f32
-        compute_3[7] = 0f32
-        compute_3[8] = 0f32
-        compute_3[9] = 0f32
-        compute_3[10] = 0f32
-        compute_3[11] = 0f32
-        compute_3[12] = 0f32
-        compute_3[13] = 0f32
-        for (rc.outer.outer: int32, 0, 64) {
-          for (ry.outer.outer: int32, 0, 3) {
-            attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[threadIdx.x_1] = @tir.if_then_else((((1 <= (floordiv(threadIdx.x_1, 9) + ry.outer.outer)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv(threadIdx.x_1, 9)*7)) + (ry.outer.outer*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 14)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 5), 9)) && (floormod((threadIdx.x_1 + 5), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 14), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 28)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 1), 9)) && (floormod((threadIdx.x_1 + 1), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 28), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 42)] = @tir.if_then_else(((((floordiv((threadIdx.x_1 + 42), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 42), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 56)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 56), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 70)] = @tir.if_then_else((((1 <= (floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 70), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 84)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 3), 9)) && (floormod((threadIdx.x_1 + 3), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 84), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 98)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 8), 9)) && (floormod((threadIdx.x_1 + 8), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 98), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 112)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 49), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 112), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 126)] = @tir.if_then_else((((1 <= (floordiv(threadIdx.x_1, 9) + ry.outer.outer)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv(threadIdx.x_1, 9)*7)) + (ry.outer.outer*7)) + floormod(threadIdx.x_1, 9)) + 90)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 140)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 5), 9)) && (floormod((threadIdx.x_1 + 5), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 140), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 154)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 1), 9)) && (floormod((threadIdx.x_1 + 1), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 154), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 168)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 42), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 168), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 182)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 182), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 196)] = @tir.if_then_else((((1 <= (floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 196), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 210)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 3), 9)) && (floormod((threadIdx.x_1 + 3), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 210), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 224)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 8), 9)) && (floormod((threadIdx.x_1 + 8), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 224), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 238)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 49), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 238), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 252)] = @tir.if_then_else((((1 <= (floordiv(threadIdx.x_1, 9) + ry.outer.outer)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv(threadIdx.x_1, 9)*7)) + (ry.outer.outer*7)) + floormod(threadIdx.x_1, 9)) + 188)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 266)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 5), 9)) && (floormod((threadIdx.x_1 + 5), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 266), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 280)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 1), 9)) && (floormod((threadIdx.x_1 + 1), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 280), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 294)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 42), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 294), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 308)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 308), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 322)] = @tir.if_then_else((((1 <= (floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 322), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 336)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 3), 9)) && (floormod((threadIdx.x_1 + 3), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 336), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 350)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 8), 9)) && (floormod((threadIdx.x_1 + 8), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 350), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 364)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 49), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 364), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 378)] = @tir.if_then_else((((1 <= (floordiv(threadIdx.x_1, 9) + ry.outer.outer)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv(threadIdx.x_1, 9)*7)) + (ry.outer.outer*7)) + floormod(threadIdx.x_1, 9)) + 286)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 392)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 5), 9)) && (floormod((threadIdx.x_1 + 5), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 392), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 406)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 1), 9)) && (floormod((threadIdx.x_1 + 1), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 406), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 420)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 42), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 420), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 434)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 56), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 434), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 448)] = @tir.if_then_else((((1 <= (floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 448), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 462)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 3), 9)) && (floormod((threadIdx.x_1 + 3), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 462), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 476)] = @tir.if_then_else(((1 <= floormod((threadIdx.x_1 + 8), 9)) && (floormod((threadIdx.x_1 + 8), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 476), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            pad_temp.shared[(threadIdx.x_1 + 490)] = @tir.if_then_else(((((floordiv(floormod((threadIdx.x_1 + 49), 63), 9) + ry.outer.outer) < 8) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), (float32*)data_2[(((((rc.outer.outer*392) + (floordiv((threadIdx.x_1 + 490), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            kernel.shared[threadIdx.x_2] = (float32*)kernel_2[(((((blockIdx.x*18432) + (rc.outer.outer*72)) + (floordiv(threadIdx.x_2, 3)*9)) + (ry.outer.outer*3)) + floormod(threadIdx.x_2, 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            kernel.shared[(threadIdx.x_2 + 14)] = (float32*)kernel_2[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 14), 24)*4608)) + (rc.outer.outer*72)) + (floordiv(floormod((threadIdx.x_2 + 14), 24), 3)*9)) + (ry.outer.outer*3)) + floormod((threadIdx.x_2 + 2), 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            kernel.shared[(threadIdx.x_2 + 28)] = (float32*)kernel_2[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 28), 24)*4608)) + (rc.outer.outer*72)) + (floordiv(floormod((threadIdx.x_2 + 4), 24), 3)*9)) + (ry.outer.outer*3)) + floormod((threadIdx.x_2 + 1), 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            kernel.shared[(threadIdx.x_2 + 42)] = (float32*)kernel_2[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 42), 24)*4608)) + (rc.outer.outer*72)) + (floordiv(floormod((threadIdx.x_2 + 18), 24), 3)*9)) + (ry.outer.outer*3)) + floormod(threadIdx.x_2, 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            kernel.shared[(threadIdx.x_2 + 56)] = (float32*)kernel_2[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 56), 24)*4608)) + (rc.outer.outer*72)) + (floordiv(floormod((threadIdx.x_2 + 8), 24), 3)*9)) + (ry.outer.outer*3)) + floormod((threadIdx.x_2 + 2), 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            kernel.shared[(threadIdx.x_2 + 70)] = (float32*)kernel_2[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 70), 24)*4608)) + (rc.outer.outer*72)) + (floordiv(floormod((threadIdx.x_2 + 22), 24), 3)*9)) + (ry.outer.outer*3)) + floormod((threadIdx.x_2 + 1), 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
-            if @tir.likely((threadIdx.x_2 < 12), dtype=bool) {
-              kernel.shared[(threadIdx.x_2 + 84)] = (float32*)kernel_2[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 84), 24)*4608)) + (rc.outer.outer*72)) + (floordiv(floormod((threadIdx.x_2 + 12), 24), 3)*9)) + (ry.outer.outer*3)) + floormod(threadIdx.x_2, 3))]
+        for (rc.outer.outer: int32, 0, 256) {
+          attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32 {
+            if @tir.likely((threadIdx.x_1 < 27), dtype=bool) {
+              pad_temp.shared[(threadIdx.x_1*2)] = @tir.if_then_else(((((3 <= floormod((threadIdx.x_1*2), 27)) && (floormod((threadIdx.x_1*2), 27) < 24)) && (1 <= (floormod(blockIdx.x, 7) + floormod((threadIdx.x_1*2), 3)))) && ((floormod(blockIdx.x, 7) + floormod((threadIdx.x_1*2), 3)) < 8)), (float32*)data_2[((((((rc.outer.outer*98) + (floordiv((threadIdx.x_1*2), 27)*49)) + (floordiv(floormod((threadIdx.x_1*2), 27), 3)*7)) + floormod(blockIdx.x, 7)) + floormod((threadIdx.x_1*2), 3)) - 8 [...]
             }
-            for (rc.outer.inner: int32, 0, 4) {
-              for (rx.outer.inner: int32, 0, 3) {
-                compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[(((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7))]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 9)]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 18)]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 27)]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 36)]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 45)]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 54)]*(float32*)kernel.shared[(((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                compute_3[7] = ((float32*)compute_3[7] + ((float32*)pad_temp.shared[(((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7))]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[8] = ((float32*)compute_3[8] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 9)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[9] = ((float32*)compute_3[9] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 18)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[10] = ((float32*)compute_3[10] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 27)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[11] = ((float32*)compute_3[11] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 36)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[12] = ((float32*)compute_3[12] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 45)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[13] = ((float32*)compute_3[13] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 54)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 72)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 81)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 90)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 99)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 108)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 117)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                compute_3[7] = ((float32*)compute_3[7] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                compute_3[8] = ((float32*)compute_3[8] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 72)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                compute_3[9] = ((float32*)compute_3[9] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 81)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                compute_3[10] = ((float32*)compute_3[10] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 90)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                compute_3[11] = ((float32*)compute_3[11] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 99)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                compute_3[12] = ((float32*)compute_3[12] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 108)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                compute_3[13] = ((float32*)compute_3[13] + ((float32*)pad_temp.shared[((((rc.outer.inner*126) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 117)]*(float32*)kernel.shared[((((floordiv(threadIdx.x, 7)*48) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-              }
+            if @tir.likely((threadIdx.x_1 < 27), dtype=bool) {
+              pad_temp.shared[((threadIdx.x_1*2) + 1)] = @tir.if_then_else(((((3 <= floormod(((threadIdx.x_1*2) + 1), 27)) && (floormod(((threadIdx.x_1*2) + 1), 27) < 24)) && (1 <= (floormod(blockIdx.x, 7) + floormod(((threadIdx.x_1*2) + 1), 3)))) && ((floormod(blockIdx.x, 7) + floormod(((threadIdx.x_1*2) + 1), 3)) < 8)), (float32*)data_2[((((((rc.outer.outer*98) + (floordiv(((threadIdx.x_1*2) + 1), 27)*49)) + (floordiv(floormod(((threadIdx.x_1*2) + 1), 27), 3)*7)) + floormod(blockIdx.x, [...]
             }
           }
+          attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[threadIdx.x_2] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv(threadIdx.x_2, 18)*4608)) + (rc.outer.outer*18)) + floormod(threadIdx.x_2, 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 32)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 32), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 14), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 64)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 64), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 10), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 96)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 96), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 6), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 128)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 128), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 2), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 160)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 160), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 16), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 192)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 192), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 12), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 224)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 224), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 8), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 256)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 256), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 4), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 288)] = (float32*)kernel_2[(((((floordiv(blockIdx.x, 7)*147456) + (floordiv(threadIdx.x_2, 18)*4608)) + (rc.outer.outer*18)) + floormod(threadIdx.x_2, 18)) + 73728)]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 320)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 320), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 14), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 352)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 352), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 10), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 384)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 384), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 6), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 416)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 416), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 2), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 448)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 448), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 16), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 480)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 480), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 12), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 512)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 512), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 8), 18))]
+          attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 32;
+          kernel.shared[(threadIdx.x_2 + 544)] = (float32*)kernel_2[((((floordiv(blockIdx.x, 7)*147456) + (floordiv((threadIdx.x_2 + 544), 18)*4608)) + (rc.outer.outer*18)) + floormod((threadIdx.x_2 + 4), 18))]
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[0]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[3]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[6]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[9]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[12]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[15]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[18]*(float32*)kernel.shared[(threadIdx.x*18)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[1]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[4]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[7]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[10]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[13]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[16]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[19]*(float32*)kernel.shared[((threadIdx.x*18) + 1)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[2]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[5]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[8]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[11]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[14]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[17]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[20]*(float32*)kernel.shared[((threadIdx.x*18) + 2)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[3]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[6]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[9]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[12]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[15]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[18]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[21]*(float32*)kernel.shared[((threadIdx.x*18) + 3)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[4]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[7]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[10]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[13]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[16]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[19]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[22]*(float32*)kernel.shared[((threadIdx.x*18) + 4)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[5]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[8]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[11]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[14]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[17]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[20]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[23]*(float32*)kernel.shared[((threadIdx.x*18) + 5)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[6]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[9]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[12]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[15]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[18]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[21]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[24]*(float32*)kernel.shared[((threadIdx.x*18) + 6)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[7]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[10]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[13]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[16]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[19]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[22]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[25]*(float32*)kernel.shared[((threadIdx.x*18) + 7)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[8]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[11]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[14]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[17]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[20]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[23]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[26]*(float32*)kernel.shared[((threadIdx.x*18) + 8)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[27]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[30]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[33]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[36]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[39]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[42]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[45]*(float32*)kernel.shared[((threadIdx.x*18) + 9)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[28]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[31]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[34]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[37]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[40]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[43]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[46]*(float32*)kernel.shared[((threadIdx.x*18) + 10)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[29]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[32]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[35]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[38]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[41]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[44]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[47]*(float32*)kernel.shared[((threadIdx.x*18) + 11)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[30]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[33]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[36]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[39]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[42]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[45]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[48]*(float32*)kernel.shared[((threadIdx.x*18) + 12)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[31]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[34]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[37]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[40]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[43]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[46]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[49]*(float32*)kernel.shared[((threadIdx.x*18) + 13)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[32]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[35]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[38]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[41]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[44]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[47]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[50]*(float32*)kernel.shared[((threadIdx.x*18) + 14)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[33]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[36]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[39]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[42]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[45]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[48]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[51]*(float32*)kernel.shared[((threadIdx.x*18) + 15)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[34]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[37]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[40]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[43]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[46]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[49]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[52]*(float32*)kernel.shared[((threadIdx.x*18) + 16)]))
+          compute_3[0] = ((float32*)compute_3[0] + ((float32*)pad_temp.shared[35]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
+          compute_3[1] = ((float32*)compute_3[1] + ((float32*)pad_temp.shared[38]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
+          compute_3[2] = ((float32*)compute_3[2] + ((float32*)pad_temp.shared[41]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
+          compute_3[3] = ((float32*)compute_3[3] + ((float32*)pad_temp.shared[44]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
+          compute_3[4] = ((float32*)compute_3[4] + ((float32*)pad_temp.shared[47]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
+          compute_3[5] = ((float32*)compute_3[5] + ((float32*)pad_temp.shared[50]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
+          compute_3[6] = ((float32*)compute_3[6] + ((float32*)pad_temp.shared[53]*(float32*)kernel.shared[((threadIdx.x*18) + 17)]))
         }
-        for (i1.inner: int32, 0, 2) {
-          for (i2.inner: int32, 0, 7) {
-            compute_2[(((((blockIdx.x*196) + (floordiv(threadIdx.x, 7)*98)) + (i1.inner*49)) + (i2.inner*7)) + floormod(threadIdx.x, 7))] = max(((float32*)compute_3[((i1.inner*7) + i2.inner)] + (float32*)bias_2[(((blockIdx.x*4) + (floordiv(threadIdx.x, 7)*2)) + i1.inner)]), 0f32)
-          }
-        }
+        compute_2[(((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7))] = max(((float32*)compute_3[0] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
+        compute_2[((((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7)) + 7)] = max(((float32*)compute_3[1] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
+        compute_2[((((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7)) + 14)] = max(((float32*)compute_3[2] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
+        compute_2[((((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7)) + 21)] = max(((float32*)compute_3[3] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
+        compute_2[((((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7)) + 28)] = max(((float32*)compute_3[4] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
+        compute_2[((((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7)) + 35)] = max(((float32*)compute_3[5] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
+        compute_2[((((floordiv(blockIdx.x, 7)*1568) + (threadIdx.x*49)) + floormod(blockIdx.x, 7)) + 42)] = max(((float32*)compute_3[6] + (float32*)bias_2[((floordiv(blockIdx.x, 7)*32) + threadIdx.x)]), 0f32)
       }
     }
 
@@ -432,7 +482,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.354 ms
+    Execution time of this operator: 0.175 ms
 
 
 
@@ -450,7 +500,7 @@ print the equivalent python schedule API, and build the binary again.
 
 
     # Load the measuremnt record for the best schedule
-    inp, res = auto_scheduler.load_best("conv2d.json", task.workload_key)
+    inp, res = auto_scheduler.load_best(log_file, task.workload_key)
 
     # Print equivalent python schedule API. This can be used for debugging and
     # learning the behavior of the auto-scheduler.
@@ -484,33 +534,33 @@ print the equivalent python schedule API, and build the binary again.
     compute_nn_o_o_o_o, compute_nn_o_o_o_i = s[compute].split(compute_nn_o_o_o_i, factor=1)
     compute_ff_o_i, compute_ff_i = s[compute].split(compute_ff, factor=1)
     compute_ff_o_o_i, compute_ff_o_i = s[compute].split(compute_ff_o_i, factor=1)
-    compute_ff_o_o_o_i, compute_ff_o_o_i = s[compute].split(compute_ff_o_o_i, factor=16)
+    compute_ff_o_o_o_i, compute_ff_o_o_i = s[compute].split(compute_ff_o_o_i, factor=32)
     compute_ff_o_o_o_o, compute_ff_o_o_o_i = s[compute].split(compute_ff_o_o_o_i, factor=1)
     compute_yy_o_i, compute_yy_i = s[compute].split(compute_yy, factor=1)
     compute_yy_o_o_i, compute_yy_o_i = s[compute].split(compute_yy_o_i, factor=1)
-    compute_yy_o_o_o_i, compute_yy_o_o_i = s[compute].split(compute_yy_o_o_i, factor=7)
-    compute_yy_o_o_o_o, compute_yy_o_o_o_i = s[compute].split(compute_yy_o_o_o_i, factor=1)
+    compute_yy_o_o_o_i, compute_yy_o_o_i = s[compute].split(compute_yy_o_o_i, factor=1)
+    compute_yy_o_o_o_o, compute_yy_o_o_o_i = s[compute].split(compute_yy_o_o_o_i, factor=7)
     compute_xx_o_i, compute_xx_i = s[compute].split(compute_xx, factor=1)
-    compute_xx_o_o_i, compute_xx_o_i = s[compute].split(compute_xx_o_i, factor=7)
+    compute_xx_o_o_i, compute_xx_o_i = s[compute].split(compute_xx_o_i, factor=1)
     compute_xx_o_o_o_i, compute_xx_o_o_i = s[compute].split(compute_xx_o_o_i, factor=1)
     compute_xx_o_o_o_o, compute_xx_o_o_o_i = s[compute].split(compute_xx_o_o_o_i, factor=1)
-    compute_rc_o_i, compute_rc_i = s[compute].split(compute_rc, factor=8)
-    compute_rc_o_o, compute_rc_o_i = s[compute].split(compute_rc_o_i, factor=2)
+    compute_rc_o_i, compute_rc_i = s[compute].split(compute_rc, factor=2)
+    compute_rc_o_o, compute_rc_o_i = s[compute].split(compute_rc_o_i, factor=1)
     compute_ry_o_i, compute_ry_i = s[compute].split(compute_ry, factor=3)
     compute_ry_o_o, compute_ry_o_i = s[compute].split(compute_ry_o_i, factor=1)
-    compute_rx_o_i, compute_rx_i = s[compute].split(compute_rx, factor=1)
-    compute_rx_o_o, compute_rx_o_i = s[compute].split(compute_rx_o_i, factor=3)
+    compute_rx_o_i, compute_rx_i = s[compute].split(compute_rx, factor=3)
+    compute_rx_o_o, compute_rx_o_i = s[compute].split(compute_rx_o_i, factor=1)
     s[compute].reorder(compute_nn_o_o_o_o, compute_ff_o_o_o_o, compute_yy_o_o_o_o, compute_xx_o_o_o_o, compute_nn_o_o_o_i, compute_ff_o_o_o_i, compute_yy_o_o_o_i, compute_xx_o_o_o_i, compute_nn_o_o_i, compute_ff_o_o_i, compute_yy_o_o_i, compute_xx_o_o_i, compute_rc_o_o, compute_ry_o_o, compute_rx_o_o, compute_rc_o_i, compute_ry_o_i, compute_rx_o_i, compute_nn_o_i, compute_ff_o_i, compute_yy_o_i, compute_xx_o_i, compute_rc_i, compute_ry_i, compute_rx_i, compute_nn_i, compute_ff_i, compute [...]
     compute_i0_o_i, compute_i0_i = s[compute].split(compute_i0, factor=1)
     compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
     compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
     compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
-    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=16)
+    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=32)
     compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
     compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
-    compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
-    compute_i2_o_o_o, compute_i2_o_o_i = s[compute].split(compute_i2_o_o_i, factor=1)
-    compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=7)
+    compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=1)
+    compute_i2_o_o_o, compute_i2_o_o_i = s[compute].split(compute_i2_o_o_i, factor=7)
+    compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
     compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
     compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
     s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
@@ -529,16 +579,16 @@ print the equivalent python schedule API, and build the binary again.
     compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused = s[compute].fuse(compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i)
     s[compute].bind(compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused, te.thread_axis("threadIdx.x"))
     kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[kernel_shared].fuse(kernel_shared_ax0, kernel_shared_ax1, kernel_shared_ax2, kernel_shared_ax3)
-    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=2)
+    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
     s[kernel_shared].vectorize(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=112)
+    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=32)
     s[kernel_shared].bind(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
     pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[pad_temp_shared].fuse(pad_temp_shared_ax0, pad_temp_shared_ax1, pad_temp_shared_ax2, pad_temp_shared_ax3)
-    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=9)
+    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=2)
     s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=112)
+    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=32)
     s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
-    s[compute].pragma(compute_nn_o_o_o_o, "auto_unroll_max_step", 1024)
+    s[compute].pragma(compute_nn_o_o_o_o, "auto_unroll_max_step", 512)
     s[compute].pragma(compute_nn_o_o_o_o, "unroll_explicit", True)
 
 
@@ -554,7 +604,6 @@ In the example below we resume the status and do more 5 trials.
 
 
 
-    log_file = "conv2d.json"
     cost_model = auto_scheduler.XGBModel()
     cost_model.update_from_file(log_file)
     search_policy = auto_scheduler.SketchPolicy(
@@ -588,7 +637,7 @@ In the example below we resume the status and do more 5 trials.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  13.532 seconds)
+   **Total running time of the script:** ( 1 minutes  36.702 seconds)
 
 
 .. _sphx_glr_download_tutorials_auto_scheduler_tune_conv2d_layer_cuda.py:
diff --git a/docs/_sources/tutorials/auto_scheduler/tune_matmul_x86.rst.txt b/docs/_sources/tutorials/auto_scheduler/tune_matmul_x86.rst.txt
index 2c0dc5e..24876f2 100644
--- a/docs/_sources/tutorials/auto_scheduler/tune_matmul_x86.rst.txt
+++ b/docs/_sources/tutorials/auto_scheduler/tune_matmul_x86.rst.txt
@@ -19,10 +19,16 @@ find a good schedule in the space.
 
 We use matrix multiplication as an example in this tutorial.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 
 .. code-block:: default
 
 
+    import os
+
     import numpy as np
     import tvm
     from tvm import te, auto_scheduler
@@ -114,8 +120,9 @@ Next, we set parameters for the auto-scheduler.
 .. code-block:: default
 
 
+    log_file = "matmul.json"
     tune_option = auto_scheduler.TuningOptions(
-        num_measure_trials=10, measure_callbacks=[auto_scheduler.RecordToFile("matmul.json")]
+        num_measure_trials=10, measure_callbacks=[auto_scheduler.RecordToFile(log_file)]
     )
 
 
@@ -270,7 +277,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 2.213 ms
+    Execution time of this operator: 2.010 ms
 
 
 
@@ -288,7 +295,7 @@ print the equivalent python schedule API, and build the binary again.
 
 
     # Load the measuremnt record for the best schedule
-    inp, res = auto_scheduler.load_best("matmul.json", task.workload_key)
+    inp, res = auto_scheduler.load_best(log_file, task.workload_key)
 
     # Print equivalent python schedule API. This can be used for debugging and
     # learning the behavior of the auto-scheduler.
@@ -313,21 +320,21 @@ print the equivalent python schedule API, and build the binary again.
     Equivalent python schedule:
     matmul_i, matmul_j, matmul_k = tuple(matmul.op.axis) + tuple(matmul.op.reduce_axis)
     out_i, out_j = tuple(out.op.axis) + tuple(out.op.reduce_axis)
-    matmul_i_o_i, matmul_i_i = s[matmul].split(matmul_i, factor=1)
-    matmul_i_o_o_i, matmul_i_o_i = s[matmul].split(matmul_i_o_i, factor=128)
-    matmul_i_o_o_o, matmul_i_o_o_i = s[matmul].split(matmul_i_o_o_i, factor=1)
-    matmul_j_o_i, matmul_j_i = s[matmul].split(matmul_j, factor=16)
-    matmul_j_o_o_i, matmul_j_o_i = s[matmul].split(matmul_j_o_i, factor=1)
-    matmul_j_o_o_o, matmul_j_o_o_i = s[matmul].split(matmul_j_o_o_i, factor=8)
-    matmul_k_o, matmul_k_i = s[matmul].split(matmul_k, factor=16)
+    matmul_i_o_i, matmul_i_i = s[matmul].split(matmul_i, factor=4)
+    matmul_i_o_o_i, matmul_i_o_i = s[matmul].split(matmul_i_o_i, factor=2)
+    matmul_i_o_o_o, matmul_i_o_o_i = s[matmul].split(matmul_i_o_o_i, factor=4)
+    matmul_j_o_i, matmul_j_i = s[matmul].split(matmul_j, factor=2)
+    matmul_j_o_o_i, matmul_j_o_i = s[matmul].split(matmul_j_o_i, factor=32)
+    matmul_j_o_o_o, matmul_j_o_o_i = s[matmul].split(matmul_j_o_o_i, factor=1)
+    matmul_k_o, matmul_k_i = s[matmul].split(matmul_k, factor=2)
     s[matmul].reorder(matmul_i_o_o_o, matmul_j_o_o_o, matmul_i_o_o_i, matmul_j_o_o_i, matmul_k_o, matmul_i_o_i, matmul_j_o_i, matmul_k_i, matmul_i_i, matmul_j_i)
-    out_i_o, out_i_i = s[out].split(out_i, factor=128)
-    out_j_o, out_j_i = s[out].split(out_j, factor=128)
+    out_i_o, out_i_i = s[out].split(out_i, factor=32)
+    out_j_o, out_j_i = s[out].split(out_j, factor=64)
     s[out].reorder(out_i_o, out_j_o, out_i_i, out_j_i)
     s[matmul].compute_at(s[out], out_j_o)
     out_i_o_j_o_fused = s[out].fuse(out_i_o, out_j_o)
     s[out].parallel(out_i_o_j_o_fused)
-    s[matmul].pragma(matmul_i_o_o_o, "auto_unroll_max_step", 64)
+    s[matmul].pragma(matmul_i_o_o_o, "auto_unroll_max_step", 0)
     s[matmul].pragma(matmul_i_o_o_o, "unroll_explicit", True)
     s[matmul].vectorize(matmul_j_i)
 
@@ -344,19 +351,21 @@ In the example below we resume the status and do more 5 trials.
 
 
 
-    def resume_search(task, log_file):
+    def resume_search(task, log_file_name):
         cost_model = auto_scheduler.XGBModel()
-        cost_model.update_from_file(log_file)
+        cost_model.update_from_file(log_file_name)
         search_policy = auto_scheduler.SketchPolicy(
-            task, cost_model, init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file)]
+            task,
+            cost_model,
+            init_search_callbacks=[auto_scheduler.PreloadMeasuredStates(log_file_name)],
         )
         tune_option = auto_scheduler.TuningOptions(
-            num_measure_trials=5, measure_callbacks=[auto_scheduler.RecordToFile(log_file)]
+            num_measure_trials=5, measure_callbacks=[auto_scheduler.RecordToFile(log_file_name)]
         )
         sch, args = auto_scheduler.auto_schedule(task, search_policy, tuning_options=tune_option)
 
 
-    # resume_search(task, "matmul.json")
+    # resume_search(task, log_file)
 
 
 
@@ -384,7 +393,7 @@ In the example below we resume the status and do more 5 trials.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  56.661 seconds)
+   **Total running time of the script:** ( 1 minutes  48.967 seconds)
 
 
 .. _sphx_glr_download_tutorials_auto_scheduler_tune_matmul_x86.py:
diff --git a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
index 6e38bcf..734abf1 100644
--- a/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,11 +5,11 @@
 
 Computation times
 =================
-**01:10.365** total execution time for **tutorials_autotvm** files:
-
-- **00:45.502**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:24.048**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
-- **00:00.224**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.199**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.198**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
-- **00:00.195**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+**00:52.058** total execution time for **tutorials_autotvm** files:
+
+- **00:29.054**: :ref:`sphx_glr_tutorials_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:22.389**: :ref:`sphx_glr_tutorials_autotvm_tune_simple_template.py` (``tune_simple_template.py``)
+- **00:00.167**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
+- **00:00.155**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.147**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:00.147**: :ref:`sphx_glr_tutorials_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
diff --git a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
index f5c6d2c..e05998c 100644
--- a/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_conv2d_cuda.rst.txt
@@ -15,6 +15,10 @@ This is an advanced tutorial for writing high performance tunable template for
 NVIDIA GPU. By running auto-tuner on this template, we can outperform the
 vendor provided library CuDNN in many cases.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 Install dependencies
 --------------------
 To use autotvm package in tvm, we need to install some extra dependencies.
@@ -238,26 +242,26 @@ for this template
        7 unroll_explicit: OtherOption([0, 1]) len=2
     )
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 30.06/30.06     result: MeasureResult(costs=(0.007702383,), error_no=0, all_cost=2.472616672515869, timestamp=1603167485.6522112)       [('tile_f', [-1, 32, 1, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7166780
-    No: 2   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 3   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 4   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 5   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 6   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 7   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 8   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 9   GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 10  GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 11  GFLOPS: 0.00/30.06      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 12  GFLOPS: 49.34/49.34     result: MeasureResult(costs=(0.004692016045454546,), error_no=0, all_cost=2.7959516048431396, timestamp=1603167495.4044144)     [('tile_f', [-1, 2, 8, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2077980
-    No: 13  GFLOPS: 0.00/49.34      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 14  GFLOPS: 73.85/73.85     result: MeasureResult(costs=(0.00313478265625,), error_no=0, all_cost=1.9385488033294678, timestamp=1603167496.8821692) [('tile_f', [-1, 2, 16, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,8726459
-    No: 15  GFLOPS: 27.80/73.85     result: MeasureResult(costs=(0.008327293230769231,), error_no=0, all_cost=1.758265495300293, timestamp=1603167497.9899476)      [('tile_f', [-1, 1, 2, 64]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5905444
-    No: 16  GFLOPS: 1.62/73.85      result: MeasureResult(costs=(0.14270683425,), error_no=0, all_cost=4.567987680435181, timestamp=1603167500.6006465)     [('tile_f', [-1, 2, 8, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7428895
-    No: 17  GFLOPS: 0.00/73.85      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (3) /workspace/build/libtvm.so(+0x6841d4) [0x7f0321f3e1d4]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x3e6) [0x7f0321f3ea36]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
-    No: 18  GFLOPS: 0.00/73.85      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (4) /workspace/build/libtvm.so(+0x1257ae2) [0x7f0322b11ae2]\n  [bt] (3) /workspace/build/libtvm.so(tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x26b) [0x7f0322b130cb]\n  [bt] (2) /workspace/build/libtvm.so(tvm::runtime::RPCClientSession::Call [...]
-    No: 19  GFLOPS: 23.84/73.85     result: MeasureResult(costs=(0.009710596090909091,), error_no=0, all_cost=1.434156894683838, timestamp=1603167508.960667)       [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,782066
-    No: 20  GFLOPS: 0.00/73.85      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f0322ac69f1]\n  [bt] (4) /workspace/build/libtvm.so(+0x1257ae2) [0x7f0322b11ae2]\n  [bt] (3) /workspace/build/libtvm.so(tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x26b) [0x7f0322b130cb]\n  [bt] (2) /workspace/build/libtvm.so(tvm::runtime::RPCClientSession::Call [...]
+    No: 1   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 2   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 3   GFLOPS: 0.00/0.00       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 4   GFLOPS: 8.01/8.01       result: MeasureResult(costs=(0.02889490325,), error_no=0, all_cost=1.394493579864502, timestamp=1604488711.9078188)     [('tile_f', [-1, 64, 4, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,201325
+    No: 5   GFLOPS: 0.00/8.01       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 6   GFLOPS: 0.00/8.01       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 7   GFLOPS: 0.00/8.01       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 8   GFLOPS: 0.00/8.01       result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 9   GFLOPS: 16.76/16.76     result: MeasureResult(costs=(0.013811034,), error_no=0, all_cost=4.084443092346191, timestamp=1604488713.8433964)       [('tile_f', [-1, 16, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 16]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10187783
+    No: 10  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 11  GFLOPS: 6.73/16.76      result: MeasureResult(costs=(0.03439282125,), error_no=0, all_cost=1.3185703754425049, timestamp=1604488715.061667)     [('tile_f', [-1, 2, 2, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5741229
+    No: 12  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 13  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 14  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 15  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 16  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 17  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 18  GFLOPS: 0.00/16.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
+    No: 19  GFLOPS: 18.76/18.76     result: MeasureResult(costs=(0.012339261272727274,), error_no=0, all_cost=1.5916728973388672, timestamp=1604488719.308212)      [('tile_f', [-1, 16, 2, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,678328
+    No: 20  GFLOPS: 0.00/18.76      result: MeasureResult(costs=(InstantiationError('Traceback (most recent call last):\n  [bt] (4) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (3) /workspace/build/libtvm.so(+0x69a977) [0x7f7ae837a977]\n  [bt] (2) /workspace/build/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const+0x40e) [0x7f7ae8379d8e]\n  [bt] (1) /workspace/build/libtvm.so(tvm::tir::transform::PrimFunc [...]
 
 
 
@@ -309,8 +313,8 @@ and measure running time.
 
 
     Best config:
-    [('tile_f', [-1, 2, 16, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 16, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,8726459
-    Time cost of this operator: 0.003577
+    [('tile_f', [-1, 16, 2, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,678328
+    Time cost of this operator: 0.012350
 
 
 
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
index bf6d9db..7a5b805 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_arm.rst.txt
@@ -28,6 +28,10 @@ We also released pre-tuned parameters for some arm devices. You can go to
 `ARM CPU Benchmark <https://github.com/apache/incubator-tvm/wiki/Benchmark#arm-cpu>`_
 to see the results.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 Install dependencies
 --------------------
 To use the autotvm package in tvm, we need to install some extra dependencies.
@@ -61,7 +65,7 @@ Now return to python code. Import packages.
     from tvm import relay
     import tvm.relay.testing
     from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
-    from tvm.contrib.util import tempdir
+    from tvm.contrib.utils import tempdir
     import tvm.contrib.graph_runtime as runtime
 
 
@@ -441,7 +445,7 @@ It takes about 2 hours on a 32T AMD Ryzen Threadripper.
      import logging
      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 
-  Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+  Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_relay_arm.py:
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
index c9dc0bf..d0fd274 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_cuda.rst.txt
@@ -26,6 +26,10 @@ We also released pre-tuned parameters for some NVIDIA GPUs. You can go to
 `NVIDIA GPU Benchmark <https://github.com/apache/incubator-tvm/wiki/Benchmark#nvidia-gpu>`_
 to see the results.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 Install dependencies
 --------------------
 To use the autotvm package in tvm, we need to install some extra dependencies.
@@ -59,7 +63,7 @@ Now return to python code. Import packages.
     from tvm import relay
     import tvm.relay.testing
     from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
-    from tvm.contrib.util import tempdir
+    from tvm.contrib.utils import tempdir
     import tvm.contrib.graph_runtime as runtime
 
 
@@ -344,7 +348,7 @@ As a reference baseline, the time cost of MXNet + TensorRT on resnet-18 is 1.30m
      import logging
      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 
-  Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+  Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
 
 Scale up measurement by using multiple devices
 ----------------------------------------------
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt
index b094783..ea7dd8f 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_mobile_gpu.rst.txt
@@ -26,6 +26,10 @@ We also released pre-tuned parameters for some arm devices. You can go to
 `Mobile GPU Benchmark <https://github.com/apache/incubator-tvm/wiki/Benchmark#mobile-gpu>`_
 to see the results.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 Install dependencies
 --------------------
 To use the autotvm package in tvm, we need to install some extra dependencies.
@@ -60,7 +64,7 @@ Now return to python code. Import packages.
     from tvm import relay
     import tvm.relay.testing
     from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
-    from tvm.contrib.util import tempdir
+    from tvm.contrib.utils import tempdir
     import tvm.contrib.graph_runtime as runtime
 
 
@@ -446,7 +450,7 @@ One sample output is listed below. It takes about 3 hours on a 32T AMD Ryzen Thr
      import logging
      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 
-  Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+  Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
 
 
 .. _sphx_glr_download_tutorials_autotvm_tune_relay_mobile_gpu.py:
diff --git a/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt b/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
index 175522a..c6d5933 100644
--- a/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_relay_x86.rst.txt
@@ -16,6 +16,10 @@ Auto-tuning a convolutional network for x86 CPU
 This is a tutorial about how to tune convolution neural network
 for x86 CPU.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 
 .. code-block:: default
 
diff --git a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
index 64e9159..b4f18af 100644
--- a/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
+++ b/docs/_sources/tutorials/autotvm/tune_simple_template.rst.txt
@@ -19,6 +19,10 @@ The second step is running a search algorithm to explore through this space.
 In this tutorial, you can learn how to perform these two steps in TVM.
 The whole workflow is illustrated by a matrix multiplication example.
 
+Note that this tutorial will not run on Windows or recent versions of macOS. To
+get it to run, you will need to wrap the body of this tutorial in a :code:`if
+__name__ == "__main__":` block.
+
 Install dependencies
 --------------------
 To use autotvm package in TVM, we need to install some extra dependencies.
@@ -365,16 +369,16 @@ used to get the best config later.
  .. code-block:: none
 
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 9.86/9.86       result: MeasureResult(costs=(0.0272191584,), error_no=0, all_cost=0.9334566593170166, timestamp=1603167460.0891333)     [('tile_y', [-1, 8]), ('tile_x', [-1, 32])],None,53
-    No: 2   GFLOPS: 12.47/12.47     result: MeasureResult(costs=(0.0215312668,), error_no=0, all_cost=0.8999619483947754, timestamp=1603167461.0835187)     [('tile_y', [-1, 128]), ('tile_x', [-1, 256])],None,87
-    No: 3   GFLOPS: 15.16/15.16     result: MeasureResult(costs=(0.0177029772,), error_no=0, all_cost=0.8587379455566406, timestamp=1603167462.0166414)     [('tile_y', [-1, 8]), ('tile_x', [-1, 512])],None,93
-    No: 4   GFLOPS: 12.74/15.16     result: MeasureResult(costs=(0.021062226,), error_no=0, all_cost=0.9739360809326172, timestamp=1603167462.9981241)      [('tile_y', [-1, 128]), ('tile_x', [-1, 512])],None,97
-    No: 5   GFLOPS: 2.04/15.16      result: MeasureResult(costs=(0.1314596194,), error_no=0, all_cost=2.6746816635131836, timestamp=1603167465.759177)      [('tile_y', [-1, 256]), ('tile_x', [-1, 4])],None,28
-    No: 6   GFLOPS: 9.16/15.16      result: MeasureResult(costs=(0.0293005322,), error_no=0, all_cost=1.0533380508422852, timestamp=1603167466.8741796)     [('tile_y', [-1, 4]), ('tile_x', [-1, 32])],None,52
-    No: 7   GFLOPS: 13.69/15.16     result: MeasureResult(costs=(0.0196138782,), error_no=0, all_cost=0.86008620262146, timestamp=1603167467.833241)        [('tile_y', [-1, 2]), ('tile_x', [-1, 512])],None,91
-    No: 8   GFLOPS: 11.94/15.16     result: MeasureResult(costs=(0.022477699,), error_no=0, all_cost=0.8363852500915527, timestamp=1603167468.8411372)      [('tile_y', [-1, 2]), ('tile_x', [-1, 256])],None,81
-    No: 9   GFLOPS: 0.92/15.16      result: MeasureResult(costs=(0.2919428998,), error_no=0, all_cost=5.138051271438599, timestamp=1603167475.0591493)      [('tile_y', [-1, 128]), ('tile_x', [-1, 2])],None,17
-    No: 10  GFLOPS: 1.15/15.16      result: MeasureResult(costs=(0.2326493638,), error_no=0, all_cost=4.178379774093628, timestamp=1603167479.4227843)      [('tile_y', [-1, 1]), ('tile_x', [-1, 2])],None,10
+    No: 1   GFLOPS: 27.76/27.76     result: MeasureResult(costs=(0.0096711008,), error_no=0, all_cost=0.5818359851837158, timestamp=1604488684.0510147)     [('tile_y', [-1, 1]), ('tile_x', [-1, 64])],None,60
+    No: 2   GFLOPS: 20.85/27.76     result: MeasureResult(costs=(0.012874134,), error_no=0, all_cost=0.544644832611084, timestamp=1604488684.6589487)       [('tile_y', [-1, 512]), ('tile_x', [-1, 512])],None,99
+    No: 3   GFLOPS: 21.63/27.76     result: MeasureResult(costs=(0.012409730800000001,), error_no=0, all_cost=0.5541179180145264, timestamp=1604488685.2746277)     [('tile_y', [-1, 8]), ('tile_x', [-1, 512])],None,93
+    No: 4   GFLOPS: 1.51/27.76      result: MeasureResult(costs=(0.1780390712,), error_no=0, all_cost=3.2551794052124023, timestamp=1604488688.5435152)     [('tile_y', [-1, 2]), ('tile_x', [-1, 16])],None,41
+    No: 5   GFLOPS: 21.39/27.76     result: MeasureResult(costs=(0.0125475062,), error_no=0, all_cost=0.7667622566223145, timestamp=1604488689.156474)      [('tile_y', [-1, 2]), ('tile_x', [-1, 128])],None,71
+    No: 6   GFLOPS: 7.32/27.76      result: MeasureResult(costs=(0.0366672218,), error_no=0, all_cost=1.2662115097045898, timestamp=1604488690.1566975)     [('tile_y', [-1, 16]), ('tile_x', [-1, 128])],None,74
+    No: 7   GFLOPS: 0.00/27.76      result: MeasureResult(costs=(RuntimeError('Traceback (most recent call last):\n  [bt] (5) /workspace/build/libtvm.so(TVMFuncCall+0x61) [0x7f7ae8f542c1]\n  [bt] (4) /workspace/build/libtvm.so(+0x12bf7d2) [0x7f7ae8f9f7d2]\n  [bt] (3) /workspace/build/libtvm.so(tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const+0x255) [0x7f7ae8fa21d5]\n  [bt] (2) /workspace/build/libtvm.so(tvm::runtime::RPCClientSession::Call [...]
+    No: 8   GFLOPS: 4.47/27.76      result: MeasureResult(costs=(0.060092829800000004,), error_no=0, all_cost=1.3890645503997803, timestamp=1604488701.954656)      [('tile_y', [-1, 8]), ('tile_x', [-1, 64])],None,63
+    No: 9   GFLOPS: 21.15/27.76     result: MeasureResult(costs=(0.0126893048,), error_no=0, all_cost=0.5474710464477539, timestamp=1604488702.5631373)     [('tile_y', [-1, 256]), ('tile_x', [-1, 512])],None,98
+    No: 10  GFLOPS: 23.99/27.76     result: MeasureResult(costs=(0.011189972400000001,), error_no=0, all_cost=0.6243994235992432, timestamp=1604488703.1490448)     [('tile_y', [-1, 64]), ('tile_x', [-1, 128])],None,76
 
 
 
diff --git a/docs/_sources/tutorials/dev/bring_your_own_datatypes.rst.txt b/docs/_sources/tutorials/dev/bring_your_own_datatypes.rst.txt
index 1f72f3b..f437fd3 100644
--- a/docs/_sources/tutorials/dev/bring_your_own_datatypes.rst.txt
+++ b/docs/_sources/tutorials/dev/bring_your_own_datatypes.rst.txt
@@ -155,7 +155,7 @@ Additionally, note the "32" after the datatype: this is the bitwidth of the cust
 
  .. code-block:: none
 
-    TVMError: Check failed: name_to_code_.find(type_name) != name_to_code_.end(): Type name myfloat not registered
+      Check failed: name_to_code_.find(type_name) != name_to_code_.end() == false: Type name myfloat not registered
 
 
 
@@ -247,7 +247,7 @@ Now that we can express our program without errors, let's try running it!
 
  .. code-block:: none
 
-    TVMError: Check failed: lower: Cast lowering function for target llvm destination type 150 source type 2 not found
+      Check failed: lower == false: Cast lowering function for target llvm destination type 150 source type 2 not found
 
 
 
@@ -319,7 +319,7 @@ For more information, see `the source code <https://github.com/apache/incubator-
 
  .. code-block:: none
 
-    TVMError: Check failed: lower: Add lowering function for target llvm type 150 not found
+      Check failed: lower == false: Add lowering function for target llvm type 150 not found
 
 
 
@@ -521,7 +521,7 @@ Now, to actually convert the entire network, we have written `a pass in Relay <h
 
  .. code-block:: none
 
-    TVMError: Check failed: lower: FloatImm lowering function for target llvm type 150 not found
+      Check failed: lower == false: FloatImm lowering function for target llvm type 150 not found
 
 
 
diff --git a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
index 4b1980d..4b387f0 100644
--- a/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/dev/sg_execution_times.rst.txt
@@ -5,8 +5,8 @@
 
 Computation times
 =================
-**00:38.272** total execution time for **tutorials_dev** files:
+**00:29.375** total execution time for **tutorials_dev** files:
 
-- **00:36.191**: :ref:`sphx_glr_tutorials_dev_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
-- **00:01.852**: :ref:`sphx_glr_tutorials_dev_use_pass_infra.py` (``use_pass_infra.py``)
-- **00:00.229**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:27.564**: :ref:`sphx_glr_tutorials_dev_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
+- **00:01.648**: :ref:`sphx_glr_tutorials_dev_use_pass_infra.py` (``use_pass_infra.py``)
+- **00:00.163**: :ref:`sphx_glr_tutorials_dev_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/tutorials/dev/use_pass_infra.rst.txt b/docs/_sources/tutorials/dev/use_pass_infra.rst.txt
index 499a787..ee82c02 100644
--- a/docs/_sources/tutorials/dev/use_pass_infra.rst.txt
+++ b/docs/_sources/tutorials/dev/use_pass_infra.rst.txt
@@ -267,8 +267,8 @@ Manually Apply Optimization Passes
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAPL/F1kCJSJZYkkhWZLGI1n6glVZcqhfWfL2SlkidEpZUukvWXIpPlk6+11ZuhI1WYJCCVninzRZ0gUwWXKiTVk6QRJZwlwuWXIbD1lyAYNZQvkuWVqUDFm6DS1ZojsZWUq+M1k6rm5ZAp47WWJPJVmCcDtZkv0YWeoiSVnypRNZItoRWTLeH1lSlfBYukIGWXrsWVmiuApZimkJWZKGEFkKCS1Z4mdAWdJdMlkiOTlZstZAWdIOD1mCwuRYujFCWUKeFlni+UJZOhwoWZrmPFmyLBBZkpExWTLRX1ni+k9ZQiRoWaISGVmiyUlZKkwLWcq6LFlCjilZ4ikUWUIUWVkiBC9Z6vM4WZpCPFlS5MZYgoQ [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAPL/F1gCJSJYYkkhWJLGI1j6glVYcqhfWPL2SlgidEpYUukvWHIpPlg6+11YuhI1WIJCCVjinzRY0gUwWHKiTVg6QRJYwlwuWHIbD1hyAYNYQvkuWFqUDFi6DS1YojsZWEq+M1g6rm5YAp47WGJPJViCcDtYkv0YWOoiSVjypRNYItoRWDLeH1hSlfBXukIGWHrsWViiuApYimkJWJKGEFgKCS1Y4mdAWNJdMlgiOTlYstZAWNIOD1iCwuRXujFCWEKeFlji+UJYOhwoWJrmPFiyLBBYkpExWDLRX1ji+k9YQiRoWKISGViiyUlYKkwLWMq6LFhCjilY4ikUWEIUWVgiBC9Y6vM4WJpCPFhS5MZXgoQ [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -418,8 +418,8 @@ eliminate the common expressions that used by `z` and `z1`.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAPL/F1kCJSJZYkkhWZLGI1n6glVZcqhfWfL2SlkidEpZUukvWXIpPlk6+11ZuhI1WYJCCVninzRZ0gUwWXKiTVk6QRJZwlwuWXIbD1lyAYNZQvkuWVqUDFm6DS1ZojsZWUq+M1k6rm5ZAp47WWJPJVmCcDtZkv0YWeoiSVnypRNZItoRWTLeH1lSlfBYukIGWXrsWVmiuApZimkJWZKGEFkKCS1Z4mdAWdJdMlkiOTlZstZAWdIOD1mCwuRYujFCWUKeFlni+UJZOhwoWZrmPFmyLBBZkpExWTLRX1ni+k9ZQiRoWaISGVmiyUlZKkwLWcq6LFlCjilZ4ikUWUIUWVkiBC9Z6vM4WZpCPFlS5MZYgoQ [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAPL/F1gCJSJYYkkhWJLGI1j6glVYcqhfWPL2SlgidEpYUukvWHIpPlg6+11YuhI1WIJCCVjinzRY0gUwWHKiTVg6QRJYwlwuWHIbD1hyAYNYQvkuWFqUDFi6DS1YojsZWEq+M1g6rm5YAp47WGJPJViCcDtYkv0YWOoiSVjypRNYItoRWDLeH1hSlfBXukIGWHrsWViiuApYimkJWJKGEFgKCS1Y4mdAWNJdMlgiOTlYstZAWNIOD1iCwuRXujFCWEKeFlji+UJYOhwoWJrmPFiyLBBYkpExWDLRX1ji+k9YQiRoWKISGViiyUlYKkwLWMq6LFhCjilY4ikUWEIUWVgiBC9Y6vM4WJpCPFhS5MZXgoQ [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -585,8 +585,8 @@ opt level 0 will not allow operators to be fused together. Users can pass the
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAPL/F1kCJSJZYkkhWZLGI1n6glVZcqhfWfL2SlkidEpZUukvWXIpPlk6+11ZuhI1WYJCCVninzRZ0gUwWXKiTVk6QRJZwlwuWXIbD1lyAYNZQvkuWVqUDFm6DS1ZojsZWUq+M1k6rm5ZAp47WWJPJVmCcDtZkv0YWeoiSVnypRNZItoRWTLeH1lSlfBYukIGWXrsWVmiuApZimkJWZKGEFkKCS1Z4mdAWdJdMlkiOTlZstZAWdIOD1mCwuRYujFCWUKeFlni+UJZOhwoWZrmPFmyLBBZkpExWTLRX1ni+k9ZQiRoWaISGVmiyUlZKkwLWcq6LFlCjilZ4ikUWUIUWVkiBC9Z6vM4WZpCPFlS5MZYgoQ [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAPL/F1gCJSJYYkkhWJLGI1j6glVYcqhfWPL2SlgidEpYUukvWHIpPlg6+11YuhI1WIJCCVjinzRY0gUwWHKiTVg6QRJYwlwuWHIbD1hyAYNYQvkuWFqUDFi6DS1YojsZWEq+M1g6rm5YAp47WGJPJViCcDtYkv0YWOoiSVjypRNYItoRWDLeH1hSlfBXukIGWHrsWViiuApYimkJWJKGEFgKCS1Y4mdAWNJdMlgiOTlYstZAWNIOD1iCwuRXujFCWEKeFlji+UJYOhwoWJrmPFiyLBBYkpExWDLRX1ji+k9YQiRoWKISGViiyUlYKkwLWMq6LFhCjilY4ikUWEIUWVgiBC9Y6vM4WJpCPFhS5MZXgoQ [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -769,8 +769,8 @@ pass.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kEAAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kAAAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3QAAIB/AACAfwAAgH/KWoNsAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3MAAIB/AACAfwAAgH/KWoNrAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -930,8 +930,8 @@ for users to customize the optimization level that they want to execute.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kEAAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kAAAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3QAAIB/AACAfwAAgH/KWoNsAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3MAAIB/AACAfwAAgH/KWoNrAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1092,8 +1092,8 @@ identical addition operations.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kEAAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kAAAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3QAAIB/AACAfwAAgH/KWoNsAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3MAAIB/AACAfwAAgH/KWoNrAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1255,8 +1255,8 @@ alteration pass falls in such category.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kEAAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kAAAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3QAAIB/AACAfwAAgH/KWoNsAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3MAAIB/AACAfwAAgH/KWoNrAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1343,7 +1343,7 @@ alteration pass falls in such category.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAH8K+kAAAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAACAfwAAAAAAAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf8OqU3MAAIB/AACAfwAAgH/KWoNrAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1482,7 +1482,7 @@ customized pass.
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKWlpZSwoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH9cCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgoKSgoKCkoKCgpKCgo [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH9kCgpaCjpDAnoJCloKOkMCegkKWgo6QwJ6CQpaCjpDAnoJCloKOkMCegkKWgo6QwIKCgpaCgoKSnoJCloKOkMCegkKWgo6QwJ6CQpaCjpDAnoJCloAAIB/egkKWgAAAACaCwpaCjpDAnoJCloKOkMCegkKWgo6QwJ6CQpaCjpDAnoJCloKOkMCegkKWgo6QwJ6CQpaCjpDAnoJCloKOkMCCgo [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1591,7 +1591,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1631,7 +1631,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1711,7 +1711,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1794,7 +1794,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1877,7 +1877,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -1962,7 +1962,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2002,7 +2002,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYEyegAAAAAKCopKCgqKSgoSiko6CwpLCgqKSgoKikoKcrpLCgqKSgoKikpaGzpMCgqKSgoKikoKCopKCjrDAgoqSnsKCopKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKiloKOsMCegmKWgo6wwJ6CYpaCjrDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNR+RkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2082,7 +2082,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYEyegAAAAAKCopKCgqKSgoSiko6CwpLCgqKSgoKikoKcrpLCgqKSgoKikpaGzpMCgqKSgoKikoKCopKCjrDAgoqSnsKCopKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKiloKOsMCegmKWgo6wwJ6CYpaCjrDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNR+RkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2165,7 +2165,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYEyegAAAAAKCopKCgqKSgoSiko6CwpLCgqKSgoKikoKcrpLCgqKSgoKikpaGzpMCgqKSgoKikoKCopKCjrDAgoqSnsKCopKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKiloKOsMCegmKWgo6wwJ6CYpaCjrDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNR+RkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2248,7 +2248,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYEyegAAAAAKCopKCgqKSgoSiko6CwpLCgqKSgoKikoKcrpLCgqKSgoKikpaGzpMCgqKSgoKikoKCopKCjrDAgoqSnsKCopKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKiloKOsMCegmKWgo6wwJ6CYpaCjrDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNR+RkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2334,7 +2334,7 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYEyegAAAAAKCopKCgqKSgoSiko6CwpLCgqKSgoKikoKcrpLCgqKSgoKikpaGzpMCgqKSgoKikoKCopKCjrDAgoqSnsKCopKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKiloKOsMCegmKWgo6wwJ6CYpaCjrDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNR+RkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2386,8 +2386,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2519,8 +2519,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2652,8 +2652,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2785,8 +2785,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -2917,8 +2917,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3049,8 +3049,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3181,8 +3181,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3316,8 +3316,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3451,8 +3451,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3586,8 +3586,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3725,8 +3725,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
@@ -3861,8 +3861,8 @@ could be like the following to enable IR dumping for ``FoldConstant`` optimizati
         }
       ], 
       "b64ndarrays": [
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyegAAAAAKCgpLCgoKSwoSCks6C4pLCgoKSwoKCksKcjpMCgoKSwoKCktaG7pMCgoKSwoKCksKCgpLCjpDAwoqynsKCgpLAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKClsKOkMDegkKWwo6QwN6CQpbCjpDCwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
-        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgH8AAAAAEYGyeQAAAAAKCgpKCgoKSgoSCko6C4pKCgoKSgoKCkoKcjpLCgoKSgoKCkpaG7pLCgoKSgoKCkoKCgpKCjpDAgoqynoKCgpKAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAf1wKCloKOkMCegkKWgo6QwJ6CQpaCjpDCgAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAC [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRoAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
+        "P6G0lvBAXt0AAAAAAAAAAAEAAAAAAAAABAAAAAIgAQABAAAAAAAAAEAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAABkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAAAAAAAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AACAfwAAgH8AAAAAAACAfwAAgH8AAIB/AACAfwAAgH8AAAAAAAAAAAAAAAAAAAAAAACAfwAAAAAAAAAAAACAfwNReRkAAAAAAAAAAAAAAAAAAIB/AAAAAAAAAAAAAIB/AAA [...]
       ], 
       "attrs": {"tvm_version": "0.8.dev0"}
     }
diff --git a/docs/_sources/tutorials/frontend/build_gcn.rst.txt b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
index e3fa277..9fcc7e5 100644
--- a/docs/_sources/tutorials/frontend/build_gcn.rst.txt
+++ b/docs/_sources/tutorials/frontend/build_gcn.rst.txt
@@ -71,8 +71,6 @@ This part reuses the code from the above example.
  .. code-block:: none
 
     Using backend: pytorch
-    /usr/local/lib/python3.6/dist-packages/dgl/base.py:45: DGLWarning: Detected an old version of PyTorch. Suggest using torch>=1.5.0 for the best experience.
-      return warnings.warn(message, category=category, stacklevel=1)
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
index 66e7387..5ce5e80 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_android.rst.txt
@@ -28,7 +28,7 @@ This is an example of using Relay to compile a keras model and deploy it on Andr
     from tvm import te
     import tvm.relay as relay
     from tvm import rpc
-    from tvm.contrib import util, ndk, graph_runtime as runtime
+    from tvm.contrib import utils, ndk, graph_runtime as runtime
     from tvm.contrib.download import download_testdata
 
 
@@ -333,7 +333,7 @@ to run this tutorial with a real device.
     # change the parameters but keep the result of model as the same.
 
     # Save the library at local temporary directory.
-    tmp = util.tempdir()
+    tmp = utils.tempdir()
     lib_fname = tmp.relpath("net.so")
     fcompile = ndk.create_shared if not local_demo else None
     lib.export_library(lib_fname, fcompile)
@@ -421,7 +421,7 @@ Execute on TVM
 
     TVM prediction top-1: tiger cat
     Evaluate inference time cost...
-    Mean inference time (std dev): 13.45 ms (0.10 ms)
+    Mean inference time (std dev): 3.76 ms (0.03 ms)
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt b/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
index d5cf3d9..5344fb9 100644
--- a/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_model_on_rasp.rst.txt
@@ -24,7 +24,7 @@ it on Raspberry Pi.
     from tvm import te
     import tvm.relay as relay
     from tvm import rpc
-    from tvm.contrib import util, graph_runtime as runtime
+    from tvm.contrib import utils, graph_runtime as runtime
     from tvm.contrib.download import download_testdata
 
 
@@ -254,7 +254,7 @@ to run this tutorial with a real device.
     # change the parameters but keep the result of model as the same.
 
     # Save the library at local temporary directory.
-    tmp = util.tempdir()
+    tmp = utils.tempdir()
     lib_fname = tmp.relpath("net.tar")
     lib.export_library(lib_fname)
 
diff --git a/docs/_sources/tutorials/frontend/deploy_object_detection_pytorch.rst.txt b/docs/_sources/tutorials/frontend/deploy_object_detection_pytorch.rst.txt
index 07b6392..a5dd162 100644
--- a/docs/_sources/tutorials/frontend/deploy_object_detection_pytorch.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_object_detection_pytorch.rst.txt
@@ -19,8 +19,8 @@ A quick solution is to install via pip
 
 .. code-block:: bash
 
-    pip install torch==1.4.0
-    pip install torchvision==0.5.0
+    pip install torch==1.7.0
+    pip install torchvision==0.8.1
 
 or please refer to official site
 https://pytorch.org/get-started/locally/
@@ -28,7 +28,7 @@ https://pytorch.org/get-started/locally/
 PyTorch versions should be backwards compatible but should be used
 with the proper TorchVision version.
 
-Currently, TVM supports PyTorch 1.4 and 1.3. Other versions may
+Currently, TVM supports PyTorch 1.7 and 1.4. Other versions may
 be unstable.
 
 
@@ -107,9 +107,19 @@ Load pre-trained maskrcnn from torchvision and do tracing
 
  .. code-block:: none
 
-    /usr/local/lib/python3.6/dist-packages/torch/tensor.py:461: RuntimeWarning: Iterating over a tensor might cause the trace to be incorrect. Passing a tensor of different shape won't change the number of iterations executed (and might lead to errors or silently give incorrect results).
+    /usr/local/lib/python3.6/dist-packages/torch/tensor.py:593: RuntimeWarning: Iterating over a tensor might cause the trace to be incorrect. Passing a tensor of different shape won't change the number of iterations executed (and might lead to errors or silently give incorrect results).
       'incorrect results).', category=RuntimeWarning)
-    /usr/local/lib/python3.6/dist-packages/torchvision/models/detection/roi_heads.py:392: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
+    /usr/local/lib/python3.6/dist-packages/torch/nn/functional.py:3123: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
+      dtype=torch.float32)).float())) for i in range(dim)]
+    /usr/local/lib/python3.6/dist-packages/torchvision/models/detection/anchor_utils.py:147: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
+      torch.tensor(image_size[1] // g[1], dtype=torch.int64, device=device)] for g in grid_sizes]
+    /usr/local/lib/python3.6/dist-packages/torchvision/ops/boxes.py:128: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
+      boxes_x = torch.min(boxes_x, torch.tensor(width, dtype=boxes.dtype, device=boxes.device))
+    /usr/local/lib/python3.6/dist-packages/torchvision/ops/boxes.py:130: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
+      boxes_y = torch.min(boxes_y, torch.tensor(height, dtype=boxes.dtype, device=boxes.device))
+    /usr/local/lib/python3.6/dist-packages/torchvision/models/detection/transform.py:271: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
+      for s, s_orig in zip(new_size, original_size)
+    /usr/local/lib/python3.6/dist-packages/torchvision/models/detection/roi_heads.py:372: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
       return torch.tensor(M + 2 * padding).to(torch.float32) / torch.tensor(M).to(torch.float32)
 
 
@@ -237,7 +247,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  2.379 seconds)
+   **Total running time of the script:** ( 1 minutes  27.428 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_object_detection_pytorch.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
index 68633db..1192fe8 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized.rst.txt
@@ -14,7 +14,7 @@ Deploy a Framework-prequantized Model with TVM
 This is a tutorial on loading models quantized by deep learning frameworks into TVM.
 Pre-quantized model import is one of the quantization support we have in TVM. More details on
 the quantization story in TVM can be found
-`here <https://discuss.tvm.ai/t/quantization-story/3920>`_.
+`here <https://discuss.tvm.apache.org/t/quantization-story/3920>`_.
 
 Here, we demonstrate how to load and run models quantized by PyTorch, MXNet, and TFLite.
 Once loaded, we can run compiled, quantized models on any hardware TVM supports.
@@ -223,7 +223,9 @@ on the PyTorch website to learn about quantization and jit.
 
  .. code-block:: none
 
-    /usr/local/lib/python3.6/dist-packages/torch/quantization/observer.py:803: UserWarning: must run observer before calling calculate_qparams.                                    Returning default scale and zero point 
+    /usr/local/lib/python3.6/dist-packages/torch/quantization/observer.py:121: UserWarning: Please use quant_min and quant_max to specify the range for observers.                     reduce_range will be deprecated in a future release of PyTorch.
+      reduce_range will be deprecated in a future release of PyTorch."
+    /usr/local/lib/python3.6/dist-packages/torch/quantization/observer.py:990: UserWarning: must run observer before calling calculate_qparams.                                    Returning default scale and zero point 
       Returning default scale and zero point "
 
 
@@ -297,7 +299,7 @@ We should see identical labels printed.
 
  .. code-block:: none
 
-    PyTorch top3 labels: ['tiger cat', 'Egyptian cat', 'tabby, tabby cat']
+    PyTorch top3 labels: ['tiger cat', 'lynx, catamount', 'Egyptian cat']
     TVM top3 labels: ['tiger cat', 'Egyptian cat', 'tabby, tabby cat']
 
 
@@ -321,7 +323,7 @@ output values are identical out of 1000 outputs from mobilenet v2.
 
  .. code-block:: none
 
-    196 in 1000 raw floating outputs identical.
+    156 in 1000 raw floating outputs identical.
 
 
 
@@ -348,7 +350,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 19.40410308
+    Elapsed average ms: 12.12642622
 
 
 
diff --git a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
index a0ea3d5..e138cd3 100644
--- a/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_prequantized_tflite.rst.txt
@@ -368,7 +368,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
  .. code-block:: none
 
-    Elapsed average ms: 37.783540480000006
+    Elapsed average ms: 29.19852615
 
 
 
@@ -401,7 +401,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  39.708 seconds)
+   **Total running time of the script:** ( 1 minutes  58.844 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt b/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt
index 0fb5227..1a8a957 100644
--- a/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_quantized.rst.txt
@@ -14,7 +14,7 @@ Deploy a Quantized Model on Cuda
 This article is an introductory tutorial of automatic quantization with TVM.
 Automatic quantization is one of the quantization modes in TVM. More details on
 the quantization story in TVM can be found
-`here <https://discuss.tvm.ai/t/quantization-story/3920>`_.
+`here <https://discuss.tvm.apache.org/t/quantization-story/3920>`_.
 In this tutorial, we will import a GluonCV pre-trained model on ImageNet to
 Relay, quantize the Relay model and then perform the inference.
 
diff --git a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
index 297bce7..9bcad37 100644
--- a/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/tutorials/frontend/deploy_ssd_gluoncv.rst.txt
@@ -319,7 +319,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  59.058 seconds)
+   **Total running time of the script:** ( 1 minutes  12.579 seconds)
 
 
 .. _sphx_glr_download_tutorials_frontend_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/tutorials/frontend/from_keras.rst.txt b/docs/_sources/tutorials/frontend/from_keras.rst.txt
index 6cc6688..5ef27df 100644
--- a/docs/_sources/tutorials/frontend/from_keras.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_keras.rst.txt
@@ -49,13 +49,25 @@ We load a pretrained resnet-50 classification model provided by keras.
 
 .. code-block:: default
 
-    weights_url = "".join(
-        [
-            "https://github.com/fchollet/deep-learning-models/releases/",
-            "download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5",
-        ]
-    )
-    weights_file = "resnet50_weights.h5"
+
+    if tuple(keras.__version__.split(".")) < ("2", "4", "0"):
+        weights_url = "".join(
+            [
+                "https://github.com/fchollet/deep-learning-models/releases/",
+                "download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5",
+            ]
+        )
+        weights_file = "resnet50_keras_old.h5"
+    else:
+        weights_url = "".join(
+            [
+                " https://storage.googleapis.com/tensorflow/keras-applications/",
+                "resnet/resnet50_weights_tf_dim_ordering_tf_kernels.h5",
+            ]
+        )
+        weights_file = "resnet50_keras_new.h5"
+
+
     weights_path = download_testdata(weights_url, weights_file, module="keras")
     keras_resnet50 = keras.applications.resnet50.ResNet50(
         include_top=True, weights=None, input_shape=(224, 224, 3), classes=1000
@@ -72,7 +84,7 @@ We load a pretrained resnet-50 classification model provided by keras.
 
  .. code-block:: none
 
-    File /workspace/.tvm_test_data/keras/resnet50_weights.h5 exists, skip.
+    File /workspace/.tvm_test_data/keras/resnet50_keras_new.h5 exists, skip.
 
 
 
diff --git a/docs/_sources/tutorials/frontend/from_onnx.rst.txt b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
index 68071bf..1713699 100644
--- a/docs/_sources/tutorials/frontend/from_onnx.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_onnx.rst.txt
@@ -130,7 +130,7 @@ Compile the model with relay
 
  .. code-block:: none
 
-    /workspace/docs/../python/tvm/relay/frontend/onnx.py:2677: UserWarning: Mismatched attribute type in ' : kernel_shape'
+    /workspace/docs/../python/tvm/relay/frontend/onnx.py:2694: UserWarning: Mismatched attribute type in ' : kernel_shape'
 
     ==> Context: Bad node spec: input: "1" input: "2" output: "11" op_type: "Conv" attribute { name: "kernel_shape" ints: 5 ints: 5 } attribute { name: "strides" ints: 1 ints: 1 } attribute { name: "pads" ints: 2 ints: 2 ints: 2 ints: 2 } attribute { name: "dilations" ints: 1 ints: 1 } attribute { name: "group" i: 1 }
       warnings.warn(str(e))
@@ -156,7 +156,7 @@ Execute on TVM
 
  .. code-block:: none
 
-
    ...47%, 0.01 MB, 193 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 322 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 482 KB/s, 0 seconds passed
+
    ...47%, 0.01 MB, 43 KB/s, 0 seconds passed
    ...94%, 0.02 MB, 86 KB/s, 0 seconds passed
    ...100%, 0.02 MB, 130 KB/s, 0 seconds passed
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 32, 224, 224), 'float32'), ('TENSOR', (9, 32, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 64, 224, 224), 'float32'), ('TENSOR', (32, 64, 3, 3), 'float32'), (1, 1), (1, 1, 1, 1), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
     Cannot find config for target=llvm -keys=cpu, workload=('conv2d_NCHWc.x86', ('TENSOR', (1, 1, 224, 224), 'float32'), ('TENSOR', (64, 1, 5, 5), 'float32'), (1, 1), (2, 2, 2, 2), (1, 1), 'NCHW', 'NCHW', 'float32'). A fallback configuration is used, which may bring great performance regression.
@@ -197,7 +197,7 @@ By default, ONNX defines models in terms of dynamic shapes. The ONNX importer
 retains that dynamism upon import, and the compiler attemps to convert the model
 into a static shapes at compile time. If this fails, there may still be dynamic
 operations in the model. Not all TVM kernels currently support dynamic shapes,
-please file an issue on discuss.tvm.ai if you hit an error with dynamic kernels.
+please file an issue on discuss.tvm.apache.org if you hit an error with dynamic kernels.
 
 
 .. _sphx_glr_download_tutorials_frontend_from_onnx.py:
diff --git a/docs/_sources/tutorials/frontend/from_pytorch.rst.txt b/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
index 3cc217f..a559b95 100644
--- a/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_pytorch.rst.txt
@@ -20,8 +20,8 @@ A quick solution is to install via pip
 
 .. code-block:: bash
 
-    pip install torch==1.4.0
-    pip install torchvision==0.5.0
+    pip install torch==1.7.0
+    pip install torchvision==0.8.1
 
 or please refer to official site
 https://pytorch.org/get-started/locally/
@@ -29,7 +29,7 @@ https://pytorch.org/get-started/locally/
 PyTorch versions should be backwards compatible but should be used
 with the proper TorchVision version.
 
-Currently, TVM supports PyTorch 1.4 and 1.3. Other versions may
+Currently, TVM supports PyTorch 1.7 and 1.4. Other versions may
 be unstable.
 
 
diff --git a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
index ffaef7b..aabfc36 100644
--- a/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
+++ b/docs/_sources/tutorials/frontend/from_tensorflow.rst.txt
@@ -195,7 +195,7 @@ Results:
 
  .. code-block:: none
 
-    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:2852: UserWarning: Ignore the passed shape. Shape in graphdef will be used for operator DecodeJpeg/contents.
+    /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:2948: UserWarning: Ignore the passed shape. Shape in graphdef will be used for operator DecodeJpeg/contents.
       "will be used for operator %s." % node.name
     /workspace/docs/../python/tvm/relay/frontend/tensorflow.py:735: UserWarning: DecodeJpeg: It's a pass through, please handle preprocessing before input
       warnings.warn("DecodeJpeg: It's a pass through, please handle preprocessing before input")
diff --git a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
index b18101a..3143076 100644
--- a/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,24 +5,24 @@
 
 Computation times
 =================
-**11:00.624** total execution time for **tutorials_frontend** files:
+**07:35.363** total execution time for **tutorials_frontend** files:
 
-- **02:39.708**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **02:02.379**: :ref:`sphx_glr_tutorials_frontend_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
-- **01:59.058**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **00:41.527**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:38.026**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:29.540**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
-- **00:26.378**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
-- **00:24.076**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
-- **00:17.631**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
-- **00:15.814**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:14.872**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:12.388**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
-- **00:12.147**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
-- **00:11.251**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
-- **00:09.261**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
-- **00:03.152**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.919**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
-- **00:01.268**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
-- **00:00.228**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
+- **01:58.844**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **01:27.428**: :ref:`sphx_glr_tutorials_frontend_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
+- **01:12.579**: :ref:`sphx_glr_tutorials_frontend_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **00:25.217**: :ref:`sphx_glr_tutorials_frontend_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:22.474**: :ref:`sphx_glr_tutorials_frontend_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:20.137**: :ref:`sphx_glr_tutorials_frontend_deploy_quantized.py` (``deploy_quantized.py``)
+- **00:19.996**: :ref:`sphx_glr_tutorials_frontend_from_tflite.py` (``from_tflite.py``)
+- **00:18.257**: :ref:`sphx_glr_tutorials_frontend_from_darknet.py` (``from_darknet.py``)
+- **00:13.288**: :ref:`sphx_glr_tutorials_frontend_from_caffe2.py` (``from_caffe2.py``)
+- **00:11.599**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:10.068**: :ref:`sphx_glr_tutorials_frontend_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:09.004**: :ref:`sphx_glr_tutorials_frontend_from_pytorch.py` (``from_pytorch.py``)
+- **00:08.343**: :ref:`sphx_glr_tutorials_frontend_from_coreml.py` (``from_coreml.py``)
+- **00:06.834**: :ref:`sphx_glr_tutorials_frontend_from_keras.py` (``from_keras.py``)
+- **00:06.793**: :ref:`sphx_glr_tutorials_frontend_from_mxnet.py` (``from_mxnet.py``)
+- **00:01.893**: :ref:`sphx_glr_tutorials_frontend_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.550**: :ref:`sphx_glr_tutorials_frontend_from_onnx.py` (``from_onnx.py``)
+- **00:00.904**: :ref:`sphx_glr_tutorials_frontend_build_gcn.py` (``build_gcn.py``)
+- **00:00.154**: :ref:`sphx_glr_tutorials_frontend_deploy_sparse.py` (``deploy_sparse.py``)
diff --git a/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt
index 95eb5c9..4c72aa2 100644
--- a/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorials/get_started/cross_compilation_and_rpc.rst.txt
@@ -90,7 +90,7 @@ Here we will declare a simple kernel on the local machine:
     import tvm
     from tvm import te
     from tvm import rpc
-    from tvm.contrib import util
+    from tvm.contrib import utils
 
     n = tvm.runtime.convert(1024)
     A = te.placeholder((n,), name="A")
@@ -121,7 +121,7 @@ on our webpage building server. See the detailed note in the following block.
 
     func = tvm.build(s, [A, B], target=target, name="add_one")
     # save the lib at a local temp folder
-    temp = util.tempdir()
+    temp = utils.tempdir()
     path = temp.relpath("lib.tar")
     func.export_library(path)
 
@@ -235,7 +235,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.228e-07 secs/op
+    1.693e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt b/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt
index fed9962..9921c31 100644
--- a/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt
+++ b/docs/_sources/tutorials/get_started/relay_quick_start.rst.txt
@@ -224,7 +224,7 @@ in this example. Then the machine code will be generated as the module library.
 
  .. code-block:: none
 
-
    ...1%, 0.01 MB, 204 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 345 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 516 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 679 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 821 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 881 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 1013 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 1140 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 1280 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 1398 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 1535 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 1564 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 1677 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 1803 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 1910 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 2034 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 2129 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 2251 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 2355 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 2475 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 2563 K
 B/s, 0 seconds passed
    ...43%, 0.17 MB, 2680 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 2798 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 2884 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 2901 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 3013 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 3103 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 3213 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 3323 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 3433 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 3523 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 3579 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 3685 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 3792 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 3898 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 4004 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 4102 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 4207 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 4312 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 4376 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 4480 KB/s, 0 seconds pa
 ssed
    ...83%, 0.33 MB, 4583 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 4496 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 4594 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 4693 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 4769 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 4866 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 4939 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 5034 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 5130 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 5219 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 49 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 97 KB/s, 0 seconds passed
    ...5%, 0.02 MB, 146 KB/s, 0 seconds passed
    ...7%, 0.03 MB, 194 KB/s, 0 seconds passed
    ...9%, 0.04 MB, 242 KB/s, 0 seconds passed
    ...11%, 0.05 MB, 290 KB/s, 0 seconds passed
    ...13%, 0.05 MB, 338 KB/s, 0 seconds passed
    ...15%, 0.06 MB, 385 KB/s, 0 seconds passed
    ...17%, 0.07 MB, 432 KB/s, 0 seconds passed
    ...19%, 0.08 MB, 478 KB/s, 0 seconds passed
    ...21%, 0.09 MB, 525 KB/s, 0 seconds passed
    ...23%, 0.09 MB, 572 KB/s, 0 seconds passed
    ...25%, 0.10 MB, 618 KB/s, 0 seconds passed
    ...27%, 0.11 MB, 664 KB/s, 0 seconds passed
    ...29%, 0.12 MB, 711 KB/s, 0 seconds passed
    ...31%, 0.12 MB, 757 KB/s, 0 seconds passed
    ...33%, 0.13 MB, 803 KB/s, 0 seconds passed
    ...35%, 0.14 MB, 849 KB/s, 0 seconds passed
    ...37%, 0.15 MB, 896 KB/s, 0 seconds passed
    ...39%, 0.16 MB, 941 KB/s, 0 seconds passed
    ...41%, 0.16 MB, 986 KB/s, 0 seconds pa
 ssed
    ...43%, 0.17 MB, 1031 KB/s, 0 seconds passed
    ...45%, 0.18 MB, 1076 KB/s, 0 seconds passed
    ...47%, 0.19 MB, 1121 KB/s, 0 seconds passed
    ...49%, 0.20 MB, 1167 KB/s, 0 seconds passed
    ...51%, 0.20 MB, 1212 KB/s, 0 seconds passed
    ...53%, 0.21 MB, 1257 KB/s, 0 seconds passed
    ...55%, 0.22 MB, 1299 KB/s, 0 seconds passed
    ...57%, 0.23 MB, 1345 KB/s, 0 seconds passed
    ...59%, 0.23 MB, 1389 KB/s, 0 seconds passed
    ...61%, 0.24 MB, 1434 KB/s, 0 seconds passed
    ...63%, 0.25 MB, 1477 KB/s, 0 seconds passed
    ...65%, 0.26 MB, 1521 KB/s, 0 seconds passed
    ...67%, 0.27 MB, 1566 KB/s, 0 seconds passed
    ...69%, 0.27 MB, 1610 KB/s, 0 seconds passed
    ...71%, 0.28 MB, 1652 KB/s, 0 seconds passed
    ...73%, 0.29 MB, 1696 KB/s, 0 seconds passed
    ...75%, 0.30 MB, 1740 KB/s, 0 seconds passed
    ...77%, 0.30 MB, 1784 KB/s, 0 seconds passed
    ...79%, 0.31 MB, 1819 KB/s, 0 seconds passed
    ...81%, 0.32 MB, 1863 KB/s, 0 seconds passed
    ...83%, 
 0.33 MB, 1905 KB/s, 0 seconds passed
    ...85%, 0.34 MB, 1949 KB/s, 0 seconds passed
    ...87%, 0.34 MB, 1990 KB/s, 0 seconds passed
    ...89%, 0.35 MB, 2033 KB/s, 0 seconds passed
    ...91%, 0.36 MB, 2075 KB/s, 0 seconds passed
    ...93%, 0.37 MB, 2118 KB/s, 0 seconds passed
    ...95%, 0.38 MB, 2162 KB/s, 0 seconds passed
    ...97%, 0.38 MB, 2204 KB/s, 0 seconds passed
    ...99%, 0.39 MB, 2246 KB/s, 0 seconds passed
    ...100%, 0.40 MB, 2289 KB/s, 0 seconds passed
     Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024 -model=unknown -thread_warp_size=32, workload=('dense_small_batch.cuda', ('TENSOR', (1, 512), 'float32'), ('TENSOR', (1000, 512), 'float32'), None, 'float32'). A fallback configuration is used, which may bring great performance regression.
 
 
@@ -277,9 +277,9 @@ back in deploy environment.
 
 
     # save the graph, lib and params into separate files
-    from tvm.contrib import util
+    from tvm.contrib import utils
 
-    temp = util.tempdir()
+    temp = utils.tempdir()
     path_lib = temp.relpath("deploy_lib.tar")
     lib.export_library(path_lib)
     print(temp.listdir())
diff --git a/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt b/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt
index b4c987d..8c6a198 100644
--- a/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/get_started/sg_execution_times.rst.txt
@@ -5,9 +5,9 @@
 
 Computation times
 =================
-**00:17.001** total execution time for **tutorials_get_started** files:
+**00:13.258** total execution time for **tutorials_get_started** files:
 
-- **00:16.359**: :ref:`sphx_glr_tutorials_get_started_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:00.385**: :ref:`sphx_glr_tutorials_get_started_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:00.165**: :ref:`sphx_glr_tutorials_get_started_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
-- **00:00.091**: :ref:`sphx_glr_tutorials_get_started_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
+- **00:12.670**: :ref:`sphx_glr_tutorials_get_started_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:00.350**: :ref:`sphx_glr_tutorials_get_started_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:00.168**: :ref:`sphx_glr_tutorials_get_started_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:00.070**: :ref:`sphx_glr_tutorials_get_started_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
diff --git a/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt b/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt
index b155468..8673a9a 100644
--- a/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorials/get_started/tensor_expr_get_started.rst.txt
@@ -302,9 +302,9 @@ The following code first performs the following steps:
 .. code-block:: default
 
     from tvm.contrib import cc
-    from tvm.contrib import util
+    from tvm.contrib import utils
 
-    temp = util.tempdir()
+    temp = utils.tempdir()
     fadd.save(temp.relpath("myadd.o"))
     if tgt == "cuda":
         fadd.imported_modules[0].save(temp.relpath("myadd.ptx"))
@@ -325,7 +325,7 @@ The following code first performs the following steps:
 
  .. code-block:: none
 
-    ['myadd.tvm_meta.json', 'myadd.ptx', 'myadd.so', 'myadd.o']
+    ['myadd.tvm_meta.json', 'myadd.so', 'myadd.ptx', 'myadd.o']
 
 
 
diff --git a/docs/_sources/tutorials/index.rst.txt b/docs/_sources/tutorials/index.rst.txt
index c38f5cb..db08b97 100644
--- a/docs/_sources/tutorials/index.rst.txt
+++ b/docs/_sources/tutorials/index.rst.txt
@@ -196,13 +196,13 @@ Compile Deep Learning Models
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="This article is an introductory tutorial to deploy keras models with Relay.">
+    <div class="sphx-glr-thumbcontainer" tooltip="For us to begin with, PyTorch should be installed. TorchVision is also required since we will b...">
 
 .. only:: html
 
-    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_from_keras_thumb.png
+    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_deploy_object_detection_pytorch_thumb.png
 
-        :ref:`sphx_glr_tutorials_frontend_from_keras.py`
+        :ref:`sphx_glr_tutorials_frontend_deploy_object_detection_pytorch.py`
 
 .. raw:: html
 
@@ -212,17 +212,17 @@ Compile Deep Learning Models
 .. toctree::
    :hidden:
 
-   /tutorials/frontend/from_keras
+   /tutorials/frontend/deploy_object_detection_pytorch
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="For us to begin with, PyTorch should be installed. TorchVision is also required since we will b...">
+    <div class="sphx-glr-thumbcontainer" tooltip="This article is an introductory tutorial to deploy keras models with Relay.">
 
 .. only:: html
 
-    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_deploy_object_detection_pytorch_thumb.png
+    .. figure:: /tutorials/frontend/images/thumb/sphx_glr_from_keras_thumb.png
 
-        :ref:`sphx_glr_tutorials_frontend_deploy_object_detection_pytorch.py`
+        :ref:`sphx_glr_tutorials_frontend_from_keras.py`
 
 .. raw:: html
 
@@ -232,7 +232,7 @@ Compile Deep Learning Models
 .. toctree::
    :hidden:
 
-   /tutorials/frontend/deploy_object_detection_pytorch
+   /tutorials/frontend/from_keras
 
 .. raw:: html
 
@@ -834,7 +834,7 @@ AutoTVM : Template-based Auto Tuning
 
 .. raw:: html
 
-    <div class="sphx-glr-thumbcontainer" tooltip="This is a tutorial about how to tune convolution neural network for x86 CPU. ">
+    <div class="sphx-glr-thumbcontainer" tooltip="This is a tutorial about how to tune convolution neural network for x86 CPU.">
 
 .. only:: html
 
diff --git a/docs/_sources/tutorials/language/reduction.rst.txt b/docs/_sources/tutorials/language/reduction.rst.txt
index c3475ee..93fd475 100644
--- a/docs/_sources/tutorials/language/reduction.rst.txt
+++ b/docs/_sources/tutorials/language/reduction.rst.txt
@@ -530,8 +530,8 @@ Here is an example for 2D convolution with filter size = [3, 3] and strides = [1
     #[version = "0.0.5"]
     primfn(Input_1: handle, Filter_1: handle, Output_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {Output: Buffer(Output_2: Pointer(float32), float32, [(n: int32 - 2), (n - 2)], []),
-                 Filter: Buffer(Filter_2: Pointer(float32), float32, [3, 3], []),
+      buffers = {Filter: Buffer(Filter_2: Pointer(float32), float32, [3, 3], []),
+                 Output: Buffer(Output_2: Pointer(float32), float32, [(n: int32 - 2), (n - 2)], []),
                  Input: Buffer(Input_2: Pointer(float32), float32, [n, n], [stride: int32, stride_1: int32], type="auto")}
       buffer_map = {Input_1: Input, Filter_1: Filter, Output_1: Output} {
       for (i: int32, 0, (n - 2)) {
diff --git a/docs/_sources/tutorials/language/schedule_primitives.rst.txt b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
index 5bae1bc..a3c696d 100644
--- a/docs/_sources/tutorials/language/schedule_primitives.rst.txt
+++ b/docs/_sources/tutorials/language/schedule_primitives.rst.txt
@@ -86,13 +86,13 @@ schedule computes tensor in a serial manner in a row-major order.
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 C: Buffer(C_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {C: Buffer(C_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 B: Buffer(B_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
                  A: Buffer(A_2: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          C_2[((i*stride_2) + (j*stride_3))] = ((float32*)A_2[((i*stride_4) + (j*stride_5))]*(float32*)B_2[((i*stride) + (j*stride_1))])
+          C_2[((i*stride) + (j*stride_1))] = ((float32*)A_2[((i*stride_4) + (j*stride_5))]*(float32*)B_2[((i*stride_2) + (j*stride_3))])
         }
       }
     }
@@ -824,15 +824,15 @@ compute_root
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: Pointer(float32), float32, [m: int32], [stride: int32], type="auto"),
-                 B: Buffer(B_2: Pointer(float32), float32, [m], [stride_1: int32], type="auto"),
+      buffers = {B: Buffer(B_2: Pointer(float32), float32, [m: int32], [stride: int32], type="auto"),
+                 C: Buffer(C_2: Pointer(float32), float32, [m], [stride_1: int32], type="auto"),
                  A: Buffer(A_2: Pointer(float32), float32, [m], [stride_2: int32], type="auto")}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       for (i: int32, 0, m) {
-        B_2[(i*stride_1)] = ((float32*)A_2[(i*stride_2)] + 1f32)
+        B_2[(i*stride)] = ((float32*)A_2[(i*stride_2)] + 1f32)
       }
       for (i_1: int32, 0, m) {
-        C_2[(i_1*stride)] = ((float32*)B_2[(i_1*stride_1)]*2f32)
+        C_2[(i_1*stride_1)] = ((float32*)B_2[(i_1*stride)]*2f32)
       }
     }
 
diff --git a/docs/_sources/tutorials/language/sg_execution_times.rst.txt b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
index dbc9f00..19016ee 100644
--- a/docs/_sources/tutorials/language/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/language/sg_execution_times.rst.txt
@@ -5,13 +5,13 @@
 
 Computation times
 =================
-**00:05.478** total execution time for **tutorials_language** files:
+**00:03.729** total execution time for **tutorials_language** files:
 
-- **00:02.057**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
-- **00:01.013**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
-- **00:00.723**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
-- **00:00.691**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
-- **00:00.310**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
-- **00:00.258**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.228**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
-- **00:00.198**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:01.371**: :ref:`sphx_glr_tutorials_language_intrin_math.py` (``intrin_math.py``)
+- **00:00.664**: :ref:`sphx_glr_tutorials_language_tensorize.py` (``tensorize.py``)
+- **00:00.492**: :ref:`sphx_glr_tutorials_language_reduction.py` (``reduction.py``)
+- **00:00.479**: :ref:`sphx_glr_tutorials_language_scan.py` (``scan.py``)
+- **00:00.223**: :ref:`sphx_glr_tutorials_language_extern_op.py` (``extern_op.py``)
+- **00:00.177**: :ref:`sphx_glr_tutorials_language_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.171**: :ref:`sphx_glr_tutorials_language_tedd.py` (``tedd.py``)
+- **00:00.151**: :ref:`sphx_glr_tutorials_language_tuple_inputs.py` (``tuple_inputs.py``)
diff --git a/docs/_sources/tutorials/language/tensorize.rst.txt b/docs/_sources/tutorials/language/tensorize.rst.txt
index c7e517d..08536d3 100644
--- a/docs/_sources/tutorials/language/tensorize.rst.txt
+++ b/docs/_sources/tutorials/language/tensorize.rst.txt
@@ -358,9 +358,9 @@ it is a naive implementation of GEMV, just for demonstration.
             return 0;
           }
         """
-        from tvm.contrib import util, clang
+        from tvm.contrib import utils, clang
 
-        temp = util.tempdir()
+        temp = utils.tempdir()
         ll_path = temp.relpath("temp.ll")
         # Create LLVM ir from c source code
         ll_code = clang.create_llvm(cc_code, output=ll_path)
@@ -400,8 +400,8 @@ The importing needs to happen before the tensorized GEMV being executed.
                  B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
                  A: Buffer(A_2: Pointer(float32), float32, [1024, 64], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmprxwasumt/input0.cc'
-    source_filename = "/tmp/tmprxwasumt/input0.cc"
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmp15t0ohtr/input0.cc'
+    source_filename = "/tmp/tmp15t0ohtr/input0.cc"
     target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
     target triple = "x86_64-pc-linux-gnu"
 
@@ -540,7 +540,7 @@ ensure our implementation is correct.
 
     func = tvm.build(s, [A, B, C], target="llvm", name="gemv")
 
-    from tvm.topi.util import get_const_tuple
+    from tvm.topi.utils import get_const_tuple
 
     dtype = A.dtype
     ctx = tvm.context("cpu", 0)
@@ -604,9 +604,9 @@ which defines the "update" computing strategy.
             return 0;
           }
         """
-        from tvm.contrib import util, clang
+        from tvm.contrib import utils, clang
 
-        temp = util.tempdir()
+        temp = utils.tempdir()
         ll_path = temp.relpath("temp.ll")
         # Create LLVM ir from c source code
         ll_code = clang.create_llvm(cc_code, output=ll_path)
diff --git a/docs/_sources/tutorials/language/tuple_inputs.rst.txt b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
index 3c407f6..254ff4e 100644
--- a/docs/_sources/tutorials/language/tuple_inputs.rst.txt
+++ b/docs/_sources/tutorials/language/tuple_inputs.rst.txt
@@ -65,15 +65,15 @@ together in the next schedule procedure.
     #[version = "0.0.5"]
     primfn(A0_1: handle, A1_1: handle, B.v0_1: handle, B.v1_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B.v1: Buffer(B.v1_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
-                 B.v0: Buffer(B.v0_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
+      buffers = {B.v0: Buffer(B.v0_2: Pointer(float32), float32, [m: int32, n: int32], [stride: int32, stride_1: int32], type="auto"),
+                 B.v1: Buffer(B.v1_2: Pointer(float32), float32, [m, n], [stride_2: int32, stride_3: int32], type="auto"),
                  A1: Buffer(A1_2: Pointer(float32), float32, [m, n], [stride_4: int32, stride_5: int32], type="auto"),
                  A0: Buffer(A0_2: Pointer(float32), float32, [m, n], [stride_6: int32, stride_7: int32], type="auto")}
       buffer_map = {A0_1: A0, A1_1: A1, B.v0_1: B.v0, B.v1_1: B.v1} {
       for (i: int32, 0, m) {
         for (j: int32, 0, n) {
-          B.v0_2[((i*stride_2) + (j*stride_3))] = ((float32*)A0_2[((i*stride_6) + (j*stride_7))] + 2f32)
-          B.v1_2[((i*stride) + (j*stride_1))] = ((float32*)A1_2[((i*stride_4) + (j*stride_5))]*3f32)
+          B.v0_2[((i*stride) + (j*stride_1))] = ((float32*)A0_2[((i*stride_6) + (j*stride_7))] + 2f32)
+          B.v1_2[((i*stride_2) + (j*stride_3))] = ((float32*)A1_2[((i*stride_4) + (j*stride_5))]*3f32)
         }
       }
     }
diff --git a/docs/_sources/tutorials/micro/micro_tflite.rst.txt b/docs/_sources/tutorials/micro/micro_tflite.rst.txt
index 7831b9a..17930ef 100644
--- a/docs/_sources/tutorials/micro/micro_tflite.rst.txt
+++ b/docs/_sources/tutorials/micro/micro_tflite.rst.txt
@@ -93,7 +93,7 @@ model with Relay.
     import tvm
     import tvm.micro as micro
     from tvm.contrib.download import download_testdata
-    from tvm.contrib import graph_runtime, util
+    from tvm.contrib import graph_runtime, utils
     from tvm import relay
 
     # %%
diff --git a/docs/_sources/tutorials/micro/sg_execution_times.rst.txt b/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
index df8810e..79960ec 100644
--- a/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/micro/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:08.216** total execution time for **tutorials_micro** files:
+**00:05.266** total execution time for **tutorials_micro** files:
 
-- **00:08.216**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
+- **00:05.266**: :ref:`sphx_glr_tutorials_micro_micro_tflite.py` (``micro_tflite.py``)
diff --git a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
index 6282de1..a6f2731 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_cuda.rst.txt
@@ -296,7 +296,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 46.914991 ms
+    Convolution: 19.662737 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
index 9004616..5c613d5 100644
--- a/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_conv_tensorcore.rst.txt
@@ -682,7 +682,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 13.392441 ms
+    conv2d with tensor core: 6.653226 ms
 
 
 
diff --git a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
index d888530..0a6b30f 100644
--- a/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
+++ b/docs/_sources/tutorials/optimize/opt_gemm.rst.txt
@@ -118,8 +118,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.007604
-    Baseline: 3.368604
+    Numpy running time: 0.006807
+    Baseline: 6.010087
 
 
 
@@ -235,7 +235,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.292741
+    Opt1: 0.122450
 
 
 
@@ -358,7 +358,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.330208
+    Opt2: 0.137888
 
 
 
@@ -476,7 +476,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.120003
+    Opt3: 0.060201
 
 
 
@@ -615,7 +615,7 @@ the corresponding value from the packed array.
 
  .. code-block:: none
 
-    Opt4: 0.106440
+    Opt4: 0.062000
 
 
 
@@ -754,7 +754,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.097885
+    Opt5: 0.060224
 
 
 
@@ -779,8 +779,8 @@ Here is the generated IR after blocking.
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], []),
-                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
+      buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
+                 B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], []),
                  A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [packedB: Pointer(float32)] "storage_scope" = "global";
@@ -899,7 +899,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.032098
+    Opt6: 0.016101
 
 
 
@@ -924,8 +924,8 @@ Here is the generated IR after parallelization.
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
-                 B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], []),
+      buffers = {B: Buffer(B_2: Pointer(float32), float32, [1024, 1024], []),
+                 C: Buffer(C_2: Pointer(float32), float32, [1024, 1024], []),
                  A: Buffer(A_2: Pointer(float32), float32, [1024, 1024], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [packedB: Pointer(float32)] "storage_scope" = "global";
diff --git a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
index 05d4376..92417c5 100644
--- a/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,9 +5,9 @@
 
 Computation times
 =================
-**00:27.712** total execution time for **tutorials_optimize** files:
+**00:27.475** total execution time for **tutorials_optimize** files:
 
-- **00:25.014**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
-- **00:01.347**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:01.115**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
-- **00:00.237**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
+- **00:25.643**: :ref:`sphx_glr_tutorials_optimize_opt_gemm.py` (``opt_gemm.py``)
+- **00:00.939**: :ref:`sphx_glr_tutorials_optimize_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:00.732**: :ref:`sphx_glr_tutorials_optimize_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:00.160**: :ref:`sphx_glr_tutorials_optimize_opt_matmul_auto_tensorcore.py` (``opt_matmul_auto_tensorcore.py``)
diff --git a/docs/_sources/tutorials/topi/intro_topi.rst.txt b/docs/_sources/tutorials/topi/intro_topi.rst.txt
index 6304e58..6c67009 100644
--- a/docs/_sources/tutorials/topi/intro_topi.rst.txt
+++ b/docs/_sources/tutorials/topi/intro_topi.rst.txt
@@ -387,7 +387,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0xcc2d32c0)), stage(b, placeholder(b, 0x1d2b75dd0)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(m [...]
+    [stage(a, placeholder(a, 0x637d7620)), stage(b, placeholder(b, 0x8368e360)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
 
 
 
diff --git a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
index 30700e0..050978e 100644
--- a/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorials/topi/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:00.794** total execution time for **tutorials_topi** files:
+**00:00.605** total execution time for **tutorials_topi** files:
 
-- **00:00.794**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
+- **00:00.605**: :ref:`sphx_glr_tutorials_topi_intro_topi.py` (``intro_topi.py``)
diff --git a/docs/_sources/vta/dev/hardware.rst.txt b/docs/_sources/vta/dev/hardware.rst.txt
index c8d5433..1e3c0ac 100644
--- a/docs/_sources/vta/dev/hardware.rst.txt
+++ b/docs/_sources/vta/dev/hardware.rst.txt
@@ -36,7 +36,7 @@ In addition the design adopts decoupled access-execute to hide memory access lat
 
 To a broader extent, VTA can serve as a template deep learning accelerator design for full stack optimization, exposing a generic tensor computation interface to the compiler stack.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/blogpost/vta_overview.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/blogpost/vta_overview.png
    :align: center
    :width: 80%
 
@@ -175,7 +175,7 @@ Finally, the ``STORE`` instructions are executed by the store module exclusively
 The fields of each instruction is described in the figure below.
 The meaning of each field will be further explained in the :ref:`vta-uarch` section.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/developer/vta_instructions.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/developer/vta_instructions.png
    :align: center
    :width: 100%
 
@@ -191,7 +191,7 @@ VTA relies on dependence FIFO queues between hardware modules to synchronize the
 The figure below shows how a given hardware module can execute concurrently from its producer and consumer modules in a dataflow fashion through the use of dependence FIFO queues, and single-reader/single-writer SRAM buffers.
 Each module is connected to its consumer and producer via read-after-write (RAW) and write-after-read (WAR) dependence queues.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/developer/dataflow.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/developer/dataflow.png
    :align: center
    :width: 100%
 
@@ -258,7 +258,7 @@ There are two types of compute micro-ops: ALU and GEMM operations.
 To minimize the footprint of micro-op kernels, while avoiding the need for control-flow instructions such as conditional jumps, the compute module executes micro-op sequences inside a two-level nested loop that computes the location of each tensor register location via an affine function.
 This compression approach helps reduce the micro-kernel instruction footprint, and applies to both matrix multiplication and 2D convolution, commonly found in neural network operators.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/developer/gemm_core.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/developer/gemm_core.png
    :align: center
    :width: 100%
 
@@ -269,7 +269,7 @@ This tensorization intrinsic is defined by the dimensions of the input, weight a
 Each data type can have a different integer precision: typically both weight and input types are low-precision (8-bits or less), while the accumulator tensor has a wider type to prevent overflows (32-bits).
 In order to keep the GEMM core busy, each of the input buffer, weight buffer, and register file have to expose sufficient read/write bandwidth.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/developer/alu_core.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/developer/alu_core.png
    :align: center
    :width: 100%
 
@@ -289,7 +289,7 @@ The micro-code in the context of tensor ALU computation only takes care of speci
 Load and Store Modules
 ~~~~~~~~~~~~~~~~~~~~~~
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/developer/2d_dma.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/developer/2d_dma.png
    :align: center
    :width: 100%
 
diff --git a/docs/_sources/vta/dev/index.rst.txt b/docs/_sources/vta/dev/index.rst.txt
index d95f6e2..2b71574 100644
--- a/docs/_sources/vta/dev/index.rst.txt
+++ b/docs/_sources/vta/dev/index.rst.txt
@@ -20,7 +20,7 @@ VTA Design and Developer Guide
 
 This developer guide details the complete VTA-TVM hardware-software stack.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/blogpost/vta_stack.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/blogpost/vta_stack.png
    :align: center
    :width: 60%
 
diff --git a/docs/_sources/vta/install.rst.txt b/docs/_sources/vta/install.rst.txt
index 4cd1ee9..bb5c1c9 100644
--- a/docs/_sources/vta/install.rst.txt
+++ b/docs/_sources/vta/install.rst.txt
@@ -202,7 +202,7 @@ This time again, we will run the 2D convolution testbench.
 Beforehand, we need to program the Pynq board FPGA with a VTA bitstream, and build the VTA runtime via RPC.
 The following ``test_program_rpc.py`` script will perform two operations:
 
-* FPGA programming, by downloading a pre-compiled bitstream from a `VTA bitstream repository <https://github.com/uwsaml/vta-distro>`_ that matches the default ``vta_config.json`` configuration set by the host, and sending it over to the Pynq via RPC to program the Pynq's FPGA.
+* FPGA programming, by downloading a pre-compiled bitstream from a `VTA bitstream repository <https://github.com/uwsampl/vta-distro>`_ that matches the default ``vta_config.json`` configuration set by the host, and sending it over to the Pynq via RPC to program the Pynq's FPGA.
 * Runtime building on the Pynq, which needs to be run every time the ``vta_config.json`` configuration is modified. This ensures that the VTA software runtime that generates the accelerator's executable via just-in-time (JIT) compilation matches the specifications of the VTA design that is programmed on the FPGA. The build process takes about 30 seconds to complete so be patient!
 
 .. code:: bash
diff --git a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
index c11758a..c050d28 100644
--- a/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:08.640** total execution time for **vta_tutorials_autotvm** files:
+**00:08.439** total execution time for **vta_tutorials_autotvm** files:
 
-- **00:08.640**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:08.439**: :ref:`sphx_glr_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
diff --git a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
index a3703a1..b8560b5 100644
--- a/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
+++ b/docs/_sources/vta/tutorials/autotvm/tune_relay_vta.rst.txt
@@ -56,7 +56,7 @@ Now return to python code. Import packages.
     import tvm
     from tvm import te
     from tvm import rpc, autotvm, relay
-    from tvm.contrib import graph_runtime, util, download
+    from tvm.contrib import graph_runtime, utils, download
     from tvm.autotvm.measure.measure_methods import request_remote
     from tvm.autotvm.tuner import XGBTuner, GATuner, RandomTuner, GridSearchTuner
 
@@ -459,7 +459,7 @@ Finally, we launch tuning jobs and evaluate the end-to-end performance.
 
             # Export library
             print("Upload...")
-            temp = util.tempdir()
+            temp = utils.tempdir()
             lib.save(temp.relpath("graphlib.o"))
             remote.upload(temp.relpath("graphlib.o"))
             lib = remote.load_module("graphlib.o")
@@ -497,7 +497,7 @@ Finally, we launch tuning jobs and evaluate the end-to-end performance.
  .. code-block:: none
 
     Extract tasks...
-
    ...1%, 0.01 MB, 23 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 46 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 69 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 92 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 115 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 136 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 158 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 180 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 203 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 225 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 244 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 266 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 288 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 311 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 332 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 353 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 376 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 398 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 419 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 441 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 462 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 484 KB/s, 0 seconds passed
    ...25%, 0.18 MB, 505 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 523 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 544 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 566 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 587 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 609 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 630 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 651 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 673 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 693 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 715 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 736 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 758 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 778 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 799 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 821 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 842 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 862 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 884 KB/s, 0 seconds passed
    ...45%, 0.33 MB, 905 KB/s, 0 secon
 ds passed
    ...46%, 0.34 MB, 926 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 947 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 968 KB/s, 0 seconds passed
    ...50%, 0.36 MB, 983 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 1002 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 1023 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 1044 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 1064 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 1085 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 1106 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 1127 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 1147 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 1167 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 1188 KB/s, 0 seconds passed
    ...62%, 0.45 MB, 1209 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 1230 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 1248 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 1269 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 1290 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 1309 KB/s, 0 seconds passed
    ...68%,
  0.49 MB, 1329 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 1349 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 1370 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 1391 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 1404 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 1424 KB/s, 0 seconds passed
    ...75%, 0.54 MB, 1445 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 1465 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 1485 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 1505 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 1526 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 1542 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 1562 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 1583 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 1603 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 1622 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 1643 KB/s, 0 seconds passed
    ...87%, 0.62 MB, 1663 KB/s, 0 seconds passed
    ...88%, 0.63 MB, 1684 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 1701 KB/s, 0 seconds passed
    ...90%, 0.65 MB, 1722 KB
 /s, 0 seconds passed
    ...91%, 0.66 MB, 1742 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 1762 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 1779 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 1800 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 1809 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 1829 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 1849 KB/s, 0 seconds passed
    ...99%, 0.71 MB, 1870 KB/s, 0 seconds passed
    ...100%, 0.72 MB, 1888 KB/s, 0 seconds passed
+
    ...1%, 0.01 MB, 46 KB/s, 0 seconds passed
    ...2%, 0.02 MB, 92 KB/s, 0 seconds passed
    ...3%, 0.02 MB, 139 KB/s, 0 seconds passed
    ...4%, 0.03 MB, 185 KB/s, 0 seconds passed
    ...5%, 0.04 MB, 231 KB/s, 0 seconds passed
    ...6%, 0.05 MB, 276 KB/s, 0 seconds passed
    ...7%, 0.05 MB, 321 KB/s, 0 seconds passed
    ...8%, 0.06 MB, 367 KB/s, 0 seconds passed
    ...9%, 0.07 MB, 411 KB/s, 0 seconds passed
    ...10%, 0.08 MB, 457 KB/s, 0 seconds passed
    ...11%, 0.09 MB, 501 KB/s, 0 seconds passed
    ...13%, 0.09 MB, 545 KB/s, 0 seconds passed
    ...14%, 0.10 MB, 590 KB/s, 0 seconds passed
    ...15%, 0.11 MB, 635 KB/s, 0 seconds passed
    ...16%, 0.12 MB, 678 KB/s, 0 seconds passed
    ...17%, 0.12 MB, 722 KB/s, 0 seconds passed
    ...18%, 0.13 MB, 767 KB/s, 0 seconds passed
    ...19%, 0.14 MB, 810 KB/s, 0 seconds passed
    ...20%, 0.15 MB, 854 KB/s, 0 seconds passed
    ...21%, 0.16 MB, 897 KB/s, 0 seconds passed
    ...22%, 0.16 MB, 942 KB/s, 0 seconds passed
 
    ...23%, 0.17 MB, 985 KB/s, 0 seconds passed
    ...24%, 0.18 MB, 1029 KB/s, 0 seconds passed
    ...26%, 0.19 MB, 1071 KB/s, 0 seconds passed
    ...27%, 0.20 MB, 1115 KB/s, 0 seconds passed
    ...28%, 0.20 MB, 1158 KB/s, 0 seconds passed
    ...29%, 0.21 MB, 1202 KB/s, 0 seconds passed
    ...30%, 0.22 MB, 1242 KB/s, 0 seconds passed
    ...31%, 0.23 MB, 1286 KB/s, 0 seconds passed
    ...32%, 0.23 MB, 1329 KB/s, 0 seconds passed
    ...33%, 0.24 MB, 1370 KB/s, 0 seconds passed
    ...34%, 0.25 MB, 1413 KB/s, 0 seconds passed
    ...35%, 0.26 MB, 1456 KB/s, 0 seconds passed
    ...36%, 0.27 MB, 1498 KB/s, 0 seconds passed
    ...38%, 0.27 MB, 1542 KB/s, 0 seconds passed
    ...39%, 0.28 MB, 1580 KB/s, 0 seconds passed
    ...40%, 0.29 MB, 1624 KB/s, 0 seconds passed
    ...41%, 0.30 MB, 1665 KB/s, 0 seconds passed
    ...42%, 0.30 MB, 1708 KB/s, 0 seconds passed
    ...43%, 0.31 MB, 1747 KB/s, 0 seconds passed
    ...44%, 0.32 MB, 1790 KB/s, 0 seconds passed
    ...45%, 0.33 
 MB, 1833 KB/s, 0 seconds passed
    ...46%, 0.34 MB, 1875 KB/s, 0 seconds passed
    ...47%, 0.34 MB, 1916 KB/s, 0 seconds passed
    ...48%, 0.35 MB, 1959 KB/s, 0 seconds passed
    ...49%, 0.36 MB, 1992 KB/s, 0 seconds passed
    ...51%, 0.37 MB, 2034 KB/s, 0 seconds passed
    ...52%, 0.38 MB, 2077 KB/s, 0 seconds passed
    ...53%, 0.38 MB, 2119 KB/s, 0 seconds passed
    ...54%, 0.39 MB, 2155 KB/s, 0 seconds passed
    ...55%, 0.40 MB, 2197 KB/s, 0 seconds passed
    ...56%, 0.41 MB, 2234 KB/s, 0 seconds passed
    ...57%, 0.41 MB, 2276 KB/s, 0 seconds passed
    ...58%, 0.42 MB, 2313 KB/s, 0 seconds passed
    ...59%, 0.43 MB, 2355 KB/s, 0 seconds passed
    ...60%, 0.44 MB, 2396 KB/s, 0 seconds passed
    ...61%, 0.45 MB, 2438 KB/s, 0 seconds passed
    ...63%, 0.45 MB, 2477 KB/s, 0 seconds passed
    ...64%, 0.46 MB, 2519 KB/s, 0 seconds passed
    ...65%, 0.47 MB, 2557 KB/s, 0 seconds passed
    ...66%, 0.48 MB, 2599 KB/s, 0 seconds passed
    ...67%, 0.48 MB, 2633 KB/s, 0 
 seconds passed
    ...68%, 0.49 MB, 2674 KB/s, 0 seconds passed
    ...69%, 0.50 MB, 2715 KB/s, 0 seconds passed
    ...70%, 0.51 MB, 2757 KB/s, 0 seconds passed
    ...71%, 0.52 MB, 2797 KB/s, 0 seconds passed
    ...72%, 0.52 MB, 2839 KB/s, 0 seconds passed
    ...73%, 0.53 MB, 2873 KB/s, 0 seconds passed
    ...74%, 0.54 MB, 2914 KB/s, 0 seconds passed
    ...76%, 0.55 MB, 2955 KB/s, 0 seconds passed
    ...77%, 0.55 MB, 2996 KB/s, 0 seconds passed
    ...78%, 0.56 MB, 3033 KB/s, 0 seconds passed
    ...79%, 0.57 MB, 3074 KB/s, 0 seconds passed
    ...80%, 0.58 MB, 3114 KB/s, 0 seconds passed
    ...81%, 0.59 MB, 3155 KB/s, 0 seconds passed
    ...82%, 0.59 MB, 3191 KB/s, 0 seconds passed
    ...83%, 0.60 MB, 3232 KB/s, 0 seconds passed
    ...84%, 0.61 MB, 3265 KB/s, 0 seconds passed
    ...85%, 0.62 MB, 3305 KB/s, 0 seconds passed
    ...86%, 0.62 MB, 3346 KB/s, 0 seconds passed
    ...87%, 0.63 MB, 3386 KB/s, 0 seconds passed
    ...89%, 0.64 MB, 3422 KB/s, 0 seconds passed
  
   ...90%, 0.65 MB, 3463 KB/s, 0 seconds passed
    ...91%, 0.66 MB, 3503 KB/s, 0 seconds passed
    ...92%, 0.66 MB, 3541 KB/s, 0 seconds passed
    ...93%, 0.67 MB, 3581 KB/s, 0 seconds passed
    ...94%, 0.68 MB, 3616 KB/s, 0 seconds passed
    ...95%, 0.69 MB, 3657 KB/s, 0 seconds passed
    ...96%, 0.70 MB, 3696 KB/s, 0 seconds passed
    ...97%, 0.70 MB, 3736 KB/s, 0 seconds passed
    ...98%, 0.71 MB, 3775 KB/s, 0 seconds passed
    ...99%, 0.72 MB, 3815 KB/s, 0 seconds passed
    ...100%, 0.73 MB, 3852 KB/s, 0 seconds passed
     Extracted 10 conv2d tasks:
     (1, 14, 14, 256, 512, 1, 1, 0, 0, 2, 2)
     (1, 28, 28, 128, 256, 1, 1, 0, 0, 2, 2)
@@ -565,7 +565,7 @@ It takes about 2 hours on a 16T CPU, and 6 Pynq boards.
      import logging
      logging.getLogger('autotvm').setLevel(logging.DEBUG)
 
-  Finally, always feel free to ask our community for help on https://discuss.tvm.ai
+  Finally, always feel free to ask our community for help on https://discuss.tvm.apache.org
 
 
 .. _sphx_glr_download_vta_tutorials_autotvm_tune_relay_vta.py:
diff --git a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
index a2f2ca5..addf991 100644
--- a/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -46,7 +46,7 @@ Now return to the python code. Import packages.
     import tvm
     from tvm import te
     from tvm import rpc, autotvm, relay
-    from tvm.contrib import graph_runtime, util, download
+    from tvm.contrib import graph_runtime, utils, download
     from tvm.contrib.debugger import debug_runtime
     from tvm.relay import transform
 
@@ -225,7 +225,7 @@ The compilation steps are:
         print(model + " inference graph built in {0:.2f}s!".format(build_time))
 
         # Send the inference library over to the remote RPC server
-        temp = util.tempdir()
+        temp = utils.tempdir()
         lib.export_library(temp.relpath("graphlib.tar"))
         remote.upload(temp.relpath("graphlib.tar"))
         lib = remote.load_module("graphlib.tar")
@@ -243,8 +243,8 @@ The compilation steps are:
 
  .. code-block:: none
 
-
    ...12%, 0.01 MB, 39 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 77 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 115 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 153 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 191 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 223 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 260 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 296 KB/s, 0 seconds passed
-    resnet18_v1 inference graph built in 9.23s!
+
    ...12%, 0.01 MB, 35 KB/s, 0 seconds passed
    ...25%, 0.02 MB, 71 KB/s, 0 seconds passed
    ...38%, 0.02 MB, 107 KB/s, 0 seconds passed
    ...51%, 0.03 MB, 142 KB/s, 0 seconds passed
    ...64%, 0.04 MB, 177 KB/s, 0 seconds passed
    ...77%, 0.05 MB, 213 KB/s, 0 seconds passed
    ...89%, 0.05 MB, 247 KB/s, 0 seconds passed
    ...100%, 0.06 MB, 282 KB/s, 0 seconds passed
+    resnet18_v1 inference graph built in 6.93s!
 
 
 
diff --git a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
index 93a81a2..d9f4c8e 100644
--- a/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,6 +5,6 @@
 
 Computation times
 =================
-**00:30.995** total execution time for **vta_tutorials_frontend** files:
+**00:28.958** total execution time for **vta_tutorials_frontend** files:
 
-- **00:30.995**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:28.958**: :ref:`sphx_glr_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
diff --git a/docs/_sources/vta/tutorials/matrix_multiply.rst.txt b/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
index 7ed981c..27afcbd 100644
--- a/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
+++ b/docs/_sources/vta/tutorials/matrix_multiply.rst.txt
@@ -34,7 +34,7 @@ as we did in the VTA introductory tutorial.
     import vta
     import numpy as np
     from tvm import rpc
-    from tvm.contrib import util
+    from tvm.contrib import utils
     from vta.testing import simulator
 
     # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
@@ -85,7 +85,7 @@ Third, we describe the matrix multiplication computation over
 The last operation is a cast and copy back to DRAM, into results tensor
 :code:`C`.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/gemm_dataflow.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/gemm_dataflow.png
      :align: center
 
 Data Layout
@@ -104,7 +104,7 @@ format to match the data layout requirements imposed by the VTA tensor core.
   adding the result matrix to an accumulator matrix, as shown in the
   figure below.
 
-  .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/tensor_core.png
+  .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/tensor_core.png
        :align: center
        :width: 480px
 
@@ -123,7 +123,7 @@ format to match the data layout requirements imposed by the VTA tensor core.
   contiguous.
   The resulting tiled tensor has a shape of (2, 4, 2, 2).
 
-  .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/data_tiling.png
+  .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/data_tiling.png
        :align: center
        :width: 480px
 
@@ -594,8 +594,8 @@ by the VTA runtime JIT compiler.
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {C: Buffer(C_2: Pointer(int8), int8, [1, 16, 1, 16], []),
-                 B: Buffer(B_2: Pointer(int8), int8, [16, 16, 16, 16], []),
+      buffers = {B: Buffer(B_2: Pointer(int8), int8, [16, 16, 16, 16], []),
+                 C: Buffer(C_2: Pointer(int8), int8, [1, 16, 1, 16], []),
                  A: Buffer(A_2: Pointer(int8), int8, [1, 16, 1, 16], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [C_buf: Pointer(int32)] "storage_scope" = "local.acc_buffer";
@@ -683,7 +683,7 @@ into a TVM function.
     my_gemm = vta.build(s, [A, B, C], "ext_dev", env.target_host, name="my_gemm")
 
     # Write the compiled module into an object file.
-    temp = util.tempdir()
+    temp = utils.tempdir()
     my_gemm.save(temp.relpath("gemm.o"))
 
     # Send the executable over RPC
diff --git a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
index 63dabae..96b2fb0 100644
--- a/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/convolution_opt.rst.txt
@@ -39,7 +39,7 @@ We start by programming the Pynq's FPGA and building its RPC runtime.
     import numpy as np
 
     from tvm import rpc
-    from tvm.contrib import util
+    from tvm.contrib import utils
     from vta.testing import simulator
 
     # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
@@ -92,7 +92,7 @@ shifting and clipping to the output in order to mimic a fixed-point
 convolution followed by a rectified linear activation.
 We describe the TVM dataflow graph of the 2D convolution layer below:
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/conv2d_dataflow.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/conv2d_dataflow.png
      :align: center
 
 This computation is intentionally too large to fit onto VTA's on-chip
@@ -119,7 +119,7 @@ manageable chunks.
   loaded from DRAM into VTA's SRAM, following a 2D strided and padded memory
   read.
 
-  .. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/padding.png
+  .. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/padding.png
        :align: center
        :width: 480px
 
@@ -446,7 +446,7 @@ threads split along the output channel axis.
 We show how work is split when computing the 2D convolution in the figure
 below.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/virtual_threading.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/virtual_threading.png
      :align: center
      :width: 480px
 
@@ -690,8 +690,8 @@ and mapping the shift, and clipping computation to the vector ALU.
     #[version = "0.0.5"]
     primfn(data_1: handle, kernel_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {kernel: Buffer(kernel_2: Pointer(int8), int8, [16, 16, 3, 3, 16, 16], []),
-                 res: Buffer(res_2: Pointer(int8), int8, [1, 16, 14, 14, 1, 16], []),
+      buffers = {res: Buffer(res_2: Pointer(int8), int8, [1, 16, 14, 14, 1, 16], []),
+                 kernel: Buffer(kernel_2: Pointer(int8), int8, [16, 16, 3, 3, 16, 16], []),
                  data: Buffer(data_2: Pointer(int8), int8, [1, 16, 14, 14, 1, 16], [])}
       buffer_map = {data_1: data, kernel_1: kernel, res_1: res} {
       attr [res_conv: Pointer(int32)] "storage_scope" = "local.acc_buffer";
@@ -838,7 +838,7 @@ ensure correctness.
 
     # Compile the TVM module
     my_conv = vta.build(s, [data, kernel, res], "ext_dev", env.target_host, name="my_conv")
-    temp = util.tempdir()
+    temp = utils.tempdir()
     my_conv.save(temp.relpath("conv2d.o"))
     remote.upload(temp.relpath("conv2d.o"))
     f = remote.load_module("conv2d.o")
diff --git a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
index a563aa4..ddc15e8 100644
--- a/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/matrix_multiply_opt.rst.txt
@@ -37,7 +37,7 @@ We start by programming the Pynq's FPGA and building its RPC runtime.
     import vta
     import numpy as np
     from tvm import rpc
-    from tvm.contrib import util
+    from tvm.contrib import utils
     from vta.testing import simulator
 
     # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file
@@ -87,7 +87,7 @@ shifting and clipping to the output in order to mimic a fixed-point
 matrix multiplication followed by a rectified linear activation.
 We describe the TVM dataflow graph of the fully connected layer below:
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/fc_dataflow.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/fc_dataflow.png
      :align: center
 
 This computation is intentionally too large to fit onto VTA's on-chip
@@ -296,7 +296,7 @@ TVM to pattern-match tensorization.
 We show the outcome of blocking on the computation schedule in the diagram
 below:
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/blocking.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/blocking.png
      :align: center
      :width: 480px
 
@@ -381,8 +381,8 @@ below:
     #[version = "0.0.5"]
     primfn(data_1: handle, weight_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {weight: Buffer(weight_2: Pointer(int8), int8, [64, 64, 16, 16], []),
-                 res: Buffer(res_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+      buffers = {res: Buffer(res_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+                 weight: Buffer(weight_2: Pointer(int8), int8, [64, 64, 16, 16], []),
                  data: Buffer(data_2: Pointer(int8), int8, [1, 64, 1, 16], [])}
       buffer_map = {data_1: data, weight_1: weight, res_1: res} {
       attr [data_buf: Pointer(int8)] "storage_scope" = "global";
@@ -553,8 +553,8 @@ and mapping the shift, and clipping computation to the vector ALU.
     #[version = "0.0.5"]
     primfn(data_1: handle, weight_1: handle, res_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {weight: Buffer(weight_2: Pointer(int8), int8, [64, 64, 16, 16], []),
-                 res: Buffer(res_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+      buffers = {res: Buffer(res_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+                 weight: Buffer(weight_2: Pointer(int8), int8, [64, 64, 16, 16], []),
                  data: Buffer(data_2: Pointer(int8), int8, [1, 64, 1, 16], [])}
       buffer_map = {data_1: data, weight_1: weight, res_1: res} {
       attr [res_gem: Pointer(int32)] "storage_scope" = "local.acc_buffer";
@@ -667,7 +667,7 @@ ensure correctness.
 
     # Compile the TVM module
     my_gemm = vta.build(s, [data, weight, res], "ext_dev", env.target_host, name="my_gemm")
-    temp = util.tempdir()
+    temp = utils.tempdir()
     my_gemm.save(temp.relpath("gemm.o"))
     remote.upload(temp.relpath("gemm.o"))
     f = remote.load_module("gemm.o")
diff --git a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
index 7148875..cdcb6a0 100644
--- a/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:04.160** total execution time for **vta_tutorials_optimize** files:
+**00:03.930** total execution time for **vta_tutorials_optimize** files:
 
-- **00:03.485**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.675**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:03.263**: :ref:`sphx_glr_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.667**: :ref:`sphx_glr_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
diff --git a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
index 9e46d60..1d044af 100644
--- a/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/vta/tutorials/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:01.238** total execution time for **vta_tutorials** files:
+**00:00.819** total execution time for **vta_tutorials** files:
 
-- **00:00.619**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.619**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.413**: :ref:`sphx_glr_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.406**: :ref:`sphx_glr_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/_sources/vta/tutorials/vta_get_started.rst.txt b/docs/_sources/vta/tutorials/vta_get_started.rst.txt
index e9a74b9..af21ce8 100644
--- a/docs/_sources/vta/tutorials/vta_get_started.rst.txt
+++ b/docs/_sources/vta/tutorials/vta_get_started.rst.txt
@@ -80,7 +80,7 @@ the board with a VTA bitstream.
 
     # We'll need the TVM RPC module and the VTA simulator module
     from tvm import rpc
-    from tvm.contrib import util
+    from tvm.contrib import utils
     from vta.testing import simulator
 
     # We read the Pynq RPC host IP address and port number from the OS environment
@@ -133,7 +133,7 @@ add :code:`A_buf` to :code:`B_buf` to produce :code:`C_buf`.
 The last operation is a cast and copy back to DRAM, into results tensor
 :code:`C`.
 
-.. image:: https://raw.githubusercontent.com/uwsaml/web-data/main/vta/tutorial/vadd_dataflow.png
+.. image:: https://raw.githubusercontent.com/uwsampl/web-data/main/vta/tutorial/vadd_dataflow.png
      :align: center
 
 Input Placeholders
@@ -301,8 +301,8 @@ After we construct the schedule, by default the schedule computes
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: Pointer(int32), int32, [1, 64, 1, 16], []),
-                 C: Buffer(C_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+      buffers = {C: Buffer(C_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+                 B: Buffer(B_2: Pointer(int32), int32, [1, 64, 1, 16], []),
                  A: Buffer(A_2: Pointer(int32), int32, [1, 64, 1, 16], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [A_buf: Pointer(int32)] "storage_scope" = "global";
@@ -453,8 +453,8 @@ with an :code:`env.alu` pragma.
     #[version = "0.0.5"]
     primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"global_symbol": "main", "tir.noalias": True}
-      buffers = {B: Buffer(B_2: Pointer(int32), int32, [1, 64, 1, 16], []),
-                 C: Buffer(C_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+      buffers = {C: Buffer(C_2: Pointer(int8), int8, [1, 64, 1, 16], []),
+                 B: Buffer(B_2: Pointer(int32), int32, [1, 64, 1, 16], []),
                  A: Buffer(A_2: Pointer(int32), int32, [1, 64, 1, 16], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
       attr [A_buf: Pointer(int32)] "storage_scope" = "local.acc_buffer" {
@@ -547,7 +547,7 @@ execution.
 
 
     # Write the compiled module into an object file.
-    temp = util.tempdir()
+    temp = utils.tempdir()
     my_vadd.save(temp.relpath("vadd.o"))
 
     # Send the executable over RPC
diff --git a/docs/_static/css/gallery.css b/docs/_static/css/gallery.css
new file mode 100644
index 0000000..91f489d
--- /dev/null
+++ b/docs/_static/css/gallery.css
@@ -0,0 +1,192 @@
+/*
+Sphinx-Gallery has compatible CSS to fix default sphinx themes
+Tested for Sphinx 1.3.1 for all themes: default, alabaster, sphinxdoc,
+scrolls, agogo, traditional, nature, haiku, pyramid
+Tested for Read the Docs theme 0.1.7 */
+.sphx-glr-thumbcontainer {
+    background: #fff;
+    box-shadow: none;
+    float: left;
+    margin: 12px;
+    min-height: 310px;
+    padding-top: 5px;
+    position: relative;
+    background: url(../img/pattern.svg) no-repeat bottom, #005077;
+    transition:0.1s all;
+    background-size: cover;
+    transform:scale(1);
+}
+@media (min-width:1025px){ 
+  .sphx-glr-thumbcontainer:hover {
+    transform:scale(1.05);
+    box-shadow: 0px 20px 32px rgba(3, 109, 162, 0.15);
+  }
+}
+  .sphx-glr-thumbcontainer a.internal {
+    bottom: 0;
+    display: flex;
+    align-items: flex-end;
+    left: 0;
+    padding: 0 25px 30px;
+    position: absolute;
+    text-decoration: none;
+    right: 0;
+    top: 0;
+    font-size:16px;
+    color:#ffffff;
+    font-style: normal;
+  }
+  /* Next one is to avoid Sphinx traditional theme to cover all the
+  thumbnail with its default link Background color */
+  .sphx-glr-thumbcontainer a.internal:hover {
+    background-color: transparent;
+  }
+  
+  .sphx-glr-thumbcontainer p {
+    margin: 0 0 .1em 0;
+  }
+  .sphx-glr-thumbcontainer .figure {
+    margin: 10px;
+    width: 235px;
+  }
+  .sphx-glr-thumbcontainer img {
+    /* display: inline; */
+    max-height: 160px;
+    width: 160px;
+    display:none;
+  }
+  /* .sphx-glr-thumbcontainer[tooltip]:hover:after {
+    background: rgba(0, 0, 0, 0.8);
+    -webkit-border-radius: 5px;
+    -moz-border-radius: 5px;
+    border-radius: 5px;
+    color: #fff;
+    content: attr(tooltip);
+    left: 95%;
+    padding: 5px 15px;
+    position: absolute;
+    z-index: 98;
+    width: 220px;
+    bottom: 52%;
+  }
+  .sphx-glr-thumbcontainer[tooltip]:hover:before {
+    border: solid;
+    border-color: #333 transparent;
+    border-width: 18px 0 0 20px;
+    bottom: 58%;
+    content: '';
+    left: 85%;
+    position: absolute;
+    z-index: 99;
+  } */
+  
+  .highlight-pytb pre {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+    margin-top: 10px;
+    padding: 7px;
+  }
+  
+  .sphx-glr-script-out {
+    color: #888;
+    margin: 0;
+  }
+  p.sphx-glr-script-out {
+      padding-top: 0.7em;
+  }
+  .sphx-glr-script-out .highlight {
+    background-color: transparent;
+    margin-left: 2.5em;
+    margin-top: -2.1em;
+  }
+  .sphx-glr-script-out .highlight pre {
+    background-color: #fafae2;
+    border: 0;
+    max-height: 30em;
+    overflow: auto;
+    padding-left: 1ex;
+    margin: 0px;
+    word-break: break-word;
+  }
+  .sphx-glr-script-out + p {
+    margin-top: 1.8em;
+  }
+  blockquote.sphx-glr-script-out {
+    margin-left: 0pt;
+  }
+  
+  div.sphx-glr-footer {
+      text-align: center;
+  }
+  
+  div.binder-badge {
+    margin: 1em auto;
+    vertical-align: middle;
+  }
+  
+  div.sphx-glr-download {
+    margin: 1em auto;
+    vertical-align: middle;
+  }
+  
+  div.sphx-glr-download a {
+    background-color: #ffc;
+    background-image: linear-gradient(to bottom, #FFC, #d5d57e);
+    border-radius: 4px;
+    border: 1px solid #c2c22d;
+    color: #000;
+    display: inline-block;
+    font-weight: bold;
+    padding: 1ex;
+    text-align: center;
+  }
+  
+  
+  div.sphx-glr-download a:hover {
+    box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25);
+    text-decoration: none;
+    background-image: none;
+    background-color: #d5d57e;
+  }
+  
+  .sphx-glr-example-title > :target::before {
+    display: block;
+    content: "";
+    margin-top: -50px;
+    height: 50px;
+    visibility: hidden;
+  }
+  
+  ul.sphx-glr-horizontal {
+    list-style: none;
+    padding: 0;
+  }
+  ul.sphx-glr-horizontal li {
+    display: inline;
+  }
+  ul.sphx-glr-horizontal img {
+    height: auto !important;
+  }
+  
+  .sphx-glr-single-img {
+    margin: auto;
+    display: block;
+    max-width: 100%;
+  }
+  
+  .sphx-glr-multi-img {
+    max-width: 42%;
+    height: auto;
+  }
+  
+  p.sphx-glr-signature a.reference.external {
+    -moz-border-radius: 5px;
+    -webkit-border-radius: 5px;
+    border-radius: 5px;
+    padding: 3px;
+    font-size: 75%;
+    text-align: right;
+    margin-left: auto;
+    display: table;
+  }
+  
\ No newline at end of file
diff --git a/docs/_static/css/tlcpack_theme.css b/docs/_static/css/tlcpack_theme.css
new file mode 100644
index 0000000..f15293d
--- /dev/null
+++ b/docs/_static/css/tlcpack_theme.css
@@ -0,0 +1,1054 @@
+@charset "UTF-8";
+@import url("https://fonts.googleapis.com/css2?family=PT+Sans+Caption:wght@400;700&display=swap");
+@import url("https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&display=swap");
+@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,700&display=swap");
+@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600;700&display=swap");
+/** Theme Defualt Color **/
+/* Media Quires */
+*, :after, :before {
+  box-sizing: border-box;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+body {
+  margin: 0;
+  font-family: "PT Sans", sans-serif;
+  font-weight: 400;
+  font-size: 16px;
+  line-height: 24px;
+  background: #ffffff;
+}
+body.scroll-hide {
+  overflow: hidden;
+}
+
+p {
+  font-size: 14px;
+  line-height: 25px;
+  color: #3c3c3c;
+  margin-bottom: 15px;
+  font-family: "PT Sans", sans-serif;
+  font-weight: 400;
+}
+p a {
+  color: #0379b6;
+}
+p a:visited {
+  color: #0379b6;
+}
+
+hr {
+  margin: 19px 0;
+}
+
+a:visited {
+  color: #0379b6;
+}
+
+h1, h2, h3 {
+  font-family: "PT Sans Caption", sans-serif;
+  font-weight: 700;
+  margin-bottom: 15px;
+}
+@media only screen and (max-width : 991px) {
+  h1 a.headerlink, h2 a.headerlink, h3 a.headerlink {
+    display: none !important;
+  }
+}
+
+h1 {
+  font-size: 30px;
+  line-height: 30px;
+  color: #3c3c3c;
+}
+
+h2 {
+  font-size: 25px;
+  line-height: 30px;
+  color: #303030;
+}
+
+h3 {
+  font-size: 20px;
+  line-height: 25px;
+  color: #3a3a3a;
+}
+
+.dropdown-menu {
+  background: #ffffff;
+  border-radius: 0px;
+  padding: 9px 8px;
+  max-width: 158px;
+  width: 100%;
+  min-width: 158px;
+  margin-top: 12px;
+  border: 0px;
+  left: 15px !important;
+  box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
+}
+.dropdown-menu::after {
+  content: "";
+  position: absolute;
+  top: -5px;
+  right: 15px;
+  border-radius: 3px;
+  width: 12px;
+  height: 12px;
+  background: #ffffff;
+  transform: rotate(45deg);
+}
+.dropdown-menu ul {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+.dropdown-menu ul li {
+  padding: 5px 0;
+  border-bottom: 1px solid rgba(37, 45, 90, 0.2);
+}
+.dropdown-menu ul li:first-child {
+  padding-top: 0px;
+}
+.dropdown-menu ul li:last-child {
+  border-bottom: 0px;
+  padding-bottom: 0px;
+}
+.dropdown-menu ul li a {
+  color: #505d68;
+  font-weight: 400;
+  font-size: 14px;
+  line-height: 19px;
+  font-family: "Ubuntu", sans-serif;
+  display: block;
+}
+
+.highlight .c1 {
+  color: #27AE60;
+  font-family: "IBM Plex Mono", monospace;
+  font-weight: 400;
+}
+.highlight .k, .highlight .kn, .highlight .nb {
+  color: #27AE60;
+}
+
+.section {
+  padding-bottom: 10px;
+}
+.section .section h3 {
+  color: #3a3a3a;
+  font-size: 17px;
+  line-height: 20px;
+}
+
+.rst-content code.literal, .rst-content tt.literal, code.literal {
+  white-space: nowrap;
+}
+
+.rst-content .sphx-glr-thumbcontainer {
+  background: #fff;
+  box-shadow: none;
+  float: left;
+  margin: 12px;
+  min-height: 310px;
+  padding-top: 35px;
+  position: relative;
+  background: url(../img/pattern.svg) no-repeat bottom, #005077;
+  transition: 0.1s all;
+  background-size: cover;
+  transform: scale(1);
+  border-radius: 0;
+}
+@media (min-width: 1025px) {
+  .rst-content .sphx-glr-thumbcontainer:hover {
+    transform: scale(1.05);
+    box-shadow: 0px 20px 32px rgba(3, 109, 162, 0.15);
+    border: none;
+  }
+}
+.rst-content .sphx-glr-thumbcontainer a.internal {
+  bottom: 0;
+  display: flex;
+  align-items: flex-end;
+  left: 0;
+  padding: 0 25px 30px;
+  position: absolute;
+  text-decoration: none;
+  right: 0;
+  top: 0;
+  font-size: 16px;
+  color: #ffffff;
+  font-style: normal;
+}
+.rst-content .sphx-glr-thumbcontainer .figure {
+  margin: 0;
+  width: 235px;
+}
+.rst-content div.sphx-glr-download a {
+  background-color:#0379B6;
+  background-image: none;
+  border-radius: 0;
+  padding:0;
+  border:none;
+  line-height: 0;
+}
+.rst-content div.sphx-glr-download a code.download{
+  color:#ffffff;
+  position: relative;
+  padding: 8px 25px 8px 45px;
+  line-height: 25px;
+}
+.rst-content div.sphx-glr-download a code.download span:first-child:before{
+  content:'';
+  height:14px;
+  width:14px;
+  background:url(../img/dwonloaddoc.svg) no-repeat;
+  position: absolute;
+  left:25px;
+  top:50%;
+  transform: translateY(-50%);
+  margin:0;
+}
+.rst-content div.sphx-glr-download a:hover {
+  background-color:#0379B6;
+  box-shadow:none;
+}
+.rst-content .sphx-glr-thumbcontainer .figure .headerlink {
+  display:none;
+}
+.rst-content .sphx-glr-thumbcontainer img {
+  max-height: 160px;
+  width: 160px;
+  display: block;
+  margin: 0 auto;
+}
+.rst-content .sphx-glr-thumbcontainer[tooltip]:hover:after, .rst-content .sphx-glr-thumbcontainer[tooltip]:hover:before {
+  content: none;
+}
+.rst-content .note {
+  background: #F2F8FB;
+  padding: 20px;
+}
+.rst-content .note .admonition-title {
+  background: #0379b6 !important;
+}
+.rst-content .admonition-title, .rst-content .wy-alert-title {
+  padding: 7px 20px 7px 38px;
+  font-weight: 700;
+  font-family: "PT Sans", sans-serif;
+  font-size: 14px;
+  line-height: 25px;
+  position: relative;
+  margin: -20px -20px 20px;
+}
+.rst-content .admonition-title::before, .rst-content .wy-alert-title::before {
+  content: "";
+  height: 12px;
+  width: 12px;
+  background: url(../img/note.svg) no-repeat;
+  position: absolute;
+  left: 20px;
+  top: 13px;
+}
+.rst-content blockquote {
+  margin-left: 0;
+  margin-bottom: 15px;
+}
+.rst-content div[class^=highlight], .rst-content pre.literal-block {
+  border: none;
+  background: #F1F4F8;
+  color: #252d5a;
+  margin-bottom: 20px;
+}
+.rst-content div[class^=highlight] pre, .rst-content pre.literal-block pre {
+  font-size: 11px;
+  line-height: 25px;
+  padding: 20px;
+  font-family: "IBM Plex Mono", monospace;
+  font-weight: 400;
+}
+
+.rst-content .section ol, .rst-content ol.arabic, .wy-plain-list-decimal, article ol {
+  margin-bottom: 15px;
+}
+.rst-content .section ol li, .rst-content ol.arabic li, .wy-plain-list-decimal li, article ol li {
+  font-size: 14px;
+  line-height: 25px;
+  color: #252d5a;
+  font-family: "PT Sans", sans-serif;
+  font-weight: 400;
+  margin-left: 16px;
+  list-style: disc;
+}
+
+.rst-content .section ul, .rst-content .toctree-wrapper ul, .wy-plain-list-disc, article ul {
+  font-size: 14px;
+  color: #252d5a;
+  line-height: 25px;
+  margin-bottom: 15px;
+  list-style: none;
+}
+.rst-content .section ul li, .rst-content .toctree-wrapper ul li, .wy-plain-list-disc li, article ul li {
+  margin-left: 16px;
+  position: relative;
+  list-style: none;
+}
+.rst-content .section ul li:before, .rst-content .toctree-wrapper ul li:before, .wy-plain-list-disc li:before, article ul li:before {
+  content: "•";
+  color: #0379b6;
+  font-weight: bold;
+  display: inline-block;
+  width: 1em;
+  margin-left: -16px;
+  position: absolute;
+}
+.rst-content .section ul li li, .rst-content .toctree-wrapper ul li li, .wy-plain-list-disc li li, article ul li li {
+  position: relative;
+  list-style: none;
+}
+.rst-content .section ul li li:before, .rst-content .toctree-wrapper ul li li:before, .wy-plain-list-disc li li:before, article ul li li:before {
+  content: none;
+}
+.rst-content .section ul li li:after, .rst-content .toctree-wrapper ul li li:after, .wy-plain-list-disc li li:after, article ul li li:after {
+  content: "";
+  height: 4px;
+  width: 4px;
+  background: #EFA867;
+  display: inline-block;
+  position: absolute;
+  transform: rotate(45deg);
+  top: 10px;
+  left: -16px;
+}
+.rst-content .section ul li li li, .rst-content .toctree-wrapper ul li li li, .wy-plain-list-disc li li li, article ul li li li {
+  position: relative;
+  list-style: none;
+}
+.rst-content .section ul li li li:before, .rst-content .toctree-wrapper ul li li li:before, .wy-plain-list-disc li li li:before, article ul li li li:before {
+  content: none;
+}
+.rst-content .section ul li li li:after, .rst-content .toctree-wrapper ul li li li:after, .wy-plain-list-disc li li li:after, article ul li li li:after {
+  content: "";
+  height: 4px;
+  width: 4px;
+  background: #252d5a;
+  display: inline-block;
+  position: absolute;
+  transform: rotate(45deg);
+  top: 10px;
+  left: -16px;
+}
+
+.docutils dt {
+  display: inline-block;
+  padding: 5px 15px;
+  background: rgba(3, 121, 182, 0.1);
+  border-left: 2px solid #0379b6;
+  font-weight: 700;
+  font-size: 14px;
+  font-family: "PT Sans", sans-serif;
+  color: #0379b6;
+}
+
+footer .btn {
+  min-width: 168px;
+  font-size: 12px;
+  color: #ffffff;
+  box-shadow: none;
+  text-transform: uppercase;
+  font-weight: 700;
+  border: 1px solid #3c88b5;
+  color: #ffffff !important;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 0 10px;
+  height: 40px;
+  background: transparent !important;
+  border-radius: 0;
+}
+@media only screen and (max-width : 991px) {
+  footer .btn {
+    min-width: 126px;
+  }
+}
+footer .btn:visited {
+  color: #ffffff !important;
+}
+footer .btn:hover {
+  background: transparent !important;
+}
+footer .btn:active {
+  padding: 0 10px;
+  box-shadow: none;
+}
+footer .btn .fa {
+  display: none;
+}
+footer .btn.float-left {
+  color: #3c88b5 !important;
+}
+footer .btn.float-left:before {
+  content: "";
+  display: inline-block;
+  width: 11px;
+  height: 8px;
+  margin-right: 10px;
+  background: url(../img/prevarrow.svg) no-repeat;
+  margin-top: 1px;
+}
+footer .btn.float-right {
+  background: #0379b6 !important;
+}
+footer .btn.float-right:after {
+  content: "";
+  display: inline-block;
+  width: 11px;
+  height: 8px;
+  margin-left: 10px;
+  background: url(../img/nextarrow.svg) no-repeat;
+  margin-top: 1px;
+}
+
+/** Header Css Start **/
+@media (min-width: 992px) {
+  .fixed {
+    top: 61px;
+  }
+}
+.header {
+  padding: 18px 0;
+  transition: all 0.5s;
+  background: linear-gradient(141.15deg, rgba(0, 0, 0, 0.5) 1.1%, #008DD2 99.38%), #252D5A;
+}
+@media (min-width: 992px) {
+  .header .innercontainer {
+    max-width: 1278px;
+    margin-left: 60px;
+    padding: 0 50px;
+  }
+}
+.header.fixed {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  background: linear-gradient(141.15deg, rgba(0, 0, 0, 0.5) 1.1%, #008dd2 99.38%), #252d5a;
+  animation: smoothScroll 0.5s forwards;
+  box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.3);
+  z-index: 999;
+}
+@media only screen and (max-width : 991px) {
+  .header {
+    padding: 30px 30px;
+    position: fixed;
+    width: 100%;
+    top: 0;
+    z-index: 9999;
+    left: 0;
+  }
+}
+.header .headerInner .headerLogo img {
+  display: block;
+}
+@media only screen and (max-width : 767px) {
+  .header .headerInner .headerLogo img {
+    max-width: 75px;
+  }
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .headerNav {
+    position: fixed;
+    right: 0;
+    top: 0;
+    height: 100vh;
+    width: 249px;
+    background-color: #ffffff;
+    transform: scaleX(0);
+    transform-origin: right;
+    transition: all 0.3s ease-in-out;
+    padding: 76px 49px;
+    overflow: auto;
+  }
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .headerNav .nav {
+    display: flex;
+    flex-direction: column;
+    margin-bottom: 9px;
+  }
+}
+.header .headerInner .headerNav .nav .nav-item {
+  padding: 0 15px;
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .headerNav .nav .nav-item {
+    padding: 0;
+    margin-bottom: 35px;
+  }
+}
+@media only screen and (max-width : 1024px) {
+  .header .headerInner .headerNav .nav .nav-item {
+    padding: 0 10px;
+  }
+}
+.header .headerInner .headerNav .nav .nav-item .nav-link {
+  color: #ffffff;
+  text-transform: uppercase;
+  font-weight: 400;
+  font-size: 14px;
+  line-height: 18px;
+  letter-spacing: 1px;
+  padding: 0 4px;
+  position: relative;
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .headerNav .nav .nav-item .nav-link {
+    font-size: 16px;
+    line-height: 21px;
+    letter-spacing: 1px;
+    color: #252d5a;
+    padding: 0;
+  }
+}
+.header .headerInner .headerNav .nav .nav-item .nav-link::after {
+  content: "";
+  left: auto;
+  right: 0;
+  bottom: -5px;
+  height: 2px;
+  width: 0%;
+  position: absolute;
+  border-radius: 50px;
+  background-color: #ffffff;
+  transition: 0.3s all ease-in-out;
+}
+.header .headerInner .headerNav .nav .nav-item .nav-link:hover::after {
+  width: 100%;
+  right: auto;
+  left: 0;
+}
+.header .headerInner .headerNav.opne {
+  transform: scaleX(1);
+}
+.header .headerInner .headerNav .navCloseBtn {
+  display: none;
+  background-color: transparent;
+  position: absolute;
+  top: 15px;
+  right: 15px;
+  border: 0;
+  padding: 0;
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .headerNav .navCloseBtn {
+    display: block;
+  }
+}
+.header .headerInner .headerNav .navCloseBtn img {
+  display: block;
+}
+.header .headerInner .headerNav .responsivetlcdropdown {
+  display: none;
+}
+.header .headerInner .headerNav .responsivetlcdropdown .btn-link {
+  background-color: transparent;
+  border: 0px;
+  font-size: 16px;
+  line-height: 21px;
+  letter-spacing: 1px;
+  color: #252d5a;
+  padding: 0;
+  outline: 0;
+  text-decoration: none;
+  cursor: pointer;
+}
+.header .headerInner .headerNav .responsivetlcdropdown ul {
+  padding: 29px 0 0 12px;
+  margin: 0;
+}
+.header .headerInner .headerNav .responsivetlcdropdown ul li {
+  list-style: none;
+  margin-bottom: 10px;
+}
+.header .headerInner .headerNav .responsivetlcdropdown ul li a {
+  font-size: 14px;
+  line-height: 21px;
+  color: #505d68;
+  display: block;
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .headerNav .responsivetlcdropdown {
+    display: block;
+  }
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .tlcDropdown {
+    display: none;
+  }
+}
+.header .headerInner .tlcDropdown .dropdown {
+  position: relative;
+}
+.header .headerInner .tlcDropdown .dropdown .btn-link {
+  padding: 0 18px 0px 1px;
+  background-color: transparent;
+  font-size: 14px;
+  line-height: 15px;
+  text-align: center;
+  letter-spacing: 1.16667px;
+  text-transform: uppercase;
+  color: #ffffff;
+  position: relative;
+  border: 0;
+  border-bottom: 1px solid #ffffff;
+  border-radius: 0px;
+  border-color: #ffffff !important;
+  box-shadow: inherit;
+  outline: 0;
+  text-decoration: none;
+  cursor: pointer;
+}
+.header .headerInner .tlcDropdown .dropdown .btn-link:hover {
+  color: #ffffff !important;
+}
+.header .headerInner .tlcDropdown .dropdown .btn-link::after {
+  content: "";
+  position: absolute;
+  right: 3px;
+  top: 50%;
+  width: 8px;
+  height: 5px;
+  border: 0px;
+  margin: 0;
+  transform: translate(0, -50%);
+  background: url(../img/dropdown-icon.svg) no-repeat center;
+}
+.header .headerInner .responsiveMenuIcon {
+  display: none;
+}
+@media only screen and (max-width : 991px) {
+  .header .headerInner .responsiveMenuIcon {
+    display: block;
+  }
+}
+.header .headerInner .responsiveMenuIcon .btn-menu {
+  padding: 0;
+  border: 0px;
+  background-color: transparent;
+}
+
+.wy-breadcrumbs .br-arrow {
+  font-family: "PT Sans", sans-serif;
+  font-size: 14px;
+  margin-right: 2px;
+  color: #0379b6;
+}
+
+.wy-nav-side {
+  background: #F8F9FA;
+}
+@media (min-width: 1100px) {
+  .wy-nav-side {
+    width: 400px;
+  }
+}
+.wy-nav-side .wy-side-scroll {
+  padding-top: 45px;
+}
+@media (min-width: 1100px) {
+  .wy-nav-side .wy-side-scroll {
+    width: 420px;
+  }
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-side .wy-side-scroll {
+    padding: 0 30px 144px;
+  }
+}
+.wy-nav-side .wy-side-nav-search {
+  width: 245px;
+  background: transparent;
+  padding: 0;
+  margin-left: auto;
+  margin-right: 50px;
+  text-align: center;
+}
+
+.wy-side-nav-search>div.version {
+    align-content: center;
+    margin-top: -.4045em;
+    margin-bottom: .809em;
+    font-weight: normal;
+    margin-left: auto;
+    text-align: center;
+    color: #303030;
+}
+
+@media only screen and (max-width : 991px) {
+  .wy-nav-side .wy-side-nav-search {
+    width: 100%;
+    max-width: 300px;
+    margin-right: auto;
+    margin-left: 0;
+  }
+}
+.wy-nav-side .wy-side-nav-search input[type=text] {
+  box-shadow: none;
+  border: none;
+  padding: 8px 12px;
+  font-size: 14px;
+  line-height: 25px;
+  border-radius: 0;
+  font-family: "PT Sans", sans-serif;
+  font-weight: 400;
+  color: #252d5a;
+}
+.wy-nav-side .wy-side-nav-search a {
+  font-size: 18px;
+  line-height: 30px;
+  font-family: "PT Sans Caption", sans-serif;
+  color: #252d5a;
+}
+.wy-nav-side .wy-menu-vertical {
+  width: 245px;
+  margin-left: auto;
+  margin-right: 50px;
+}
+.wy-nav-side .wy-menu-vertical .caption {
+  padding-left: 0;
+  font-size: 100%;
+}
+.wy-nav-side .wy-menu-vertical a {
+  font-size: 15px;
+  color: #252d5a;
+  line-height: 30px;
+  font-family: "PT Sans Caption", sans-serif;
+  font-weight: 500;
+  padding: 10px 0;
+  transition: 0.2s all;
+}
+.wy-nav-side .wy-menu-vertical a:hover {
+  background: transparent;
+  color: #0379b6 !important;
+}
+.wy-nav-side .wy-menu-vertical li.current {
+  background: transparent;
+}
+.wy-nav-side .wy-menu-vertical li.current > a {
+  color: #252d5a;
+  position: relative;
+}
+.wy-nav-side .wy-menu-vertical li.current > a span.toctree-expand:before {
+  content: none;
+  font-size: 24px;
+}
+.wy-nav-side .wy-menu-vertical li.current > a span.toctree-expand:after {
+  background: url(../img/hide.svg) no-repeat;
+}
+.wy-nav-side .wy-menu-vertical li span.toctree-expand:before {
+  content: none;
+}
+.wy-nav-side .wy-menu-vertical li span.toctree-expand:after {
+  content: "";
+  position: absolute;
+  left: -15px;
+  top: 20px;
+  background: url(../img/show.svg) no-repeat;
+  height: 8px;
+  width: 8px;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2 span.toctree-expand:after {
+  left: 3px;
+  top: 10px;
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-side .wy-menu-vertical li.toctree-l2 span.toctree-expand:after {
+    top: 15px;
+  }
+}
+.wy-nav-side .wy-menu-vertical li.on a {
+  padding: 0;
+  color: #252d5a;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l1.current > a {
+  padding: 10px 0;
+  border: none;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l1.current > a .toctree-expand {
+  /*display: none;*/
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l1.current a {
+  border: none;
+  background: transparent !important;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2 a {
+  padding: 0 0 0 18px;
+  color: #252d5a;
+  font-size: 14px;
+  font-family: "PT Sans", sans-serif;
+  margin-bottom: 5px;
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-side .wy-menu-vertical li.toctree-l2 a {
+    padding: 5px 0 5px 18px;
+  }
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current > a {
+  background: transparent;
+  color: #0379b6;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3.current > a {
+  color: #0379b6;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3 a {
+  padding: 0 0 0 38px;
+  font-size: 14px;
+  font-family: "PT Sans", sans-serif;
+  font-weight: 400;
+  margin-bottom: 5px;
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3 a {
+    padding: 5px 0 5px 38px;
+  }
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3 a span.toctree-expand:after {
+  left: 22px;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3 .toctree-l4 {
+  margin-bottom: 5px;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3 .toctree-l4.current > a {
+  color: #0379b6;
+}
+.wy-nav-side .wy-menu-vertical li.toctree-l2.current .toctree-l3 .toctree-l4 a {
+  padding: 0 0 0 48px;
+}
+
+.wy-nav-content-wrap {
+  padding-top: 86px;
+}
+@media (min-width: 1100px) {
+  .wy-nav-content-wrap {
+    margin-left: 400px;
+  }
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-content-wrap {
+    padding-top: 30px;
+  }
+}
+.wy-nav-content-wrap .wy-nav-content {
+  padding: 0;
+  max-width: 100%;
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-content-wrap .wy-nav-content {
+    margin-top: 144px;
+  }
+}
+.wy-nav-content-wrap .wy-nav-content .document, .wy-nav-content-wrap .wy-nav-content div[role~=navigation] {
+  max-width: 944px;
+  padding: 0 50px;
+  width: 100%;
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-content-wrap .wy-nav-content .document, .wy-nav-content-wrap .wy-nav-content div[role~=navigation] {
+    padding: 0 30px;
+  }
+}
+.wy-nav-content-wrap .wy-nav-content .document {
+  min-height: 500px;
+}
+@media only screen and (max-width : 767px) {
+  .wy-nav-content-wrap .wy-nav-content .document {
+    min-height: auto;
+  }
+}
+
+@media only screen and (max-width : 991px) {
+  .wy-nav-content-wrap {
+    margin-left: 0;
+  }
+  .wy-nav-content-wrap.shift {
+    position: relative;
+    left: 0;
+  }
+}
+
+.wy-nav-top {
+  padding: 5px 25px 5px 30px;
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-top {
+    position: fixed;
+    top: 84px;
+    left: 0;
+    width: 100%;
+    display: flex;
+    flex-direction: row-reverse;
+    justify-content: space-between;
+    text-align: left;
+    z-index: 999;
+    align-items: center;
+    background: #F8F9FA;
+  }
+  .wy-nav-top .nav-content {
+    flex: 1 1 auto;
+    color: #252d5a;
+    font-family: "PT Sans Caption", sans-serif;
+    font-size: 15px;
+    font-weight: 700;
+  }
+  .wy-nav-top .togglemenu {
+    width: 30px;
+    height: 30px;
+    background: url(../img/rightangle.svg) no-repeat center;
+    transition: 0.1s all;
+  }
+}
+
+.shift .togglemenu {
+  transform: rotate(90deg);
+}
+
+@media only screen and (max-width : 991px) {
+  .wy-nav-side {
+    left: 0;
+    width: 100%;
+    transition: 0.3s all;
+    opacity: 0;
+    z-index: -1;
+    top: 144px;
+    transform: translateY(-60px);
+  }
+  .wy-nav-side.shift {
+    width: 100%;
+    opacity: 1;
+    z-index: 200;
+    width: 100%;
+    transform: translateY(0);
+  }
+}
+@media only screen and (max-width : 991px) {
+  .wy-nav-side .wy-menu.wy-menu-vertical, .wy-nav-side .wy-side-nav-search, .wy-nav-side .wy-side-scroll {
+    width: auto;
+  }
+}
+
+.rst-footer-buttons {
+  margin-bottom: 57px;
+}
+
+.footerSec {
+  background: #001B29;
+  font-family: "Ubuntu", sans-serif;
+  font-size: 14px;
+  line-height: 21px;
+  color: #ffffff;
+  padding-bottom: 43px;
+}
+@media only screen and (max-width : 991px) {
+  .footerSec {
+    padding: 0 30px;
+  }
+}
+.footerSec h5 {
+  font-size: 14px;
+  margin-bottom: 0;
+  font-weight: normal;
+  font-family: "Ubuntu", sans-serif;
+}
+@media only screen and (max-width : 767px) {
+  .footerSec h5 {
+    margin-top: 10px;
+    max-width: 240px;
+  }
+}
+.footerSec .footerHeader {
+  padding: 18px 0 18px 50px;
+  border-bottom: 1px solid #252d5a;
+}
+@media only screen and (max-width : 991px) {
+  .footerSec .footerHeader {
+    padding: 30px 0 20px;
+  }
+}
+.footerSec .footerHeader p {
+  margin-bottom: 0;
+}
+.footerSec .footernote {
+  padding: 30px 50px 0;
+  max-width: 944px;
+  width: 100%;
+}
+@media only screen and (max-width : 991px) {
+  .footerSec .footernote {
+    padding: 20px 0 30px;
+  }
+}
+
+.gallery-container {
+  display: flex;
+  flex-wrap: wrap;
+  margin-bottom: 30px;
+}
+@media only screen and (max-width : 991px) {
+  .gallery-container {
+    flex-wrap: nowrap;
+    overflow-x: auto;
+  }
+}
+
+@media screen and (min-width: 1100px) {
+  .wy-nav-content-wrap {
+    background: #ffffff;
+  }
+
+  .wy-nav-content {
+    background: #ffffff;
+  }
+}
+@media only screen and (max-width : 991px) {
+  .navigation-hide {
+    display: none;
+  }
+
+  .sphx-glr-thumbcontainer {
+    margin: 0;
+    margin-right: 15px;
+    width: 100%;
+    flex: 0 0 255px;
+  }
+  .sphx-glr-thumbcontainer .figure {
+    width: 100%;
+  }
+
+  .backtop {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background-color: #0379b6;
+    width: 45px;
+    height: 45px;
+    text-align: center;
+    position: fixed;
+    bottom: 30px;
+    right: 30px;
+    transition: background-color 0.3s, opacity 0.5s, visibility 0.5s;
+    opacity: 0;
+    visibility: hidden;
+    z-index: 100;
+  }
+  .backtop img {
+    transform: rotate(-90deg);
+  }
+  .backtop.show {
+    opacity: 1;
+    visibility: visible;
+  }
+}
+.rst-content .container{
+  padding:0;
+}
diff --git a/docs/_static/img/close-icon.svg b/docs/_static/img/close-icon.svg
new file mode 100644
index 0000000..e4a34f5
--- /dev/null
+++ b/docs/_static/img/close-icon.svg
@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M13.295 2.115C13.6844 1.72564 13.6844 1.09436 13.295 0.705C12.9056 0.315639 12.2744 0.315639 11.885 0.705L7 5.59L2.115 0.705C1.72564 0.315639 1.09436 0.315639 0.705 0.705C0.315639 1.09436 0.315639 1.72564 0.705 2.115L5.59 7L0.705 11.885C0.315639 12.2744 0.315639 12.9056 0.705 13.295C1.09436 13.6844 1.72564 13.6844 2.115 13.295L7 8.41L11.885 13.295C12.2744 13.6844 12.9056 13.6844 13.295 13.295C13.6844 12.9056 13.6844 12.2744 13.295 11.885L8 [...]
+</svg>
diff --git a/docs/_static/img/downangle.svg b/docs/_static/img/downangle.svg
new file mode 100644
index 0000000..196c418
--- /dev/null
+++ b/docs/_static/img/downangle.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9.84262 6.15683L5.84277 10.1567L1.84292 6.15683" stroke="#252D5A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/docs/_static/img/dropdown-icon.svg b/docs/_static/img/dropdown-icon.svg
new file mode 100644
index 0000000..71a65fe
--- /dev/null
+++ b/docs/_static/img/dropdown-icon.svg
@@ -0,0 +1,3 @@
+<svg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M1.41421 0C0.523309 0 0.077142 1.07714 0.707107 1.70711L3.29289 4.29289C3.68342 4.68342 4.31658 4.68342 4.70711 4.29289L7.2929 1.70711C7.92286 1.07714 7.47669 0 6.58579 0H1.41421Z" fill="white"/>
+</svg>
diff --git a/docs/_static/img/dwonloaddoc.svg b/docs/_static/img/dwonloaddoc.svg
new file mode 100644
index 0000000..6a61385
--- /dev/null
+++ b/docs/_static/img/dwonloaddoc.svg
@@ -0,0 +1,5 @@
+<svg width="14" height="12" viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1 9.26514V11.2651H13V9.26514" stroke="white"/>
+<path d="M7.15686 0L7.15686 7.5" stroke="white"/>
+<path d="M10 4.84338L7.00012 7.84326L4.00024 4.84338" stroke="white"/>
+</svg>
diff --git a/docs/_static/img/hide.svg b/docs/_static/img/hide.svg
new file mode 100644
index 0000000..eba8785
--- /dev/null
+++ b/docs/_static/img/hide.svg
@@ -0,0 +1,3 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8 4L-4.17233e-07 4" stroke="#0379B6"/>
+</svg>
diff --git a/docs/_static/img/menu-icon.svg b/docs/_static/img/menu-icon.svg
new file mode 100644
index 0000000..c15a280
--- /dev/null
+++ b/docs/_static/img/menu-icon.svg
@@ -0,0 +1,5 @@
+<svg width="29" height="19" viewBox="0 0 29 19" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1 18H27.4444" stroke="white" stroke-width="2" stroke-linecap="round"/>
+<path d="M1 9.5H18" stroke="white" stroke-width="2" stroke-linecap="round"/>
+<path d="M1 1H27.4444" stroke="white" stroke-width="2" stroke-linecap="round"/>
+</svg>
diff --git a/docs/_static/img/nextarrow.svg b/docs/_static/img/nextarrow.svg
new file mode 100644
index 0000000..717127d
--- /dev/null
+++ b/docs/_static/img/nextarrow.svg
@@ -0,0 +1,4 @@
+<svg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0.156982 3.5H10.657" stroke="white"/>
+<path d="M8.00012 0.656854L11 3.65674L8.00012 6.65662" stroke="white"/>
+</svg>
diff --git a/docs/_static/img/note.svg b/docs/_static/img/note.svg
new file mode 100644
index 0000000..47b8651
--- /dev/null
+++ b/docs/_static/img/note.svg
@@ -0,0 +1,5 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="6" cy="6" r="6" fill="white"/>
+<path d="M6 3V7" stroke="#0379B6"/>
+<path d="M6 8V9" stroke="#0379B6"/>
+</svg>
diff --git a/docs/_static/img/pattern.svg b/docs/_static/img/pattern.svg
new file mode 100644
index 0000000..5e0b5e6
--- /dev/null
+++ b/docs/_static/img/pattern.svg
@@ -0,0 +1,114 @@
+<svg width="255" height="310" viewBox="0 0 255 310" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g opacity="0.1">
+<g opacity="0.271926">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M175.162 347.902L177.368 360.413C177.936 363.635 181.042 365.834 184.23 365.272L200.367 362.427C203.555 361.864 205.699 358.769 205.13 355.547L202.255 339.24C201.687 336.019 198.614 333.843 195.426 334.405L183.496 336.508C176.724 337.586 175.976 336.011 174.922 330.032L172.758 317.762C172.19 314.54 169.117 312.364 165.929 312.926L149.793 315.772C146.605 316.334 144.461 319.43 145.029 322.651L147.904 338.958C148.472 342.18 151.546 344.355 1 [...]
+</g>
+<g opacity="0.828313">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M239.701 347.886L241.029 360.521C241.37 363.774 244.316 366.185 247.535 365.846L263.831 364.134C267.05 363.795 269.405 360.856 269.063 357.603L267.332 341.135C266.99 337.882 264.076 335.497 260.857 335.836L248.809 337.102C241.978 337.704 241.342 336.081 240.707 330.043L239.405 317.652C239.063 314.399 236.149 312.013 232.93 312.352L216.634 314.064C213.415 314.403 211.06 317.342 211.402 320.595L213.133 337.063C213.475 340.316 216.389 342.701 [...]
+</g>
+<g opacity="0.720749">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M101.406 276.094L89.7998 281.261C86.8113 282.591 85.4287 286.138 86.7453 289.095L93.41 304.064C94.7267 307.021 98.2492 308.352 101.238 307.021L116.364 300.286C119.353 298.956 120.721 295.448 119.404 292.49L114.477 281.424C111.793 275.113 113.14 274.007 118.687 271.537L130.069 266.47C133.057 265.139 134.425 261.631 133.109 258.674L126.444 243.705C125.127 240.747 121.605 239.416 118.616 240.747L103.49 247.482C100.501 248.812 99.1334 252.321  [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M77.5367 259.037L87.2352 254.719C89.1512 253.866 91.4175 254.737 92.2713 256.655L96.5934 266.362C97.4472 268.28 96.5783 270.547 94.6623 271.4L84.9638 275.718C83.0478 276.571 80.7816 275.7 79.9278 273.782L75.6057 264.075C74.7518 262.157 75.6207 259.89 77.5367 259.037Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M134.068 275.272L125.755 278.973C124.113 279.704 123.368 281.647 124.1 283.291L127.804 291.612C128.536 293.255 130.479 294.002 132.121 293.271L140.434 289.57C142.076 288.839 142.821 286.895 142.089 285.252L138.385 276.931C137.653 275.287 135.71 274.54 134.068 275.272Z" fill="white"/>
+</g>
+<g opacity="0.397144">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M166.425 275.494L154.487 279.839C151.413 280.958 149.786 284.399 150.893 287.44L156.498 302.838C157.605 305.88 161.026 307.453 164.1 306.334L179.66 300.671C182.734 299.552 184.343 296.148 183.236 293.106L179.092 281.723C176.855 275.24 178.277 274.231 183.982 272.154L195.69 267.893C198.764 266.774 200.373 263.37 199.266 260.328L193.662 244.93C192.555 241.888 189.133 240.315 186.059 241.434L170.5 247.097C167.426 248.216 165.817 251.62 166.92 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M143.804 256.813L153.78 253.182C155.751 252.465 157.951 253.492 158.669 255.465L162.303 265.45C163.021 267.423 161.996 269.624 160.026 270.341L150.05 273.972C148.079 274.69 145.879 273.663 145.161 271.69L141.526 261.705C140.808 259.732 141.833 257.531 143.804 256.813Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M199.065 276.952L190.514 280.064C188.825 280.679 187.946 282.566 188.562 284.257L191.677 292.816C192.292 294.506 194.178 295.387 195.868 294.772L204.418 291.66C206.108 291.045 206.986 289.158 206.371 287.467L203.255 278.909C202.64 277.218 200.754 276.337 199.065 276.952Z" fill="white"/>
+</g>
+<g opacity="0.0418853">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M231.487 274.886L219.275 278.388C216.13 279.29 214.267 282.609 215.16 285.72L219.676 301.471C220.568 304.583 223.872 306.391 227.016 305.489L242.933 300.925C246.078 300.024 247.92 296.74 247.028 293.628L243.689 281.983C241.909 275.361 243.397 274.453 249.234 272.779L261.21 269.345C264.355 268.443 266.198 265.16 265.306 262.048L260.789 246.297C259.897 243.185 256.594 241.377 253.449 242.279L237.532 246.843C234.388 247.744 232.545 251.028 23 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M210.224 254.673L220.429 251.747C222.445 251.169 224.568 252.347 225.147 254.365L228.076 264.58C228.654 266.598 227.478 268.722 225.462 269.3L215.257 272.226C213.241 272.804 211.118 271.626 210.54 269.608L207.611 259.394C207.032 257.376 208.208 255.251 210.224 254.673Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M263.946 278.618L255.199 281.126C253.47 281.621 252.462 283.442 252.958 285.172L255.469 293.927C255.965 295.657 257.784 296.667 259.513 296.171L268.26 293.663C269.988 293.167 270.996 291.347 270.5 289.617L267.989 280.862C267.493 279.132 265.674 278.122 263.946 278.618Z" fill="white"/>
+</g>
+<g opacity="0.2">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M-25.113 201.247L-33.6139 191.806C-35.8028 189.375 -39.6025 189.156 -42.008 191.322L-54.185 202.286C-56.5907 204.452 -56.7679 208.214 -54.5789 210.645L-43.4993 222.95C-41.3104 225.381 -37.5513 225.598 -35.1456 223.432L-26.143 215.326C-20.9707 210.823 -19.5023 211.763 -15.4395 216.275L-7.10286 225.534C-4.91393 227.965 -1.15464 228.182 1.25105 226.016L13.4279 215.052C15.8336 212.885 16.0109 209.124 13.822 206.693L2.74236 194.388C0.553426 191 [...]
+</g>
+<g opacity="0.413883">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M40.5691 200.935L32.7476 190.924C30.7336 188.346 26.9584 187.863 24.4077 189.855L11.4954 199.944C8.94451 201.937 8.50542 205.676 10.5194 208.254L20.7137 221.302C22.7277 223.88 26.4625 224.359 29.0135 222.366L38.5596 214.907C44.0333 210.777 45.4327 211.816 49.1708 216.601L56.8413 226.419C58.8553 228.997 62.5903 229.475 65.1412 227.482L78.0532 217.394C80.6041 215.401 81.0435 211.661 79.0294 209.083L68.8352 196.035C66.8211 193.457 63.0861 192 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.345 173.649L57.8811 182.015C59.1724 183.667 58.8751 186.077 57.2208 187.37L48.8473 193.912C47.193 195.204 44.7832 194.909 43.4919 193.257L36.9558 184.891C35.6646 183.238 35.9616 180.829 37.6159 179.536L45.9894 172.994C47.6437 171.702 50.0538 171.996 51.345 173.649Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M49.2685 232.428L43.6663 225.258C42.5593 223.841 40.4939 223.588 39.0757 224.696L31.8984 230.304C30.4805 231.412 30.2257 233.477 31.3327 234.894L36.9349 242.064C38.0417 243.481 40.1074 243.733 41.5253 242.626L48.7026 237.018C50.1207 235.91 50.3753 233.845 49.2685 232.428Z" fill="white"/>
+</g>
+<g opacity="0.418195">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M106.272 200.661L99.1675 190.128C97.3382 187.416 93.6059 186.67 90.9225 188.48L77.338 197.643C74.6542 199.453 73.9553 203.154 75.7846 205.866L85.0439 219.593C86.8732 222.305 90.5655 223.043 93.2493 221.233L103.292 214.458C109.041 210.72 110.364 211.854 113.76 216.888L120.727 227.217C122.556 229.929 126.248 230.667 128.932 228.857L142.516 219.694C145.2 217.884 145.899 214.184 144.07 211.472L134.811 197.744C132.981 195.032 129.289 194.295 12 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M118.925 174.192L124.861 182.994C126.034 184.732 125.569 187.116 123.829 188.29L115.019 194.232C113.279 195.406 110.896 194.943 109.723 193.205L103.786 184.403C102.613 182.665 103.078 180.282 104.818 179.108L113.628 173.166C115.368 171.992 117.752 172.454 118.925 174.192Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M112.753 232.684L107.664 225.14C106.659 223.649 104.616 223.253 103.124 224.26L95.5733 229.353C94.0816 230.359 93.6833 232.402 94.6888 233.892L99.7772 241.436C100.782 242.927 102.825 243.322 104.317 242.316L111.868 237.223C113.36 236.217 113.758 234.174 112.753 232.684Z" fill="white"/>
+</g>
+<g opacity="0.566988">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M171.992 200.425L165.64 189.423C164.004 186.59 160.333 185.586 157.53 187.204L143.339 195.397C140.536 197.015 139.58 200.658 141.216 203.491L149.495 217.831C151.131 220.664 154.763 221.657 157.566 220.039L168.057 213.982C174.053 210.653 175.294 211.877 178.33 217.136L184.559 227.925C186.195 230.758 189.827 231.752 192.63 230.134L206.821 221.941C209.624 220.322 210.58 216.68 208.944 213.847L200.665 199.507C199.029 196.674 195.397 195.68 192 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M186.461 174.904L191.769 184.098C192.817 185.914 192.188 188.259 190.37 189.309L181.167 194.622C179.349 195.672 177.004 195.044 175.955 193.228L170.647 184.034C169.598 182.218 170.228 179.873 172.046 178.823L181.248 173.51C183.066 172.461 185.412 173.088 186.461 174.904Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M176.224 232.823L171.674 224.942C170.775 223.385 168.765 222.847 167.206 223.747L159.318 228.301C157.76 229.201 157.22 231.211 158.119 232.768L162.669 240.648C163.568 242.205 165.578 242.743 167.137 241.843L175.024 237.289C176.583 236.389 177.123 234.379 176.224 232.823Z" fill="white"/>
+</g>
+<g opacity="0.692395">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M237.727 200.23L232.158 188.811C230.724 185.871 227.132 184.613 224.223 186.032L209.495 193.215C206.586 194.634 205.379 198.201 206.813 201.141L214.071 216.024C215.505 218.964 219.059 220.208 221.969 218.789L232.857 213.479C239.07 210.576 240.222 211.884 242.884 217.341L248.346 228.539C249.78 231.48 253.333 232.725 256.243 231.305L270.97 224.122C273.88 222.703 275.087 219.136 273.653 216.196L266.394 201.314C264.96 198.373 261.406 197.129 2 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M253.941 175.78L258.595 185.322C259.514 187.207 258.722 189.502 256.836 190.423L247.285 195.081C245.398 196.001 243.102 195.212 242.183 193.327L237.529 183.785C236.609 181.9 237.401 179.605 239.288 178.684L248.838 174.026C250.725 173.106 253.021 173.895 253.941 175.78Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M239.689 232.843L235.7 224.665C234.912 223.049 232.944 222.372 231.326 223.161L223.14 227.154C221.523 227.943 220.844 229.91 221.632 231.526L225.621 239.705C226.409 241.32 228.377 241.997 229.995 241.208L238.181 237.215C239.798 236.426 240.477 234.459 239.689 232.843Z" fill="white"/>
+</g>
+<g opacity="0.234001">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M-13.892 137.503L-6.07052 127.491C-4.0565 124.914 -4.50053 121.134 -7.05122 119.141L-19.9634 109.053C-22.5144 107.06 -26.2494 107.538 -28.2634 110.116L-38.4577 123.164C-40.4717 125.742 -40.0324 129.482 -37.4815 131.475L-27.9353 138.933C-22.6031 143.245 -23.2733 144.854 -27.0115 149.639L-34.682 159.456C-36.696 162.034 -36.2569 165.774 -33.7059 167.767L-20.794 177.855C-18.243 179.848 -14.5078 179.369 -12.4938 176.792L-2.29951 163.744C-0.2854 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.1906 141.357L8.65454 149.723C7.36329 151.376 4.95322 151.67 3.29892 150.378L-5.07459 143.836C-6.72888 142.543 -7.0259 140.134 -5.73466 138.481L0.801413 130.115C2.09266 128.462 4.5025 128.168 6.15679 129.46L14.5303 136.002C16.1846 137.295 16.4819 139.704 15.1906 141.357Z" fill="white"/>
+</g>
+<g opacity="0.3768">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.6603 137.969L60.1611 128.528C62.35 126.097 62.1708 122.295 59.7653 120.13L47.5883 109.165C45.1826 106.999 41.4233 107.216 39.2344 109.647L28.1547 121.952C25.9658 124.384 26.1431 128.145 28.5488 130.311L37.5515 138.417C42.5699 143.09 41.7891 144.649 37.7263 149.161L29.3896 158.42C27.2007 160.851 27.3778 164.612 29.7835 166.778L41.9603 177.742C44.366 179.908 48.1255 179.691 50.3145 177.26L61.3941 164.955C63.583 162.524 63.4055 158.763 60 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M80.4033 143.843L73.2996 151.733C71.8962 153.291 69.4715 153.417 67.9113 152.012L60.0146 144.902C58.4545 143.497 58.3263 141.073 59.7297 139.514L66.8334 131.625C68.2368 130.066 70.6613 129.94 72.2214 131.345L80.1182 138.455C81.6783 139.86 81.8067 142.285 80.4033 143.843Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M22.1562 152.005L28.245 145.243C29.4481 143.907 29.3382 141.829 28.0008 140.625L21.2322 134.53C19.895 133.326 17.8167 133.434 16.6137 134.77L10.5249 141.532C9.32196 142.868 9.43205 144.947 10.7692 146.151L17.5379 152.245C18.8753 153.449 20.9533 153.341 22.1562 152.005Z" fill="white"/>
+</g>
+<g opacity="0.0374312">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M182.662 138.981L192.394 130.815C194.9 128.712 195.252 124.923 193.171 122.443L182.638 109.891C180.558 107.411 176.805 107.103 174.299 109.205L161.614 119.849C159.108 121.952 158.761 125.701 160.841 128.181L168.628 137.461C172.948 142.787 171.957 144.222 167.306 148.124L157.762 156.133C155.256 158.236 154.908 161.985 156.989 164.465L167.521 177.017C169.602 179.497 173.355 179.805 175.861 177.703L188.546 167.059C191.051 164.956 191.399 161. [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M210.308 148.798L202.175 155.622C200.569 156.971 198.15 156.758 196.801 155.149L189.97 147.009C188.621 145.401 188.831 142.982 190.438 141.634L198.57 134.81C200.177 133.462 202.596 133.675 203.945 135.283L210.775 143.423C212.125 145.031 211.914 147.45 210.308 148.798Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M151.492 148.775L158.462 142.926C159.84 141.77 160.02 139.697 158.863 138.318L153.009 131.341C151.852 129.963 149.779 129.78 148.402 130.936L141.431 136.785C140.054 137.94 139.874 140.014 141.03 141.392L146.885 148.369C148.042 149.748 150.114 149.93 151.492 148.775Z" fill="white"/>
+</g>
+<g opacity="0.266013">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M248.108 139.521L258.386 132.054C261.033 130.131 261.648 126.375 259.745 123.756L250.114 110.5C248.211 107.881 244.489 107.312 241.842 109.234L228.446 118.967C225.8 120.89 225.191 124.606 227.094 127.225L234.215 137.025C238.152 142.64 237.064 144.002 232.152 147.571L222.072 154.894C219.426 156.817 218.817 160.533 220.72 163.152L230.351 176.408C232.254 179.027 235.976 179.597 238.623 177.674L252.019 167.941C254.665 166.018 255.274 162.302 2 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M275.002 151.243L266.413 157.483C264.716 158.716 262.318 158.334 261.084 156.636L254.839 148.039C253.605 146.341 253.983 143.943 255.68 142.71L264.269 136.47C265.966 135.237 268.363 135.618 269.597 137.316L275.843 145.913C277.077 147.612 276.699 150.01 275.002 151.243Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M216.331 147.116L223.692 141.768C225.147 140.711 225.472 138.655 224.414 137.199L219.06 129.831C218.003 128.375 215.947 128.048 214.493 129.105L207.131 134.454C205.677 135.511 205.352 137.566 206.41 139.022L211.763 146.39C212.821 147.846 214.876 148.173 216.331 147.116Z" fill="white"/>
+</g>
+<g opacity="0.757494">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M-13.3913 83.5942L-2.17411 89.5584C0.714283 91.0942 4.35982 90.0005 5.87944 87.1426L13.5721 72.6747C15.0919 69.8165 13.9719 66.2213 11.0835 64.6856L-3.53659 56.9119C-6.42498 55.3761 -10.0315 56.4581 -11.5513 59.3164L-17.2386 70.0126C-20.5589 76.0126 -22.2601 75.632 -27.6212 72.7815L-38.6217 66.9323C-41.5101 65.3966 -45.1169 66.4784 -46.6367 69.3366L-54.3292 83.8042C-55.849 86.6625 -54.7291 90.2579 -51.8407 91.7936L-37.2207 99.5673C-34.3323 [...]
+</g>
+<g opacity="0.203978">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.3709 84.0686L62.1447 90.8008C64.9189 92.5344 68.6319 91.6977 70.3472 88.9526L79.0303 75.0566C80.7458 72.3114 79.8793 68.6469 77.105 66.9133L63.0628 58.1388C60.2886 56.4053 56.6154 57.233 54.9 59.9783L48.4804 70.2518C44.7496 76.0055 43.0791 75.5072 37.9299 72.2896L27.3642 65.6874C24.5899 63.9539 20.9165 64.7815 19.201 67.5268L10.518 81.4225C8.80257 84.1678 9.66891 87.8325 12.4431 89.566L26.4853 98.3406C29.2596 100.074 32.9329 99.2461 34 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M50.5773 113.395L41.5741 107.769C39.7955 106.658 39.2506 104.292 40.3631 102.511L45.9941 93.4999C47.1066 91.7196 49.4719 91.1723 51.2505 92.2837L60.2537 97.9095C62.0323 99.021 62.5773 101.387 61.4649 103.167L55.8339 112.179C54.7214 113.959 52.3559 114.506 50.5773 113.395Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M32.4248 57.45L40.1417 62.272C41.6665 63.2248 43.6938 62.7558 44.6475 61.2296L49.474 53.5055C50.4275 51.9796 49.9606 49.9516 48.4358 48.9988L40.7189 44.1767C39.1944 43.2241 37.1669 43.6934 36.2134 45.2193L31.3868 52.9434C30.4332 54.4696 30.9003 56.4974 32.4248 57.45Z" fill="white"/>
+</g>
+<g opacity="0.36733">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M116.101 84.5145L126.379 91.9818C129.025 93.9047 132.788 93.329 134.69 90.7103L144.322 77.4539C146.224 74.8349 145.616 71.1189 142.969 69.1961L129.573 59.4634C126.927 57.5406 123.205 58.1101 121.302 60.729L114.181 70.5296C110.058 76.0091 108.427 75.3955 103.514 71.8266L93.4349 64.5034C90.7884 62.5806 87.0661 63.1499 85.1634 65.7688L75.5322 79.025C73.6294 81.6439 74.238 85.3602 76.8846 87.283L90.2805 97.0157C92.927 98.9386 96.6492 98.3688 9 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M113.264 113.714L104.675 107.474C102.978 106.241 102.6 103.843 103.834 102.145L110.079 93.5478C111.313 91.8494 113.711 91.4685 115.408 92.7012L123.997 98.9414C125.693 100.174 126.072 102.572 124.838 104.271L118.592 112.867C117.358 114.566 114.96 114.947 113.264 113.714Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M99.0578 56.6391L106.419 61.9877C107.874 63.0446 109.929 62.7181 110.987 61.2621L116.341 53.8935C117.398 52.4378 117.074 50.3822 115.619 49.3254L108.258 43.9768C106.803 42.9201 104.748 43.2468 103.69 44.7025L98.3367 52.0711C97.2788 53.5271 97.6034 55.5825 99.0578 56.6391Z" fill="white"/>
+</g>
+<g opacity="0.117312">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M180.801 84.9299L190.533 93.096C193.039 95.1988 196.832 94.887 198.913 92.4074L209.446 79.8551C211.526 77.3753 211.178 73.6258 208.672 71.5231L195.988 60.8796C193.482 58.7769 189.729 59.0854 187.649 61.5652L179.862 70.8453C175.366 76.0238 173.782 75.2978 169.13 71.3949L159.586 63.3865C157.08 61.2837 153.327 61.592 151.247 64.0718L140.714 76.6239C138.633 79.1037 138.981 82.8534 141.487 84.9561L154.171 95.5996C156.677 97.7023 160.43 97.3936  [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M175.934 113.86L167.801 107.036C166.195 105.688 165.984 103.269 167.334 101.661L174.164 93.521C175.514 91.9128 177.932 91.7001 179.539 93.0482L187.671 99.8723C189.278 101.22 189.488 103.639 188.139 105.247L181.309 113.387C179.959 114.996 177.54 115.208 175.934 113.86Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M165.744 55.9337L172.715 61.7827C174.092 62.9385 176.165 62.7561 177.322 61.3775L183.176 54.4003C184.333 53.0219 184.153 50.9487 182.775 49.793L175.805 43.9439C174.427 42.7883 172.354 42.9709 171.198 44.3493L165.343 51.3265C164.186 52.7051 164.367 54.7781 165.744 55.9337Z" fill="white"/>
+</g>
+<g opacity="0.0725138">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M245.473 85.3127L254.612 94.1378C256.965 96.4102 260.771 96.3638 263.019 94.0354L274.402 82.2484C276.651 79.9197 276.565 76.1552 274.212 73.8827L262.301 62.3804C259.948 60.108 256.183 60.1539 253.934 62.4826L245.519 71.1968C240.673 76.0491 239.143 75.2144 234.775 70.9966L225.813 62.3419C223.46 60.0694 219.694 60.1152 217.446 62.4438L206.063 74.2306C203.815 76.5592 203.9 80.324 206.253 82.5964L218.164 94.0988C220.517 96.3712 224.283 96.325  [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M238.6 113.833L230.963 106.458C229.455 105.002 229.414 102.574 230.872 101.064L238.253 93.4199C239.712 91.9098 242.139 91.8663 243.648 93.3232L251.285 100.698C252.793 102.155 252.834 104.582 251.376 106.092L243.995 113.736C242.536 115.246 240.109 115.29 238.6 113.833Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M232.476 55.3366L239.021 61.6577C240.315 62.9067 242.395 62.8694 243.645 61.5748L249.972 55.023C251.222 53.7287 251.187 51.6479 249.894 50.3989L243.348 44.0778C242.055 42.829 239.974 42.8665 238.724 44.1609L232.397 50.7127C231.147 52.0072 231.182 54.0878 232.476 55.3366Z" fill="white"/>
+</g>
+<g opacity="0.328244">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M-24.4385 20.8359L-28.3643 32.9184C-29.3752 36.0296 -27.6651 39.4298 -24.5867 40.4301L-9.00279 45.4936C-5.92405 46.4939 -2.57804 44.7666 -1.56715 41.6555L3.54964 25.9076C4.56052 22.7964 2.86872 19.4326 -0.210024 18.4322L-11.7313 14.6887C-18.2167 12.4607 -18.1373 10.7192 -16.261 4.94464L-12.411 -6.9045C-11.4001 -10.0157 -13.0919 -13.3798 -16.1706 -14.3802L-31.7542 -19.4436C-34.8329 -20.4439 -38.1792 -18.7167 -39.1901 -15.6055L-44.3069 0.142 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M-3.19407 -3.98703L-6.006 4.66718C-6.56161 6.37718 -5.61605 8.2308 -3.90446 8.78693L4.75782 11.6015C6.46912 12.1575 8.32391 11.2138 8.87952 9.50378L11.6914 0.849572C12.247 -0.860138 11.3011 -2.71385 9.58982 -3.26989L0.927536 -6.08443C-0.784054 -6.64056 -2.63855 -5.69674 -3.19407 -3.98703Z" fill="white"/>
+</g>
+<g opacity="0.118787">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M40.1794 20.5336L35.4203 32.3128C34.1948 35.3459 35.6636 38.8571 38.6647 40.0697L53.8574 46.2079C56.8589 47.4206 60.3172 45.9309 61.5427 42.8978L67.7455 27.5453C68.971 24.5122 67.5179 21.0385 64.5165 19.8258L53.2844 15.2878C46.9702 12.6128 47.1709 10.8811 49.4454 5.25145L54.1126 -6.30027C55.338 -9.33337 53.8851 -12.8073 50.8837 -14.02L35.6913 -20.1581C32.6898 -21.3708 29.2312 -19.8812 28.0057 -16.8481L21.8029 -1.49557C20.5774 1.53753 22.03 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M11.1608 24.8447L15.1377 15.0014C15.9234 13.0568 18.1589 12.1093 20.1054 12.8958L29.9578 16.8764C31.9042 17.6628 32.8539 19.8971 32.0682 21.8418L28.0913 31.685C27.3056 33.6297 25.0704 34.5772 23.1239 33.7908L13.2715 29.8102C11.325 29.0237 10.3751 26.7893 11.1608 24.8447Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M63.1035 -2.74694L59.6948 5.69004C59.0212 7.35711 59.8352 9.27218 61.5038 9.94635L69.9486 13.3583C71.617 14.0323 73.5331 13.2203 74.2066 11.5532L77.6154 3.11624C78.2888 1.44945 77.4746 -0.465729 75.8062 -1.13979L67.3614 -4.55173C65.6928 -5.22589 63.7769 -4.41373 63.1035 -2.74694Z" fill="white"/>
+</g>
+<g opacity="0.478208">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M104.82 20.1949L99.2504 31.6134C97.8163 34.5536 99.0366 38.1588 101.946 39.5777L116.673 46.7608C119.583 48.1799 123.137 46.9351 124.571 43.9949L131.829 29.1124C133.264 26.1722 132.056 22.6056 129.147 21.1865L118.259 15.876C112.146 12.767 112.467 11.0536 115.129 5.59633L120.591 -5.60168C122.025 -8.54191 120.818 -12.1087 117.908 -13.5278L103.181 -20.7108C100.271 -22.1299 96.7172 -20.8852 95.2832 -17.945L88.0245 -3.0625C86.5905 -0.122269 87.7 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M75.571 22.4712L80.2249 12.9293C81.1443 11.0442 83.4405 10.255 85.3273 11.1753L94.878 15.8335C96.7649 16.7538 97.5564 19.0489 96.637 20.934L91.9831 30.4759C91.0637 32.361 88.7678 33.1503 86.8809 32.23L77.3302 27.5718C75.4433 26.6515 74.6516 24.3562 75.571 22.4712Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M129.312 -1.42981L125.323 6.74883C124.535 8.36486 125.213 10.332 126.831 11.121L135.017 15.1137C136.634 15.9025 138.602 15.226 139.39 13.61L143.379 5.43138C144.167 3.81562 143.489 1.84831 141.872 1.05952L133.685 -2.93319C132.068 -3.72212 130.1 -3.04557 129.312 -1.42981Z" fill="white"/>
+</g>
+<g opacity="0.307678">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M169.485 19.8211L163.132 30.8233C161.497 33.6563 162.463 37.3378 165.266 38.9562L179.456 47.1492C182.26 48.7677 185.892 47.7739 187.528 44.9409L195.807 30.601C197.442 27.7679 196.487 24.1259 193.683 22.5073L183.192 16.4501C177.312 12.9224 177.751 11.2355 180.787 5.97724L187.017 -4.81251C188.652 -7.64555 187.697 -11.2879 184.894 -12.9065L170.703 -21.0993C167.9 -22.7178 164.268 -21.7241 162.632 -18.8911L154.353 -4.55122C152.717 -1.71819 153. [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M140.149 20.0515L145.457 10.8575C146.505 9.04118 148.851 8.41409 150.669 9.46375L159.872 14.7768C161.69 15.8265 162.319 18.1713 161.27 19.9876L155.962 29.1816C154.914 30.998 152.568 31.6252 150.75 30.5755L141.548 25.2625C139.73 24.2128 139.1 21.8679 140.149 20.0515Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M195.426 -0.0425295L190.876 7.83793C189.977 9.39504 190.517 11.4047 192.075 12.3046L199.963 16.8586C201.521 17.7583 203.532 17.2208 204.431 15.6637L208.981 7.78325C209.879 6.2264 209.34 4.21654 207.781 3.31686L199.893 -1.23717C198.335 -2.13701 196.325 -1.59938 195.426 -0.0425295Z" fill="white"/>
+</g>
+<g opacity="0.300184">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M234.177 19.4142L227.073 29.9465C225.243 32.6586 225.95 36.3985 228.634 38.2085L242.218 47.3713C244.902 49.1815 248.594 48.4435 250.424 45.7314L259.683 32.004C261.512 29.292 260.813 25.5921 258.129 23.7819L248.086 17.0077C242.466 13.0784 243.022 11.4263 246.418 6.39255L253.385 -3.93637C255.214 -6.6484 254.515 -10.3485 251.831 -12.1587L238.247 -21.3214C235.563 -23.1316 231.871 -22.3937 230.041 -19.6817L220.782 -5.95423C218.953 -3.2422 219.6 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M204.896 17.5977L210.833 8.79632C212.005 7.05755 214.389 6.59561 216.129 7.76954L224.939 13.7116C226.679 14.8855 227.144 17.2685 225.971 19.0073L220.034 27.8086C218.861 29.5474 216.478 30.0095 214.738 28.8356L205.928 22.8935C204.188 21.7196 203.723 19.3364 204.896 17.5977Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M261.44 1.4086L256.352 8.95249C255.347 10.4431 255.745 12.4855 257.237 13.4919L264.787 18.5851C266.279 19.5913 268.322 19.1953 269.328 17.7047L274.416 10.1608C275.421 8.67048 275.023 6.62787 273.531 5.62168L265.98 0.528513C264.488 -0.477851 262.446 -0.0817557 261.44 1.4086Z" fill="white"/>
+</g>
+</g>
+</svg>
diff --git a/docs/_static/img/prevarrow.svg b/docs/_static/img/prevarrow.svg
new file mode 100644
index 0000000..d41c48f
--- /dev/null
+++ b/docs/_static/img/prevarrow.svg
@@ -0,0 +1,4 @@
+<svg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11.843 3.5H1.34302" stroke="#3C88B5"/>
+<path d="M3.99988 0.656854L1 3.65674L3.99988 6.65662" stroke="#3C88B5"/>
+</svg>
diff --git a/docs/_static/img/right.svg b/docs/_static/img/right.svg
new file mode 100644
index 0000000..50cc681
--- /dev/null
+++ b/docs/_static/img/right.svg
@@ -0,0 +1,3 @@
+<svg width="10" height="24" viewBox="0 0 20 34" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.34651 0.331328C2.96479 -0.0503926 2.349 -0.0602413 1.95527 0.309077L0.347827 1.81684C-0.0633254 2.2025 -0.0746151 2.85161 0.322878 3.25133L13.6433 16.6465L0.305306 29.8149C-0.0864682 30.2017 -0.091912 30.8324 0.293126 31.2259L1.95464 32.9239C2.34387 33.3217 2.98297 33.3252 3.3765 32.9317L19.6617 16.6465L3.34651 0.331328Z" fill="#ffffff"/>
+</svg>
diff --git a/docs/_static/img/rightangle.svg b/docs/_static/img/rightangle.svg
new file mode 100644
index 0000000..0703e3c
--- /dev/null
+++ b/docs/_static/img/rightangle.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M6.15708 2.15689L10.1569 6.15674L6.15708 10.1566" stroke="#252D5A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/docs/_static/img/show.svg b/docs/_static/img/show.svg
new file mode 100644
index 0000000..a6e7da3
--- /dev/null
+++ b/docs/_static/img/show.svg
@@ -0,0 +1,4 @@
+<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 0V8" stroke="#252D5A"/>
+<path d="M8 4L-4.17233e-07 4" stroke="#252D5A"/>
+</svg>
diff --git a/docs/_static/img/source.svg b/docs/_static/img/source.svg
new file mode 100644
index 0000000..98f2a63
--- /dev/null
+++ b/docs/_static/img/source.svg
@@ -0,0 +1,5 @@
+<svg width="29" height="20" viewBox="0 0 29 20" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="1" y="1" width="27" height="18" stroke="#0379B6"/>
+<path d="M6.15685 5.99988L10.3137 10.1567L6.15685 14.3136" stroke="#0379B6"/>
+<path d="M12.4029 14.1985H19.0164" stroke="#0379B6"/>
+</svg>
diff --git a/docs/_static/js/tlcpack_theme.js b/docs/_static/js/tlcpack_theme.js
new file mode 100644
index 0000000..2f1567f
--- /dev/null
+++ b/docs/_static/js/tlcpack_theme.js
@@ -0,0 +1,42 @@
+$(document).ready(function () {
+    $('#menuBtn').click(function () {
+      $('#headMenu').addClass('opne');
+      $('body').addClass('scroll-hide');
+    });
+    $('#closeHeadMenu').click(function () {
+      $('#headMenu').removeClass('opne');
+      $('body').removeClass('scroll-hide');
+    });
+    $('#button').on('click', function(e) {
+      e.preventDefault();
+      $('html, body').animate({scrollTop:0}, '300');
+    });
+  });
+$(window).scroll(function () {
+    var sticky = $('.wy-nav-side'),
+      scroll = $(window).scrollTop();
+  
+    if (scroll >= 40) {
+      sticky.removeClass('fixed');
+    }
+    else {
+      sticky.addClass('fixed');
+    }
+});
+
+//back to top 
+
+
+$(window).scroll(function() {
+  var btn = $('#button');
+  if ($(window).scrollTop() >  144) {
+    btn.addClass('show');
+    $(".header").addClass('navigation-hide');
+    $(".wy-nav-top").addClass('navigation-hide');
+  } else {
+    btn.removeClass('show');
+    $(".header").removeClass('navigation-hide');
+    $(".wy-nav-top").removeClass('navigation-hide');
+  }
+});
+
diff --git a/docs/api/doxygen/algorithm_8h.html b/docs/api/doxygen/algorithm_8h.html
index 3713bcc..05857bd 100644
--- a/docs/api/doxygen/algorithm_8h.html
+++ b/docs/api/doxygen/algorithm_8h.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </div><div class="textblock"><div class="dynheader">
 Include dependency graph for algorithm.h:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="algorithm_8h__incl.svg" width="5031" height="1440"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="algorithm_8h__incl.svg" width="5030" height="1440"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 </div>
diff --git a/docs/api/doxygen/algorithm_8h__incl.svg b/docs/api/doxygen/algorithm_8h__incl.svg
index f448428..0d2ac55 100644
--- a/docs/api/doxygen/algorithm_8h__incl.svg
+++ b/docs/api/doxygen/algorithm_8h__incl.svg
@@ -4,16 +4,16 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: include/tvm/relay/attrs/algorithm.h Pages: 1 -->
-<svg width="3773pt" height="1080pt"
- viewBox="0.00 0.00 3772.87 1080.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3772pt" height="1080pt"
+ viewBox="0.00 0.00 3771.69 1080.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1076)">
 <title>include/tvm/relay/attrs/algorithm.h</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-1076 3768.87,-1076 3768.87,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-1076 3767.69,-1076 3767.69,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node"><title>Node1</title>
-<polygon fill="#bfbfbf" stroke="black" points="1301,-1041.5 1301,-1071.5 1425,-1071.5 1425,-1041.5 1301,-1041.5"/>
-<text text-anchor="start" x="1309" y="-1059.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="1363" y="-1048.5" font-family="Helvetica,sans-Serif" font-size="10.00">/algorithm.h</text>
+<polygon fill="#bfbfbf" stroke="black" points="826,-1041.5 826,-1071.5 950,-1071.5 950,-1041.5 826,-1041.5"/>
+<text text-anchor="start" x="834" y="-1059.5" font-family="Helvetica,sans-Serif" font-size="10.00">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="888" y="-1048.5" font-family="Helvetica,sans-Serif" font-size="10.00">/algorithm.h</text>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node"><title>Node2</title>
@@ -25,44 +25,44 @@
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge1" class="edge"><title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M1372.96,-1041.33C1382.11,-1026.4 1392.76,-1002.64 1382,-985 1278.93,-815.963 1089.07,-950.037 986,-781 975.895,-764.427 990.106,-744.881 1003.54,-731.582"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1006.19,-733.896 1011.17,-724.543 1001.45,-728.751 1006.19,-733.896"/>
+<path fill="none" stroke="midnightblue" d="M825.875,-1047.56C764.584,-1035.83 680,-1007.43 680,-940 680,-940 680,-940 680,-826 680,-765.296 877.737,-733.308 972.5,-721.464"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="972.933,-724.938 982.434,-720.25 972.083,-717.989 972.933,-724.938"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node"><title>Node13</title>
-<polygon fill="white" stroke="#bfbfbf" points="1687,-6 1687,-25 1731,-25 1731,-6 1687,-6"/>
-<text text-anchor="middle" x="1709" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
+<polygon fill="white" stroke="#bfbfbf" points="1818,-6 1818,-25 1862,-25 1862,-6 1818,-6"/>
+<text text-anchor="middle" x="1840" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">string</text>
 </g>
 <!-- Node1&#45;&gt;Node13 -->
-<g id="edge223" class="edge"><title>Node1&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1300.87,-1053.38C1038.91,-1044.06 38,-1004.22 38,-940 38,-940 38,-940 38,-311 38,-123.193 202.788,-119.867 383,-67 510.535,-29.5863 1485.65,-18.5889 1676.62,-16.7846"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1676.87,-20.2825 1686.84,-16.6898 1676.81,-13.2828 1676.87,-20.2825"/>
+<g id="edge222" class="edge"><title>Node1&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M825.842,-1053.59C629.893,-1046.76 38,-1019.54 38,-940 38,-940 38,-940 38,-372.5 38,-175.872 165.435,-106.769 358,-67 504.369,-36.772 1604.65,-19.8304 1807.8,-16.9438"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1807.88,-20.4431 1817.83,-16.8024 1807.79,-13.4438 1807.88,-20.4431"/>
 </g>
 <!-- Node34 -->
 <g id="node34" class="node"><title>Node34</title>
 <g id="a_node34"><a xlink:href="base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
-<polygon fill="white" stroke="black" points="1486.5,-873.5 1486.5,-892.5 1583.5,-892.5 1583.5,-873.5 1486.5,-873.5"/>
-<text text-anchor="middle" x="1535" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/relay/base.h</text>
+<polygon fill="white" stroke="black" points="2598.5,-873.5 2598.5,-892.5 2695.5,-892.5 2695.5,-873.5 2598.5,-873.5"/>
+<text text-anchor="middle" x="2647" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/relay/base.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node34 -->
-<g id="edge127" class="edge"><title>Node1&#45;&gt;Node34</title>
-<path fill="none" stroke="midnightblue" d="M1380.32,-1041.47C1404.19,-1021.81 1448.11,-984.489 1482,-949 1496.71,-933.6 1511.91,-914.582 1522.24,-901.105"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1525.3,-902.859 1528.55,-892.773 1519.72,-898.634 1525.3,-902.859"/>
+<g id="edge126" class="edge"><title>Node1&#45;&gt;Node34</title>
+<path fill="none" stroke="midnightblue" d="M950.261,-1053.35C1203.38,-1044.31 2155.77,-1007.04 2451,-949 2511.71,-937.065 2579.64,-911.682 2617.46,-896.406"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2618.92,-899.591 2626.86,-892.57 2616.28,-893.111 2618.92,-899.591"/>
 </g>
 <!-- Node38 -->
 <g id="node38" class="node"><title>Node38</title>
 <g id="a_node38"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="white" stroke="black" points="1279,-985.5 1279,-1004.5 1373,-1004.5 1373,-985.5 1279,-985.5"/>
-<text text-anchor="middle" x="1326" y="-992.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/relay/expr.h</text>
+<polygon fill="white" stroke="black" points="1050,-985.5 1050,-1004.5 1144,-1004.5 1144,-985.5 1050,-985.5"/>
+<text text-anchor="middle" x="1097" y="-992.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/relay/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node38 -->
-<g id="edge155" class="edge"><title>Node1&#45;&gt;Node38</title>
-<path fill="none" stroke="midnightblue" d="M1354.23,-1041.4C1349.02,-1033.02 1342.37,-1022.33 1336.83,-1013.42"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1339.64,-1011.3 1331.38,-1004.66 1333.69,-1015 1339.64,-1011.3"/>
+<g id="edge154" class="edge"><title>Node1&#45;&gt;Node38</title>
+<path fill="none" stroke="midnightblue" d="M937.265,-1041.47C973.952,-1031.03 1023.38,-1016.96 1057.49,-1007.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1058.46,-1010.61 1067.12,-1004.51 1056.54,-1003.88 1058.46,-1010.61"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node"><title>Node3</title>
@@ -77,1410 +77,1405 @@
 <!-- Node4 -->
 <g id="node4" class="node"><title>Node4</title>
 <g id="a_node4"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="white" stroke="black" points="2887.5,-649.5 2887.5,-668.5 2964.5,-668.5 2964.5,-649.5 2887.5,-649.5"/>
-<text text-anchor="middle" x="2926" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
+<polygon fill="white" stroke="black" points="2358.5,-649.5 2358.5,-668.5 2435.5,-668.5 2435.5,-649.5 2358.5,-649.5"/>
+<text text-anchor="middle" x="2397" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/expr.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node4 -->
 <g id="edge3" class="edge"><title>Node2&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M1061.77,-712.872C1306.55,-705.93 2607.23,-669.041 2876.99,-661.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2877.35,-664.881 2887.25,-661.099 2877.15,-657.884 2877.35,-664.881"/>
+<path fill="none" stroke="midnightblue" d="M1061.67,-712.442C1258.79,-704.701 2132.05,-670.405 2348.39,-661.909"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2348.63,-665.402 2358.48,-661.513 2348.35,-658.408 2348.63,-665.402"/>
 </g>
 <!-- Node2&#45;&gt;Node13 -->
-<g id="edge122" class="edge"><title>Node2&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1039.5,-705.465C1052.79,-697.917 1070.08,-685.533 1078,-669 1081.84,-660.984 1081.06,-657.346 1078,-649 986.11,-398.359 599.426,-311.956 788,-123 815.355,-95.5893 1093.57,-71.8026 1132,-67 1338.9,-41.1418 1589.17,-24.0418 1676.82,-18.4765"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1677.17,-21.9619 1686.93,-17.8405 1676.73,-14.9757 1677.17,-21.9619"/>
+<g id="edge121" class="edge"><title>Node2&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1039,-705.37C1060.94,-693.105 1094.43,-669.808 1078,-649 1035.24,-594.853 986.753,-647.489 927,-613 764.884,-519.428 785.888,-422.915 643,-302 577.583,-246.643 521.357,-274.056 480,-199 475.71,-191.215 474.973,-186.331 480,-179 557.913,-65.3874 1609.18,-24.3073 1807.76,-17.5408"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1807.97,-21.0359 1817.85,-17.2019 1807.74,-14.0399 1807.97,-21.0359"/>
 </g>
 <!-- Node14 -->
 <g id="node14" class="node"><title>Node14</title>
-<polygon fill="white" stroke="#bfbfbf" points="3062,-6 3062,-25 3130,-25 3130,-6 3062,-6"/>
-<text text-anchor="middle" x="3096" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
+<polygon fill="white" stroke="#bfbfbf" points="3217,-6 3217,-25 3285,-25 3285,-6 3217,-6"/>
+<text text-anchor="middle" x="3251" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">type_traits</text>
 </g>
 <!-- Node2&#45;&gt;Node14 -->
-<g id="edge123" class="edge"><title>Node2&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1061.88,-713.473C1331.18,-709.862 2875.97,-688.363 2973,-669 3040.34,-655.561 3053.14,-638.236 3117,-613 3243.41,-563.051 3650,-448.917 3650,-313 3650,-313 3650,-313 3650,-249.5 3650,-139.148 3271.78,-52.0851 3140.36,-25.163"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3140.73,-21.6677 3130.24,-23.1088 3139.34,-28.5278 3140.73,-21.6677"/>
+<g id="edge122" class="edge"><title>Node2&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1061.88,-713.863C1303,-712.741 2568.18,-702.605 2944,-613 3152.07,-563.391 3268.31,-617.348 3395,-445 3446.93,-374.35 3542.62,-271.824 3396,-67 3373.22,-35.1774 3328.88,-23.2457 3295.2,-18.8566"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3295.45,-15.3632 3285.13,-17.7229 3294.67,-22.3193 3295.45,-15.3632"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node"><title>Node15</title>
-<polygon fill="white" stroke="#bfbfbf" points="587,-6 587,-25 629,-25 629,-6 587,-6"/>
-<text text-anchor="middle" x="608" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
+<polygon fill="white" stroke="#bfbfbf" points="955,-6 955,-25 997,-25 997,-6 955,-6"/>
+<text text-anchor="middle" x="976" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">utility</text>
 </g>
 <!-- Node2&#45;&gt;Node15 -->
-<g id="edge125" class="edge"><title>Node2&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M982.786,-705.419C882.017,-682.351 607.584,-613.063 403,-501 331.582,-461.88 306.386,-454.496 258,-389 238.158,-362.142 237.676,-352.464 224,-322 187.722,-241.19 172.086,-185.355 235,-123 330.998,-27.8556 505.727,-16.4361 576.74,-15.9425"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="576.831,-19.4424 586.831,-15.943 576.832,-12.4424 576.831,-19.4424"/>
+<g id="edge124" class="edge"><title>Node2&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M982.473,-705.735C857.341,-678.141 462.398,-579.962 195,-389 111.138,-329.11 76,-293.052 76,-190 76,-190 76,-190 76,-132 76,-66.2072 145.421,-83.9246 209,-67 351.378,-29.0992 818.788,-19.0094 944.584,-16.9518"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="944.753,-20.4497 954.696,-16.7919 944.642,-13.4505 944.753,-20.4497"/>
 </g>
 <!-- Node18 -->
 <g id="node18" class="node"><title>Node18</title>
-<polygon fill="white" stroke="#bfbfbf" points="941.5,-123.5 941.5,-142.5 1034.5,-142.5 1034.5,-123.5 941.5,-123.5"/>
-<text text-anchor="middle" x="988" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
+<polygon fill="white" stroke="#bfbfbf" points="903.5,-123.5 903.5,-142.5 996.5,-142.5 996.5,-123.5 903.5,-123.5"/>
+<text text-anchor="middle" x="950" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">unordered_map</text>
 </g>
 <!-- Node2&#45;&gt;Node18 -->
-<g id="edge124" class="edge"><title>Node2&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1059.1,-705.458C1078.44,-698.918 1100.43,-687.724 1112,-669 1116.67,-661.439 1114.34,-657.575 1112,-649 1093.34,-580.671 950,-445.331 950,-374.5 950,-374.5 950,-374.5 950,-249.5 950,-213.254 967.095,-173.671 978.353,-151.533"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="981.461,-153.141 983.032,-142.663 975.27,-149.875 981.461,-153.141"/>
+<g id="edge123" class="edge"><title>Node2&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1005.41,-705.461C991.2,-697.512 970.89,-684.566 957,-669 938.202,-647.932 933.873,-640.386 927,-613 924.836,-604.379 926.354,-601.865 927,-593 932.125,-522.664 950,-506.523 950,-436 950,-436 950,-436 950,-372.5 950,-295.138 939.114,-276.299 936,-199 935.642,-190.118 934.665,-187.788 936,-179 937.368,-170.001 940.19,-160.325 942.945,-152.26"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="946.265,-153.372 946.4,-142.778 939.688,-150.976 946.265,-153.372"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node"><title>Node19</title>
-<polygon fill="white" stroke="#bfbfbf" points="797.5,-123.5 797.5,-142.5 844.5,-142.5 844.5,-123.5 797.5,-123.5"/>
-<text text-anchor="middle" x="821" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
+<polygon fill="white" stroke="#bfbfbf" points="736.5,-123.5 736.5,-142.5 783.5,-142.5 783.5,-123.5 736.5,-123.5"/>
+<text text-anchor="middle" x="760" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">vector</text>
 </g>
 <!-- Node2&#45;&gt;Node19 -->
-<g id="edge126" class="edge"><title>Node2&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1003.89,-705.447C989.647,-697.815 970.367,-685.326 959,-669 838.806,-496.372 823.269,-226.921 821.285,-153.197"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="824.775,-152.679 821.063,-142.755 817.776,-152.827 824.775,-152.679"/>
+<g id="edge125" class="edge"><title>Node2&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M994.685,-705.414C976.307,-698.343 952.816,-686.587 938,-669 799.113,-504.137 767.456,-227.017 761.32,-152.771"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="764.798,-152.348 760.542,-142.645 757.819,-152.884 764.798,-152.348"/>
 </g>
 <!-- Node20 -->
 <g id="node20" class="node"><title>Node20</title>
 <g id="a_node20"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type&#45;erased function used across TVM API. ">
-<polygon fill="white" stroke="black" points="1410.5,-235.5 1410.5,-265.5 1523.5,-265.5 1523.5,-235.5 1410.5,-235.5"/>
-<text text-anchor="start" x="1418.5" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/packed</text>
-<text text-anchor="middle" x="1467" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
+<polygon fill="white" stroke="black" points="1412.5,-235.5 1412.5,-265.5 1525.5,-265.5 1525.5,-235.5 1412.5,-235.5"/>
+<text text-anchor="start" x="1420.5" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/packed</text>
+<text text-anchor="middle" x="1469" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">_func.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node20 -->
-<g id="edge120" class="edge"><title>Node2&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1061.83,-708.892C1117.54,-699.265 1212,-672.798 1212,-604 1212,-604 1212,-604 1212,-490 1212,-376.876 1347.51,-301.94 1420.96,-269.631"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1422.67,-272.709 1430.46,-265.537 1419.9,-266.28 1422.67,-272.709"/>
+<g id="edge119" class="edge"><title>Node2&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1045.84,-705.456C1065.02,-697.829 1091.97,-685.342 1112,-669 1270.15,-539.999 1237.79,-440.169 1388,-302 1401.13,-289.922 1417.54,-279.072 1432.15,-270.552"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1433.99,-273.532 1440.97,-265.559 1430.55,-267.44 1433.99,-273.532"/>
 </g>
 <!-- Node24 -->
 <g id="node24" class="node"><title>Node24</title>
-<polygon fill="white" stroke="#bfbfbf" points="1016.5,-179.5 1016.5,-198.5 1079.5,-198.5 1079.5,-179.5 1016.5,-179.5"/>
-<text text-anchor="middle" x="1048" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
+<polygon fill="white" stroke="#bfbfbf" points="1054.5,-179.5 1054.5,-198.5 1117.5,-198.5 1117.5,-179.5 1054.5,-179.5"/>
+<text text-anchor="middle" x="1086" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">functional</text>
 </g>
 <!-- Node2&#45;&gt;Node24 -->
-<g id="edge121" class="edge"><title>Node2&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M1003.92,-705.39C990.438,-697.872 973.028,-685.565 965,-669 961.124,-661.001 963.736,-657.798 965,-649 968.031,-627.91 987.383,-577.8 992,-557 1021.28,-425.105 1040.16,-263.144 1046.03,-208.787"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1049.54,-208.928 1047.12,-198.613 1042.58,-208.187 1049.54,-208.928"/>
+<g id="edge120" class="edge"><title>Node2&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1004.54,-705.34C982.461,-693.227 949.142,-670.314 965,-649 998.238,-604.327 1046.92,-653.628 1085,-613 1159.39,-533.628 1140,-483.282 1140,-374.5 1140,-374.5 1140,-374.5 1140,-311 1140,-270.766 1114.79,-229.028 1098.82,-206.622"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1101.59,-204.482 1092.84,-198.516 1095.96,-208.64 1101.59,-204.482"/>
 </g>
 <!-- Node28 -->
 <g id="node28" class="node"><title>Node28</title>
 <g id="a_node28"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="white" stroke="black" points="2049.5,-358.5 2049.5,-388.5 2160.5,-388.5 2160.5,-358.5 2049.5,-358.5"/>
-<text text-anchor="start" x="2057.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
-<text text-anchor="middle" x="2105" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
+<polygon fill="white" stroke="black" points="2029.5,-358.5 2029.5,-388.5 2140.5,-388.5 2140.5,-358.5 2029.5,-358.5"/>
+<text text-anchor="start" x="2037.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="2085" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">_equal.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node28 -->
-<g id="edge118" class="edge"><title>Node2&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M1061.83,-710.771C1109.06,-705.933 1189.52,-694.485 1254,-669 1356.52,-628.481 1362.67,-580.408 1464,-537 1664.47,-451.125 1920.38,-403.219 2039.06,-384.218"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2039.76,-387.651 2049.09,-382.63 2038.66,-380.738 2039.76,-387.651"/>
+<g id="edge117" class="edge"><title>Node2&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M1061.67,-714.214C1221.66,-714.032 1811,-702.851 1811,-548 1811,-548 1811,-548 1811,-490 1811,-400.023 1938.01,-379.027 2019.08,-374.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2019.39,-378.28 2029.22,-374.334 2019.07,-371.287 2019.39,-378.28"/>
 </g>
 <!-- Node30 -->
 <g id="node30" class="node"><title>Node30</title>
 <g id="a_node30"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
-<polygon fill="white" stroke="black" points="1544.5,-358.5 1544.5,-388.5 1655.5,-388.5 1655.5,-358.5 1544.5,-358.5"/>
-<text text-anchor="start" x="1552.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
-<text text-anchor="middle" x="1600" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
+<polygon fill="white" stroke="black" points="1633.5,-358.5 1633.5,-388.5 1744.5,-388.5 1744.5,-358.5 1633.5,-358.5"/>
+<text text-anchor="start" x="1641.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/structural</text>
+<text text-anchor="middle" x="1689" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">_hash.h</text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node30 -->
-<g id="edge119" class="edge"><title>Node2&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M1061.67,-712.854C1105,-709.955 1175,-700.312 1226,-669 1345.49,-595.632 1308.97,-502.233 1426,-425 1458.38,-403.633 1499.94,-391.133 1534.33,-383.916"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1535.16,-387.318 1544.28,-381.929 1533.79,-380.453 1535.16,-387.318"/>
+<g id="edge118" class="edge"><title>Node2&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M1061.7,-713.241C1115.39,-710.915 1213.15,-702.033 1289,-669 1452.33,-597.872 1460.3,-526.063 1607,-425 1622.62,-414.239 1640.5,-403.098 1655.57,-394.026"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1657.75,-396.8 1664.54,-388.668 1654.16,-390.79 1657.75,-396.8"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node"><title>Node5</title>
 <g id="a_node5"><a xlink:href="span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="white" stroke="black" points="2217,-537.5 2217,-556.5 2297,-556.5 2297,-537.5 2217,-537.5"/>
-<text text-anchor="middle" x="2257" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/span.h</text>
+<polygon fill="white" stroke="black" points="2379,-537.5 2379,-556.5 2459,-556.5 2459,-537.5 2379,-537.5"/>
+<text text-anchor="middle" x="2419" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/span.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node5 -->
 <g id="edge4" class="edge"><title>Node4&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M2887.14,-651.61C2772.42,-632.748 2435.28,-577.314 2307.17,-556.249"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2307.67,-552.784 2297.23,-554.615 2306.53,-559.691 2307.67,-552.784"/>
+<path fill="none" stroke="midnightblue" d="M2398.73,-649.368C2402.28,-631.617 2410.47,-590.666 2415.28,-566.597"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2418.75,-567.084 2417.28,-556.591 2411.89,-565.711 2418.75,-567.084"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node"><title>Node6</title>
 <g id="a_node6"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="2482,-481.5 2482,-500.5 2580,-500.5 2580,-481.5 2482,-481.5"/>
-<text text-anchor="middle" x="2531" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
+<polygon fill="white" stroke="black" points="2220,-481.5 2220,-500.5 2318,-500.5 2318,-481.5 2220,-481.5"/>
+<text text-anchor="middle" x="2269" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/node.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node6 -->
-<g id="edge112" class="edge"><title>Node4&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M2921.81,-649.456C2910.17,-626.763 2875.07,-564.822 2826,-537 2786.78,-514.762 2664.51,-501.961 2590.26,-496.045"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2590.36,-492.542 2580.12,-495.255 2589.82,-499.521 2590.36,-492.542"/>
+<g id="edge111" class="edge"><title>Node4&#45;&gt;Node6</title>
+<path fill="none" stroke="midnightblue" d="M2390.12,-649.075C2369.62,-622.493 2308.74,-543.538 2281.93,-508.763"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2284.48,-506.35 2275.61,-500.568 2278.94,-510.624 2284.48,-506.35"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node"><title>Node7</title>
 <g id="a_node7"><a xlink:href="node_2container_8h.html" target="_top" xlink:title="Array/Map container in the DSL graph. ">
-<polygon fill="white" stroke="black" points="1865.5,-302.5 1865.5,-321.5 1984.5,-321.5 1984.5,-302.5 1865.5,-302.5"/>
-<text text-anchor="middle" x="1925" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/container.h</text>
+<polygon fill="white" stroke="black" points="1827.5,-302.5 1827.5,-321.5 1946.5,-321.5 1946.5,-302.5 1827.5,-302.5"/>
+<text text-anchor="middle" x="1887" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/container.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node7 -->
-<g id="edge111" class="edge"><title>Node4&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M2887.06,-655.395C2755.93,-646.181 2331.69,-612.658 2208,-557 2084.88,-501.597 1974.9,-375.006 1938.07,-329.596"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1940.68,-327.258 1931.7,-321.641 1935.22,-331.634 1940.68,-327.258"/>
+<g id="edge110" class="edge"><title>Node4&#45;&gt;Node7</title>
+<path fill="none" stroke="midnightblue" d="M2382.03,-649.384C2326.67,-617.33 2128.92,-501.041 1977,-389 1950.55,-369.493 1921.84,-344.528 1904.13,-328.644"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1906.15,-325.748 1896.38,-321.64 1901.46,-330.942 1906.15,-325.748"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node"><title>Node11</title>
 <g id="a_node11"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="white" stroke="red" points="2385.5,-67.5 2385.5,-86.5 2502.5,-86.5 2502.5,-67.5 2385.5,-67.5"/>
-<text text-anchor="middle" x="2444" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
+<polygon fill="white" stroke="red" points="2315.5,-67.5 2315.5,-86.5 2432.5,-86.5 2432.5,-67.5 2315.5,-67.5"/>
+<text text-anchor="middle" x="2374" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/object.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node11 -->
-<g id="edge113" class="edge"><title>Node4&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M2944.93,-649.444C2962.3,-641.208 2988.38,-627.842 3009,-613 3038.61,-591.691 3043.24,-582.826 3069,-557 3197.83,-427.838 3338.25,-325.099 3229,-179 3176.28,-108.497 3125.6,-138.852 3039,-123 2939.81,-104.843 2647.39,-88.2776 2512.99,-81.3836"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2512.98,-77.8786 2502.81,-80.8646 2512.62,-84.8695 2512.98,-77.8786"/>
+<g id="edge112" class="edge"><title>Node4&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M2435.59,-656.97C2534.17,-653.925 2793.13,-643.204 2873,-613 3017,-558.548 3178.64,-345.782 3209,-266 3213.62,-253.87 3214.76,-188.295 3208,-179 3162.94,-117.053 3120.09,-138.139 3045,-123 2931.34,-100.086 2590.17,-85.641 2442.91,-80.316"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2442.77,-76.8087 2432.65,-79.9484 2442.52,-83.8042 2442.77,-76.8087"/>
 </g>
 <!-- Node4&#45;&gt;Node13 -->
-<g id="edge116" class="edge"><title>Node4&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2926,-649.442C2926,-630.936 2926,-585.812 2926,-548 2926,-548 2926,-548 2926,-490 2926,-317.106 3170.89,-251.307 3055,-123 3002.15,-64.4836 2779.56,-101.203 2702,-87 2668.07,-80.7859 2661.07,-72.4205 2627,-67 2450.9,-38.9823 1882.92,-21.4034 1741.25,-17.3838"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1741.15,-13.8798 1731.06,-17.0973 1740.95,-20.877 1741.15,-13.8798"/>
+<g id="edge115" class="edge"><title>Node4&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M2435.55,-651.424C2557.69,-628.586 2923.63,-543.747 2847,-358 2767.87,-166.213 2679.64,-130.105 2482,-67 2366.57,-30.1437 1986.35,-19.4963 1872.49,-17.098"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1872.4,-13.5953 1862.33,-16.8911 1872.25,-20.5939 1872.4,-13.5953"/>
 </g>
 <!-- Node4&#45;&gt;Node14 -->
-<g id="edge117" class="edge"><title>Node4&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M2963.85,-649.464C3044.16,-629.239 3231.63,-570.399 3322,-445 3377.45,-368.05 3396.81,-322.414 3360,-235 3314.83,-127.744 3184.55,-56.8252 3125.6,-29.3348"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3127,-26.1239 3116.45,-25.1486 3124.08,-32.49 3127,-26.1239"/>
+<g id="edge116" class="edge"><title>Node4&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M2435.65,-656.965C2539.13,-653.819 2820.51,-642.703 2908,-613 2951.9,-598.097 2959.11,-585.08 2996,-557 3193.3,-406.805 3269.91,-369.867 3370,-143 3383.69,-111.965 3396.01,-95.0952 3377,-67 3358.83,-40.1413 3323.79,-27.5659 3295.26,-21.6789"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3295.56,-18.1749 3285.09,-19.7986 3294.29,-25.0583 3295.56,-18.1749"/>
 </g>
 <!-- Node16 -->
 <g id="node16" class="node"><title>Node16</title>
-<polygon fill="white" stroke="#bfbfbf" points="2968,-123.5 2968,-142.5 3030,-142.5 3030,-123.5 2968,-123.5"/>
-<text text-anchor="middle" x="2999" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
+<polygon fill="white" stroke="#bfbfbf" points="2744,-123.5 2744,-142.5 2806,-142.5 2806,-123.5 2744,-123.5"/>
+<text text-anchor="middle" x="2775" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">algorithm</text>
 </g>
 <!-- Node4&#45;&gt;Node16 -->
-<g id="edge114" class="edge"><title>Node4&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M2937.78,-649.341C2978.29,-618.864 3112.7,-511.748 3174,-389 3212.51,-311.877 3204.29,-284.764 3213,-199 3213.9,-190.157 3218.6,-185.902 3213,-179 3191.7,-152.76 3096.54,-141.253 3040.54,-136.678"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3040.47,-133.162 3030.23,-135.878 3039.93,-140.141 3040.47,-133.162"/>
+<g id="edge113" class="edge"><title>Node4&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M2435.56,-656.155C2527.92,-651.393 2759.59,-637.331 2833,-613 2879.16,-597.7 2893.16,-591.927 2927,-557 2991.21,-490.717 3159.6,-248.601 3099,-179 3089.78,-168.413 2901.47,-147.33 2816.26,-138.285"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2816.46,-134.787 2806.15,-137.217 2815.73,-141.748 2816.46,-134.787"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node"><title>Node25</title>
-<polygon fill="white" stroke="#bfbfbf" points="3162,-179.5 3162,-198.5 3204,-198.5 3204,-179.5 3162,-179.5"/>
-<text text-anchor="middle" x="3183" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
+<polygon fill="white" stroke="#bfbfbf" points="3048,-179.5 3048,-198.5 3090,-198.5 3090,-179.5 3048,-179.5"/>
+<text text-anchor="middle" x="3069" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">limits</text>
 </g>
 <!-- Node4&#45;&gt;Node25 -->
-<g id="edge115" class="edge"><title>Node4&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M2931.84,-649.332C2950.86,-620.866 3012.27,-527.358 3054,-445 3099.74,-354.729 3087.57,-320.314 3142,-235 3148.81,-224.332 3158.21,-213.799 3166.3,-205.608"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3168.82,-208.04 3173.52,-198.545 3163.93,-203.035 3168.82,-208.04"/>
+<g id="edge114" class="edge"><title>Node4&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M2435.69,-657.571C2506.26,-655.899 2660.03,-648.138 2784,-613 2840.62,-596.951 2862.27,-598.505 2904,-557 2943.04,-518.164 2940.66,-497.59 2957,-445 2985.05,-354.709 2937.3,-312.819 2991,-235 3002.36,-218.543 3021.83,-207.297 3038.48,-200.164"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3039.88,-203.377 3047.88,-196.431 3037.29,-196.872 3039.88,-203.377"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node"><title>Node33</title>
 <g id="a_node33"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
-<polygon fill="white" stroke="black" points="1886.5,-593.5 1886.5,-612.5 1963.5,-612.5 1963.5,-593.5 1886.5,-593.5"/>
-<text text-anchor="middle" x="1925" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
+<polygon fill="white" stroke="black" points="2099.5,-593.5 2099.5,-612.5 2176.5,-612.5 2176.5,-593.5 2099.5,-593.5"/>
+<text text-anchor="middle" x="2138" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/ir/type.h</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node33 -->
-<g id="edge104" class="edge"><title>Node4&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M2887.49,-657.837C2758.47,-656.937 2329.79,-651.077 1978,-613 1976.7,-612.859 1975.37,-612.706 1974.04,-612.543"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1974.09,-609.018 1963.71,-611.129 1973.14,-615.953 1974.09,-609.018"/>
+<g id="edge103" class="edge"><title>Node4&#45;&gt;Node33</title>
+<path fill="none" stroke="midnightblue" d="M2358.23,-649.916C2312.41,-640.364 2236.16,-624.466 2186.49,-614.109"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2187.12,-610.666 2176.62,-612.051 2185.69,-617.519 2187.12,-610.666"/>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge5" class="edge"><title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M2297.14,-538.09C2344.89,-528.678 2424.81,-512.929 2477.71,-502.502"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2478.45,-505.923 2487.59,-500.556 2477.1,-499.056 2478.45,-505.923"/>
+<path fill="none" stroke="midnightblue" d="M2395.23,-537.444C2370.11,-528.399 2330.29,-514.064 2302.1,-503.916"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2303.25,-500.611 2292.66,-500.516 2300.88,-507.197 2303.25,-500.611"/>
 </g>
 <!-- Node5&#45;&gt;Node11 -->
-<g id="edge102" class="edge"><title>Node5&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M2297.32,-543.256C2399.21,-535.418 2662.83,-509.217 2717,-445 2811.49,-332.982 2884.67,-233.141 2788,-123 2770.15,-102.663 2607.85,-88.704 2512.7,-82.1896"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2512.79,-78.6878 2502.57,-81.5072 2512.32,-85.6719 2512.79,-78.6878"/>
+<g id="edge101" class="edge"><title>Node5&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M2459.04,-538.045C2505.39,-526.462 2579.61,-500.024 2613,-445 2633.06,-411.943 2620.42,-395.948 2613,-358 2590.84,-244.636 2589.97,-197.86 2502,-123 2482.61,-106.503 2456.79,-95.9152 2433.41,-89.1872"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2434.14,-85.7575 2423.57,-86.5342 2432.31,-92.5163 2434.14,-85.7575"/>
 </g>
 <!-- Node5&#45;&gt;Node13 -->
-<g id="edge103" class="edge"><title>Node5&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2261.24,-537.266C2279.74,-497.801 2349.33,-333.766 2279,-235 2250.63,-195.156 2216.31,-225.192 2175,-199 2105.72,-155.075 2119.03,-104.356 2046,-67 1993.04,-39.9092 1815.31,-24.2169 1741.53,-18.733"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1741.65,-15.2329 1731.43,-17.9979 1741.15,-22.2144 1741.65,-15.2329"/>
+<g id="edge102" class="edge"><title>Node5&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M2459.12,-541.21C2493.51,-535.678 2543.33,-524.172 2581,-501 2665.14,-449.234 2861.85,-209.976 2815,-123 2793.54,-83.1717 2772.95,-81.2144 2730,-67 2566.22,-12.7952 2012.72,-14.7011 1872.5,-16.0972"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1872.36,-12.5984 1862.39,-16.2043 1872.43,-19.598 1872.36,-12.5984"/>
 </g>
 <!-- Node6&#45;&gt;Node7 -->
 <g id="edge6" class="edge"><title>Node6&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M2481.73,-487.125C2390.66,-480.269 2191.47,-457.99 2040,-389 2018.56,-379.234 2016.56,-371.139 1997,-358 1980.84,-347.143 1962.19,-335.511 1947.92,-326.794"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1949.61,-323.725 1939.25,-321.524 1945.98,-329.707 1949.61,-323.725"/>
+<path fill="none" stroke="midnightblue" d="M2231.28,-481.469C2199.99,-473.773 2154.68,-461.184 2117,-445 2071.26,-425.354 2061.8,-416.035 2020,-389 2000.22,-376.205 1997.16,-370.196 1977,-358 1957.2,-346.02 1933.79,-334.389 1915.81,-325.954"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1916.99,-322.639 1906.44,-321.614 1914.04,-328.992 1916.99,-322.639"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node"><title>Node8</title>
 <g id="a_node8"><a xlink:href="runtime_2container_8h.html" target="_top" xlink:title="Common POD(plain old data) container types. ">
-<polygon fill="white" stroke="red" points="1718,-179.5 1718,-198.5 1850,-198.5 1850,-179.5 1718,-179.5"/>
-<text text-anchor="middle" x="1784" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/container.h</text>
+<polygon fill="white" stroke="red" points="1680,-179.5 1680,-198.5 1812,-198.5 1812,-179.5 1680,-179.5"/>
+<text text-anchor="middle" x="1746" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/container.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node8 -->
-<g id="edge95" class="edge"><title>Node6&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M2481.87,-488.827C2289.99,-483.745 1598.55,-460.554 1535,-389 1460.77,-305.42 1658.72,-229.837 1745.53,-201.671"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1746.84,-204.928 1755.3,-198.55 1744.7,-198.26 1746.84,-204.928"/>
+<g id="edge94" class="edge"><title>Node6&#45;&gt;Node8</title>
+<path fill="none" stroke="midnightblue" d="M2219.81,-490.33C2082.26,-490.082 1698.82,-481.002 1624,-389 1572.48,-325.645 1677.66,-238.727 1724.77,-204.597"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1726.98,-207.324 1733.1,-198.677 1722.92,-201.619 1726.98,-207.324"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node"><title>Node10</title>
 <g id="a_node10"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="white" stroke="red" points="2288.5,-123.5 2288.5,-142.5 2415.5,-142.5 2415.5,-123.5 2288.5,-123.5"/>
-<text text-anchor="middle" x="2352" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/memory.h</text>
+<polygon fill="white" stroke="red" points="2020.5,-123.5 2020.5,-142.5 2147.5,-142.5 2147.5,-123.5 2020.5,-123.5"/>
+<text text-anchor="middle" x="2084" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/memory.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node10 -->
-<g id="edge96" class="edge"><title>Node6&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2526.58,-481.2C2503.17,-434.645 2393.62,-216.775 2361.11,-152.127"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2364.05,-150.173 2356.43,-142.811 2357.8,-153.318 2364.05,-150.173"/>
+<g id="edge95" class="edge"><title>Node6&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M2275.37,-481.208C2290.06,-459.801 2323.8,-403.403 2307,-358 2269.44,-256.465 2157.33,-178.393 2107.88,-147.921"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2109.51,-144.813 2099.14,-142.629 2105.88,-150.802 2109.51,-144.813"/>
 </g>
 <!-- Node6&#45;&gt;Node11 -->
-<g id="edge97" class="edge"><title>Node6&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M2535.68,-481.439C2542.63,-468.866 2556.22,-444.758 2569,-425 2612.71,-357.407 2821.87,-183.695 2769,-123 2752.43,-103.975 2603.13,-89.7301 2512.75,-82.761"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2512.82,-79.2557 2502.58,-81.9879 2512.29,-86.2356 2512.82,-79.2557"/>
+<g id="edge96" class="edge"><title>Node6&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M2318.35,-490.183C2368.44,-488.263 2446.59,-479.31 2504,-445 2613.92,-379.306 2629.43,-324.677 2654,-199 2671.98,-107.045 2531.36,-84.3989 2442.78,-79.182"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2442.95,-75.6863 2432.78,-78.6535 2442.58,-82.6766 2442.95,-75.6863"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node"><title>Node12</title>
 <g id="a_node12"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
-<polygon fill="white" stroke="red" points="2630.5,-0.5 2630.5,-30.5 2757.5,-30.5 2757.5,-0.5 2630.5,-0.5"/>
-<text text-anchor="start" x="2638.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/c_runtime</text>
-<text text-anchor="middle" x="2694" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
+<polygon fill="white" stroke="red" points="2710.5,-0.5 2710.5,-30.5 2837.5,-30.5 2837.5,-0.5 2710.5,-0.5"/>
+<text text-anchor="start" x="2718.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="2774" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_api.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node12 -->
-<g id="edge94" class="edge"><title>Node6&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M2580.09,-487.555C2626.23,-483.539 2696.06,-472.944 2750,-445 2793.55,-422.436 3052.51,-188.011 3072,-143 3075.53,-134.843 3077.37,-130.087 3072,-123 3035.39,-74.653 2867.14,-42.0721 2767.87,-26.6911"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2768.31,-23.2176 2757.9,-25.1673 2767.25,-30.1373 2768.31,-23.2176"/>
+<g id="edge93" class="edge"><title>Node6&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2318.35,-481.753C2371.59,-472.826 2458.84,-458.106 2534,-445 2568.8,-438.931 2814.62,-403.133 2847,-389 2975.56,-332.89 3036.43,-324.538 3099,-199 3122.45,-151.95 3118.71,-122.599 3047,-67 3016.55,-43.3896 2917.64,-29.5727 2847.67,-22.5258"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2847.86,-19.0279 2837.57,-21.5349 2847.18,-25.9944 2847.86,-19.0279"/>
 </g>
 <!-- Node6&#45;&gt;Node13 -->
-<g id="edge98" class="edge"><title>Node6&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2578.24,-481.428C2625.13,-472.415 2693.32,-457.792 2717,-445 2738.58,-433.342 3029.25,-165.505 3039,-143 3042.53,-134.843 3044.98,-129.579 3039,-123 3010.85,-92.0198 2705.43,-92.9963 2664,-87 2617.85,-80.3197 2607.27,-72.8369 2561,-67 2243.05,-26.8884 1854.23,-18.5081 1741.21,-16.8731"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1741.2,-13.3726 1731.15,-16.7351 1741.1,-20.3719 1741.2,-13.3726"/>
+<g id="edge97" class="edge"><title>Node6&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M2278.42,-481.23C2329.52,-433.205 2569.5,-201.397 2527,-123 2505.26,-82.9026 2484.14,-81.8021 2441,-67 2334.25,-30.3739 1981.12,-19.6226 1872.25,-17.1402"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1872.27,-13.6401 1862.2,-16.9191 1872.12,-20.6384 1872.27,-13.6401"/>
 </g>
 <!-- Node6&#45;&gt;Node14 -->
-<g id="edge99" class="edge"><title>Node6&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M2580.45,-487.953C2714.8,-479.313 3085.07,-434.22 3213,-199 3235.09,-158.386 3234.05,-152.61 3166,-67 3153.99,-51.8917 3136.35,-39.2037 3121.78,-30.3246"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3123.14,-27.0672 3112.74,-25.0526 3119.62,-33.114 3123.14,-27.0672"/>
+<g id="edge98" class="edge"><title>Node6&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M2318.09,-487.752C2425.82,-481.615 2689.95,-459.96 2898,-389 3076.34,-328.173 3129.77,-316.587 3277,-199 3330.78,-156.046 3394.85,-125.137 3358,-67 3344.1,-45.0631 3317.83,-32.4767 3294.8,-25.3555"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3295.74,-21.9868 3285.17,-22.6269 3293.84,-28.7215 3295.74,-21.9868"/>
 </g>
 <!-- Node6&#45;&gt;Node15 -->
-<g id="edge100" class="edge"><title>Node6&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M2481.82,-489.21C2304.64,-486.151 1699.29,-473.789 1508,-445 1410.36,-430.304 1386.93,-419.455 1293,-389 1150.03,-342.645 1111.77,-334.521 978,-266 834.268,-192.374 679.3,-73.2353 626.683,-31.5102"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="628.602,-28.5644 618.6,-25.0697 624.24,-34.0389 628.602,-28.5644"/>
+<g id="edge99" class="edge"><title>Node6&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M2219.61,-488.131C2096.6,-483.176 1779.06,-468.452 1676,-445 1639.31,-436.652 1071.47,-225.741 1045,-199 1021.1,-174.852 992.286,-76.4833 980.936,-35.0441"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="984.259,-33.9239 978.272,-25.1829 977.502,-35.7496 984.259,-33.9239"/>
 </g>
 <!-- Node6&#45;&gt;Node19 -->
-<g id="edge101" class="edge"><title>Node6&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M2481.8,-490.378C2346.38,-490.802 1956.99,-487.888 1637,-445 1521.99,-429.586 1492.39,-424.745 1382,-389 1165.8,-318.993 922.145,-189.6 845.446,-147.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="846.985,-144.422 836.536,-142.668 843.611,-150.555 846.985,-144.422"/>
+<g id="edge100" class="edge"><title>Node6&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2219.62,-489.929C2113.56,-489.014 1856.45,-482.714 1645,-445 1381.09,-397.928 1323.02,-351.663 1069,-266 983.359,-237.119 959.472,-235.971 877,-199 842.896,-183.712 805.462,-161.976 782.344,-147.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="784.004,-144.842 773.65,-142.599 780.345,-150.81 784.004,-144.842"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node"><title>Node27</title>
 <g id="a_node27"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="white" stroke="black" points="2331.5,-425.5 2331.5,-444.5 2450.5,-444.5 2450.5,-425.5 2331.5,-425.5"/>
-<text text-anchor="middle" x="2391" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
+<polygon fill="white" stroke="black" points="2151.5,-425.5 2151.5,-444.5 2270.5,-444.5 2270.5,-425.5 2151.5,-425.5"/>
+<text text-anchor="middle" x="2211" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/reflection.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node27 -->
-<g id="edge63" class="edge"><title>Node6&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M2508.82,-481.444C2485.57,-472.478 2448.85,-458.314 2422.58,-448.183"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2423.67,-444.85 2413.08,-444.516 2421.15,-451.381 2423.67,-444.85"/>
+<g id="edge62" class="edge"><title>Node6&#45;&gt;Node27</title>
+<path fill="none" stroke="midnightblue" d="M2259.68,-481.324C2251.11,-473.341 2238.19,-461.313 2227.81,-451.653"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2230.19,-449.086 2220.49,-444.834 2225.42,-454.21 2230.19,-449.086"/>
 </g>
 <!-- Node6&#45;&gt;Node28 -->
-<g id="edge92" class="edge"><title>Node6&#45;&gt;Node28</title>
-<path fill="none" stroke="midnightblue" d="M2481.6,-482.568C2438.72,-475.363 2375.31,-462.887 2322,-445 2302.02,-438.296 2298.73,-432.403 2279,-425 2243.77,-411.783 2203.47,-399.891 2170.53,-390.972"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2171.13,-387.508 2160.56,-388.302 2169.32,-394.269 2171.13,-387.508"/>
+<g id="edge91" class="edge"><title>Node6&#45;&gt;Node28</title>
+<path fill="none" stroke="midnightblue" d="M2227.69,-481.491C2201.44,-474.669 2167.68,-463.17 2142,-445 2124.06,-432.31 2108.74,-412.495 2098.51,-397.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2101.43,-395.173 2093.1,-388.634 2095.54,-398.944 2101.43,-395.173"/>
 </g>
 <!-- Node6&#45;&gt;Node30 -->
-<g id="edge93" class="edge"><title>Node6&#45;&gt;Node30</title>
-<path fill="none" stroke="midnightblue" d="M2481.93,-483.912C2326.13,-464.584 1842.53,-404.588 1665.65,-382.645"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1666.06,-379.169 1655.7,-381.411 1665.2,-386.115 1666.06,-379.169"/>
+<g id="edge92" class="edge"><title>Node6&#45;&gt;Node30</title>
+<path fill="none" stroke="midnightblue" d="M2219.9,-483.29C2163.48,-475.32 2068.22,-461.065 1987,-445 1905.61,-428.901 1812.71,-406.23 1752.57,-390.983"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1753.4,-387.582 1742.84,-388.508 1751.67,-394.366 1753.4,-387.582"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node"><title>Node31</title>
 <g id="a_node31"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
-<polygon fill="white" stroke="black" points="2578,-425.5 2578,-444.5 2708,-444.5 2708,-425.5 2578,-425.5"/>
-<text text-anchor="middle" x="2643" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
+<polygon fill="white" stroke="black" points="2365,-425.5 2365,-444.5 2495,-444.5 2495,-425.5 2365,-425.5"/>
+<text text-anchor="middle" x="2430" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/node/repr_printer.h</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node31 -->
-<g id="edge89" class="edge"><title>Node6&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M2548.99,-481.324C2567.04,-472.625 2595.05,-459.12 2615.8,-449.113"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2617.56,-452.15 2625.05,-444.655 2614.52,-445.845 2617.56,-452.15"/>
+<g id="edge88" class="edge"><title>Node6&#45;&gt;Node31</title>
+<path fill="none" stroke="midnightblue" d="M2294.51,-481.444C2321.6,-472.359 2364.59,-457.939 2394.87,-447.783"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2396.24,-451.015 2404.61,-444.516 2394.01,-444.378 2396.24,-451.015"/>
 </g>
 <!-- Node7&#45;&gt;Node8 -->
 <g id="edge7" class="edge"><title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1914.86,-302.298C1891.18,-281.978 1831.99,-231.186 1802.01,-205.457"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1803.92,-202.479 1794.05,-198.623 1799.36,-207.792 1803.92,-202.479"/>
+<path fill="none" stroke="midnightblue" d="M1876.86,-302.298C1853.18,-281.978 1793.99,-231.186 1764.01,-205.457"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1765.92,-202.479 1756.05,-198.623 1761.36,-207.792 1765.92,-202.479"/>
 </g>
 <!-- Node7&#45;&gt;Node10 -->
 <g id="edge25" class="edge"><title>Node7&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1949.16,-302.394C1974.53,-293.353 2015.58,-278.708 2051,-266 2089.24,-252.278 2097.87,-245.924 2137,-235 2215.16,-213.182 2250.51,-246.922 2316,-199 2331.58,-187.598 2341.25,-167.31 2346.59,-152.424"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2349.98,-153.336 2349.74,-142.744 2343.32,-151.171 2349.98,-153.336"/>
+<path fill="none" stroke="midnightblue" d="M1919.69,-302.402C1942.07,-295.325 1971.47,-283.568 1993,-266 2032.59,-233.702 2062.19,-179.86 2075.77,-151.972"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2079.07,-153.19 2080.18,-142.653 2072.74,-150.196 2079.07,-153.19"/>
 </g>
 <!-- Node7&#45;&gt;Node11 -->
 <g id="edge26" class="edge"><title>Node7&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1978.6,-302.454C2059.48,-288.261 2216.3,-255.635 2339,-199 2380.08,-180.041 2396.86,-179.195 2424,-143 2434.17,-129.434 2439.23,-110.633 2441.7,-96.7403"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2445.16,-97.2522 2443.18,-86.8441 2438.24,-96.2152 2445.16,-97.2522"/>
+<path fill="none" stroke="midnightblue" d="M1946.65,-304.84C2059.74,-291.905 2298.97,-258.12 2354,-199 2379.91,-171.17 2379.4,-123.289 2376.73,-96.8724"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2380.17,-96.1878 2375.48,-86.6894 2373.22,-97.0417 2380.17,-96.1878"/>
 </g>
 <!-- Node7&#45;&gt;Node13 -->
-<g id="edge61" class="edge"><title>Node7&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1939.93,-302.393C1972.06,-282.663 2043.16,-231.793 2022,-179 1996.38,-115.101 1974.6,-101.464 1915,-67 1859.31,-34.7962 1783.7,-23.0278 1741.29,-18.8009"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1741.53,-15.3086 1731.25,-17.8809 1740.89,-22.2793 1741.53,-15.3086"/>
+<g id="edge60" class="edge"><title>Node7&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1901.79,-302.448C1933.62,-282.833 2004.17,-232.18 1984,-179 1959.09,-113.323 1894.14,-57.1575 1860.65,-31.4566"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1862.57,-28.5223 1852.47,-25.3114 1858.36,-34.1178 1862.57,-28.5223"/>
 </g>
 <!-- Node7&#45;&gt;Node15 -->
-<g id="edge62" class="edge"><title>Node7&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1865.12,-308.682C1741.26,-303.477 1460.77,-289.446 1368,-266 1215,-227.331 1192.43,-173.734 1043,-123 895.239,-72.8327 711.802,-35.8686 639.443,-22.2394"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.67,-18.7213 629.198,-20.3263 638.385,-25.6024 639.67,-18.7213"/>
+<g id="edge61" class="edge"><title>Node7&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1827.22,-308.436C1715.84,-303.165 1480.84,-289.586 1403,-266 1229.07,-213.295 1050.83,-77.1672 994.327,-31.6085"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="996.289,-28.6935 986.322,-25.1009 991.874,-34.125 996.289,-28.6935"/>
 </g>
 <!-- Node7&#45;&gt;Node16 -->
-<g id="edge60" class="edge"><title>Node7&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1977.78,-302.462C2033.7,-293.415 2124.57,-278.709 2203,-266 2386.56,-236.254 2432.55,-229.446 2616,-199 2740.36,-178.361 2887.28,-153.211 2957.54,-141.139"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2958.47,-144.529 2967.74,-139.385 2957.29,-137.63 2958.47,-144.529"/>
+<g id="edge59" class="edge"><title>Node7&#45;&gt;Node16</title>
+<path fill="none" stroke="midnightblue" d="M1946.71,-304.778C2013.76,-297.369 2125.66,-283.736 2221,-266 2233.91,-263.598 2607.2,-174.211 2733.61,-143.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2734.77,-147.243 2743.67,-141.508 2733.13,-140.435 2734.77,-147.243"/>
 </g>
 <!-- Node7&#45;&gt;Node20 -->
 <g id="edge27" class="edge"><title>Node7&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1865.12,-303.221C1779.56,-292.105 1622.81,-271.741 1533.65,-260.159"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1534.02,-256.677 1523.65,-258.86 1533.12,-263.619 1534.02,-256.677"/>
+<path fill="none" stroke="midnightblue" d="M1827.11,-302.475C1749.93,-291.489 1616.16,-272.447 1535.77,-261.005"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1536.16,-257.524 1525.76,-259.58 1535.17,-264.454 1536.16,-257.524"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node"><title>Node9</title>
-<polygon fill="white" stroke="#bfbfbf" points="1797,-67.5 1797,-86.5 1883,-86.5 1883,-67.5 1797,-67.5"/>
-<text text-anchor="middle" x="1840" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/logging.h</text>
+<polygon fill="white" stroke="#bfbfbf" points="1726,-123.5 1726,-142.5 1812,-142.5 1812,-123.5 1726,-123.5"/>
+<text text-anchor="middle" x="1769" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">dmlc/logging.h</text>
 </g>
 <!-- Node8&#45;&gt;Node9 -->
 <g id="edge8" class="edge"><title>Node8&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1788.39,-179.368C1797.55,-161.376 1818.85,-119.55 1831.03,-95.6267"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1834.21,-97.091 1835.63,-86.5914 1827.97,-93.9152 1834.21,-97.091"/>
+<path fill="none" stroke="midnightblue" d="M1749.8,-179.083C1752.91,-171.77 1757.42,-161.181 1761.29,-152.103"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1764.57,-153.323 1765.27,-142.751 1758.13,-150.58 1764.57,-153.323"/>
 </g>
 <!-- Node8&#45;&gt;Node10 -->
 <g id="edge9" class="edge"><title>Node8&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1850.27,-181.7C1957.11,-171.542 2166.71,-151.616 2278.18,-141.018"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2278.7,-144.484 2288.33,-140.053 2278.04,-137.516 2278.7,-144.484"/>
+<path fill="none" stroke="midnightblue" d="M1799.56,-179.444C1859.63,-169.846 1956.99,-154.292 2020.76,-144.104"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2021.37,-147.55 2030.69,-142.516 2020.27,-140.638 2021.37,-147.55"/>
 </g>
 <!-- Node8&#45;&gt;Node11 -->
 <g id="edge17" class="edge"><title>Node8&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1804.75,-179.403C1840.06,-165.162 1914.41,-136.873 1980,-123 2118.38,-93.7293 2284.07,-83.4513 2375.29,-79.8758"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2375.64,-83.3653 2385.5,-79.4916 2375.37,-76.3702 2375.64,-83.3653"/>
+<path fill="none" stroke="midnightblue" d="M1775.96,-179.433C1824.8,-165.74 1924.81,-138.856 2011,-123 2112.7,-104.29 2231.9,-91.1747 2305.18,-84.1072"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2305.59,-87.5844 2315.21,-83.1501 2304.92,-80.616 2305.59,-87.5844"/>
 </g>
 <!-- Node8&#45;&gt;Node13 -->
 <g id="edge20" class="edge"><title>Node8&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1780.18,-179.26C1768.44,-152.421 1732.75,-70.818 1716.82,-34.3903"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1719.94,-32.7792 1712.73,-25.0194 1713.53,-35.584 1719.94,-32.7792"/>
+<path fill="none" stroke="midnightblue" d="M1707.24,-179.462C1672.41,-169.774 1629.13,-151.511 1646,-123 1681.13,-63.642 1762.39,-35.1625 1807.8,-23.4434"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1808.85,-26.7902 1817.73,-21.0033 1807.18,-19.9927 1808.85,-26.7902"/>
 </g>
 <!-- Node8&#45;&gt;Node14 -->
 <g id="edge22" class="edge"><title>Node8&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1850.02,-182.616C1865.43,-181.394 1881.79,-180.125 1897,-179 2131.13,-161.68 2191.39,-174.743 2424,-143 2485.15,-134.656 2636.01,-101.489 2696,-87 2728.28,-79.2025 2735.53,-73.9835 2768,-67 2868.58,-45.3674 2988.42,-29.3438 3051.73,-21.629"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3052.25,-25.0911 3061.76,-20.4182 3051.41,-18.1415 3052.25,-25.0911"/>
+<path fill="none" stroke="midnightblue" d="M1736.81,-179.49C1723.46,-166.114 1701.85,-139.95 1717,-123 1754.19,-81.407 2160.39,-71.4728 2216,-67 2413.16,-51.1427 3035.26,-25.267 3206.81,-18.2838"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3207.14,-21.7736 3216.99,-17.8703 3206.85,-14.7793 3207.14,-21.7736"/>
 </g>
 <!-- Node8&#45;&gt;Node15 -->
 <g id="edge23" class="edge"><title>Node8&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1768.15,-179.317C1741.11,-164.949 1683.95,-136.479 1632,-123 1250.39,-23.9876 766.194,-16.5327 639.482,-16.3656"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.325,-12.8656 629.325,-16.3675 639.326,-19.8656 639.325,-12.8656"/>
+<path fill="none" stroke="midnightblue" d="M1711.09,-179.4C1655.91,-166.019 1545.04,-139.988 1450,-123 1335.16,-102.474 1303.64,-113.358 1190,-87 1123.29,-71.5271 1047.74,-44.2472 1006.64,-28.5445"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1007.79,-25.2368 997.201,-24.9096 1005.28,-31.7693 1007.79,-25.2368"/>
 </g>
 <!-- Node8&#45;&gt;Node16 -->
 <g id="edge18" class="edge"><title>Node8&#45;&gt;Node16</title>
-<path fill="none" stroke="midnightblue" d="M1850.29,-182.289C1865.62,-181.088 1881.87,-179.911 1897,-179 1950.84,-175.758 2763.84,-143.353 2957.72,-135.641"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2957.93,-139.135 2967.78,-135.241 2957.65,-132.141 2957.93,-139.135"/>
+<path fill="none" stroke="midnightblue" d="M1812,-182.404C1827.42,-181.191 1843.78,-179.98 1859,-179 2196.3,-157.288 2604.06,-140.641 2733.49,-135.589"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2733.89,-139.077 2743.74,-135.191 2733.61,-132.082 2733.89,-139.077"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node"><title>Node17</title>
-<polygon fill="white" stroke="#bfbfbf" points="1566.5,-123.5 1566.5,-142.5 1623.5,-142.5 1623.5,-123.5 1566.5,-123.5"/>
-<text text-anchor="middle" x="1595" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
+<polygon fill="white" stroke="#bfbfbf" points="1384.5,-123.5 1384.5,-142.5 1441.5,-142.5 1441.5,-123.5 1384.5,-123.5"/>
+<text text-anchor="middle" x="1413" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
 </g>
 <!-- Node8&#45;&gt;Node17 -->
 <g id="edge19" class="edge"><title>Node8&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1754.05,-179.444C1721.46,-170.132 1669.25,-155.216 1633.61,-145.031"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1634.15,-141.545 1623.57,-142.163 1632.22,-148.276 1634.15,-141.545"/>
+<path fill="none" stroke="midnightblue" d="M1693.24,-179.444C1626.11,-168.558 1511.74,-150.012 1451.98,-140.321"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1452.26,-136.821 1441.83,-138.675 1451.14,-143.731 1452.26,-136.821"/>
 </g>
 <!-- Node8&#45;&gt;Node18 -->
 <g id="edge21" class="edge"><title>Node8&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1717.84,-183.512C1564.8,-173.129 1188.46,-147.599 1044.9,-137.86"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1044.78,-134.344 1034.57,-137.159 1044.31,-141.328 1044.78,-134.344"/>
+<path fill="none" stroke="midnightblue" d="M1679.84,-183.512C1526.8,-173.129 1150.46,-147.599 1006.9,-137.86"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1006.78,-134.344 996.566,-137.159 1006.31,-141.328 1006.78,-134.344"/>
 </g>
 <!-- Node8&#45;&gt;Node19 -->
 <g id="edge24" class="edge"><title>Node8&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1717.87,-184.749C1545.38,-176.23 1084.6,-153.214 932,-143 906.138,-141.269 876.922,-138.883 854.957,-137.002"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="855.068,-133.499 844.804,-136.125 854.465,-140.473 855.068,-133.499"/>
+<path fill="none" stroke="midnightblue" d="M1679.97,-184.835C1536.77,-177.899 1186.94,-160.573 894,-143 859.892,-140.954 820.923,-138.301 793.835,-136.407"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.936,-132.905 783.715,-135.696 793.445,-139.888 793.936,-132.905"/>
 </g>
 <!-- Node10&#45;&gt;Node11 -->
 <g id="edge10" class="edge"><title>Node10&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M2366.78,-123.324C2381.27,-114.822 2403.57,-101.729 2420.49,-91.7975"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2422.4,-94.735 2429.26,-86.6545 2418.86,-88.6981 2422.4,-94.735"/>
+<path fill="none" stroke="midnightblue" d="M2129.95,-123.444C2181.07,-113.925 2263.65,-98.5472 2318.38,-88.3563"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2319.07,-91.788 2328.26,-86.5164 2317.79,-84.9063 2319.07,-91.788"/>
 </g>
 <!-- Node10&#45;&gt;Node14 -->
 <g id="edge15" class="edge"><title>Node10&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M2400.63,-123.45C2474.06,-110.633 2617.66,-85.9215 2740,-67 2851.85,-49.7014 2983.83,-31.5761 3051.32,-22.4714"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3052.15,-25.8922 3061.59,-21.0891 3051.21,-18.9548 3052.15,-25.8922"/>
+<path fill="none" stroke="midnightblue" d="M2106.6,-123.483C2146.29,-108.96 2231.38,-79.7409 2306,-67 2395.27,-51.7572 3031.82,-25.3082 3206.66,-18.265"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3206.94,-21.7568 3216.79,-17.858 3206.66,-14.7625 3206.94,-21.7568"/>
 </g>
 <!-- Node10&#45;&gt;Node15 -->
 <g id="edge16" class="edge"><title>Node10&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M2312.37,-123.483C2243.24,-109.027 2095.97,-79.996 1970,-67 1440.14,-12.3367 788.955,-14.7605 639.55,-16.1409"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.251,-12.6436 629.285,-16.2417 639.319,-19.6432 639.251,-12.6436"/>
+<path fill="none" stroke="midnightblue" d="M2020.45,-125.375C1812.74,-103.724 1158.62,-35.5362 1007.41,-19.7742"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1007.33,-16.2467 997.018,-18.6909 1006.6,-23.2089 1007.33,-16.2467"/>
 </g>
 <!-- Node11&#45;&gt;Node12 -->
 <g id="edge11" class="edge"><title>Node11&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M2479.82,-67.4751C2517.63,-58.4752 2578.17,-44.068 2625.25,-32.8624"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2626.16,-36.2433 2635.08,-30.523 2624.54,-29.4335 2626.16,-36.2433"/>
+<path fill="none" stroke="midnightblue" d="M2431.31,-67.4751C2502.02,-56.9577 2622.37,-39.0556 2699.99,-27.5084"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2700.81,-30.926 2710.18,-25.9927 2699.78,-24.0022 2700.81,-30.926"/>
 </g>
 <!-- Node11&#45;&gt;Node13 -->
 <g id="edge12" class="edge"><title>Node11&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2385.4,-71.2565C2237.97,-59.3211 1855.28,-28.3414 1741.42,-19.1241"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1741.5,-15.6198 1731.25,-18.3015 1740.94,-22.597 1741.5,-15.6198"/>
+<path fill="none" stroke="midnightblue" d="M2315.33,-69.4623C2202.71,-56.914 1959.66,-29.8334 1872.19,-20.0868"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1872.4,-16.589 1862.08,-18.96 1871.63,-23.5459 1872.4,-16.589"/>
 </g>
 <!-- Node11&#45;&gt;Node14 -->
 <g id="edge13" class="edge"><title>Node11&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M2502.72,-70.6411C2631.73,-58.8684 2937.46,-30.9682 3051.82,-20.5322"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3052.31,-24.0013 3061.95,-19.6069 3051.68,-17.0302 3052.31,-24.0013"/>
+<path fill="none" stroke="midnightblue" d="M2432.56,-72.0268C2596.91,-60.8764 3059.97,-29.4602 3206.18,-19.5409"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3206.81,-23.0062 3216.55,-18.8373 3206.34,-16.0223 3206.81,-23.0062"/>
 </g>
 <!-- Node11&#45;&gt;Node15 -->
 <g id="edge14" class="edge"><title>Node11&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M2385.37,-71.2253C2364.72,-69.6813 2341.34,-68.0887 2320,-67 1641.14,-32.3678 809.563,-19.3184 639.313,-16.9216"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.328,-13.4215 629.28,-16.7819 639.231,-20.4208 639.328,-13.4215"/>
+<path fill="none" stroke="midnightblue" d="M2315.17,-73.013C2279.05,-71.2064 2231.85,-68.8941 2190,-67 1719.64,-45.7138 1146.6,-23.1561 1007.51,-17.7259"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1007.3,-14.2153 997.171,-17.3228 1007.03,-21.21 1007.3,-14.2153"/>
 </g>
 <!-- Node20&#45;&gt;Node8 -->
 <g id="edge30" class="edge"><title>Node20&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M1523.56,-237.84C1528.44,-236.867 1533.31,-235.908 1538,-235 1602.2,-222.573 1676.02,-209.191 1725.91,-200.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1726.63,-203.705 1735.86,-198.504 1725.41,-196.814 1726.63,-203.705"/>
+<path fill="none" stroke="midnightblue" d="M1525.72,-237.316C1575.97,-226.524 1648.58,-210.927 1696.51,-200.631"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1697.3,-204.04 1706.34,-198.518 1695.83,-197.196 1697.3,-204.04"/>
 </g>
 <!-- Node20&#45;&gt;Node9 -->
 <g id="edge28" class="edge"><title>Node20&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M1523.75,-237.476C1573.22,-226.561 1640.87,-210.467 1666,-199 1728.46,-170.501 1792.3,-119.269 1822.33,-93.5796"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1824.94,-95.9566 1830.2,-86.7652 1820.35,-90.6643 1824.94,-95.9566"/>
+<path fill="none" stroke="midnightblue" d="M1518.99,-235.412C1550.59,-226.066 1592.11,-212.982 1628,-199 1647.64,-191.35 1651.87,-187.842 1671,-179 1694.55,-168.115 1721.32,-155.828 1740.93,-146.846"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1742.57,-149.946 1750.2,-142.6 1739.65,-143.581 1742.57,-149.946"/>
 </g>
 <!-- Node20&#45;&gt;Node11 -->
-<g id="edge51" class="edge"><title>Node20&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1523.56,-241.913C1540.43,-239.667 1558.96,-237.217 1576,-235 1701.73,-218.64 1738.08,-237.135 1859,-199 1877.2,-193.26 1879.07,-185.528 1897,-179 2007.26,-138.864 2039.65,-144.48 2155,-123 2229.99,-109.035 2316.5,-95.9634 2375.17,-87.5458"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2376.03,-90.9594 2385.43,-86.0808 2375.04,-84.0297 2376.03,-90.9594"/>
+<g id="edge50" class="edge"><title>Node20&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1506.42,-235.492C1530.65,-226.032 1562.67,-212.793 1590,-199 1648.73,-169.367 1654.23,-142.679 1717,-123 1825.13,-89.0965 2159.78,-80.7165 2305.27,-78.6609"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2305.47,-82.1587 2315.42,-78.5236 2305.37,-75.1594 2305.47,-82.1587"/>
 </g>
 <!-- Node20&#45;&gt;Node12 -->
 <g id="edge29" class="edge"><title>Node20&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1523.94,-246.849C1645.99,-240.757 1929.24,-224.305 2022,-199 2154.34,-162.896 2169.35,-105.55 2301,-67 2409.2,-35.3176 2539.93,-23.5036 2620,-19.1038"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2620.67,-22.5736 2630.47,-18.5548 2620.31,-15.5832 2620.67,-22.5736"/>
+<path fill="none" stroke="midnightblue" d="M1525.56,-248.823C1694.85,-246.395 2195.56,-236.179 2354,-199 2505.91,-163.353 2671.76,-75.0937 2740.89,-35.848"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2743.04,-38.6475 2749.99,-30.6462 2739.57,-32.5703 2743.04,-38.6475"/>
 </g>
 <!-- Node20&#45;&gt;Node13 -->
-<g id="edge55" class="edge"><title>Node20&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1520.61,-235.435C1556.13,-225.291 1598.71,-211.278 1613,-199 1665.91,-153.543 1693.89,-71.5619 1704.24,-34.9867"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1707.66,-35.7514 1706.89,-25.1842 1700.9,-33.922 1707.66,-35.7514"/>
+<g id="edge54" class="edge"><title>Node20&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1499.04,-235.321C1516.8,-226.217 1539.21,-213.419 1557,-199 1618.13,-149.449 1608.72,-109.409 1675,-67 1716.51,-40.4437 1772.79,-27.1653 1807.73,-21.0655"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1808.55,-24.4775 1817.85,-19.3961 1807.41,-17.5709 1808.55,-24.4775"/>
 </g>
 <!-- Node20&#45;&gt;Node14 -->
-<g id="edge57" class="edge"><title>Node20&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M1523.68,-249.173C1660.54,-247.723 2019.63,-239.975 2316,-199 2431.37,-183.049 2461.64,-180.229 2572,-143 2591.97,-136.263 2594.87,-129.257 2615,-123 2706.68,-94.4996 2734.15,-107.233 2828,-87 2910.23,-69.2729 3005.15,-42.8745 3057.07,-27.9187"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3058.23,-31.2267 3066.86,-25.086 3056.28,-24.5023 3058.23,-31.2267"/>
+<g id="edge56" class="edge"><title>Node20&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M1525.55,-249.567C1772.31,-249.269 2755.26,-241.785 3045,-143 3120.85,-117.14 3198.15,-59.4846 3232.54,-31.8485"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3235.16,-34.2314 3240.7,-25.203 3230.74,-28.8034 3235.16,-34.2314"/>
 </g>
 <!-- Node20&#45;&gt;Node15 -->
-<g id="edge58" class="edge"><title>Node20&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M1442.67,-235.386C1396.51,-209.226 1292.39,-153.14 1198,-123 990.527,-56.751 728.049,-27.6503 639.091,-19.2303"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.399,-15.7439 629.118,-18.3049 638.752,-22.714 639.399,-15.7439"/>
+<g id="edge57" class="edge"><title>Node20&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M1434.11,-235.491C1409.83,-225.606 1376.78,-211.881 1348,-199 1215.83,-139.837 1061.52,-60.8789 1001.6,-29.8349"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1002.98,-26.6073 992.487,-25.1074 999.751,-32.8204 1002.98,-26.6073"/>
 </g>
 <!-- Node20&#45;&gt;Node17 -->
-<g id="edge54" class="edge"><title>Node20&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1518.98,-235.467C1550.31,-225.843 1585.86,-212.43 1595,-199 1604.12,-185.602 1603.01,-166.781 1600.27,-152.837"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1603.62,-151.81 1597.9,-142.897 1596.82,-153.437 1603.62,-151.81"/>
+<g id="edge53" class="edge"><title>Node20&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1412.43,-238.333C1390.65,-230.978 1367.93,-218.867 1355,-199 1342.35,-179.565 1365.66,-160.096 1386.39,-147.604"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1388.33,-150.524 1395.29,-142.539 1384.87,-144.439 1388.33,-150.524"/>
 </g>
 <!-- Node20&#45;&gt;Node19 -->
-<g id="edge59" class="edge"><title>Node20&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1410.23,-238.629C1336.16,-224.518 1202.5,-199.297 1088,-179 1004.17,-164.139 905.312,-147.782 854.652,-139.484"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="855.03,-135.999 844.596,-137.839 853.9,-142.907 855.03,-135.999"/>
+<g id="edge58" class="edge"><title>Node20&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1412.21,-236.367C1344.39,-221.024 1227.39,-195.625 1126,-179 1004.22,-159.031 858.313,-143.62 793.667,-137.225"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.938,-133.735 783.644,-136.242 793.254,-140.701 793.938,-133.735"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node"><title>Node21</title>
 <g id="a_node21"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
-<polygon fill="white" stroke="black" points="2624,-123.5 2624,-142.5 2760,-142.5 2760,-123.5 2624,-123.5"/>
-<text text-anchor="middle" x="2692" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
+<polygon fill="white" stroke="red" points="2900,-123.5 2900,-142.5 3036,-142.5 3036,-123.5 2900,-123.5"/>
+<text text-anchor="middle" x="2968" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/data_type.h</text>
 </a>
 </g>
 </g>
 <!-- Node20&#45;&gt;Node21 -->
 <g id="edge31" class="edge"><title>Node20&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M1523.52,-248.828C1711.13,-246.269 2312.06,-235.37 2502,-199 2561,-187.703 2626.65,-162.168 2663.27,-146.679"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2664.99,-149.751 2672.8,-142.596 2662.23,-143.317 2664.99,-149.751"/>
+<path fill="none" stroke="midnightblue" d="M1525.73,-247.895C1673.95,-243.402 2085,-229.01 2426,-199 2498.27,-192.64 2515.98,-187.71 2588,-179 2692.3,-166.386 2812.76,-152.183 2889.6,-143.169"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2890.16,-146.627 2899.69,-141.986 2889.35,-139.675 2890.16,-146.627"/>
 </g>
 <!-- Node22 -->
 <g id="node22" class="node"><title>Node22</title>
 <g id="a_node22"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
-<polygon fill="white" stroke="red" points="1462,-179.5 1462,-198.5 1586,-198.5 1586,-179.5 1462,-179.5"/>
-<text text-anchor="middle" x="1524" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/module.h</text>
+<polygon fill="white" stroke="red" points="1424,-179.5 1424,-198.5 1548,-198.5 1548,-179.5 1424,-179.5"/>
+<text text-anchor="middle" x="1486" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/module.h</text>
 </a>
 </g>
 </g>
 <!-- Node20&#45;&gt;Node22 -->
-<g id="edge36" class="edge"><title>Node20&#45;&gt;Node22</title>
-<path fill="none" stroke="midnightblue" d="M1474.67,-235.399C1482.14,-226.397 1493.27,-214.721 1503.18,-205.465"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1505.67,-207.938 1510.78,-198.658 1500.99,-202.725 1505.67,-207.938"/>
+<g id="edge35" class="edge"><title>Node20&#45;&gt;Node22</title>
+<path fill="none" stroke="midnightblue" d="M1467.19,-235.399C1468.48,-227.199 1471.32,-216.781 1474.6,-207.994"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1477.88,-209.228 1478.6,-198.658 1471.44,-206.474 1477.88,-209.228"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node"><title>Node23</title>
 <g id="a_node23"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device&#45;independent managed NDArray abstraction. ">
-<polygon fill="white" stroke="red" points="2184.5,-179.5 2184.5,-198.5 2307.5,-198.5 2307.5,-179.5 2184.5,-179.5"/>
-<text text-anchor="middle" x="2246" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
+<polygon fill="white" stroke="red" points="2222.5,-179.5 2222.5,-198.5 2345.5,-198.5 2345.5,-179.5 2222.5,-179.5"/>
+<text text-anchor="middle" x="2284" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm/runtime/ndarray.h</text>
 </a>
 </g>
 </g>
 <!-- Node20&#45;&gt;Node23 -->
-<g id="edge45" class="edge"><title>Node20&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M1523.57,-246.325C1643.09,-239.422 1930.03,-221.816 2170,-199 2171.3,-198.876 2172.62,-198.749 2173.94,-198.618"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2174.64,-202.065 2184.22,-197.557 2173.92,-195.102 2174.64,-202.065"/>
+<g id="edge44" class="edge"><title>Node20&#45;&gt;Node23</title>
+<path fill="none" stroke="midnightblue" d="M1525.66,-245.363C1670.22,-234.81 2052.56,-206.897 2212.29,-195.235"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2212.77,-198.71 2222.48,-194.491 2212.26,-191.729 2212.77,-198.71"/>
 </g>
 <!-- Node20&#45;&gt;Node24 -->
-<g id="edge52" class="edge"><title>Node20&#45;&gt;Node24</title>
-<path fill="none" stroke="midnightblue" d="M1410.29,-242.872C1337.05,-234.071 1205.7,-217.472 1094,-199 1092.54,-198.759 1091.07,-198.508 1089.57,-198.248"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1090.09,-194.785 1079.63,-196.441 1088.84,-201.673 1090.09,-194.785"/>
+<g id="edge51" class="edge"><title>Node20&#45;&gt;Node24</title>
+<path fill="none" stroke="midnightblue" d="M1412.23,-241.778C1345.15,-232.473 1230.23,-215.961 1132,-199 1130.55,-198.749 1129.07,-198.489 1127.58,-198.221"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1128.11,-194.76 1117.64,-196.382 1126.84,-201.644 1128.11,-194.76"/>
 </g>
 <!-- Node20&#45;&gt;Node25 -->
-<g id="edge53" class="edge"><title>Node20&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M1523.61,-247.537C1793.64,-238.174 2946.33,-198.206 3151.65,-191.087"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3151.88,-194.581 3161.75,-190.737 3151.64,-187.586 3151.88,-194.581"/>
+<g id="edge52" class="edge"><title>Node20&#45;&gt;Node25</title>
+<path fill="none" stroke="midnightblue" d="M1525.55,-247.73C1716.46,-241.702 2354.7,-221.111 2882,-199 2936.83,-196.701 3000.67,-193.52 3037.79,-191.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3038.16,-195.106 3047.97,-191.097 3037.8,-188.115 3038.16,-195.106"/>
 </g>
 <!-- Node26 -->
 <g id="node26" class="node"><title>Node26</title>
-<polygon fill="white" stroke="#bfbfbf" points="1402.5,-179.5 1402.5,-198.5 1443.5,-198.5 1443.5,-179.5 1402.5,-179.5"/>
-<text text-anchor="middle" x="1423" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tuple</text>
+<polygon fill="white" stroke="#bfbfbf" points="1364.5,-179.5 1364.5,-198.5 1405.5,-198.5 1405.5,-179.5 1364.5,-179.5"/>
+<text text-anchor="middle" x="1385" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">tuple</text>
 </g>
 <!-- Node20&#45;&gt;Node26 -->
-<g id="edge56" class="edge"><title>Node20&#45;&gt;Node26</title>
-<path fill="none" stroke="midnightblue" d="M1456.57,-235.399C1450.24,-226.842 1442.13,-215.871 1435.47,-206.857"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1438.16,-204.617 1429.4,-198.658 1432.53,-208.779 1438.16,-204.617"/>
-</g>
-<!-- Node21&#45;&gt;Node9 -->
-<g id="edge32" class="edge"><title>Node21&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M2623.72,-127.672C2458.86,-117.224 2041.79,-90.7893 1893.41,-81.3852"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1893.4,-77.8777 1883.2,-80.738 1892.96,-84.8637 1893.4,-77.8777"/>
+<g id="edge55" class="edge"><title>Node20&#45;&gt;Node26</title>
+<path fill="none" stroke="midnightblue" d="M1449.09,-235.399C1436.01,-226.129 1418.92,-214.025 1405.68,-204.647"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1407.41,-201.582 1397.22,-198.658 1403.36,-207.294 1407.41,-201.582"/>
 </g>
 <!-- Node21&#45;&gt;Node12 -->
-<g id="edge33" class="edge"><title>Node21&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M2692.15,-123.319C2692.45,-105.967 2693.13,-66.4567 2693.58,-40.6579"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2697.08,-40.6044 2693.76,-30.5453 2690.08,-40.4832 2697.08,-40.6044"/>
+<g id="edge32" class="edge"><title>Node21&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2954.81,-123.344C2935.36,-110.653 2897.75,-86.3982 2865,-67 2846.9,-56.2776 2826.44,-44.8619 2809.51,-35.6017"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2810.96,-32.4069 2800.51,-30.6971 2807.61,-38.5541 2810.96,-32.4069"/>
 </g>
 <!-- Node21&#45;&gt;Node13 -->
-<g id="edge34" class="edge"><title>Node21&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M2673.74,-123.483C2641.64,-108.96 2572.63,-79.7398 2511,-67 2360.01,-35.7897 1871.87,-20.8271 1741.34,-17.3221"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1741.29,-13.8195 1731.2,-17.0536 1741.1,-20.8171 1741.29,-13.8195"/>
+<g id="edge33" class="edge"><title>Node21&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M2947.28,-123.47C2926.34,-114.725 2893.14,-100.53 2865,-87 2847.8,-78.7297 2845.4,-72.0501 2827,-67 2641.16,-16.0078 2021.53,-15.621 1872.46,-16.292"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1872.15,-12.7934 1862.17,-16.3435 1872.18,-19.7933 1872.15,-12.7934"/>
 </g>
 <!-- Node21&#45;&gt;Node14 -->
-<g id="edge35" class="edge"><title>Node21&#45;&gt;Node14</title>
-<path fill="none" stroke="midnightblue" d="M2760.3,-132.4C2856.54,-131.577 3025.52,-124.608 3072,-87 3087.52,-74.4452 3093.05,-51.3954 3094.99,-35.0736"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="3098.48,-35.3214 3095.84,-25.0605 3091.51,-34.7274 3098.48,-35.3214"/>
+<g id="edge34" class="edge"><title>Node21&#45;&gt;Node14</title>
+<path fill="none" stroke="midnightblue" d="M2989.27,-123.319C3038.97,-103.035 3162.86,-52.4732 3220.55,-28.9284"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="3221.93,-32.1437 3229.87,-25.1245 3219.29,-25.6627 3221.93,-32.1437"/>
 </g>
 <!-- Node22&#45;&gt;Node10 -->
-<g id="edge38" class="edge"><title>Node22&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M1586.23,-183.941C1736.2,-174.161 2117.04,-149.324 2278.18,-138.814"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2278.72,-142.286 2288.48,-138.143 2278.27,-135.301 2278.72,-142.286"/>
+<g id="edge37" class="edge"><title>Node22&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M1548.02,-182.399C1659.07,-172.372 1891.33,-151.398 2010.31,-140.655"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2010.77,-144.127 2020.41,-139.742 2010.14,-137.156 2010.77,-144.127"/>
 </g>
 <!-- Node22&#45;&gt;Node11 -->
-<g id="edge39" class="edge"><title>Node22&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M1525.52,-179.42C1528.6,-164.938 1537.04,-135.956 1557,-123 1591.14,-100.833 2172.68,-84.6131 2375.16,-79.6153"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2375.46,-83.109 2385.37,-79.3648 2375.29,-76.1111 2375.46,-83.109"/>
+<g id="edge38" class="edge"><title>Node22&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M1506.35,-179.413C1541.74,-164.921 1617.22,-135.923 1684,-123 1801.59,-100.244 2155.08,-85.6227 2305.28,-80.2804"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2305.43,-83.7772 2315.3,-79.9268 2305.19,-76.7815 2305.43,-83.7772"/>
 </g>
 <!-- Node22&#45;&gt;Node12 -->
-<g id="edge37" class="edge"><title>Node22&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M1522.84,-179.074C1521.56,-165.128 1521.34,-138.198 1536,-123 1615.65,-40.4207 1674.35,-82.6891 1788,-67 2094.82,-24.6461 2464.74,-17.5617 2619.87,-16.5542"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2620.25,-20.0522 2630.22,-16.494 2620.2,-13.0523 2620.25,-20.0522"/>
+<g id="edge36" class="edge"><title>Node22&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M1498.9,-179.307C1520.49,-165.185 1565.75,-137.394 1608,-123 1811.73,-53.5992 2476.26,-26.1414 2699.83,-18.7243"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2700.26,-22.2121 2710.14,-18.3861 2700.03,-15.2159 2700.26,-22.2121"/>
 </g>
 <!-- Node22&#45;&gt;Node13 -->
-<g id="edge41" class="edge"><title>Node22&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M1513.29,-179.305C1504.06,-171.069 1491.41,-157.789 1486,-143 1474.4,-111.277 1464.92,-93.3906 1486,-67 1509.51,-37.5722 1620.7,-24.0232 1676.67,-18.9823"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1677.1,-22.4582 1686.76,-18.1117 1676.5,-15.4841 1677.1,-22.4582"/>
+<g id="edge40" class="edge"><title>Node22&#45;&gt;Node13</title>
+<path fill="none" stroke="midnightblue" d="M1441.09,-179.485C1402.01,-169.953 1354.6,-151.929 1375,-123 1425.54,-51.3148 1710.77,-25.3459 1807.73,-18.5166"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1808.09,-22.0009 1817.82,-17.8278 1807.61,-15.0171 1808.09,-22.0009"/>
 </g>
 <!-- Node22&#45;&gt;Node17 -->
-<g id="edge40" class="edge"><title>Node22&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M1535.41,-179.324C1546.11,-171.185 1562.34,-158.839 1575.16,-149.087"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1577.54,-151.673 1583.39,-142.834 1573.31,-146.102 1577.54,-151.673"/>
+<g id="edge39" class="edge"><title>Node22&#45;&gt;Node17</title>
+<path fill="none" stroke="midnightblue" d="M1474.27,-179.324C1463.16,-171.107 1446.26,-158.602 1433.02,-148.807"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1435.06,-145.967 1424.94,-142.834 1430.9,-151.595 1435.06,-145.967"/>
 </g>
 <!-- Node22&#45;&gt;Node18 -->
-<g id="edge42" class="edge"><title>Node22&#45;&gt;Node18</title>
-<path fill="none" stroke="midnightblue" d="M1461.96,-180.134C1458.59,-179.742 1455.26,-179.361 1452,-179 1305.37,-162.729 1132.31,-146.814 1044.79,-138.998"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1045.08,-135.509 1034.81,-138.108 1044.46,-142.482 1045.08,-135.509"/>
+<g id="edge41" class="edge"><title>Node22&#45;&gt;Node18</title>
+<path fill="none" stroke="midnightblue" d="M1423.96,-180.134C1420.59,-179.742 1417.26,-179.361 1414,-179 1267.37,-162.729 1094.31,-146.814 1006.79,-138.998"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1007.08,-135.509 996.805,-138.108 1006.46,-142.482 1007.08,-135.509"/>
 </g>
 <!-- Node22&#45;&gt;Node19 -->
-<g id="edge43" class="edge"><title>Node22&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M1461.97,-180.026C1458.6,-179.661 1455.26,-179.316 1452,-179 1221.42,-156.624 1163.01,-160.361 932,-143 906.153,-141.058 876.936,-138.681 854.968,-136.858"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="855.068,-133.355 844.812,-136.012 854.487,-140.331 855.068,-133.355"/>
+<g id="edge42" class="edge"><title>Node22&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M1423.97,-180.024C1420.6,-179.66 1417.26,-179.316 1414,-179 1382.87,-175.986 922.995,-144.969 793.63,-136.262"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.733,-132.761 783.521,-135.581 793.263,-139.745 793.733,-132.761"/>
 </g>
 <!-- Node22&#45;&gt;Node20 -->
-<g id="edge44" class="edge"><title>Node22&#45;&gt;Node20</title>
-<path fill="none" stroke="midnightblue" d="M1520.64,-198.658C1514.88,-206.407 1504.21,-218.088 1493.8,-228.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="1491.18,-225.969 1486.35,-235.399 1496,-231.039 1491.18,-225.969"/>
+<g id="edge43" class="edge"><title>Node22&#45;&gt;Node20</title>
+<path fill="none" stroke="midnightblue" d="M1488.46,-198.658C1487.95,-205.805 1485.52,-216.297 1482.36,-225.897"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1479.04,-224.806 1478.87,-235.399 1485.61,-227.222 1479.04,-224.806"/>
 </g>
 <!-- Node23&#45;&gt;Node11 -->
-<g id="edge48" class="edge"><title>Node23&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M2247.96,-179.413C2251.6,-165.444 2260.75,-137.868 2279,-123 2306,-101.001 2342.9,-89.7141 2374.96,-83.9416"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2375.89,-87.3366 2385.18,-82.2546 2374.75,-80.4301 2375.89,-87.3366"/>
+<g id="edge47" class="edge"><title>Node23&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M2287.88,-179.433C2294,-166.432 2306.8,-141.299 2322,-123 2331.3,-111.808 2343.53,-101.073 2353.79,-92.8972"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2356.07,-95.5606 2361.84,-86.6772 2351.79,-90.0212 2356.07,-95.5606"/>
 </g>
 <!-- Node23&#45;&gt;Node12 -->
-<g id="edge46" class="edge"><title>Node23&#45;&gt;Node12</title>
-<path fill="none" stroke="midnightblue" d="M2245.42,-179.434C2244.97,-165.982 2246,-139.717 2259,-123 2294.39,-77.4889 2320.96,-84.1439 2376,-67 2457.44,-41.6345 2554.77,-28.5658 2620.12,-22.1467"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2620.7,-25.607 2630.32,-21.1727 2620.03,-18.6386 2620.7,-25.607"/>
+<g id="edge45" class="edge"><title>Node23&#45;&gt;Node12</title>
+<path fill="none" stroke="midnightblue" d="M2308.3,-179.495C2384.63,-152.781 2620.64,-70.1764 2724.3,-33.8933"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2725.63,-37.1371 2733.91,-30.53 2723.32,-30.5301 2725.63,-37.1371"/>
 </g>
 <!-- Node23&#45;&gt;Node15 -->
-<g id="edge49" class="edge"><title>Node23&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M2228.62,-179.428C2180.34,-156.105 2039.86,-91.6025 1915,-67 1659.53,-16.6633 812.899,-15.986 639.279,-16.3911"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="639.04,-12.8917 629.049,-16.4182 639.058,-19.8916 639.04,-12.8917"/>
+<g id="edge48" class="edge"><title>Node23&#45;&gt;Node15</title>
+<path fill="none" stroke="midnightblue" d="M2271.23,-179.436C2248.94,-164.978 2201.01,-136.033 2156,-123 1930.99,-57.8449 1172.29,-24.3242 1007.68,-17.7229"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="1007.42,-14.2099 997.289,-17.3105 1007.14,-21.2044 1007.42,-14.2099"/>
 </g>
 <!-- Node23&#45;&gt;Node19 -->
-<g id="edge50" class="edge"><title>Node23&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M2184.2,-185.398C2139.22,-183.534 2076.84,-181.007 2022,-179 1537.62,-161.27 1415.92,-170.594 932,-143 906.122,-141.524 876.907,-139.126 854.947,-137.176"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="855.069,-133.673 844.795,-136.261 854.441,-140.645 855.069,-133.673"/>
+<g id="edge49" class="edge"><title>Node23&#45;&gt;Node19</title>
+<path fill="none" stroke="midnightblue" d="M2222.35,-186.13C1970.59,-178.479 1027.54,-149.644 894,-143 859.873,-141.302 820.906,-138.599 793.824,-136.598"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="793.94,-133.097 783.707,-135.842 793.418,-140.077 793.94,-133.097"/>
 </g>
 <!-- Node23&#45;&gt;Node21 -->
-<g id="edge47" class="edge"><title>Node23&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M2307.55,-180.548C2387.31,-170.891 2526.47,-154.042 2613.68,-143.483"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2614.28,-146.936 2623.79,-142.259 2613.44,-139.986 2614.28,-146.936"/>
+<g id="edge46" class="edge"><title>Node23&#45;&gt;Node21</title>
+<path fill="none" stroke="midnightblue" d="M2345.6,-183.137C2470.31,-173.292 2752.41,-151.02 2889.83,-140.171"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2890.18,-143.655 2899.87,-139.379 2889.63,-136.677 2890.18,-143.655"/>
 </g>
 <!-- Node27&#45;&gt;Node10 -->
-<g id="edge82" class="edge"><title>Node27&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M2389.87,-425.345C2384.57,-384.54 2362,-210.938 2354.46,-152.948"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2357.89,-152.155 2353.13,-142.69 2350.95,-153.058 2357.89,-152.155"/>
+<g id="edge81" class="edge"><title>Node27&#45;&gt;Node10</title>
+<path fill="none" stroke="midnightblue" d="M2210.1,-425.405C2207.66,-403.975 2199.95,-346.685 2183,-302 2160.47,-242.589 2117.76,-179.99 2096.57,-150.812"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2099.25,-148.541 2090.5,-142.56 2093.61,-152.689 2099.25,-148.541"/>
 </g>
 <!-- Node27&#45;&gt;Node11 -->
-<g id="edge84" class="edge"><title>Node27&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M2393.25,-425.03C2402,-389.556 2433.84,-255.516 2444,-143 2445.4,-127.527 2445.29,-109.898 2444.9,-96.9062"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="2448.39,-96.7098 2444.5,-86.854 2441.4,-96.983 2448.39,-96.7098"/>
+<g id="edge83" class="edge"><title>Node27&#45;&gt;Node11</title>
+<path fill="none" stroke="midnightblue" d="M2229.35,-425.479C2244.49,-417.708 2265.72,-405.01 2280,-389 2342.84,-318.538 2340.05,-286.705 2375,-199 2387.81,-166.846 2398.55,-156.988 2392,-123 2390.21,-113.705 2386.52,-103.889 2382.94,-95.8048"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="2386.06,-94.2089 2378.62,-86.6611 2379.73,-97.1981 2386.06,-94.2089"/>
 </g>
... 400106 lines suppressed ...