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 2022/04/05 20:43:04 UTC

[tvm-site] branch asf-site updated: deploying docs (apache/tvm@5ec061f9766d40c9ef27662b48485b80075142a3)

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/tvm-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3861c6560 deploying docs (apache/tvm@5ec061f9766d40c9ef27662b48485b80075142a3)
3861c6560 is described below

commit 3861c6560548a3756d35bd02d4ab1d19e39cb28d
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Tue Apr 5 20:42:58 2022 +0000

    deploying docs (apache/tvm@5ec061f9766d40c9ef27662b48485b80075142a3)
---
 .../how_to/compile_models/from_mxnet.rst.txt       |    2 +-
 .../how_to/compile_models/from_paddle.rst.txt      |    2 +-
 .../how_to/compile_models/from_pytorch.rst.txt     |    2 +-
 .../how_to/compile_models/from_tensorflow.rst.txt  |    2 +-
 .../compile_models/sg_execution_times.rst.txt      |   20 +-
 .../deploy_models/deploy_model_on_android.rst.txt  |    2 +-
 .../deploy_object_detection_pytorch.rst.txt        |    4 +-
 .../deploy_models/deploy_prequantized.rst.txt      |    6 +-
 .../deploy_prequantized_tflite.rst.txt             |    4 +-
 .../how_to/deploy_models/deploy_quantized.rst.txt  |    2 +-
 .../deploy_models/deploy_ssd_gluoncv.rst.txt       |    4 +-
 .../deploy_models/sg_execution_times.rst.txt       |   18 +-
 .../extend_tvm/bring_your_own_datatypes.rst.txt    |    2 +-
 .../how_to/extend_tvm/sg_execution_times.rst.txt   |   10 +-
 .../how_to/extend_tvm/use_pass_instrument.rst.txt  |   16 +-
 .../optimize_operators/opt_conv_cuda.rst.txt       |    2 +-
 .../optimize_operators/opt_conv_tensorcore.rst.txt |    2 +-
 .../how_to/optimize_operators/opt_gemm.rst.txt     |   16 +-
 .../optimize_operators/sg_execution_times.rst.txt  |    8 +-
 .../sg_execution_times.rst.txt                     |   16 +-
 .../tune_conv2d_layer_cuda.rst.txt                 |  352 +-
 .../tune_network_cuda.rst.txt                      |    2 +-
 .../tune_network_x86.rst.txt                       |    4 +-
 .../tune_sparse_x86.rst.txt                        |   82 +-
 .../tune_with_autotvm/sg_execution_times.rst.txt   |   12 +-
 .../tune_with_autotvm/tune_conv2d_cuda.rst.txt     |   34 +-
 .../work_with_microtvm/micro_autotune.rst.txt      |   16 +-
 .../work_with_microtvm/sg_execution_times.rst.txt  |   12 +-
 .../work_with_relay/sg_execution_times.rst.txt     |    8 +-
 .../work_with_schedules/sg_execution_times.rst.txt |   18 +-
 .../how_to/work_with_schedules/tensorize.rst.txt   |    4 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    6 +-
 .../frontend/deploy_classification.rst.txt         |    2 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    6 +-
 .../topic/vta/tutorials/sg_execution_times.rst.txt |    6 +-
 .../tutorial/auto_scheduler_matmul_x86.rst.txt     |    9 +-
 docs/_sources/tutorial/autotvm_relay_x86.rst.txt   |   55 +-
 .../tutorial/cross_compilation_and_rpc.rst.txt     |    2 +-
 docs/_sources/tutorial/intro_topi.rst.txt          |    2 +-
 docs/_sources/tutorial/sg_execution_times.rst.txt  |   26 +-
 .../tutorial/tensor_expr_get_started.rst.txt       |   47 +-
 docs/commit_hash                                   |    2 +-
 docs/how_to/compile_models/from_mxnet.html         |    2 +-
 docs/how_to/compile_models/from_paddle.html        |    2 +-
 docs/how_to/compile_models/from_pytorch.html       |   50 +-
 docs/how_to/compile_models/from_tensorflow.html    |    2 +-
 docs/how_to/compile_models/sg_execution_times.html |   20 +-
 .../deploy_models/deploy_model_on_android.html     |    2 +-
 .../deploy_object_detection_pytorch.html           |   19 +-
 docs/how_to/deploy_models/deploy_prequantized.html |   11 +-
 .../deploy_models/deploy_prequantized_tflite.html  |    4 +-
 docs/how_to/deploy_models/deploy_quantized.html    |    2 +-
 docs/how_to/deploy_models/deploy_ssd_gluoncv.html  |   38 +-
 docs/how_to/deploy_models/sg_execution_times.html  |   18 +-
 .../extend_tvm/bring_your_own_datatypes.html       |    2 +-
 docs/how_to/extend_tvm/sg_execution_times.html     |   10 +-
 docs/how_to/extend_tvm/use_pass_instrument.html    |   16 +-
 docs/how_to/optimize_operators/opt_conv_cuda.html  |    2 +-
 .../optimize_operators/opt_conv_tensorcore.html    |    2 +-
 docs/how_to/optimize_operators/opt_gemm.html       |   16 +-
 .../optimize_operators/sg_execution_times.html     |    8 +-
 .../sg_execution_times.html                        |   14 +-
 .../tune_conv2d_layer_cuda.html                    |  352 +-
 .../tune_with_autoscheduler/tune_network_cuda.html |    2 +-
 .../tune_with_autoscheduler/tune_network_x86.html  |    4 +-
 .../tune_with_autoscheduler/tune_sparse_x86.html   |   82 +-
 .../tune_with_autotvm/sg_execution_times.html      |   12 +-
 .../how_to/tune_with_autotvm/tune_conv2d_cuda.html |   34 +-
 docs/how_to/work_with_microtvm/micro_autotune.html |   16 +-
 .../work_with_microtvm/sg_execution_times.html     |   12 +-
 .../how_to/work_with_relay/sg_execution_times.html |    8 +-
 .../work_with_schedules/sg_execution_times.html    |   18 +-
 docs/how_to/work_with_schedules/tensorize.html     |    4 +-
 docs/reference/api/doxygen/annotated.html          |    9 +-
 docs/reference/api/doxygen/classes.html            |  244 +-
 .../api/doxygen/classtvm_1_1BaseAttrsNode.html     |   10 +-
 .../classtvm_1_1BaseAttrsNode__coll__graph.svg     |   16 +-
 .../classtvm_1_1runtime_1_1Object__coll__graph.svg |    8 +-
 docs/reference/api/doxygen/functions_func_s.html   |    4 +-
 docs/reference/api/doxygen/functions_func_t.html   |    7 +-
 docs/reference/api/doxygen/functions_i.html        |    4 +-
 docs/reference/api/doxygen/functions_l.html        |    5 +-
 docs/reference/api/doxygen/functions_r.html        |    3 +
 docs/reference/api/doxygen/functions_s.html        |   10 +-
 docs/reference/api/doxygen/functions_t.html        |   11 +-
 docs/reference/api/doxygen/functions_v.html        |    8 +-
 docs/reference/api/doxygen/functions_vars_l.html   |    3 +
 docs/reference/api/doxygen/functions_vars_r.html   |    3 +
 docs/reference/api/doxygen/hierarchy.html          |  462 +-
 docs/reference/api/doxygen/inherit_graph_10.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_107.svg   | 7660 ++++++++++----------
 docs/reference/api/doxygen/inherit_graph_185.svg   |    8 +-
 docs/reference/api/doxygen/inherit_graph_199.svg   |   16 +-
 docs/reference/api/doxygen/inherit_graph_200.svg   |   16 +-
 docs/reference/api/doxygen/inherit_graph_39.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_43.svg    |    8 +-
 docs/reference/api/doxygen/inherits.html           |    2 +-
 .../api/doxygen/namespacetvm_1_1relay_1_1qnn.html  |    3 +
 .../api/doxygen/relay_2qnn_2attrs_8h.html          |    3 +
 .../api/doxygen/relay_2qnn_2attrs_8h_source.html   |    6 +-
 docs/reference/api/doxygen/search/all_13.js        |    5 +-
 docs/reference/api/doxygen/search/all_14.js        |   12 +-
 docs/reference/api/doxygen/search/all_15.js        |   12 +-
 docs/reference/api/doxygen/search/all_16.js        |    4 +-
 docs/reference/api/doxygen/search/all_17.js        |    6 +-
 docs/reference/api/doxygen/search/all_18.js        |    2 +-
 docs/reference/api/doxygen/search/all_2.js         |    1 +
 docs/reference/api/doxygen/search/all_3.js         |    1 +
 docs/reference/api/doxygen/search/all_a.js         |    2 +-
 docs/reference/api/doxygen/search/all_d.js         |    1 +
 docs/reference/api/doxygen/search/all_e.js         |    4 +-
 docs/reference/api/doxygen/search/classes_0.js     |    1 +
 docs/reference/api/doxygen/search/classes_1.js     |    1 +
 docs/reference/api/doxygen/search/classes_10.js    |    6 +-
 docs/reference/api/doxygen/search/classes_11.js    |    4 +-
 docs/reference/api/doxygen/search/classes_13.js    |    4 +-
 docs/reference/api/doxygen/search/classes_f.js     |    2 +-
 docs/reference/api/doxygen/search/functions_12.js  |    2 +-
 docs/reference/api/doxygen/search/functions_13.js  |    2 +-
 docs/reference/api/doxygen/search/functions_14.js  |    4 +-
 docs/reference/api/doxygen/search/functions_15.js  |    2 +-
 docs/reference/api/doxygen/search/functions_16.js  |    2 +-
 docs/reference/api/doxygen/search/functions_d.js   |    2 +-
 docs/reference/api/doxygen/search/variables_10.js  |    1 +
 docs/reference/api/doxygen/search/variables_b.js   |    1 +
 ..._1_1relay_1_1qnn_1_1BroadcastAttrs-members.html |  126 +
 ...tructtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html |  306 +
 ...relay_1_1qnn_1_1BroadcastAttrs__coll__graph.svg |  136 +
 ...ay_1_1qnn_1_1BroadcastAttrs__inherit__graph.svg |  130 +
 docs/reference/api/python/auto_scheduler.html      |    4 +-
 .../api/typedoc/classes/bytestreamreader.html      |   12 +-
 .../api/typedoc/classes/cachedcallstack.html       |   34 +-
 docs/reference/api/typedoc/classes/dldatatype.html |   12 +-
 docs/reference/api/typedoc/classes/dldevice.html   |   10 +-
 .../reference/api/typedoc/classes/environment.html |   12 +-
 docs/reference/api/typedoc/classes/ffilibrary.html |   20 +-
 .../api/typedoc/classes/graphexecutor.html         |   16 +-
 docs/reference/api/typedoc/classes/instance.html   |   40 +-
 docs/reference/api/typedoc/classes/memory.html     |   34 +-
 docs/reference/api/typedoc/classes/module.html     |   10 +-
 docs/reference/api/typedoc/classes/ndarray.html    |   22 +-
 .../api/typedoc/classes/packedfunccell.html        |    6 +-
 docs/reference/api/typedoc/classes/rpcserver.html  |   14 +-
 docs/reference/api/typedoc/classes/scalar.html     |    6 +-
 .../api/typedoc/classes/webgpucontext.html         |   12 +-
 docs/reference/api/typedoc/enums/argtypecode.html  |   30 +-
 .../api/typedoc/enums/aynccallbackcode.html        |    4 +-
 .../api/typedoc/enums/dldatatypecode.html          |    8 +-
 .../api/typedoc/enums/rpcserverstate.html          |   12 +-
 docs/reference/api/typedoc/enums/sizeof.html       |   18 +-
 docs/reference/api/typedoc/index.html              |  112 +-
 .../api/typedoc/interfaces/disposable.html         |    2 +-
 .../api/typedoc/interfaces/functioninfo.html       |    6 +-
 .../api/typedoc/interfaces/libraryprovider.html    |    4 +-
 docs/searchindex.js                                |    2 +-
 .../vta/tutorials/autotvm/sg_execution_times.html  |    6 +-
 .../tutorials/frontend/deploy_classification.html  |    2 +-
 .../vta/tutorials/frontend/deploy_detection.html   |    2 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    6 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    6 +-
 docs/topic/vta/tutorials/sg_execution_times.html   |    6 +-
 docs/tutorial/auto_scheduler_matmul_x86.html       |    5 +-
 docs/tutorial/autotvm_relay_x86.html               |  163 +-
 docs/tutorial/cross_compilation_and_rpc.html       |    2 +-
 docs/tutorial/intro_topi.html                      |    2 +-
 docs/tutorial/sg_execution_times.html              |   26 +-
 docs/tutorial/tensor_expr_get_started.html         |   43 +-
 169 files changed, 6493 insertions(+), 5220 deletions(-)

diff --git a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
index a9f8f1d77..e38d86319 100644
--- a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
@@ -98,7 +98,7 @@ In this section, we download a pretrained imagenet model and classify an image.
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip44141c3a-0e11-4b6e-a8ba-8e947f92cdd1 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zipe32d3e85-a3e2-4077-b0f3-55553b5b0ee2 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
     x (1, 3, 224, 224)
 
 
diff --git a/docs/_sources/how_to/compile_models/from_paddle.rst.txt b/docs/_sources/how_to/compile_models/from_paddle.rst.txt
index db6cb6b24..c87aea09f 100644
--- a/docs/_sources/how_to/compile_models/from_paddle.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_paddle.rst.txt
@@ -201,7 +201,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  4.093 seconds)
+   **Total running time of the script:** ( 1 minutes  5.575 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_paddle.py:
diff --git a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
index bef2492b4..4bb6f77e2 100644
--- a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
@@ -79,7 +79,7 @@ Load a pretrained PyTorch model
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
-
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     37%|###6      | 16.5M/44.7M [00:00<00:00, 172MB/s]
     87%|########6 | 38.7M/44.7M [00:00<00:00, 208MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 208MB/s]
+
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
      0%|          | 40.0k/44.7M [00:00<02:44, 284kB/s]
      0%|          | 104k/44.7M [00:00<02:00, 389kB/s] 
      0%|          | 208k/44.7M [00:00<01:17, 605kB/s]
      1%|          | 352k/44.7M [00:00<00:52, 884kB/s]
      1%|1         | 592k/44.7M [00:00<00:33, 1.38MB/s]
      2%|2         | 992k/44.7M [00:00<00:20, 2.22MB/s]
      4%|3         | 1.62M/44.7M [00:00<00:12, 3.65MB/s]
      6%|6         | 2.73M/44.7M [00:00<00:07, 6.04MB/s]
      8%|8         | 3.77M/44.7M [00:01<00:05, 7.49MB/s]
     11%|#         | 4.84M/44.7M [00:01<00:04, 8.63MB/s]
     14%|#3        | 6.04M/44.7M [00:01<00:04, 9.80MB/s]
     16%|#5        | 7.06M/44.7M [00:01<00:03, 10.0MB/s]
     18%|#8        | 8.15M/44.7M [00:01<00:03, 10.4MB/s]
     21%|##        | 9.27M/44.7M [00:01<00:03, 10.8MB/s]
     23%|##3       | 10.3M/44.7M [00:01<00:03, 10.9MB/s]
     26%|##5       | 11.4M/44.7M [00:01<00:03, 11.0MB/s]
     28%|##8       | 12.5M/44.7M [00:01<00:0
 3, 11.2MB/s]
     31%|###       | 13.6M/44.7M [00:01<00:02, 11.3MB/s]
     33%|###2      | 14.7M/44.7M [00:02<00:02, 11.3MB/s]
     35%|###5      | 15.8M/44.7M [00:02<00:02, 11.3MB/s]
     38%|###7      | 16.9M/44.7M [00:02<00:02, 11.4MB/s]
     40%|####      | 18.0M/44.7M [00:02<00:02, 11.4MB/s]
     43%|####2     | 19.1M/44.7M [00:02<00:02, 11.4MB/s]
     45%|####5     | 20.2M/44.7M [00:02<00:02, 11.4MB/s]
     48%|####7     | 21.3M/44.7M [00:02<00:02, 11.4MB/s]
     50%|#####     | 22.4M/44.7M [00:02<00:02, 11.5MB/s]
     53%|#####2    | 23.5M/44.7M [00:02<00:01, 11.4MB/s]
     55%|#####5    | 24.6M/44.7M [00:02<00:01, 11.4MB/s]
     58%|#####7    | 25.8M/44.7M [00:03<00:01, 11.5MB/s]
     60%|######    | 26.9M/44.7M [00:03<00:01, 11.4MB/s]
     63%|######2   | 28.0M/44.7M [00:03<00:01, 11.4MB/s]
     65%|######5   | 29.1M/44.7M [00:03<00:01, 11.5MB/s]
     68%|######7   | 30.2M/44.7M [00:03<00:01, 11.5MB/s]
     70%|#######   | 31.3M/44.7M [00:03<00:01, 11.5MB/s]
     73%|######
 #2  | 32.4M/44.7M [00:03<00:01, 11.4MB/s]
     75%|#######4  | 33.5M/44.7M [00:03<00:01, 11.4MB/s]
     78%|#######7  | 34.6M/44.7M [00:03<00:00, 11.5MB/s]
     80%|#######9  | 35.7M/44.7M [00:03<00:00, 11.5MB/s]
     82%|########2 | 36.8M/44.7M [00:04<00:00, 11.4MB/s]
     85%|########4 | 37.9M/44.7M [00:04<00:00, 11.4MB/s]
     87%|########7 | 39.0M/44.7M [00:04<00:00, 11.5MB/s]
     90%|########9 | 40.1M/44.7M [00:04<00:00, 11.4MB/s]
     92%|#########2| 41.2M/44.7M [00:04<00:00, 11.4MB/s]
     95%|#########4| 42.4M/44.7M [00:04<00:00, 11.5MB/s]
     97%|#########7| 43.5M/44.7M [00:04<00:00, 11.5MB/s]
    100%|#########9| 44.6M/44.7M [00:04<00:00, 11.4MB/s]
    100%|##########| 44.7M/44.7M [00:04<00:00, 9.85MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
index c3a675a9a..39b61dd24 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -372,7 +372,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  1.045 seconds)
+   **Total running time of the script:** ( 1 minutes  0.955 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_tensorflow.py:
diff --git a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
index ddff25b86..3fbfd4986 100644
--- a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**04:44.641** total execution time for **how_to_compile_models** files:
+**04:53.594** total execution time for **how_to_compile_models** files:
 
-- **01:04.093**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
-- **01:01.045**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:55.752**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
-- **00:25.368**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
-- **00:22.179**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
-- **00:20.580**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
-- **00:19.293**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
-- **00:13.632**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
-- **00:02.699**: :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)
+- **01:05.575**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
+- **01:00.955**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:57.042**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
+- **00:26.250**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
+- **00:24.046**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
+- **00:21.962**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
+- **00:21.277**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
+- **00:13.855**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
+- **00:02.632**: :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
index 0d8f82a4a..a91fcd31f 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
@@ -393,7 +393,7 @@ Execute on TVM
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      16.0534      16.0881      16.3155      15.7336       0.1698   
+      15.7893      15.7791      15.9486      15.6496       0.1033   
                
 
 
diff --git a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
index d18eaab93..c0f066f46 100644
--- a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
@@ -108,7 +108,7 @@ Load pre-trained maskrcnn from torchvision and do tracing
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
-
      0%|          | 0.00/170M [00:00<?, ?B/s]
     12%|#1        | 19.8M/170M [00:00<00:00, 208MB/s]
     23%|##3       | 39.6M/170M [00:00<00:00, 196MB/s]
     39%|###8      | 65.5M/170M [00:00<00:00, 229MB/s]
     54%|#####3    | 91.5M/170M [00:00<00:00, 246MB/s]
     69%|######9   | 118M/170M [00:00<00:00, 257MB/s] 
     85%|########4 | 144M/170M [00:00<00:00, 261MB/s]
     99%|#########9| 169M/170M [00:00<00:00, 262MB/s]
    100%|##########| 170M/170M [00:00<00:00, 249MB/s]
+
      0%|          | 0.00/170M [00:00<?, ?B/s]
      3%|2         | 4.87M/170M [00:00<00:03, 51.0MB/s]
      6%|5         | 9.73M/170M [00:00<00:03, 48.2MB/s]
     21%|##        | 34.9M/170M [00:00<00:00, 143MB/s] 
     30%|###       | 51.2M/170M [00:00<00:00, 154MB/s]
     44%|####4     | 75.5M/170M [00:00<00:00, 190MB/s]
     60%|#####9    | 102M/170M [00:00<00:00, 218MB/s] 
     75%|#######4  | 127M/170M [00:00<00:00, 233MB/s]
     90%|########9 | 152M/170M [00:00<00:00, 244MB/s]
    100%|##########| 170M/170M [00:00<00:00, 202MB/s]
     /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:3878: 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 i in range(dim)
     /usr/local/lib/python3.7/dist-packages/torchvision/models/detection/anchor_utils.py:127: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
@@ -253,7 +253,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  2.538 seconds)
+   **Total running time of the script:** ( 3 minutes  0.672 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_object_detection_pytorch.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
index bdf8ca31e..bf111cf6d 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -187,7 +187,7 @@ training. Other models require a full post training calibration.
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
-
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
     28%|##7       | 3.73M/13.6M [00:00<00:00, 39.0MB/s]
     55%|#####5    | 7.46M/13.6M [00:00<00:00, 36.7MB/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 56.4MB/s]
+
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
     23%|##2       | 3.07M/13.6M [00:00<00:00, 32.1MB/s]
     45%|####5     | 6.14M/13.6M [00:00<00:00, 29.3MB/s]
     73%|#######3  | 9.95M/13.6M [00:00<00:00, 33.9MB/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 38.1MB/s]
 
 
 
@@ -344,7 +344,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      90.1482      90.0487      90.9326      89.9494       0.2301   
+      90.3071      90.1194      98.5680      89.9626       1.0693   
                
 
 
@@ -384,7 +384,7 @@ TODO
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  4.459 seconds)
+   **Total running time of the script:** ( 1 minutes  2.677 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
index be8951dd0..dfaf2b77d 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
@@ -351,7 +351,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      119.0673     118.7645     140.0764     117.7407      2.2965   
+      119.5094     119.4100     124.7076     118.6000      0.6309   
                
 
 
@@ -385,7 +385,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:** ( 1 minutes  52.051 seconds)
+   **Total running time of the script:** ( 1 minutes  57.817 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
index b848b1068..f9c4d258c 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -221,7 +221,7 @@ We create a Relay VM to build and execute the model.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  13.515 seconds)
+   **Total running time of the script:** ( 1 minutes  17.380 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_quantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
index 6860986bb..a568dae4e 100644
--- a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
@@ -137,7 +137,7 @@ Convert and compile model for CPU.
             data: None
       input_sym_arg_type = in_param.infer_type()[0]
     Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
-
      0%|          | 0/132723 [00:00<?, ?KB/s]
      5%|4         | 6261/132723 [00:00<00:02, 62595.43KB/s]
     10%|#         | 13893/132723 [00:00<00:01, 70665.79KB/s]
     16%|#6        | 21553/132723 [00:00<00:01, 73372.77KB/s]
     22%|##2       | 29265/132723 [00:00<00:01, 74847.56KB/s]
     28%|##7       | 36900/132723 [00:00<00:01, 75380.78KB/s]
     34%|###3      | 44571/132723 [00:00<00:01, 75830.78KB/s]
     39%|###9      | 52283/132723 [00:00<00:01, 76247.72KB/s]
     45%|####5     | 59947/132723 [00:00<00:00, 76367.34KB/s]
     51%|#####     | 67584/132723 [00:00<00:00, 76277.58KB/s]
     57%|#####6    | 75304/132723 [00:01<00:00, 76561.10KB/s]
     63%|######2   | 83108/132723 [00:01<00:00, 77011.49KB/s]
     69%|######8   | 90923/132723 [00:01<00:00, 77355.68KB/s]
     74%|#######4  | 98698/132723 [00:01<00:00, 77472.60KB/s]
     80%|########  | 106446/132723 [00:01<00:00, 77449.49KB/s]
     86%|########6 | 114205/132723 [00:01<00:00, 77489.17KB/s]
     92%|#########
 2| 122146/132723 [00:01<00:00, 78062.82KB/s]
     98%|#########8| 130162/132723 [00:01<00:00, 78686.48KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 76545.42KB/s]
+
      0%|          | 0/132723 [00:00<?, ?KB/s]
      5%|4         | 6103/132723 [00:00<00:02, 61023.37KB/s]
     10%|#         | 13869/132723 [00:00<00:01, 70804.06KB/s]
     16%|#6        | 21579/132723 [00:00<00:01, 73674.12KB/s]
     22%|##2       | 29384/132723 [00:00<00:01, 75399.22KB/s]
     28%|##8       | 37174/132723 [00:00<00:01, 76297.84KB/s]
     34%|###3      | 44955/132723 [00:00<00:01, 76808.79KB/s]
     40%|###9      | 52636/132723 [00:00<00:01, 75310.06KB/s]
     45%|####5     | 60366/132723 [00:00<00:00, 75932.40KB/s]
     51%|#####1    | 68109/132723 [00:00<00:00, 76393.59KB/s]
     57%|#####7    | 75858/132723 [00:01<00:00, 76727.16KB/s]
     63%|######3   | 83622/132723 [00:01<00:00, 77002.27KB/s]
     69%|######8   | 91437/132723 [00:01<00:00, 77346.76KB/s]
     75%|#######4  | 99174/132723 [00:01<00:00, 77079.41KB/s]
     81%|########  | 106905/132723 [00:01<00:00, 77147.03KB/s]
     86%|########6 | 114685/132723 [00:01<00:00, 77341.54KB/s]
     92%|#########
 2| 122428/132723 [00:01<00:00, 77365.42KB/s]
     98%|#########8| 130198/132723 [00:01<00:00, 77459.59KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 76262.64KB/s]
 
 
 
@@ -202,7 +202,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  20.620 seconds)
+   **Total running time of the script:** ( 2 minutes  21.079 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
index 47c6af853..049478c2a 100644
--- a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
@@ -5,13 +5,13 @@
 
 Computation times
 =================
-**10:21.476** total execution time for **how_to_deploy_models** files:
+**10:28.194** total execution time for **how_to_deploy_models** files:
 
-- **03:02.538**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
-- **02:20.620**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **01:52.051**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **01:13.515**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
-- **01:04.459**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:26.989**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:21.108**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:00.196**: :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)
+- **03:00.672**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
+- **02:21.079**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **01:57.817**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **01:17.380**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
+- **01:02.677**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:26.727**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:21.656**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:00.186**: :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)
diff --git a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
index 0db3f9aa1..35d6e719a 100644
--- a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
@@ -423,7 +423,7 @@ First let us define two helper functions to get the mobilenet model and a cat im
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip3b99be30-aa86-4492-8b02-d4c729a8b20c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip1de20b6f-9555-4ec4-a42f-30ffd53050a2 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 
 
 
diff --git a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
index 91d7981cf..619c3a127 100644
--- a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
@@ -5,9 +5,9 @@
 
 Computation times
 =================
-**00:37.955** total execution time for **how_to_extend_tvm** files:
+**00:37.730** total execution time for **how_to_extend_tvm** files:
 
-- **00:34.324**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
-- **00:02.236**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
-- **00:01.198**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
-- **00:00.197**: :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:34.250**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
+- **00:02.224**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
+- **00:01.054**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
+- **00:00.202**: :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)
diff --git a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
index 20acd93b0..46729ab7c 100644
--- a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
@@ -199,10 +199,10 @@ profile the execution time of each passes.
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 6891us [6891us] (48.12%; 48.12%)
-    FoldScaleAxis: 7429us [3us] (51.88%; 51.88%)
-            FoldConstant: 7427us [1539us] (51.86%; 99.96%)
-                    InferType: 5888us [5888us] (41.12%; 79.28%)
+    InferType: 5935us [5935us] (45.39%; 45.39%)
+    FoldScaleAxis: 7141us [2us] (54.61%; 54.61%)
+            FoldConstant: 7139us [1461us] (54.60%; 99.97%)
+                    InferType: 5678us [5678us] (43.42%; 79.53%)
 
 
 
@@ -239,10 +239,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 6022us [6022us] (44.85%; 44.85%)
-    FoldScaleAxis: 7404us [2us] (55.15%; 55.15%)
-            FoldConstant: 7402us [1553us] (55.13%; 99.97%)
-                    InferType: 5849us [5849us] (43.56%; 79.02%)
+    InferType: 5730us [5730us] (44.49%; 44.49%)
+    FoldScaleAxis: 7148us [2us] (55.51%; 55.51%)
+            FoldConstant: 7147us [1491us] (55.49%; 99.97%)
+                    InferType: 5655us [5655us] (43.91%; 79.13%)
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
index 01336b0a6..ab98e0357 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
@@ -295,7 +295,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 54.171381 ms
+    Convolution: 34.376518 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
index bc58b3af8..9d4c4f0af 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
@@ -626,7 +626,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 6.678759 ms
+    conv2d with tensor core: 8.285017 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
index 96aab5507..9f99ae360 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/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.018782
-    Baseline: 3.347739
+    Numpy running time: 0.018710
+    Baseline: 3.319441
 
 
 
@@ -209,7 +209,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.298135
+    Opt1: 0.296857
 
 
 
@@ -307,7 +307,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.335212
+    Opt2: 0.333451
 
 
 
@@ -398,7 +398,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.115931
+    Opt3: 0.117757
 
 
 
@@ -516,7 +516,7 @@ flattening.
 
  .. code-block:: none
 
-    Opt4: 0.110467
+    Opt4: 0.112600
 
 
 
@@ -633,7 +633,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.112188
+    Opt5: 0.113386
 
 
 
@@ -753,7 +753,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.144823
+    Opt6: 0.147424
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
index 4e76a16ca..321449bc7 100644
--- a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
@@ -5,8 +5,8 @@
 
 Computation times
 =================
-**00:34.735** total execution time for **how_to_optimize_operators** files:
+**00:34.823** total execution time for **how_to_optimize_operators** files:
 
-- **00:32.133**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
-- **00:01.391**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:01.210**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:32.245**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.394**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:01.184**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
index b36663176..30ffc530c 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
@@ -5,11 +5,11 @@
 
 Computation times
 =================
-**04:54.182** total execution time for **how_to_tune_with_autoscheduler** files:
-
-- **02:21.389**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
-- **01:19.007**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
-- **00:40.244**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
-- **00:16.808**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
-- **00:08.466**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
-- **00:08.267**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)
+**04:50.933** total execution time for **how_to_tune_with_autoscheduler** files:
+
+- **02:18.923**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
+- **01:19.200**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
+- **00:40.043**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
+- **00:15.921**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
+- **00:08.605**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
+- **00:08.241**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
index 16bbea1d3..7bf0b5456 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
@@ -221,57 +221,157 @@ cooperative fetching, unrolling and operator fusion.
                  bias: Buffer(bias_2: Pointer(float32), float32, [512], []),
                  compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
       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" = 32;
-      allocate(conv2d_nchw: Pointer(local float32), float32, [4]), storage_scope = local;
-      allocate(pad_temp.shared: Pointer(shared float32), float32, [1568]), storage_scope = shared;
-      allocate(kernel.shared: Pointer(shared float32), float32, [512]), storage_scope = shared;
-      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196 {
-        conv2d_nchw_1: Buffer(conv2d_nchw, float32, [4], [], scope="local", align=16)[0] = 0f32
+      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 8;
+      allocate(conv2d_nchw: Pointer(local float32), float32, [14]), storage_scope = local;
+      allocate(pad_temp.shared: Pointer(shared float32), float32, [2016]), storage_scope = shared;
+      allocate(kernel.shared: Pointer(shared float32), float32, [6144]), storage_scope = shared;
+      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224 {
+        conv2d_nchw_1: Buffer(conv2d_nchw, float32, [14], [], scope="local", align=32)[0] = 0f32
         conv2d_nchw_1[1] = 0f32
         conv2d_nchw_1[2] = 0f32
         conv2d_nchw_1[3] = 0f32
+        conv2d_nchw_1[4] = 0f32
+        conv2d_nchw_1[5] = 0f32
+        conv2d_nchw_1[6] = 0f32
+        conv2d_nchw_1[7] = 0f32
+        conv2d_nchw_1[8] = 0f32
+        conv2d_nchw_1[9] = 0f32
+        conv2d_nchw_1[10] = 0f32
+        conv2d_nchw_1[11] = 0f32
+        conv2d_nchw_1[12] = 0f32
+        conv2d_nchw_1[13] = 0f32
         for (rc.outer.outer: int32, 0, 16) {
-          for (ry.outer.outer: int32, 0, 3) {
-            for (rx.outer.outer: int32, 0, 3) {
-              let cse_var_2: int32 = (rc.outer.outer*288)
-              let cse_var_1: int32 = (ry.outer.outer*3)
-               {
-                attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1: Buffer(pad_temp.shared, float32, [1568], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) - 8)], 0f32, dtype= [...]
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 196)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 188)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 392)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 384)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 588)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 580)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 776)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 980)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 972)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 1176)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 1168)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                pad_temp.shared_1[(threadIdx.x_1 + 1372)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 1364)], 0f32, dtype=float32)
-                attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                kernel.shared_1: Buffer(kernel.shared, float32, [512], [], scope="shared")[threadIdx.x_2] = kernel[((((((blockIdx.x*73728) + (floordiv(threadIdx.x_2, 32)*4608)) + cse_var_2) + (floormod(threadIdx.x_2, 32)*9)) + cse_var_1) + rx.outer.outer)]
-                attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                kernel.shared_1[(threadIdx.x_2 + 196)] = kernel[((((((blockIdx.x*73728) + (floordiv((floordiv(threadIdx.x_2, 4) + 49), 8)*4608)) + cse_var_2) + (floormod((threadIdx.x_2 + 4), 32)*9)) + cse_var_1) + rx.outer.outer)]
-                attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-                if @tir.likely((threadIdx.x_2 < 120), dtype=bool) {
-                  kernel.shared_1[(threadIdx.x_2 + 392)] = kernel[((((((blockIdx.x*73728) + (floordiv((floordiv(threadIdx.x_2, 4) + 98), 8)*4608)) + cse_var_2) + (floormod((threadIdx.x_2 + 8), 32)*9)) + cse_var_1) + rx.outer.outer)]
-                }
-                for (rc.inner: int32, 0, 32) {
-                  conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[((floordiv(threadIdx.x, 49)*128) + rc.inner)]))
-                  conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*128) + rc.inner) + 32)]))
-                  conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*128) + rc.inner) + 64)]))
-                  conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*128) + rc.inner) + 96)]))
-                }
+          for (rx.outer.outer: int32, 0, 3) {
+            let cse_var_2: int32 = (rc.outer.outer*1568)
+            let cse_var_1: int32 = (rc.outer.outer*288)
+             {
+              attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1: Buffer(pad_temp.shared, float32, [2016], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((7 <= floormod(threadIdx.x_1, 63)) && (floormod(threadIdx.x_1, 63) < 56)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[((((cse_var_2 + (floordiv(threadIdx.x_1, 63)*49)) + rx.outer.outer) + floormod(threadIdx.x_1, 63)) - 8)], 0f32, dtype=float32)
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 224)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 5), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 5), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 32), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 5), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32, dt [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 448)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 1), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 1), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 64), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 1), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32, dt [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 672)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 6), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 6), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 96), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 6), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32, dt [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 896)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 2), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 2), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 128), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 2), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32, d [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 1120)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 7), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 7), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 160), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 7), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32,  [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 1344)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 3), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 3), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 192), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 3), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32,  [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 8), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 8), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 224), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 8), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32,  [...]
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              pad_temp.shared_1[(threadIdx.x_1 + 1792)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 7) + 4), 9)) && (floormod((floordiv(threadIdx.x_1, 7) + 4), 9) < 8)) && (1 <= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) && ((rx.outer.outer + floormod(threadIdx.x_1, 7)) < 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 256), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 4), 9)*7)) + rx.outer.outer) + floormod(threadIdx.x_1, 7)) - 8)], 0f32,  [...]
+              attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1: Buffer(kernel.shared, float32, [6144], [], scope="shared")[threadIdx.x_2] = kernel[(((((blockIdx.x*294912) + (floordiv(threadIdx.x_2, 96)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 224)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 7), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 448)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 14), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 672)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 32256)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 896)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 28), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 1120)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 35), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 1344)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 64512)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 1568)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 49), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 1792)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 56), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 2016)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 96768)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 2240)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 70), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 2464)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 77), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 2688)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 129024)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 2912)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 91), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 3136)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 98), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 3360)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 161280)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 3584)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 112), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 3808)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 119), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 4032)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 193536)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 4256)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 133), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 4480)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 140), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 4704)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 225792)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 4928)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 154), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 5152)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 161), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 5376)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 258048)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 5600)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 175), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              kernel.shared_1[(threadIdx.x_2 + 5824)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 182), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 224;
+              if @tir.likely((threadIdx.x_2 < 96), dtype=bool) {
+                kernel.shared_1[(threadIdx.x_2 + 6048)] = kernel[(((((blockIdx.x*294912) + cse_var_1) + (threadIdx.x_2*3)) + rx.outer.outer) + 290304)]
+              }
+              for (rc.outer.inner: int32, 0, 32) {
+                conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((rc.outer.inner*63) + floormod(threadIdx.x, 7))]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+                conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((rc.outer.inner*63) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+                conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+                conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+                conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 56)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+                conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+                conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+                conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+                conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+                conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+                conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+                conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 56)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
               }
             }
           }
         }
-        for (i1.inner: int32, 0, 4) {
-          compute[((((blockIdx.x*784) + (floordiv(threadIdx.x, 49)*196)) + (i1.inner*49)) + floormod(threadIdx.x, 49))] = max((conv2d_nchw_1[i1.inner] + bias[(((blockIdx.x*16) + (floordiv(threadIdx.x, 49)*4)) + i1.inner)]), 0f32)
+        for (i1.inner: int32, 0, 2) {
+          for (i2.inner: int32, 0, 7) {
+            compute[(((((blockIdx.x*3136) + (floordiv(threadIdx.x, 7)*98)) + (i1.inner*49)) + (i2.inner*7)) + floormod(threadIdx.x, 7))] = max((conv2d_nchw_1[((i1.inner*7) + i2.inner)] + bias[(((blockIdx.x*64) + (floordiv(threadIdx.x, 7)*2)) + i1.inner)]), 0f32)
+          }
         }
       }
     }
@@ -324,7 +424,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.311 ms
+    Execution time of this operator: 0.397 ms
 
 
 
@@ -368,33 +468,33 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
     conv2d_nchw_nn_o_o_i, conv2d_nchw_nn_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_i, factor=1)
     conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_i, factor=1)
     conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
-    conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=4)
-    conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=1)
-    conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=4)
+    conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
+    conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=2)
+    conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=32)
     conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=1)
     conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
-    conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
-    conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=7)
+    conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=7)
+    conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=1)
     conv2d_nchw_yy_o_o_o_o, conv2d_nchw_yy_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_o_i, factor=1)
     conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, factor=1)
     conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=1)
     conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=7)
     conv2d_nchw_xx_o_o_o_o, conv2d_nchw_xx_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_o_i, factor=1)
-    conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=32)
-    conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=1)
+    conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=1)
+    conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=32)
     conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
-    conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
+    conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=3)
     conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
     conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=1)
     s[conv2d_nchw].reorder(conv2d_nchw_nn_o_o_o_o, conv2d_nchw_ff_o_o_o_o, conv2d_nchw_yy_o_o_o_o, conv2d_nchw_xx_o_o_o_o, conv2d_nchw_nn_o_o_o_i, conv2d_nchw_ff_o_o_o_i, conv2d_nchw_yy_o_o_o_i, conv2d_nchw_xx_o_o_o_i, conv2d_nchw_nn_o_o_i, conv2d_nchw_ff_o_o_i, conv2d_nchw_yy_o_o_i, conv2d_nchw_xx_o_o_i, conv2d_nchw_rc_o_o, conv2d_nchw_ry_o_o, conv2d_nchw_rx_o_o, conv2d_nchw_rc_o_i, conv2d_nchw_ry_o_i, conv2d_nchw_rx_o_i, conv2d_nchw_nn_o_i, conv2d_nchw_ff_o_i, conv2d_nchw_yy_o_i, conv2 [...]
     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=4)
-    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=4)
+    compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=2)
+    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_i, compute_i2_i = s[compute].split(compute_i2, 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=1)
     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=7)
@@ -417,14 +517,14 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
     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=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=196)
+    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=224)
     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=1)
     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=196)
+    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=224)
     s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
-    s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 16)
+    s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 512)
     s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "unroll_explicit", True)
 
     CUDA source code:
@@ -442,43 +542,117 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
       #define int64_t long long
       #define uint64_t unsigned long long
     #endif
-    extern "C" __global__ void __launch_bounds__(196) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
-      float conv2d_nchw[4];
-      __shared__ float pad_temp_shared[1568];
-      __shared__ float kernel_shared[512];
+    extern "C" __global__ void __launch_bounds__(224) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+      float conv2d_nchw[14];
+      __shared__ float pad_temp_shared[2016];
+      __shared__ float kernel_shared[6144];
       conv2d_nchw[0] = 0.000000e+00f;
       conv2d_nchw[1] = 0.000000e+00f;
       conv2d_nchw[2] = 0.000000e+00f;
       conv2d_nchw[3] = 0.000000e+00f;
+      conv2d_nchw[4] = 0.000000e+00f;
+      conv2d_nchw[5] = 0.000000e+00f;
+      conv2d_nchw[6] = 0.000000e+00f;
+      conv2d_nchw[7] = 0.000000e+00f;
+      conv2d_nchw[8] = 0.000000e+00f;
+      conv2d_nchw[9] = 0.000000e+00f;
+      conv2d_nchw[10] = 0.000000e+00f;
+      conv2d_nchw[11] = 0.000000e+00f;
+      conv2d_nchw[12] = 0.000000e+00f;
+      conv2d_nchw[13] = 0.000000e+00f;
       for (int rc_outer_outer = 0; rc_outer_outer < 16; ++rc_outer_outer) {
-        for (int ry_outer_outer = 0; ry_outer_outer < 3; ++ry_outer_outer) {
-          for (int rx_outer_outer = 0; rx_outer_outer < 3; ++rx_outer_outer) {
-            __syncthreads();
-            pad_temp_shared[((int)threadIdx.x)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) - 8)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 196)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 188)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 392)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 384)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 588)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 580)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 776)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 980)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 972)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 1176)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 1168)] : 0.000000e+00f);
-            pad_temp_shared[(((int)threadIdx.x) + 1372)] = (((((1 <= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) && ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 1364)] : 0.000000e+00f);
-            kernel_shared[((int)threadIdx.x)] = kernel[((((((((int)blockIdx.x) * 73728) + ((((int)threadIdx.x) >> 5) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) & 31) * 9)) + (ry_outer_outer * 3)) + rx_outer_outer)];
-            kernel_shared[(((int)threadIdx.x) + 196)] = kernel[((((((((int)blockIdx.x) * 73728) + (((((int)threadIdx.x) + 196) >> 5) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 4) & 31) * 9)) + (ry_outer_outer * 3)) + rx_outer_outer)];
-            if (((int)threadIdx.x) < 120) {
-              kernel_shared[(((int)threadIdx.x) + 392)] = kernel[((((((((int)blockIdx.x) * 73728) + (((((int)threadIdx.x) + 392) >> 5) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 8) & 31) * 9)) + (ry_outer_outer * 3)) + rx_outer_outer)];
-            }
-            __syncthreads();
-            for (int rc_inner = 0; rc_inner < 32; ++rc_inner) {
-              conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[(((((int)threadIdx.x) / 49) * 128) + rc_inner)]));
-              conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[((((((int)threadIdx.x) / 49) * 128) + rc_inner) + 32)]));
-              conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[((((((int)threadIdx.x) / 49) * 128) + rc_inner) + 64)]));
-              conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[((((((int)threadIdx.x) / 49) * 128) + rc_inner) + 96)]));
-            }
+        for (int rx_outer_outer = 0; rx_outer_outer < 3; ++rx_outer_outer) {
+          __syncthreads();
+          pad_temp_shared[((int)threadIdx.x)] = (((((7 <= (((int)threadIdx.x) % 63)) && ((((int)threadIdx.x) % 63) < 56)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[(((((rc_outer_outer * 1568) + ((((int)threadIdx.x) / 63) * 49)) + rx_outer_outer) + (((int)threadIdx.x) % 63)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 224)] = (((((1 <= (((((int)threadIdx.x) / 7) + 5) % 9)) && ((((((int)threadIdx.x) / 7) + 5) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 224) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 5) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 448)] = (((((1 <= (((((int)threadIdx.x) / 7) + 1) % 9)) && ((((((int)threadIdx.x) / 7) + 1) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 448) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 1) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 672)] = (((((1 <= (((((int)threadIdx.x) / 7) + 6) % 9)) && ((((((int)threadIdx.x) / 7) + 6) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 672) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 6) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 896)] = (((((1 <= (((((int)threadIdx.x) / 7) + 2) % 9)) && ((((((int)threadIdx.x) / 7) + 2) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 896) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 2) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 1120)] = (((((1 <= (((((int)threadIdx.x) / 7) + 7) % 9)) && ((((((int)threadIdx.x) / 7) + 7) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1120) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 7) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 1344)] = (((((1 <= (((((int)threadIdx.x) / 7) + 3) % 9)) && ((((((int)threadIdx.x) / 7) + 3) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1344) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 3) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((1 <= (((((int)threadIdx.x) / 7) + 8) % 9)) && ((((((int)threadIdx.x) / 7) + 8) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1568) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 8) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          pad_temp_shared[(((int)threadIdx.x) + 1792)] = (((((1 <= (((((int)threadIdx.x) / 7) + 4) % 9)) && ((((((int)threadIdx.x) / 7) + 4) % 9) < 8)) && (1 <= (rx_outer_outer + (((int)threadIdx.x) % 7)))) && ((rx_outer_outer + (((int)threadIdx.x) % 7)) < 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1792) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 4) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+          kernel_shared[((int)threadIdx.x)] = kernel[(((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 224)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 224) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 448)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 448) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 672)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 32256)];
+          kernel_shared[(((int)threadIdx.x) + 896)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 896) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 1120)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 1120) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 1344)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 64512)];
+          kernel_shared[(((int)threadIdx.x) + 1568)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 1568) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 1792)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 1792) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 2016)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 96768)];
+          kernel_shared[(((int)threadIdx.x) + 2240)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 2240) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 2464)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 2464) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 2688)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 129024)];
+          kernel_shared[(((int)threadIdx.x) + 2912)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 2912) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 3136)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 3136) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 3360)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 161280)];
+          kernel_shared[(((int)threadIdx.x) + 3584)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 3584) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 3808)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 3808) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 4032)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 193536)];
+          kernel_shared[(((int)threadIdx.x) + 4256)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 4256) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 4480)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 4480) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 4704)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 225792)];
+          kernel_shared[(((int)threadIdx.x) + 4928)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 4928) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 5152)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 5152) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 5376)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 258048)];
+          kernel_shared[(((int)threadIdx.x) + 5600)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 5600) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 5824)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 5824) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+          if (((int)threadIdx.x) < 96) {
+            kernel_shared[(((int)threadIdx.x) + 6048)] = kernel[(((((((int)blockIdx.x) * 294912) + (rc_outer_outer * 288)) + (((int)threadIdx.x) * 3)) + rx_outer_outer) + 290304)];
+          }
+          __syncthreads();
+          for (int rc_outer_inner = 0; rc_outer_inner < 32; ++rc_outer_inner) {
+            conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((rc_outer_inner * 63) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+            conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((rc_outer_inner * 63) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+            conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+            conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+            conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 56)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+            conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+            conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+            conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+            conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+            conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+            conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+            conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 56)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
           }
         }
       }
-      for (int i1_inner = 0; i1_inner < 4; ++i1_inner) {
-        compute[((((((int)blockIdx.x) * 784) + ((((int)threadIdx.x) / 49) * 196)) + (i1_inner * 49)) + (((int)threadIdx.x) % 49))] = max((conv2d_nchw[i1_inner] + bias[(((((int)blockIdx.x) * 16) + ((((int)threadIdx.x) / 49) * 4)) + i1_inner)]), 0.000000e+00f);
+      for (int i1_inner = 0; i1_inner < 2; ++i1_inner) {
+        for (int i2_inner = 0; i2_inner < 7; ++i2_inner) {
+          compute[(((((((int)blockIdx.x) * 3136) + ((((int)threadIdx.x) / 7) * 98)) + (i1_inner * 49)) + (i2_inner * 7)) + (((int)threadIdx.x) % 7))] = max((conv2d_nchw[((i1_inner * 7) + i2_inner)] + bias[(((((int)blockIdx.x) * 64) + ((((int)threadIdx.x) / 7) * 2)) + i1_inner)]), 0.000000e+00f);
+        }
       }
     }
 
@@ -537,7 +711,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:** ( 2 minutes  21.389 seconds)
+   **Total running time of the script:** ( 2 minutes  18.923 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
index 5bea965e6..51d9aefa0 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
@@ -614,7 +614,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       9.6421       9.6345       9.6745       9.6174       0.0239   
+       9.4782       9.4833       9.4941       9.4573       0.0155   
                
 
 
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
index c9d794d0e..8026e4eb7 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
@@ -633,7 +633,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      756.5040     755.1786     761.3652     752.9680      3.5539   
+      767.1472     768.3834     771.2908     761.7675      3.9849   
                
 
 
@@ -658,7 +658,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  19.007 seconds)
+   **Total running time of the script:** ( 1 minutes  19.200 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_x86.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
index afb1db082..a502fb0bd 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
@@ -362,25 +362,75 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
                  placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [65536], []),
                  compute: Buffer(compute_2: Pointer(float32), float32, [65536], [])}
       buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute} {
-      for (i0.outer.i1.outer.fused: int32, 0, 512) "parallel" {
-        allocate(compute_3: Pointer(global float32), float32, [128]), storage_scope = global {
-          for (i.inner.init: int32, 0, 8) {
-            for (j.init: int32, 0, 16) {
-              compute_4: Buffer(compute_3, float32, [128], [])[((i.inner.init*16) + j.init)] = 0f32
+      for (i0.outer.i1.outer.fused: int32, 0, 128) "parallel" {
+        allocate(compute_3: Pointer(global float32), float32, [512]), storage_scope = global {
+          for (nb_j.inner: int32, 0, 2) {
+            for (i.inner.init: int32, 0, 16) {
+              let cse_var_1: int32 = ((i.inner.init*32) + (nb_j.inner*16))
+               {
+                compute_4: Buffer(compute_3, float32, [512], [])[cse_var_1] = 0f32
+                compute_4[(cse_var_1 + 1)] = 0f32
+                compute_4[(cse_var_1 + 2)] = 0f32
+                compute_4[(cse_var_1 + 3)] = 0f32
+                compute_4[(cse_var_1 + 4)] = 0f32
+                compute_4[(cse_var_1 + 5)] = 0f32
+                compute_4[(cse_var_1 + 6)] = 0f32
+                compute_4[(cse_var_1 + 7)] = 0f32
+                compute_4[(cse_var_1 + 8)] = 0f32
+                compute_4[(cse_var_1 + 9)] = 0f32
+                compute_4[(cse_var_1 + 10)] = 0f32
+                compute_4[(cse_var_1 + 11)] = 0f32
+                compute_4[(cse_var_1 + 12)] = 0f32
+                compute_4[(cse_var_1 + 13)] = 0f32
+                compute_4[(cse_var_1 + 14)] = 0f32
+                compute_4[(cse_var_1 + 15)] = 0f32
+              }
             }
-          }
-          for (elem_idx: int32, 0, let cse_var_1: int32 = floormod(i0.outer.i1.outer.fused, 32) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
-            for (i.inner: int32, 0, 8) {
-              for (j: int32, 0, 16) {
-                let cse_var_3: int32 = floormod(i0.outer.i1.outer.fused, 32)
-                let cse_var_2: int32 = ((i.inner*16) + j)
-                compute_4[cse_var_2] = (compute_4[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[(((floordiv(i0.outer.i1.outer.fused, 32)*2048) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
+            for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])) {
+              for (i.inner: int32, 0, 16) {
+                let cse_var_21: int32 = (elem_idx*16)
+                let cse_var_20: int32 = ((i.inner*32) + (nb_j.inner*16))
+                let cse_var_19: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+                let cse_var_18: int32 = (cse_var_20 + 1)
+                let cse_var_17: int32 = (cse_var_20 + 11)
+                let cse_var_16: int32 = (cse_var_20 + 12)
+                let cse_var_15: int32 = (cse_var_20 + 13)
+                let cse_var_14: int32 = (cse_var_20 + 14)
+                let cse_var_13: int32 = (cse_var_20 + 15)
+                let cse_var_12: int32 = (cse_var_20 + 2)
+                let cse_var_11: int32 = (cse_var_20 + 3)
+                let cse_var_10: int32 = (cse_var_20 + 4)
+                let cse_var_9: int32 = (cse_var_20 + 5)
+                let cse_var_8: int32 = (cse_var_20 + 6)
+                let cse_var_7: int32 = (cse_var_20 + 7)
+                let cse_var_6: int32 = (cse_var_20 + 8)
+                let cse_var_5: int32 = (cse_var_20 + 9)
+                let cse_var_4: int32 = ((floordiv(i0.outer.i1.outer.fused, 16)*4096) + (i.inner*256))
+                let cse_var_3: int32 = (cse_var_20 + 10)
+                 {
+                  compute_4[cse_var_20] = (compute_4[cse_var_20] + (placeholder_1[((placeholder_3[cse_var_19]*16) + cse_var_21)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_18] = (compute_4[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 1)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_12] = (compute_4[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 2)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_11] = (compute_4[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 3)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_10] = (compute_4[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 4)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_9] = (compute_4[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 5)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_8] = (compute_4[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 6)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_7] = (compute_4[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 7)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_6] = (compute_4[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 8)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_5] = (compute_4[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 9)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_3] = (compute_4[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 10)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_17] = (compute_4[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 11)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_16] = (compute_4[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 12)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_15] = (compute_4[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 13)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_14] = (compute_4[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 14)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                  compute_4[cse_var_13] = (compute_4[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 15)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+                }
               }
             }
           }
-          for (i0.inner: int32, 0, 8) {
-            let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 32)*4096) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 32)*16))
-            compute[ramp(cse_var_4, 1, 16)] = max((compute_4[ramp((i0.inner*16), 1, 16)] + placeholder_4[ramp(cse_var_4, 1, 16)]), broadcast(0f32, 16))
+          for (i0.inner: int32, 0, 16) {
+            let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*8192) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
+            compute[ramp(cse_var_22, 1, 32)] = max((compute_4[ramp((i0.inner*32), 1, 32)] + placeholder_4[ramp(cse_var_22, 1, 32)]), broadcast(0f32, 32))
           }
         }
       }
@@ -434,7 +484,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 1.527 ms
+    Execution time of this operator: 1.669 ms
 
 
 
diff --git a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
index 2cbfe7a2e..fd5c8d8bc 100644
--- a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:44.564** total execution time for **how_to_tune_with_autotvm** files:
+**00:43.937** total execution time for **how_to_tune_with_autotvm** files:
 
-- **00:43.701**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.232**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.216**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.213**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
-- **00:00.202**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:43.104**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.221**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.206**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:00.203**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:00.202**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
diff --git a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
index 0efd059ff..f732633c5 100644
--- a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
@@ -859,8 +859,8 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 4, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2885496
-    No: 6   GFLOPS: 95.55/95.55     result: MeasureResult(costs=(0.0024227529583333335,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.592839241027832, timestamp=1649183885.0002024)       [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3754080
-    No: 7   GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 6   GFLOPS: 112.07/112.07   result: MeasureResult(costs=(0.0020657315714285715,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8517277240753174, timestamp=1649181195.2135682)      [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3754080
+    No: 7   GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -983,7 +983,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 16, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 256, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6225319
-    No: 8   GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 8   GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1106,7 +1106,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,943546
-    No: 9   GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 9   GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1229,7 +1229,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 16, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2868708
-    No: 10  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 10  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 142, in build
         res = future.result()
       File "/usr/lib/python3.7/concurrent/futures/_base.py", line 435, in result
@@ -1247,7 +1247,7 @@ for this template
     TimeoutError
 
             [('tile_f', [-1, 32, 2, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4691833
-    No: 11  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 11  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1370,7 +1370,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 2, 64]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1042124
-    No: 12  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 12  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1493,7 +1493,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 32, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10013405
-    No: 13  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 13  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1616,7 +1616,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 8, 8, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6732082
-    No: 14  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 14  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1739,7 +1739,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 4, 32]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7536735
-    No: 15  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 15  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1862,7 +1862,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,482121
-    No: 16  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 16  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1985,7 +1985,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 32, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2824525
-    No: 17  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 17  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -2108,7 +2108,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 64, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4559286
-    No: 18  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 18  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -2231,7 +2231,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 1, 32, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9677544
-    No: 19  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+    No: 19  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 721, in __call__
         yield remote, remote.load_module(os.path.split(build_result.filename)[1])
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 685, in run_through_rpc
@@ -2319,7 +2319,7 @@ for this template
       15: _PyEval_EvalFrameDefault
       14: 0x0000000000537c30
       13: _PyObject_FastCallKeywords
-      12: 0x00007fc7a6a85fa2
+      12: 0x00007f20a6ca8fa2
       11: _ctypes_callproc
       10: ffi_call
       9: ffi_call_unix64
@@ -2384,7 +2384,7 @@ for this template
       21: _PyFunction_FastCallKeywords
       20: _PyEval_EvalFrameDefault
       19: _PyFunction_FastCall      [('tile_f', [-1, 8, 2, 16]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6390073
-    No: 20  GFLOPS: 144.29/144.29   result: MeasureResult(costs=(0.00160446036,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4021077156066895, timestamp=1649183911.2835677)      [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
+    No: 20  GFLOPS: 144.37/144.37   result: MeasureResult(costs=(0.00160352834,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4203155040740967, timestamp=1649181221.5153155)      [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
 
 
 
@@ -2437,7 +2437,7 @@ and measure running time.
 
     Best config:
     [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
-    Time cost of this operator: 0.002010
+    Time cost of this operator: 0.002032
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
index d3982f64d..5b5d68ffd 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
@@ -292,10 +292,10 @@ Timing the untuned program
     ########## Build without Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  
     ---------                                     ---                                           --------  -------  -----              ------  -------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  312.6     98.716   (1, 2, 10, 10, 3)  2       1        
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.138     0.991    (1, 6, 10, 10)     1       1        
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.93      0.294    (1, 1, 10, 10, 3)  1       1        
-    Total_time                                    -                                             316.667   -        -                  -       -        
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  309.7     98.735   (1, 2, 10, 10, 3)  2       1        
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.045     0.971    (1, 6, 10, 10)     1       1        
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.921     0.294    (1, 1, 10, 10, 3)  1       1        
+    Total_time                                    -                                             313.667   -        -                  -       -        
 
 
 
@@ -357,10 +357,10 @@ Timing the tuned program
     ########## Build with Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  
     ---------                                     ---                                           --------  -------  -----              ------  -------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  220.1     98.478   (1, 1, 10, 10, 6)  2       1        
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       2.5       1.119    (1, 6, 10, 10)     1       1        
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.901     0.403    (1, 3, 10, 10, 1)  1       1        
-    Total_time                                    -                                             223.501   -        -                  -       -        
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  211.4     98.651   (1, 1, 10, 10, 6)  2       1        
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.988     0.928    (1, 6, 10, 10)     1       1        
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.902     0.421    (1, 3, 10, 10, 1)  1       1        
+    Total_time                                    -                                             214.29    -        -                  -       -        
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
index e4ebc1154..363a18710 100644
--- a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:43.704** total execution time for **how_to_work_with_microtvm** files:
+**00:44.265** total execution time for **how_to_work_with_microtvm** files:
 
-- **00:39.697**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
-- **00:03.414**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
-- **00:00.200**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)
-- **00:00.199**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
-- **00:00.192**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tvmc.py` (``micro_tvmc.py``)
+- **00:40.190**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
+- **00:03.484**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
+- **00:00.200**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
+- **00:00.197**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)
+- **00:00.194**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tvmc.py` (``micro_tvmc.py``)
diff --git a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
index d9e48192f..4095b5f99 100644
--- a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
@@ -5,8 +5,8 @@
 
 Computation times
 =================
-**00:09.163** total execution time for **how_to_work_with_relay** files:
+**00:06.450** total execution time for **how_to_work_with_relay** files:
 
-- **00:07.214**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.733**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
-- **00:00.216**: :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)
+- **00:04.361**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.884**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
+- **00:00.205**: :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)
diff --git a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
index fcd7e9c11..4e9ce1a60 100644
--- a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
@@ -5,13 +5,13 @@
 
 Computation times
 =================
-**00:05.473** total execution time for **how_to_work_with_schedules** files:
+**00:05.418** total execution time for **how_to_work_with_schedules** files:
 
-- **00:01.983**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
-- **00:01.137**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
-- **00:00.699**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
-- **00:00.682**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
-- **00:00.301**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
-- **00:00.233**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.223**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
-- **00:00.216**: :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:01.962**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
+- **00:01.122**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
+- **00:00.691**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
+- **00:00.675**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
+- **00:00.298**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
+- **00:00.232**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.226**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
+- **00:00.213**: :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)
diff --git a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
index ac2f25dfc..ad3207604 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -314,8 +314,8 @@ The importing needs to happen before the tensorized GEMV being executed.
                  B: Buffer(B_2: Pointer(float32), float32, [32768], []),
                  C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmp04zs_4v7/input0.cc'
-    source_filename = "/tmp/tmp04zs_4v7/input0.cc"
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpxviplmdz/input0.cc'
+    source_filename = "/tmp/tmpxviplmdz/input0.cc"
     target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
     target triple = "x86_64-pc-linux-gnu"
 
diff --git a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
index 92f898470..25d26d718 100644
--- a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:19.765** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:19.746** total execution time for **topic_vta_tutorials_autotvm** files:
 
-- **00:19.565**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
-- **00:00.200**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)
+- **00:19.547**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:00.199**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
index 33886c83b..a14c863a7 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -265,7 +265,7 @@ The compilation steps are:
       DeprecationWarning,
     /workspace/vta/tutorials/frontend/deploy_classification.py:213: DeprecationWarning: legacy graph executor behavior of producing json / lib / params will be removed in the next release. Please see documents of tvm.contrib.graph_executor.GraphModule for the  new recommended usage.
       relay_prog, target=tvm.target.Target(target, host=env.target_host), params=params
-    resnet18_v1 inference graph built in 21.05s!
+    resnet18_v1 inference graph built in 20.96s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
index 83fc23ba5..ff879d851 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -301,7 +301,7 @@ The compilation steps are:
 
     /workspace/python/tvm/relay/build_module.py:439: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
       DeprecationWarning,
-    yolov3-tiny inference graph built in 14.44s!
+    yolov3-tiny inference graph built in 14.30s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
index 83fd2bd33..4e7964789 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**01:27.414** total execution time for **topic_vta_tutorials_frontend** files:
+**01:27.071** total execution time for **topic_vta_tutorials_frontend** files:
 
-- **00:46.317**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:41.097**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:46.189**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:40.881**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
diff --git a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
index 7ebc57004..9bbce57c6 100644
--- a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:03.451** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.469** total execution time for **topic_vta_tutorials_optimize** files:
 
-- **00:02.931**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.520**: :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:02.956**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.513**: :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
diff --git a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
index 6bcc23a78..c4ae40a63 100644
--- a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
@@ -5,7 +5,7 @@
 
 Computation times
 =================
-**00:00.949** total execution time for **topic_vta_tutorials** files:
+**00:00.926** total execution time for **topic_vta_tutorials** files:
 
-- **00:00.479**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.470**: :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.468**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.458**: :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
diff --git a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
index 86568bd6a..2c06c92d5 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -185,7 +185,7 @@ trials, we can load the best schedule from the log file and apply it.
  .. code-block:: none
 
 
-
+    *E
 
 
 
@@ -305,7 +305,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 93.814 ms
+    Execution time of this operator: 93.704 ms
 
 
 
@@ -414,6 +414,11 @@ Expression (TE) language that demonstrates how TVM can optimize computational
 operations.
 
 
+.. rst-class:: sphx-glr-timing
+
+   **Total running time of the script:** ( 1 minutes  12.135 seconds)
+
+
 .. _sphx_glr_download_tutorial_auto_scheduler_matmul_x86.py:
 
 
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index 9b7529341..f28fbc23f 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -268,7 +268,7 @@ standard deviation.
 
  .. code-block:: none
 
-    {'mean': 492.467170759997, 'median': 492.44605545000013, 'std': 0.5235175131416864}
+    {'mean': 499.1049396499966, 'median': 498.7819513999966, 'std': 0.7775281888352579}
 
 
 
@@ -482,30 +482,31 @@ the tuning data to.
 
  .. code-block:: none
 
-
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  1/25]  Current/Best:   13.96/  14.75 GFLOPS | Progress: (4/10) | 4.93 s
    [Task  1/25]  Current/Best:    6.51/  23.71 GFLOPS | Progress: (8/10) | 7.73 s
    [Task  1/25]  Current/Best:   10.29/  23.71 GFLOPS | Progress: (10/10) | 10.02 s Done.
-
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  2/25]  Current/Best:   16.78/  16.93 GFLOPS | Progress: (4/10) | 2.09 s
    [Task  2/25]  Current/Best:   16.39/  16.93 GFLOPS | Progress: (8/10) | 3.58 s
    [Task  2/25]  Current/Best:   13.72/  16.93 GFLOPS | Progress: (10/10) | 4.53 s Done.
-
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  3/25]  Current/Best:   18.20/  18.20 GFLOPS | Progress: (4/10) | 2.55 s
    [Task  3/25]  Current/Best:   23.84/  23.84 GFLOPS | Progress: (8/10) | 3.99 s
    [Task  3/25]  Current/Best:    5.96/  23.84 GFLOPS | Progress: (10/10) | 5.25 s Done.
-
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  4/25]  Current/Best:    7.22/  12.73 GFLOPS | Progress: (4/10) | 2.60 s
    [Task  4/25]  Current/Best:   14.31/  18.17 GFLOPS | Progress: (8/10) | 6.48 s
    [Task  4/25]  Current/Best:    7.26/  18.17 GFLOPS | Progress: (10/10) | 7.32 s Done.
-
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  5/25]  Current/Best:   23.94/  23.94 GFLOPS | Progress: (4/10) | 2.73 s
    [Task  5/25]  Current/Best:   18.41/  23.94 GFLOPS | Progress: (8/10) | 4.74 s
    [Task  5/25]  Current/Best:   13.05/  23.94 GFLOPS | Progress: (10/10) | 6.90 s Done.
-
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  6/25]  Current/Best:   18.44/  18.44 GFLOPS | Progress: (4/10) | 3.57 s
    [Task  6/25]  Current/Best:    8.34/  18.44 GFLOPS | Progress: (8/10) | 6.15 s
    [Task  6/25]  Current/Best:    9.79/  18.44 GFLOPS | Progress: (10/10) | 7.08 s Done.
-
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  7/25]  Current/Best:   13.67/  14.69 GFLOPS | Progress: (4/10) | 3.02 s
    [Task  7/25]  Current/Best:   16.02/  19.32 GFLOPS | Progress: (8/10) | 4.99 s
    [Task  7/25]  Current/Best:    9.71/  19.32 GFLOPS | Progress: (10/10) | 6.19 s Done.
-
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  8/25]  Current/Best:   11.89/  15.36 GFLOPS | Progress: (4/10) | 7.93 s
    [Task  8/25]  Current/Best:    6.70/  15.36 GFLOPS | Progress: (8/10) | 10.17 s
    [Task  8/25]  Current/Best:   12.63/  15.36 GFLOPS | Progress: (10/10) | 11.09 s Done.
-
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  9/25]  Current/Best:   12.28/  17.35 GFLOPS | Progress: (4/10) | 3.03 s
    [Task  9/25]  Current/Best:   17.41/  17.41 GFLOPS | Progress: (8/10) | 13.09 s
    [Task  9/25]  Current/Best:   10.51/  17.41 GFLOPS | Progress: (10/10) | 13.89 s Done.
-
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 10/25]  Current/Best:   16.37/  16.37 GFLOPS | Progress: (4/10) | 2.39 s
    [Task 10/25]  Current/Best:   10.30/  18.13 GFLOPS | Progress: (8/10) | 5.24 s
    [Task 10/25]  Current/Best:   14.31/  18.13 GFLOPS | Progress: (10/10) | 5.98 s Done.
-
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 11/25]  Current/Best:   17.32/  18.39 GFLOPS | Progress: (4/10) | 2.99 s
    [Task 11/25]  Current/Best:   21.35/  22.69 GFLOPS | Progress: (8/10) | 4.54 s
    [Task 11/25]  Current/Best:   22.23/  22.69 GFLOPS | Progress: (10/10) | 5.66 s Done.
-
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 12/25]  Current/Best:   13.36/  20.79 GFLOPS | Progress: (4/10) | 2.74 s
    [Task 12/25]  Current/Best:    4.59/  20.79 GFLOPS | Progress: (8/10) | 5.09 s
    [Task 12/25]  Current/Best:   10.04/  20.79 GFLOPS | Progress: (10/10) | 6.21 s Done.
-
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 13/25]  Current/Best:   20.02/  20.02 GFLOPS | Progress: (4/10) | 3.85 s
    [Task 13/25]  Current/Best:   14.46/  20.33 GFLOPS | Progress: (8/10) | 5.75 s
    [Task 13/25]  Current/Best:   18.43/  20.33 GFLOPS | Progress: (10/10) | 7.22 s Done.
-
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 14/25]  Current/Best:    9.41/   9.41 GFLOPS | Progress: (4/10) | 6.83 s
    [Task 14/25]  Current/Best:   15.83/  18.70 GFLOPS | Progress: (8/10) | 8.53 s
    [Task 14/25]  Current/Best:    9.26/  18.70 GFLOPS | Progress: (10/10) | 13.62 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 15/25]  Current/Best:   18.07/  18.07 GFLOPS | Progress: (4/10) | 5.31 s Done.
-
    [Task 15/25]  Current/Best:   24.05/  24.05 GFLOPS | Progress: (8/10) | 8.22 s
    [Task 15/25]  Current/Best:   13.42/  24.05 GFLOPS | Progress: (10/10) | 8.94 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 16/25]  Current/Best:    6.68/  15.27 GFLOPS | Progress: (4/10) | 3.25 s
    [Task 16/25]  Current/Best:   19.95/  19.95 GFLOPS | Progress: (8/10) | 4.57 s
    [Task 16/25]  Current/Best:    7.68/  19.95 GFLOPS | Progress: (10/10) | 5.90 s Done.
-
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 17/25]  Current/Best:   18.99/  18.99 GFLOPS | Progress: (4/10) | 2.97 s
    [Task 17/25]  Current/Best:    8.20/  18.99 GFLOPS | Progress: (8/10) | 6.14 s
    [Task 17/25]  Current/Best:   13.39/  18.99 GFLOPS | Progress: (10/10) | 7.58 s Done.
-
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 18/25]  Current/Best:   20.18/  20.18 GFLOPS | Progress: (4/10) | 6.02 s
    [Task 18/25]  Current/Best:   11.85/  20.18 GFLOPS | Progress: (8/10) | 8.45 s
    [Task 18/25]  Current/Best:   19.93/  20.18 GFLOPS | Progress: (10/10) | 9.81 s Done.
-
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 19/25]  Current/Best:   15.58/  15.58 GFLOPS | Progress: (4/10) | 6.40 s
    [Task 19/25]  Current/Best:   11.34/  19.61 GFLOPS | Progress: (8/10) | 8.75 s
    [Task 19/25]  Current/Best:    8.17/  19.61 GFLOPS | Progress: (10/10) | 10.10 s Done.
-
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 20/25]  Current/Best:   14.82/  14.82 GFLOPS | Progress: (4/10) | 3.37 s
    [Task 20/25]  Current/Best:   18.93/  18.93 GFLOPS | Progress: (8/10) | 4.67 s
    [Task 20/25]  Current/Best:   10.69/  18.93 GFLOPS | Progress: (10/10) | 5.76 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 21/25]  Current/Best:   20.18/  21.64 GFLOPS | Progress: (4/10) | 2.69 s
    [Task 21/25]  Current/Best:   16.76/  23.09 GFLOPS | Progress: (8/10) | 4.40 s
    [Task 21/25]  Current/Best:   12.92/  23.09 GFLOPS | Progress: (10/10) | 5.21 s Done.
-
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 22/25]  Current/Best:   19.09/  19.47 GFLOPS | Progress: (4/10) | 2.53 s
    [Task 22/25]  Current/Best:   13.19/  19.47 GFLOPS | Progress: (8/10) | 3.90 s
    [Task 22/25]  Current/Best:    7.42/  19.47 GFLOPS | Progress: (10/10) | 4.86 s Done.
-
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 23/25]  Current/Best:   18.53/  23.75 GFLOPS | Progress: (4/10) | 4.52 s
    [Task 23/25]  Current/Best:   17.74/  23.75 GFLOPS | Progress: (8/10) | 7.45 s
    [Task 23/25]  Current/Best:    8.07/  23.75 GFLOPS | Progress: (10/10) | 9.40 s Done.
-
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 24/25]  Current/Best:    6.18/  10.48 GFLOPS | Progress: (4/10) | 6789.53 s
    [Task 24/25]  Current/Best:    1.16/  10.48 GFLOPS | Progress: (8/10) | 6795.52 s
    [Task 24/25]  Current/Best:    7.48/  10.48 GFLOPS | Progress: (10/10) | 6799.10 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
+
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  1/25]  Current/Best:    9.11/  14.96 GFLOPS | Progress: (4/10) | 6.77 s
    [Task  1/25]  Current/Best:   16.09/  24.19 GFLOPS | Progress: (8/10) | 9.66 s
    [Task  1/25]  Current/Best:    8.57/  24.19 GFLOPS | Progress: (10/10) | 10.65 s Done.
+
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  2/25]  Current/Best:    9.33/  14.15 GFLOPS | Progress: (4/10) | 2.80 s
    [Task  2/25]  Current/Best:   17.20/  18.89 GFLOPS | Progress: (8/10) | 4.04 s
    [Task  2/25]  Current/Best:   12.62/  18.89 GFLOPS | Progress: (10/10) | 4.89 s Done.
+
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  3/25]  Current/Best:   12.43/  22.73 GFLOPS | Progress: (4/10) | 2.61 s
    [Task  3/25]  Current/Best:    1.63/  24.31 GFLOPS | Progress: (8/10) | 5.70 s
    [Task  3/25]  Current/Best:   17.07/  24.31 GFLOPS | Progress: (10/10) | 6.46 s Done.
+
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  4/25]  Current/Best:    7.04/  14.20 GFLOPS | Progress: (4/10) | 6.44 s
    [Task  4/25]  Current/Best:   13.57/  14.20 GFLOPS | Progress: (8/10) | 8.57 s
    [Task  4/25]  Current/Best:   16.18/  16.18 GFLOPS | Progress: (10/10) | 9.50 s Done.
+
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  5/25]  Current/Best:   22.61/  22.61 GFLOPS | Progress: (4/10) | 3.35 s
    [Task  5/25]  Current/Best:   12.23/  22.61 GFLOPS | Progress: (8/10) | 6.54 s
    [Task  5/25]  Current/Best:   12.55/  22.61 GFLOPS | Progress: (10/10) | 7.96 s Done.
+
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  6/25]  Current/Best:   16.72/  16.72 GFLOPS | Progress: (4/10) | 4.36 s
    [Task  6/25]  Current/Best:   10.21/  22.79 GFLOPS | Progress: (8/10) | 6.71 s
    [Task  6/25]  Current/Best:    4.87/  22.79 GFLOPS | Progress: (10/10) | 8.32 s Done.
+
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  7/25]  Current/Best:    6.10/  13.93 GFLOPS | Progress: (4/10) | 3.78 s
    [Task  7/25]  Current/Best:   21.59/  21.59 GFLOPS | Progress: (8/10) | 5.25 s
    [Task  7/25]  Current/Best:    6.32/  21.59 GFLOPS | Progress: (10/10) | 6.87 s Done.
+
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  8/25]  Current/Best:    9.22/   9.22 GFLOPS | Progress: (4/10) | 8.15 s
    [Task  8/25]  Current/Best:   12.25/  12.25 GFLOPS | Progress: (8/10) | 10.73 s
    [Task  8/25]  Current/Best:   18.74/  18.74 GFLOPS | Progress: (10/10) | 12.85 s Done.
+
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task  9/25]  Current/Best:   18.26/  20.21 GFLOPS | Progress: (4/10) | 2.70 s
    [Task  9/25]  Current/Best:    3.27/  23.03 GFLOPS | Progress: (8/10) | 4.22 s
    [Task  9/25]  Current/Best:   13.84/  23.03 GFLOPS | Progress: (10/10) | 5.29 s Done.
+
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 10/25]  Current/Best:    6.81/  18.47 GFLOPS | Progress: (4/10) | 2.80 s
    [Task 10/25]  Current/Best:   12.00/  18.47 GFLOPS | Progress: (8/10) | 5.89 s
    [Task 10/25]  Current/Best:    5.86/  18.47 GFLOPS | Progress: (10/10) | 7.32 s Done.
+
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 11/25]  Current/Best:   14.90/  18.82 GFLOPS | Progress: (4/10) | 3.68 s
    [Task 11/25]  Current/Best:   18.57/  18.82 GFLOPS | Progress: (8/10) | 6.15 s
    [Task 11/25]  Current/Best:   15.37/  18.82 GFLOPS | Progress: (10/10) | 7.60 s Done.
+
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 12/25]  Current/Best:   12.15/  18.48 GFLOPS | Progress: (4/10) | 4.06 s
    [Task 12/25]  Current/Best:   18.19/  18.48 GFLOPS | Progress: (8/10) | 6.02 s
    [Task 12/25]  Current/Best:   20.67/  20.67 GFLOPS | Progress: (10/10) | 6.85 s Done.
+
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 13/25]  Current/Best:   22.63/  22.63 GFLOPS | Progress: (4/10) | 3.81 s
    [Task 13/25]  Current/Best:   13.22/  22.63 GFLOPS | Progress: (8/10) | 6.97 s
    [Task 13/25]  Current/Best:    6.22/  22.63 GFLOPS | Progress: (10/10) | 8.07 s Done.
+
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 14/25]  Current/Best:   13.46/  15.54 GFLOPS | Progress: (4/10) | 6.77 s
    [Task 14/25]  Current/Best:   11.59/  17.82 GFLOPS | Progress: (8/10) | 8.91 s
    [Task 14/25]  Current/Best:   13.27/  17.82 GFLOPS | Progress: (10/10) | 9.98 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 15/25]  Current/Best:    8.89/  13.99 GFLOPS | Progress: (4/10) | 3.14 s
    [Task 15/25]  Current/Best:   10.58/  21.61 GFLOPS | Progress: (8/10) | 6.86 s
    [Task 15/25]  Current/Best:    6.12/  21.61 GFLOPS | Progress: (10/10) | 8.04 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
      Done.
-
    [Task 25/25]  Current/Best:    2.99/   8.85 GFLOPS | Progress: (4/10) | 17.31 s
    [Task 25/25]  Current/Best:    7.31/   8.85 GFLOPS | Progress: (8/10) | 20.90 s
    [Task 25/25]  Current/Best:    5.74/   8.85 GFLOPS | Progress: (10/10) | 21.40 s
+
    [Task 16/25]  Current/Best:   14.18/  18.29 GFLOPS | Progress: (4/10) | 2.74 s
    [Task 16/25]  Current/Best:    9.58/  23.22 GFLOPS | Progress: (8/10) | 3.92 s
    [Task 16/25]  Current/Best:   22.21/  23.22 GFLOPS | Progress: (10/10) | 4.47 s Done.
+
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 17/25]  Current/Best:   15.11/  16.76 GFLOPS | Progress: (4/10) | 2.90 s
    [Task 17/25]  Current/Best:   12.58/  23.25 GFLOPS | Progress: (8/10) | 4.86 s
    [Task 17/25]  Current/Best:    5.17/  23.25 GFLOPS | Progress: (10/10) | 6.68 s Done.
+
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 18/25]  Current/Best:   19.96/  19.96 GFLOPS | Progress: (4/10) | 3.13 s
    [Task 18/25]  Current/Best:   10.81/  19.96 GFLOPS | Progress: (8/10) | 6.51 s
    [Task 18/25]  Current/Best:   11.65/  19.96 GFLOPS | Progress: (10/10) | 7.84 s Done.
+
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 19/25]  Current/Best:   13.89/  15.81 GFLOPS | Progress: (4/10) | 3.49 s
    [Task 19/25]  Current/Best:    5.33/  15.81 GFLOPS | Progress: (8/10) | 6.07 s
    [Task 19/25]  Current/Best:   17.49/  19.37 GFLOPS | Progress: (10/10) | 6.99 s Done.
+
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 20/25]  Current/Best:    1.58/  10.26 GFLOPS | Progress: (4/10) | 4.66 s
    [Task 20/25]  Current/Best:    8.27/  17.88 GFLOPS | Progress: (8/10) | 6.89 s
    [Task 20/25]  Current/Best:    9.91/  17.88 GFLOPS | Progress: (10/10) | 8.38 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 21/25]  Current/Best:   16.62/  22.58 GFLOPS | Progress: (4/10) | 3.98 s
    [Task 21/25]  Current/Best:   10.66/  22.58 GFLOPS | Progress: (8/10) | 6.01 s
    [Task 21/25]  Current/Best:    5.44/  22.58 GFLOPS | Progress: (10/10) | 6.70 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 22/25]  Current/Best:   13.77/  17.84 GFLOPS | Progress: (4/10) | 3.17 s
    [Task 22/25]  Current/Best:   17.09/  19.53 GFLOPS | Progress: (8/10) | 4.36 s
    [Task 22/25]  Current/Best:    3.10/  19.53 GFLOPS | Progress: (10/10) | 5.36
  s Done.
+
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 23/25]  Current/Best:   19.66/  19.66 GFLOPS | Progress: (4/10) | 3.68 s
    [Task 23/25]  Current/Best:   10.97/  19.66 GFLOPS | Progress: (8/10) | 9.27 s
    [Task 23/25]  Current/Best:   18.58/  20.85 GFLOPS | Progress: (10/10) | 10.15 s Done.
+
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s
    [Task 24/25]  Current/Best:    7.30/   7.30 GFLOPS | Progress: (4/10) | 224.89 s
    [Task 24/25]  Current/Best:    4.48/   7.30 GFLOPS | Progress: (8/10) | 230.65 s
    [Task 24/25]  Current/Best:    6.25/   7.30 GFLOPS | Progress: (10/10) | 231.15 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/10) | 0.00 s Done.
+     Done.
+     Done.
+
    [Task 25/25]  Current/Best:    2.96/   8.47 GFLOPS | Progress: (4/10) | 2.53 s
    [Task 25/25]  Current/Best:    8.54/   9.81 GFLOPS | Progress: (8/10) | 15.67 s
    [Task 25/25]  Current/Best:    8.56/   9.81 GFLOPS | Progress: (10/10) | 16.20 s
 
 
 The output from this tuning process will look something like this:
@@ -647,8 +648,8 @@ improvement in comparing the optimized model to the unoptimized model.
 
  .. code-block:: none
 
-    optimized: {'mean': 429.0573660999962, 'median': 429.01000560000284, 'std': 0.7345522108018623}
-    unoptimized: {'mean': 492.467170759997, 'median': 492.44605545000013, 'std': 0.5235175131416864}
+    optimized: {'mean': 419.4012590700004, 'median': 419.7932991999551, 'std': 1.8317447484633385}
+    unoptimized: {'mean': 499.1049396499966, 'median': 498.7819513999966, 'std': 0.7775281888352579}
 
 
 
@@ -668,7 +669,7 @@ profiling/benchmarking.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 119 minutes  49.037 seconds)
+   **Total running time of the script:** ( 10 minutes  14.798 seconds)
 
 
 .. _sphx_glr_download_tutorial_autotvm_relay_x86.py:
diff --git a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
index 10e60f4a2..b74512fae 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -235,7 +235,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.201e-07 secs/op
+    1.223e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index be1fc1638..146a7c0e7 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -230,7 +230,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0x20e55b60)), stage(b, placeholder(b, 0x210f4760)), 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 [...]
+    [stage(a, placeholder(a, 0x261e8110)), stage(b, placeholder(b, 0xbfba0e0)), 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(min [...]
 
 
 
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index c5c56c175..8162803e7 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,17 +5,17 @@
 
 Computation times
 =================
-**122:24.913** total execution time for **tutorial** files:
+**13:19.455** total execution time for **tutorial** files:
 
-- **119:49.037**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
-- **00:58.702**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:49.088**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
-- **00:25.679**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:20.060**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
-- **00:01.281**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
-- **00:00.713**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
-- **00:00.195**: :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
-- **00:00.042**: :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)
-- **00:00.041**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
-- **00:00.041**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
-- **00:00.034**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
+- **10:14.798**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
+- **01:12.135**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
+- **01:00.536**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:25.670**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:24.669**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
+- **00:00.702**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
+- **00:00.556**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
+- **00:00.206**: :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:00.049**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
+- **00:00.048**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
+- **00:00.044**: :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)
+- **00:00.042**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index 70562c60a..227cc9e26 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -244,7 +244,7 @@ helper function to run a profile of the TVM generated code.
  .. code-block:: none
 
     Numpy running time: 0.000008
-    naive: 0.000007
+    naive: 0.000006
 
 
 
@@ -387,7 +387,7 @@ factor to be the number of threads on your CPU.
 
  .. code-block:: none
 
-    vector: 0.000024
+    vector: 0.000025
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [(stride: int32*n: int32)], [], type="auto"),
@@ -436,10 +436,10 @@ We can now compare the different schedules
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                   numpy    8.115009995890432e-06                    1.0
-                   naive    6.715100000000001e-06     0.8274912789264133
-                parallel    6.042899999999999e-06     0.7446571234120745
-                  vector             2.44389e-05       3.011567454923191
+                   numpy    7.916590002423618e-06                    1.0
+                   naive    5.9459999999999995e-06    0.7510809576067052
+                parallel              6.0416e-06      0.7631568640223125
+                  vector    2.4634900000000004e-05    3.1118069765464895
 
 
 
@@ -828,7 +828,7 @@ matrix multiplication.
 
  .. code-block:: none
 
-    Numpy running time: 0.018801
+    Numpy running time: 0.018957
 
 
 
@@ -884,7 +884,7 @@ optimizations.
 
  .. code-block:: none
 
-    none: 3.262534
+    none: 3.347262
 
 
 
@@ -982,7 +982,7 @@ schedule.
 
  .. code-block:: none
 
-    blocking: 0.288632
+    blocking: 0.322226
 
 
 
@@ -1073,7 +1073,7 @@ already cache friendly from our previous optimizations.
 
  .. code-block:: none
 
-    vectorization: 0.319709
+    vectorization: 0.345056
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1144,7 +1144,7 @@ more cache friendly.
 
  .. code-block:: none
 
-    loop permutation: 0.119549
+    loop permutation: 0.118940
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1240,7 +1240,7 @@ optimized schedule.
 
  .. code-block:: none
 
-    array packing: 0.111093
+    array packing: 0.108758
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1330,7 +1330,7 @@ to `C` when all the block results are ready.
 
  .. code-block:: none
 
-    block caching: 0.110773
+    block caching: 0.110610
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1413,7 +1413,7 @@ of thread-level parallelization.
 
  .. code-block:: none
 
-    parallelization: 0.143956
+    parallelization: 0.144876
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1491,13 +1491,13 @@ working, we can compare the results.
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                    none            3.2625340355                     1.0
-                blocking     0.28863202769999996     0.08846866409955034
-           vectorization            0.3197094943     0.09799422498622391
-        loop permutation     0.11954862159999999    0.036642873392025335
-           array packing     0.11109267649999999     0.03405103986385677
-           block caching            0.1107727707     0.03395298546916876
-         parallelization            0.1439559117    0.044123957063313214
+                    none      3.3472621636999995                     1.0
+                blocking            0.3222262188     0.09626560545344835
+           vectorization     0.34505561560000003     0.10308592477219716
+        loop permutation            0.1189401184     0.03553355326925629
+           array packing     0.10875797829999997     0.03249162240097172
+           block caching             0.110609531     0.03304477677294758
+         parallelization            0.1448755054    0.043281792197554486
 
 
 
@@ -1532,6 +1532,11 @@ operations with tunable parameters that allows you to automatically optimize
 the computation for specific platforms.
 
 
+.. rst-class:: sphx-glr-timing
+
+   **Total running time of the script:** ( 1 minutes  0.536 seconds)
+
+
 .. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
 
 
diff --git a/docs/commit_hash b/docs/commit_hash
index 0a5e3cb9d..7ca1c6ed1 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-64dd05b0c0a73b8b395602821641a02af9d92e2b
+5ec061f9766d40c9ef27662b48485b80075142a3
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index e6c2c1d29..a876233f4 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -400,7 +400,7 @@
 </div>
 <img alt="../../_images/sphx_glr_from_mxnet_001.png" class="sphx-glr-single-img" src="../../_images/sphx_glr_from_mxnet_001.png" />
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip44141c3a-0e11-4b6e-a8ba-8e947f92cdd1 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zipe32d3e85-a3e2-4077-b0f3-55553b5b0ee2 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
 x (1, 3, 224, 224)
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_paddle.html b/docs/how_to/compile_models/from_paddle.html
index e8426697d..8b9eeeb78 100644
--- a/docs/how_to/compile_models/from_paddle.html
+++ b/docs/how_to/compile_models/from_paddle.html
@@ -463,7 +463,7 @@ A quick solution is</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>TVM prediction top-1 id: 282, class name:  282: &#39;tiger cat&#39;,
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  4.093 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  5.575 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-paddle-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/16269b77359771348d507395692524cf/from_paddle.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_paddle.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/from_pytorch.html b/docs/how_to/compile_models/from_pytorch.html
index 22e4bd5bc..5d4e06c66 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -386,9 +386,53 @@ be unstable.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/resnet18-f37072fd.pth&quot; to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
 
   0%|          | 0.00/44.7M [00:00&lt;?, ?B/s]
- 37%|###6      | 16.5M/44.7M [00:00&lt;00:00, 172MB/s]
- 87%|########6 | 38.7M/44.7M [00:00&lt;00:00, 208MB/s]
-100%|##########| 44.7M/44.7M [00:00&lt;00:00, 208MB/s]
+  0%|          | 40.0k/44.7M [00:00&lt;02:44, 284kB/s]
+  0%|          | 104k/44.7M [00:00&lt;02:00, 389kB/s]
+  0%|          | 208k/44.7M [00:00&lt;01:17, 605kB/s]
+  1%|          | 352k/44.7M [00:00&lt;00:52, 884kB/s]
+  1%|1         | 592k/44.7M [00:00&lt;00:33, 1.38MB/s]
+  2%|2         | 992k/44.7M [00:00&lt;00:20, 2.22MB/s]
+  4%|3         | 1.62M/44.7M [00:00&lt;00:12, 3.65MB/s]
+  6%|6         | 2.73M/44.7M [00:00&lt;00:07, 6.04MB/s]
+  8%|8         | 3.77M/44.7M [00:01&lt;00:05, 7.49MB/s]
+ 11%|#         | 4.84M/44.7M [00:01&lt;00:04, 8.63MB/s]
+ 14%|#3        | 6.04M/44.7M [00:01&lt;00:04, 9.80MB/s]
+ 16%|#5        | 7.06M/44.7M [00:01&lt;00:03, 10.0MB/s]
+ 18%|#8        | 8.15M/44.7M [00:01&lt;00:03, 10.4MB/s]
+ 21%|##        | 9.27M/44.7M [00:01&lt;00:03, 10.8MB/s]
+ 23%|##3       | 10.3M/44.7M [00:01&lt;00:03, 10.9MB/s]
+ 26%|##5       | 11.4M/44.7M [00:01&lt;00:03, 11.0MB/s]
+ 28%|##8       | 12.5M/44.7M [00:01&lt;00:03, 11.2MB/s]
+ 31%|###       | 13.6M/44.7M [00:01&lt;00:02, 11.3MB/s]
+ 33%|###2      | 14.7M/44.7M [00:02&lt;00:02, 11.3MB/s]
+ 35%|###5      | 15.8M/44.7M [00:02&lt;00:02, 11.3MB/s]
+ 38%|###7      | 16.9M/44.7M [00:02&lt;00:02, 11.4MB/s]
+ 40%|####      | 18.0M/44.7M [00:02&lt;00:02, 11.4MB/s]
+ 43%|####2     | 19.1M/44.7M [00:02&lt;00:02, 11.4MB/s]
+ 45%|####5     | 20.2M/44.7M [00:02&lt;00:02, 11.4MB/s]
+ 48%|####7     | 21.3M/44.7M [00:02&lt;00:02, 11.4MB/s]
+ 50%|#####     | 22.4M/44.7M [00:02&lt;00:02, 11.5MB/s]
+ 53%|#####2    | 23.5M/44.7M [00:02&lt;00:01, 11.4MB/s]
+ 55%|#####5    | 24.6M/44.7M [00:02&lt;00:01, 11.4MB/s]
+ 58%|#####7    | 25.8M/44.7M [00:03&lt;00:01, 11.5MB/s]
+ 60%|######    | 26.9M/44.7M [00:03&lt;00:01, 11.4MB/s]
+ 63%|######2   | 28.0M/44.7M [00:03&lt;00:01, 11.4MB/s]
+ 65%|######5   | 29.1M/44.7M [00:03&lt;00:01, 11.5MB/s]
+ 68%|######7   | 30.2M/44.7M [00:03&lt;00:01, 11.5MB/s]
+ 70%|#######   | 31.3M/44.7M [00:03&lt;00:01, 11.5MB/s]
+ 73%|#######2  | 32.4M/44.7M [00:03&lt;00:01, 11.4MB/s]
+ 75%|#######4  | 33.5M/44.7M [00:03&lt;00:01, 11.4MB/s]
+ 78%|#######7  | 34.6M/44.7M [00:03&lt;00:00, 11.5MB/s]
+ 80%|#######9  | 35.7M/44.7M [00:03&lt;00:00, 11.5MB/s]
+ 82%|########2 | 36.8M/44.7M [00:04&lt;00:00, 11.4MB/s]
+ 85%|########4 | 37.9M/44.7M [00:04&lt;00:00, 11.4MB/s]
+ 87%|########7 | 39.0M/44.7M [00:04&lt;00:00, 11.5MB/s]
+ 90%|########9 | 40.1M/44.7M [00:04&lt;00:00, 11.4MB/s]
+ 92%|#########2| 41.2M/44.7M [00:04&lt;00:00, 11.4MB/s]
+ 95%|#########4| 42.4M/44.7M [00:04&lt;00:00, 11.5MB/s]
+ 97%|#########7| 43.5M/44.7M [00:04&lt;00:00, 11.5MB/s]
+100%|#########9| 44.6M/44.7M [00:04&lt;00:00, 11.4MB/s]
+100%|##########| 44.7M/44.7M [00:04&lt;00:00, 9.85MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_tensorflow.html b/docs/how_to/compile_models/from_tensorflow.html
index e66a8c789..a2b05e64a 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -606,7 +606,7 @@ banana (score = 0.00022)
 desk (score = 0.00019)
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  1.045 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  0.955 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-tensorflow-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7f1d3d1b878694c201c614c807cdebc8/from_tensorflow.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_tensorflow.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/sg_execution_times.html b/docs/how_to/compile_models/sg_execution_times.html
index a80503c0c..2713d1afc 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -300,17 +300,17 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-compile-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>04:44.641</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>04:53.594</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
 <ul class="simple">
-<li><p><strong>01:04.093</strong>: <a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></li>
-<li><p><strong>01:01.045</strong>: <a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></li>
-<li><p><strong>00:55.752</strong>: <a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></li>
-<li><p><strong>00:25.368</strong>: <a class="reference internal" href="from_tflite.html#sphx-glr-how-to-compile-models-from-tflite-py"><span class="std std-ref">Compile TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tflite.py</span></code>)</p></li>
-<li><p><strong>00:22.179</strong>: <a class="reference internal" href="from_mxnet.html#sphx-glr-how-to-compile-models-from-mxnet-py"><span class="std std-ref">Compile MXNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_mxnet.py</span></code>)</p></li>
-<li><p><strong>00:20.580</strong>: <a class="reference internal" href="from_coreml.html#sphx-glr-how-to-compile-models-from-coreml-py"><span class="std std-ref">Compile CoreML Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_coreml.py</span></code>)</p></li>
-<li><p><strong>00:19.293</strong>: <a class="reference internal" href="from_pytorch.html#sphx-glr-how-to-compile-models-from-pytorch-py"><span class="std std-ref">Compile PyTorch Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_pytorch.py</span></code>)</p></li>
-<li><p><strong>00:13.632</strong>: <a class="reference internal" href="from_keras.html#sphx-glr-how-to-compile-models-from-keras-py"><span class="std std-ref">Compile Keras Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_keras.py</span></code>)</p></li>
-<li><p><strong>00:02.699</strong>: <a class="reference internal" href="from_onnx.html#sphx-glr-how-to-compile-models-from-onnx-py"><span class="std std-ref">Compile ONNX Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_onnx.py</span></code>)</p></li>
+<li><p><strong>01:05.575</strong>: <a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></li>
+<li><p><strong>01:00.955</strong>: <a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></li>
+<li><p><strong>00:57.042</strong>: <a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></li>
+<li><p><strong>00:26.250</strong>: <a class="reference internal" href="from_tflite.html#sphx-glr-how-to-compile-models-from-tflite-py"><span class="std std-ref">Compile TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tflite.py</span></code>)</p></li>
+<li><p><strong>00:24.046</strong>: <a class="reference internal" href="from_pytorch.html#sphx-glr-how-to-compile-models-from-pytorch-py"><span class="std std-ref">Compile PyTorch Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_pytorch.py</span></code>)</p></li>
+<li><p><strong>00:21.962</strong>: <a class="reference internal" href="from_mxnet.html#sphx-glr-how-to-compile-models-from-mxnet-py"><span class="std std-ref">Compile MXNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_mxnet.py</span></code>)</p></li>
+<li><p><strong>00:21.277</strong>: <a class="reference internal" href="from_coreml.html#sphx-glr-how-to-compile-models-from-coreml-py"><span class="std std-ref">Compile CoreML Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_coreml.py</span></code>)</p></li>
+<li><p><strong>00:13.855</strong>: <a class="reference internal" href="from_keras.html#sphx-glr-how-to-compile-models-from-keras-py"><span class="std std-ref">Compile Keras Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_keras.py</span></code>)</p></li>
+<li><p><strong>00:02.632</strong>: <a class="reference internal" href="from_onnx.html#sphx-glr-how-to-compile-models-from-onnx-py"><span class="std std-ref">Compile ONNX Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_onnx.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/deploy_models/deploy_model_on_android.html b/docs/how_to/deploy_models/deploy_model_on_android.html
index 132d545b2..e377ae9df 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -622,7 +622,7 @@ to the remote android device.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  16.0534      16.0881      16.3155      15.7336       0.1698
+  15.7893      15.7791      15.9486      15.6496       0.1033
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
index 66ce7fd13..6e25acbac 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -409,14 +409,15 @@ be unstable.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth&quot; to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
 
   0%|          | 0.00/170M [00:00&lt;?, ?B/s]
- 12%|#1        | 19.8M/170M [00:00&lt;00:00, 208MB/s]
- 23%|##3       | 39.6M/170M [00:00&lt;00:00, 196MB/s]
- 39%|###8      | 65.5M/170M [00:00&lt;00:00, 229MB/s]
- 54%|#####3    | 91.5M/170M [00:00&lt;00:00, 246MB/s]
- 69%|######9   | 118M/170M [00:00&lt;00:00, 257MB/s]
- 85%|########4 | 144M/170M [00:00&lt;00:00, 261MB/s]
- 99%|#########9| 169M/170M [00:00&lt;00:00, 262MB/s]
-100%|##########| 170M/170M [00:00&lt;00:00, 249MB/s]
+  3%|2         | 4.87M/170M [00:00&lt;00:03, 51.0MB/s]
+  6%|5         | 9.73M/170M [00:00&lt;00:03, 48.2MB/s]
+ 21%|##        | 34.9M/170M [00:00&lt;00:00, 143MB/s]
+ 30%|###       | 51.2M/170M [00:00&lt;00:00, 154MB/s]
+ 44%|####4     | 75.5M/170M [00:00&lt;00:00, 190MB/s]
+ 60%|#####9    | 102M/170M [00:00&lt;00:00, 218MB/s]
+ 75%|#######4  | 127M/170M [00:00&lt;00:00, 233MB/s]
+ 90%|########9 | 152M/170M [00:00&lt;00:00, 244MB/s]
+100%|##########| 170M/170M [00:00&lt;00:00, 202MB/s]
 /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:3878: 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 i in range(dim)
 /usr/local/lib/python3.7/dist-packages/torchvision/models/detection/anchor_utils.py:127: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the &#39;trunc&#39; function NOT &#39;floor&#39;). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode=&#39;trunc&#39;), or for actual floor division, use torch.div(a, b, rounding_mode=&#39;floor&#39;).
@@ -509,7 +510,7 @@ torchvision rcnn models.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Get 9 valid boxes
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  2.538 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  0.672 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-object-detection-pytorch-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7795da4b258c8feff986668b95ef57ad/deploy_object_detection_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_object_detection_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized.html b/docs/how_to/deploy_models/deploy_prequantized.html
index 7343d6915..80ade2eb2 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -450,9 +450,10 @@ training. Other models require a full post training calibration.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/mobilenet_v2-b0353104.pth&quot; to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
 
   0%|          | 0.00/13.6M [00:00&lt;?, ?B/s]
- 28%|##7       | 3.73M/13.6M [00:00&lt;00:00, 39.0MB/s]
- 55%|#####5    | 7.46M/13.6M [00:00&lt;00:00, 36.7MB/s]
-100%|##########| 13.6M/13.6M [00:00&lt;00:00, 56.4MB/s]
+ 23%|##2       | 3.07M/13.6M [00:00&lt;00:00, 32.1MB/s]
+ 45%|####5     | 6.14M/13.6M [00:00&lt;00:00, 29.3MB/s]
+ 73%|#######3  | 9.95M/13.6M [00:00&lt;00:00, 33.9MB/s]
+100%|##########| 13.6M/13.6M [00:00&lt;00:00, 38.1MB/s]
 </pre></div>
 </div>
 </div>
@@ -541,7 +542,7 @@ output values are identical out of 1000 outputs from mobilenet v2.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  90.1482      90.0487      90.9326      89.9494       0.2301
+  90.3071      90.1194      98.5680      89.9626       1.0693
 </pre></div>
 </div>
 <div class="admonition note">
@@ -580,7 +581,7 @@ This includes support for the VNNI 8 bit dot product instruction (CascadeLake or
 <div class="section" id="deploy-a-quantized-tflite-model">
 <h2>Deploy a quantized TFLite Model<a class="headerlink" href="#deploy-a-quantized-tflite-model" title="Permalink to this headline">¶</a></h2>
 <p>TODO</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  4.459 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  2.677 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/fb8217c13f4351224c6cf3aacf1a87fc/deploy_prequantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized_tflite.html b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
index 71ee6b1d7..9a211b075 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -540,7 +540,7 @@ TFLite Top-5 labels: [387 102 386 341 349]
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  119.0673     118.7645     140.0764     117.7407      2.2965
+  119.5094     119.4100     124.7076     118.6000      0.6309
 </pre></div>
 </div>
 <div class="admonition note">
@@ -568,7 +568,7 @@ network for ARM CPU</span></a>.</p></li>
 </ul>
 </div></blockquote>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  52.051 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  57.817 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-tflite-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/56691c7a27d45da61d112276334640d3/deploy_prequantized_tflite.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized_tflite.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_quantized.html b/docs/how_to/deploy_models/deploy_quantized.html
index 1f3dd5af4..e23891c2c 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -480,7 +480,7 @@ for calibration. But the accuracy might be impacted.</p>
   DeprecationWarning,
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  13.515 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  17.380 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-quantized-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7810ecf51bfc05f7d5e8a400ac3e815d/deploy_quantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_quantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index 7d5fd6294..9ad8811b4 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -415,24 +415,24 @@ to your device.</p>
 Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
 
   0%|          | 0/132723 [00:00&lt;?, ?KB/s]
-  5%|4         | 6261/132723 [00:00&lt;00:02, 62595.43KB/s]
- 10%|#         | 13893/132723 [00:00&lt;00:01, 70665.79KB/s]
- 16%|#6        | 21553/132723 [00:00&lt;00:01, 73372.77KB/s]
- 22%|##2       | 29265/132723 [00:00&lt;00:01, 74847.56KB/s]
- 28%|##7       | 36900/132723 [00:00&lt;00:01, 75380.78KB/s]
- 34%|###3      | 44571/132723 [00:00&lt;00:01, 75830.78KB/s]
- 39%|###9      | 52283/132723 [00:00&lt;00:01, 76247.72KB/s]
- 45%|####5     | 59947/132723 [00:00&lt;00:00, 76367.34KB/s]
- 51%|#####     | 67584/132723 [00:00&lt;00:00, 76277.58KB/s]
- 57%|#####6    | 75304/132723 [00:01&lt;00:00, 76561.10KB/s]
- 63%|######2   | 83108/132723 [00:01&lt;00:00, 77011.49KB/s]
- 69%|######8   | 90923/132723 [00:01&lt;00:00, 77355.68KB/s]
- 74%|#######4  | 98698/132723 [00:01&lt;00:00, 77472.60KB/s]
- 80%|########  | 106446/132723 [00:01&lt;00:00, 77449.49KB/s]
- 86%|########6 | 114205/132723 [00:01&lt;00:00, 77489.17KB/s]
- 92%|#########2| 122146/132723 [00:01&lt;00:00, 78062.82KB/s]
- 98%|#########8| 130162/132723 [00:01&lt;00:00, 78686.48KB/s]
-100%|##########| 132723/132723 [00:01&lt;00:00, 76545.42KB/s]
+  5%|4         | 6103/132723 [00:00&lt;00:02, 61023.37KB/s]
+ 10%|#         | 13869/132723 [00:00&lt;00:01, 70804.06KB/s]
+ 16%|#6        | 21579/132723 [00:00&lt;00:01, 73674.12KB/s]
+ 22%|##2       | 29384/132723 [00:00&lt;00:01, 75399.22KB/s]
+ 28%|##8       | 37174/132723 [00:00&lt;00:01, 76297.84KB/s]
+ 34%|###3      | 44955/132723 [00:00&lt;00:01, 76808.79KB/s]
+ 40%|###9      | 52636/132723 [00:00&lt;00:01, 75310.06KB/s]
+ 45%|####5     | 60366/132723 [00:00&lt;00:00, 75932.40KB/s]
+ 51%|#####1    | 68109/132723 [00:00&lt;00:00, 76393.59KB/s]
+ 57%|#####7    | 75858/132723 [00:01&lt;00:00, 76727.16KB/s]
+ 63%|######3   | 83622/132723 [00:01&lt;00:00, 77002.27KB/s]
+ 69%|######8   | 91437/132723 [00:01&lt;00:00, 77346.76KB/s]
+ 75%|#######4  | 99174/132723 [00:01&lt;00:00, 77079.41KB/s]
+ 81%|########  | 106905/132723 [00:01&lt;00:00, 77147.03KB/s]
+ 86%|########6 | 114685/132723 [00:01&lt;00:00, 77341.54KB/s]
+ 92%|#########2| 122428/132723 [00:01&lt;00:00, 77365.42KB/s]
+ 98%|#########8| 130198/132723 [00:01&lt;00:00, 77459.59KB/s]
+100%|##########| 132723/132723 [00:01&lt;00:00, 76262.64KB/s]
 </pre></div>
 </div>
 <p>Create TVM runtime and do inference
@@ -472,7 +472,7 @@ Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from h
 </pre></div>
 </div>
 <img alt="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" class="sphx-glr-single-img" src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" />
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  20.620 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  21.079 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-ssd-gluoncv-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/cccb17d28e5e8b2e94ea8cd5ec59f6ed/deploy_ssd_gluoncv.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_ssd_gluoncv.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/sg_execution_times.html b/docs/how_to/deploy_models/sg_execution_times.html
index c6b4e5521..ad47b5c6f 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -300,16 +300,16 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-deploy-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>10:21.476</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>10:28.194</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
 <ul class="simple">
-<li><p><strong>03:02.538</strong>: <a class="reference internal" href="deploy_object_detection_pytorch.html#sphx-glr-how-to-deploy-models-deploy-object-detection-pytorch-py"><span class="std std-ref">Compile PyTorch Object Detection Models</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_object_detection_pytorch.py</span></code>)</p></li>
-<li><p><strong>02:20.620</strong>: <a class="reference internal" href="deploy_ssd_gluoncv.html#sphx-glr-how-to-deploy-models-deploy-ssd-gluoncv-py"><span class="std std-ref">Deploy Single Shot Multibox Detector(SSD) model</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_ssd_gluoncv.py</span></code>)</p></li>
-<li><p><strong>01:52.051</strong>: <a class="reference internal" href="deploy_prequantized_tflite.html#sphx-glr-how-to-deploy-models-deploy-prequantized-tflite-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM - Part 3 (TFLite)</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized_tflite.py</span></code>)</p></li>
-<li><p><strong>01:13.515</strong>: <a class="reference internal" href="deploy_quantized.html#sphx-glr-how-to-deploy-models-deploy-quantized-py"><span class="std std-ref">Deploy a Quantized Model on Cuda</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_quantized.py</span></code>)</p></li>
-<li><p><strong>01:04.459</strong>: <a class="reference internal" href="deploy_prequantized.html#sphx-glr-how-to-deploy-models-deploy-prequantized-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized.py</span></code>)</p></li>
-<li><p><strong>00:26.989</strong>: <a class="reference internal" href="deploy_model_on_android.html#sphx-glr-how-to-deploy-models-deploy-model-on-android-py"><span class="std std-ref">Deploy the Pretrained Model on Android</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_android.py</span></code>)</p></li>
-<li><p><strong>00:21.108</strong>: <a class="reference internal" href="deploy_model_on_rasp.html#sphx-glr-how-to-deploy-models-deploy-model-on-rasp-py"><span class="std std-ref">Deploy the Pretrained Model on Raspberry Pi</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_rasp.py</span></code>)</p></li>
-<li><p><strong>00:00.196</strong>: <a class="reference internal" href="deploy_sparse.html#sphx-glr-how-to-deploy-models-deploy-sparse-py"><span class="std std-ref">Deploy a Hugging Face Pruned Model on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_sparse.py</span></code>)</p></li>
+<li><p><strong>03:00.672</strong>: <a class="reference internal" href="deploy_object_detection_pytorch.html#sphx-glr-how-to-deploy-models-deploy-object-detection-pytorch-py"><span class="std std-ref">Compile PyTorch Object Detection Models</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_object_detection_pytorch.py</span></code>)</p></li>
+<li><p><strong>02:21.079</strong>: <a class="reference internal" href="deploy_ssd_gluoncv.html#sphx-glr-how-to-deploy-models-deploy-ssd-gluoncv-py"><span class="std std-ref">Deploy Single Shot Multibox Detector(SSD) model</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_ssd_gluoncv.py</span></code>)</p></li>
+<li><p><strong>01:57.817</strong>: <a class="reference internal" href="deploy_prequantized_tflite.html#sphx-glr-how-to-deploy-models-deploy-prequantized-tflite-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM - Part 3 (TFLite)</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized_tflite.py</span></code>)</p></li>
+<li><p><strong>01:17.380</strong>: <a class="reference internal" href="deploy_quantized.html#sphx-glr-how-to-deploy-models-deploy-quantized-py"><span class="std std-ref">Deploy a Quantized Model on Cuda</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_quantized.py</span></code>)</p></li>
+<li><p><strong>01:02.677</strong>: <a class="reference internal" href="deploy_prequantized.html#sphx-glr-how-to-deploy-models-deploy-prequantized-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized.py</span></code>)</p></li>
+<li><p><strong>00:26.727</strong>: <a class="reference internal" href="deploy_model_on_android.html#sphx-glr-how-to-deploy-models-deploy-model-on-android-py"><span class="std std-ref">Deploy the Pretrained Model on Android</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_android.py</span></code>)</p></li>
+<li><p><strong>00:21.656</strong>: <a class="reference internal" href="deploy_model_on_rasp.html#sphx-glr-how-to-deploy-models-deploy-model-on-rasp-py"><span class="std std-ref">Deploy the Pretrained Model on Raspberry Pi</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_rasp.py</span></code>)</p></li>
+<li><p><strong>00:00.186</strong>: <a class="reference internal" href="deploy_sparse.html#sphx-glr-how-to-deploy-models-deploy-sparse-py"><span class="std std-ref">Deploy a Hugging Face Pruned Model on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_sparse.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/extend_tvm/bring_your_own_datatypes.html b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
index caf7e3c29..f39c33480 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -588,7 +588,7 @@ In this alpha state of the Bring Your Own Datatypes framework, we have not imple
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip3b99be30-aa86-4492-8b02-d4c729a8b20c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip1de20b6f-9555-4ec4-a42f-30ffd53050a2 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 </pre></div>
 </div>
 <p>It’s easy to execute MobileNet with native TVM:</p>
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index 1b29ea2f8..7eb518997 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -300,12 +300,12 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-extend-tvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:37.955</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:37.730</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:34.324</strong>: <a class="reference internal" href="bring_your_own_datatypes.html#sphx-glr-how-to-extend-tvm-bring-your-own-datatypes-py"><span class="std std-ref">Bring Your Own Datatypes to TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_datatypes.py</span></code>)</p></li>
-<li><p><strong>00:02.236</strong>: <a class="reference internal" href="use_pass_instrument.html#sphx-glr-how-to-extend-tvm-use-pass-instrument-py"><span class="std std-ref">How to Use TVM Pass Instrument</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_instrument.py</span></code>)</p></li>
-<li><p><strong>00:01.198</strong>: <a class="reference internal" href="use_pass_infra.html#sphx-glr-how-to-extend-tvm-use-pass-infra-py"><span class="std std-ref">How to Use TVM Pass Infra</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_infra.py</span></code>)</p></li>
-<li><p><strong>00:00.197</strong>: <a class="reference internal" href="low_level_custom_pass.html#sphx-glr-how-to-extend-tvm-low-level-custom-pass-py"><span class="std std-ref">Writing a Customized Pass</span></a> (<code class="docutils literal notranslate"><span class="pre">low_level_custom_pass.py</span></code>)</p></li>
+<li><p><strong>00:34.250</strong>: <a class="reference internal" href="bring_your_own_datatypes.html#sphx-glr-how-to-extend-tvm-bring-your-own-datatypes-py"><span class="std std-ref">Bring Your Own Datatypes to TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_datatypes.py</span></code>)</p></li>
+<li><p><strong>00:02.224</strong>: <a class="reference internal" href="use_pass_instrument.html#sphx-glr-how-to-extend-tvm-use-pass-instrument-py"><span class="std std-ref">How to Use TVM Pass Instrument</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_instrument.py</span></code>)</p></li>
+<li><p><strong>00:01.054</strong>: <a class="reference internal" href="use_pass_infra.html#sphx-glr-how-to-extend-tvm-use-pass-infra-py"><span class="std std-ref">How to Use TVM Pass Infra</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_infra.py</span></code>)</p></li>
+<li><p><strong>00:00.202</strong>: <a class="reference internal" href="low_level_custom_pass.html#sphx-glr-how-to-extend-tvm-low-level-custom-pass-py"><span class="std std-ref">Writing a Customized Pass</span></a> (<code class="docutils literal notranslate"><span class="pre">low_level_custom_pass.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index 8453220b4..f75039a8e 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -486,10 +486,10 @@ profile the execution time of each passes.</p>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 6891us [6891us] (48.12%; 48.12%)
-FoldScaleAxis: 7429us [3us] (51.88%; 51.88%)
-        FoldConstant: 7427us [1539us] (51.86%; 99.96%)
-                InferType: 5888us [5888us] (41.12%; 79.28%)
+InferType: 5935us [5935us] (45.39%; 45.39%)
+FoldScaleAxis: 7141us [2us] (54.61%; 54.61%)
+        FoldConstant: 7139us [1461us] (54.60%; 99.97%)
+                InferType: 5678us [5678us] (43.42%; 79.53%)
 </pre></div>
 </div>
 </div>
@@ -512,10 +512,10 @@ Refer to following sections and <a class="reference internal" href="../../refere
 </div>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 6022us [6022us] (44.85%; 44.85%)
-FoldScaleAxis: 7404us [2us] (55.15%; 55.15%)
-        FoldConstant: 7402us [1553us] (55.13%; 99.97%)
-                InferType: 5849us [5849us] (43.56%; 79.02%)
+InferType: 5730us [5730us] (44.49%; 44.49%)
+FoldScaleAxis: 7148us [2us] (55.51%; 55.51%)
+        FoldConstant: 7147us [1491us] (55.49%; 99.97%)
+                InferType: 5655us [5655us] (43.91%; 79.13%)
 </pre></div>
 </div>
 <p>Register empty list to clear existing instruments.</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index 79d5156d4..1b717cde4 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -534,7 +534,7 @@ latency of convolution.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.171381 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 34.376518 ms
 </pre></div>
 </div>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-optimize-operators-opt-conv-cuda-py">
diff --git a/docs/how_to/optimize_operators/opt_conv_tensorcore.html b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
index 0caba54ac..444c5c4fc 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -876,7 +876,7 @@ be able to run on our build server</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 6.678759 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 8.285017 ms
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/optimize_operators/opt_gemm.html b/docs/how_to/optimize_operators/opt_gemm.html
index 89f256939..f0674afbc 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -431,8 +431,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.018782
-Baseline: 3.347739
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.018710
+Baseline: 3.319441
 </pre></div>
 </div>
 <p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -493,7 +493,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.298135
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.296857
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -561,7 +561,7 @@ vastly.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.335212
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.333451
 </pre></div>
 </div>
 <p>Here is the generated IR after vectorization.</p>
@@ -623,7 +623,7 @@ the access pattern for A matrix is more cache friendly.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.115931
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.117757
 </pre></div>
 </div>
 <p>Here is the generated IR after loop permutation.</p>
@@ -707,7 +707,7 @@ flattening.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.110467
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.112600
 </pre></div>
 </div>
 <p>Here is the generated IR after array packing.</p>
@@ -794,7 +794,7 @@ write to C when all the block results are ready.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.112188
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.113386
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -885,7 +885,7 @@ write to C when all the block results are ready.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.144823
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.147424
 </pre></div>
 </div>
 <p>Here is the generated IR after parallelization.</p>
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index 52ac392b6..b9e82c883 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -300,11 +300,11 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-optimize-operators-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:34.735</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:34.823</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:32.133</strong>: <a class="reference internal" href="opt_gemm.html#sphx-glr-how-to-optimize-operators-opt-gemm-py"><span class="std std-ref">How to optimize GEMM on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_gemm.py</span></code>)</p></li>
-<li><p><strong>00:01.391</strong>: <a class="reference internal" href="opt_conv_tensorcore.html#sphx-glr-how-to-optimize-operators-opt-conv-tensorcore-py"><span class="std std-ref">How to optimize convolution using TensorCores</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_tensorcore.py</span></code>)</p></li>
-<li><p><strong>00:01.210</strong>: <a class="reference internal" href="opt_conv_cuda.html#sphx-glr-how-to-optimize-operators-opt-conv-cuda-py"><span class="std std-ref">How to optimize convolution on GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_cuda.py</span></code>)</p></li>
+<li><p><strong>00:32.245</strong>: <a class="reference internal" href="opt_gemm.html#sphx-glr-how-to-optimize-operators-opt-gemm-py"><span class="std std-ref">How to optimize GEMM on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_gemm.py</span></code>)</p></li>
+<li><p><strong>00:01.394</strong>: <a class="reference internal" href="opt_conv_tensorcore.html#sphx-glr-how-to-optimize-operators-opt-conv-tensorcore-py"><span class="std std-ref">How to optimize convolution using TensorCores</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_tensorcore.py</span></code>)</p></li>
+<li><p><strong>00:01.184</strong>: <a class="reference internal" href="opt_conv_cuda.html#sphx-glr-how-to-optimize-operators-opt-conv-cuda-py"><span class="std std-ref">How to optimize convolution on GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_cuda.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
index 054d56606..97605247d 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -300,14 +300,14 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autoscheduler-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>04:54.182</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>04:50.933</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
 <ul class="simple">
-<li><p><strong>02:21.389</strong>: <a class="reference internal" href="tune_conv2d_layer_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py"><span class="std std-ref">Auto-scheduling a Convolution Layer for GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_layer_cuda.py</span></code>)</p></li>
-<li><p><strong>01:19.007</strong>: <a class="reference internal" href="tune_network_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-x86-py"><span class="std std-ref">Auto-scheduling a Neural Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_x86.py</span></code>)</p></li>
-<li><p><strong>00:40.244</strong>: <a class="reference internal" href="tune_network_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-cuda-py"><span class="std std-ref">Auto-scheduling a Neural Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_cuda.py</span></code>)</p></li>
-<li><p><strong>00:16.808</strong>: <a class="reference internal" href="tune_sparse_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-sparse-x86-py"><span class="std std-ref">Auto-scheduling Sparse Matrix Multiplication on CPU with Custom Sketch Rule</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_sparse_x86.py</span></code>)</p></li>
-<li><p><strong>00:08.466</strong>: <a class="reference internal" href="tune_network_mali.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-mali-py"><span class="std std-ref">Auto-scheduling a Neural Network for mali GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_mali.py</span></code>)</p></li>
-<li><p><strong>00:08.267</strong>: <a class="reference internal" href="tune_network_arm.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-arm-py"><span class="std std-ref">Auto-scheduling a Neural Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_arm.py</span></code>)</p></li>
+<li><p><strong>02:18.923</strong>: <a class="reference internal" href="tune_conv2d_layer_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py"><span class="std std-ref">Auto-scheduling a Convolution Layer for GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_layer_cuda.py</span></code>)</p></li>
+<li><p><strong>01:19.200</strong>: <a class="reference internal" href="tune_network_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-x86-py"><span class="std std-ref">Auto-scheduling a Neural Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_x86.py</span></code>)</p></li>
+<li><p><strong>00:40.043</strong>: <a class="reference internal" href="tune_network_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-cuda-py"><span class="std std-ref">Auto-scheduling a Neural Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_cuda.py</span></code>)</p></li>
+<li><p><strong>00:15.921</strong>: <a class="reference internal" href="tune_sparse_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-sparse-x86-py"><span class="std std-ref">Auto-scheduling Sparse Matrix Multiplication on CPU with Custom Sketch Rule</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_sparse_x86.py</span></code>)</p></li>
+<li><p><strong>00:08.605</strong>: <a class="reference internal" href="tune_network_mali.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-mali-py"><span class="std std-ref">Auto-scheduling a Neural Network for mali GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_mali.py</span></code>)</p></li>
+<li><p><strong>00:08.241</strong>: <a class="reference internal" href="tune_network_arm.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-arm-py"><span class="std std-ref">Auto-scheduling a Neural Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_arm.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
index 9f4e9be77..16420f955 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
@@ -469,57 +469,157 @@ cooperative fetching, unrolling and operator fusion.</p>
              bias: Buffer(bias_2: Pointer(float32), float32, [512], []),
              compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
   buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute} {
-  attr [IterVar(blockIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.x&quot;)] &quot;thread_extent&quot; = 32;
-  allocate(conv2d_nchw: Pointer(local float32), float32, [4]), storage_scope = local;
-  allocate(pad_temp.shared: Pointer(shared float32), float32, [1568]), storage_scope = shared;
-  allocate(kernel.shared: Pointer(shared float32), float32, [512]), storage_scope = shared;
-  attr [IterVar(threadIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196 {
-    conv2d_nchw_1: Buffer(conv2d_nchw, float32, [4], [], scope=&quot;local&quot;, align=16)[0] = 0f32
+  attr [IterVar(blockIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.x&quot;)] &quot;thread_extent&quot; = 8;
+  allocate(conv2d_nchw: Pointer(local float32), float32, [14]), storage_scope = local;
+  allocate(pad_temp.shared: Pointer(shared float32), float32, [2016]), storage_scope = shared;
+  allocate(kernel.shared: Pointer(shared float32), float32, [6144]), storage_scope = shared;
+  attr [IterVar(threadIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224 {
+    conv2d_nchw_1: Buffer(conv2d_nchw, float32, [14], [], scope=&quot;local&quot;, align=32)[0] = 0f32
     conv2d_nchw_1[1] = 0f32
     conv2d_nchw_1[2] = 0f32
     conv2d_nchw_1[3] = 0f32
+    conv2d_nchw_1[4] = 0f32
+    conv2d_nchw_1[5] = 0f32
+    conv2d_nchw_1[6] = 0f32
+    conv2d_nchw_1[7] = 0f32
+    conv2d_nchw_1[8] = 0f32
+    conv2d_nchw_1[9] = 0f32
+    conv2d_nchw_1[10] = 0f32
+    conv2d_nchw_1[11] = 0f32
+    conv2d_nchw_1[12] = 0f32
+    conv2d_nchw_1[13] = 0f32
     for (rc.outer.outer: int32, 0, 16) {
-      for (ry.outer.outer: int32, 0, 3) {
-        for (rx.outer.outer: int32, 0, 3) {
-          let cse_var_2: int32 = (rc.outer.outer*288)
-          let cse_var_1: int32 = (ry.outer.outer*3)
-           {
-            attr [IterVar(threadIdx.x_1: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1: Buffer(pad_temp.shared, float32, [1568], [], scope=&quot;shared&quot;)[threadIdx.x_1] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx. [...]
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 196)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 188)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 392)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 384)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 588)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 580)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 776)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 980)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 972)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 1176)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 1168)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            pad_temp.shared_1[(threadIdx.x_1 + 1372)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 49), 7) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((rc.outer.outer*1568) + (ry.outer.outer*7)) + threadIdx.x_1) + rx.outer.outer) + 1364)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_2: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            kernel.shared_1: Buffer(kernel.shared, float32, [512], [], scope=&quot;shared&quot;)[threadIdx.x_2] = kernel[((((((blockIdx.x*73728) + (floordiv(threadIdx.x_2, 32)*4608)) + cse_var_2) + (floormod(threadIdx.x_2, 32)*9)) + cse_var_1) + rx.outer.outer)]
-            attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            kernel.shared_1[(threadIdx.x_2 + 196)] = kernel[((((((blockIdx.x*73728) + (floordiv((floordiv(threadIdx.x_2, 4) + 49), 8)*4608)) + cse_var_2) + (floormod((threadIdx.x_2 + 4), 32)*9)) + cse_var_1) + rx.outer.outer)]
-            attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-            if @tir.likely((threadIdx.x_2 &lt; 120), dtype=bool) {
-              kernel.shared_1[(threadIdx.x_2 + 392)] = kernel[((((((blockIdx.x*73728) + (floordiv((floordiv(threadIdx.x_2, 4) + 98), 8)*4608)) + cse_var_2) + (floormod((threadIdx.x_2 + 8), 32)*9)) + cse_var_1) + rx.outer.outer)]
-            }
-            for (rc.inner: int32, 0, 32) {
-              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[((floordiv(threadIdx.x, 49)*128) + rc.inner)]))
-              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*128) + rc.inner) + 32)]))
-              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*128) + rc.inner) + 64)]))
-              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((rc.inner*49) + floormod(threadIdx.x, 49))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*128) + rc.inner) + 96)]))
-            }
+      for (rx.outer.outer: int32, 0, 3) {
+        let cse_var_2: int32 = (rc.outer.outer*1568)
+        let cse_var_1: int32 = (rc.outer.outer*288)
+         {
+          attr [IterVar(threadIdx.x_1: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1: Buffer(pad_temp.shared, float32, [2016], [], scope=&quot;shared&quot;)[threadIdx.x_1] = @tir.if_then_else(((((7 &lt;= floormod(threadIdx.x_1, 63)) &amp;&amp; (floormod(threadIdx.x_1, 63) &lt; 56)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[((((cse_var_2 + (floordiv(threadIdx.x_1, 63)*49)) + rx.outer.outer) + floormod(threadIdx.x_1, 63)) - 8)], 0f32, dtype=float32)
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 224)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 5), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 5), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 32), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 5), 9)*7)) + rx.outer.outer) + floormod(th [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 448)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 1), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 1), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 64), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 1), 9)*7)) + rx.outer.outer) + floormod(th [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 672)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 6), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 6), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 96), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 6), 9)*7)) + rx.outer.outer) + floormod(th [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 896)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 2), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 2), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 128), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 2), 9)*7)) + rx.outer.outer) + floormod(t [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 1120)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 7), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 7), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 160), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 7), 9)*7)) + rx.outer.outer) + floormod( [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 1344)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 3), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 3), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 192), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 3), 9)*7)) + rx.outer.outer) + floormod( [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 8), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 8), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 224), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 8), 9)*7)) + rx.outer.outer) + floormod( [...]
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          pad_temp.shared_1[(threadIdx.x_1 + 1792)] = @tir.if_then_else(((((1 &lt;= floormod((floordiv(threadIdx.x_1, 7) + 4), 9)) &amp;&amp; (floormod((floordiv(threadIdx.x_1, 7) + 4), 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(threadIdx.x_1, 7)))) &amp;&amp; ((rx.outer.outer + floormod(threadIdx.x_1, 7)) &lt; 8)), data[(((((cse_var_2 + (floordiv((floordiv(threadIdx.x_1, 7) + 256), 9)*49)) + (floormod((floordiv(threadIdx.x_1, 7) + 4), 9)*7)) + rx.outer.outer) + floormod( [...]
+          attr [IterVar(threadIdx.x_2: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1: Buffer(kernel.shared, float32, [6144], [], scope=&quot;shared&quot;)[threadIdx.x_2] = kernel[(((((blockIdx.x*294912) + (floordiv(threadIdx.x_2, 96)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 224)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 7), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 448)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 14), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 672)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 32256)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 896)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 28), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 1120)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 35), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 1344)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 64512)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 1568)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 49), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 1792)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 56), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 2016)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 96768)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 2240)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 70), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 2464)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 77), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 2688)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 129024)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 2912)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 91), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 3136)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 98), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 3360)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 161280)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 3584)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 112), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 3808)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 119), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 4032)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 193536)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 4256)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 133), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 4480)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 140), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 4704)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 225792)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 4928)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 154), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 5152)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 161), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 5376)] = kernel[((((((blockIdx.x*294912) + (floordiv(floordiv(threadIdx.x_2, 32), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 96)*3)) + rx.outer.outer) + 258048)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 5600)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 175), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 32), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          kernel.shared_1[(threadIdx.x_2 + 5824)] = kernel[(((((blockIdx.x*294912) + (floordiv((floordiv(threadIdx.x_2, 32) + 182), 3)*4608)) + cse_var_1) + (floormod((threadIdx.x_2 + 64), 96)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 224;
+          if @tir.likely((threadIdx.x_2 &lt; 96), dtype=bool) {
+            kernel.shared_1[(threadIdx.x_2 + 6048)] = kernel[(((((blockIdx.x*294912) + cse_var_1) + (threadIdx.x_2*3)) + rx.outer.outer) + 290304)]
+          }
+          for (rc.outer.inner: int32, 0, 32) {
+            conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((rc.outer.inner*63) + floormod(threadIdx.x, 7))]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3))]))
+            conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((rc.outer.inner*63) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 96)]))
+            conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 1)]))
+            conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 7)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 97)]))
+            conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 56)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 2)]))
+            conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 14)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+            conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 21)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+            conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 28)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+            conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 35)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+            conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 42)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+            conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 49)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
+            conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[(((rc.outer.inner*63) + floormod(threadIdx.x, 7)) + 56)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*192) + (rc.outer.inner*3)) + 98)]))
           }
         }
       }
     }
-    for (i1.inner: int32, 0, 4) {
-      compute[((((blockIdx.x*784) + (floordiv(threadIdx.x, 49)*196)) + (i1.inner*49)) + floormod(threadIdx.x, 49))] = max((conv2d_nchw_1[i1.inner] + bias[(((blockIdx.x*16) + (floordiv(threadIdx.x, 49)*4)) + i1.inner)]), 0f32)
+    for (i1.inner: int32, 0, 2) {
+      for (i2.inner: int32, 0, 7) {
+        compute[(((((blockIdx.x*3136) + (floordiv(threadIdx.x, 7)*98)) + (i1.inner*49)) + (i2.inner*7)) + floormod(threadIdx.x, 7))] = max((conv2d_nchw_1[((i1.inner*7) + i2.inner)] + bias[(((blockIdx.x*64) + (floordiv(threadIdx.x, 7)*2)) + i1.inner)]), 0f32)
+      }
     }
   }
 }
@@ -557,7 +657,7 @@ cooperative fetching, unrolling and operator fusion.</p>
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.311 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.397 ms
 </pre></div>
 </div>
 </div>
@@ -587,33 +687,33 @@ conv2d_nchw_nn_o_i, conv2d_nchw_nn_i = s[conv2d_nchw].split(conv2d_nchw_nn, fact
 conv2d_nchw_nn_o_o_i, conv2d_nchw_nn_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_i, factor=1)
 conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_i, factor=1)
 conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
-conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=4)
-conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=1)
-conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=4)
+conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
+conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=2)
+conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=32)
 conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=1)
 conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
-conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
-conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=7)
+conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=7)
+conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=1)
 conv2d_nchw_yy_o_o_o_o, conv2d_nchw_yy_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_o_i, factor=1)
 conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, factor=1)
 conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=1)
 conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=7)
 conv2d_nchw_xx_o_o_o_o, conv2d_nchw_xx_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_o_i, factor=1)
-conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=32)
-conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=1)
+conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=1)
+conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=32)
 conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
-conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
+conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=3)
 conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
 conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=1)
 s[conv2d_nchw].reorder(conv2d_nchw_nn_o_o_o_o, conv2d_nchw_ff_o_o_o_o, conv2d_nchw_yy_o_o_o_o, conv2d_nchw_xx_o_o_o_o, conv2d_nchw_nn_o_o_o_i, conv2d_nchw_ff_o_o_o_i, conv2d_nchw_yy_o_o_o_i, conv2d_nchw_xx_o_o_o_i, conv2d_nchw_nn_o_o_i, conv2d_nchw_ff_o_o_i, conv2d_nchw_yy_o_o_i, conv2d_nchw_xx_o_o_i, conv2d_nchw_rc_o_o, conv2d_nchw_ry_o_o, conv2d_nchw_rx_o_o, conv2d_nchw_rc_o_i, conv2d_nchw_ry_o_i, conv2d_nchw_rx_o_i, conv2d_nchw_nn_o_i, conv2d_nchw_ff_o_i, conv2d_nchw_yy_o_i, conv2d_nc [...]
 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=4)
-compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=4)
+compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=2)
+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_i, compute_i2_i = s[compute].split(compute_i2, 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=1)
 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=7)
@@ -636,14 +736,14 @@ s[compute].bind(compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused, te.thread
 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=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=196)
+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=224)
 s[kernel_shared].bind(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis(&quot;threadIdx.x&quot;))
 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=1)
 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=196)
+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=224)
 s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis(&quot;threadIdx.x&quot;))
-s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, &quot;auto_unroll_max_step&quot;, 16)
+s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, &quot;auto_unroll_max_step&quot;, 512)
 s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, &quot;unroll_explicit&quot;, True)
 
 CUDA source code:
@@ -661,43 +761,117 @@ CUDA source code:
   #define int64_t long long
   #define uint64_t unsigned long long
 #endif
-extern &quot;C&quot; __global__ void __launch_bounds__(196) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
-  float conv2d_nchw[4];
-  __shared__ float pad_temp_shared[1568];
-  __shared__ float kernel_shared[512];
+extern &quot;C&quot; __global__ void __launch_bounds__(224) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+  float conv2d_nchw[14];
+  __shared__ float pad_temp_shared[2016];
+  __shared__ float kernel_shared[6144];
   conv2d_nchw[0] = 0.000000e+00f;
   conv2d_nchw[1] = 0.000000e+00f;
   conv2d_nchw[2] = 0.000000e+00f;
   conv2d_nchw[3] = 0.000000e+00f;
+  conv2d_nchw[4] = 0.000000e+00f;
+  conv2d_nchw[5] = 0.000000e+00f;
+  conv2d_nchw[6] = 0.000000e+00f;
+  conv2d_nchw[7] = 0.000000e+00f;
+  conv2d_nchw[8] = 0.000000e+00f;
+  conv2d_nchw[9] = 0.000000e+00f;
+  conv2d_nchw[10] = 0.000000e+00f;
+  conv2d_nchw[11] = 0.000000e+00f;
+  conv2d_nchw[12] = 0.000000e+00f;
+  conv2d_nchw[13] = 0.000000e+00f;
   for (int rc_outer_outer = 0; rc_outer_outer &lt; 16; ++rc_outer_outer) {
-    for (int ry_outer_outer = 0; ry_outer_outer &lt; 3; ++ry_outer_outer) {
-      for (int rx_outer_outer = 0; rx_outer_outer &lt; 3; ++rx_outer_outer) {
-        __syncthreads();
-        pad_temp_shared[((int)threadIdx.x)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) - 8)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 196)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 188)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 392)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 384)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 588)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 580)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 776)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 980)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 972)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 1176)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 1168)] : 0.000000e+00f);
-        pad_temp_shared[(((int)threadIdx.x) + 1372)] = (((((1 &lt;= (((((int)threadIdx.x) % 49) / 7) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 49) / 7) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + (ry_outer_outer * 7)) + ((int)threadIdx.x)) + rx_outer_outer) + 1364)] : 0.000000e+00f);
-        kernel_shared[((int)threadIdx.x)] = kernel[((((((((int)blockIdx.x) * 73728) + ((((int)threadIdx.x) &gt;&gt; 5) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) &amp; 31) * 9)) + (ry_outer_outer * 3)) + rx_outer_outer)];
-        kernel_shared[(((int)threadIdx.x) + 196)] = kernel[((((((((int)blockIdx.x) * 73728) + (((((int)threadIdx.x) + 196) &gt;&gt; 5) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 4) &amp; 31) * 9)) + (ry_outer_outer * 3)) + rx_outer_outer)];
-        if (((int)threadIdx.x) &lt; 120) {
-          kernel_shared[(((int)threadIdx.x) + 392)] = kernel[((((((((int)blockIdx.x) * 73728) + (((((int)threadIdx.x) + 392) &gt;&gt; 5) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 8) &amp; 31) * 9)) + (ry_outer_outer * 3)) + rx_outer_outer)];
-        }
-        __syncthreads();
-        for (int rc_inner = 0; rc_inner &lt; 32; ++rc_inner) {
-          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[(((((int)threadIdx.x) / 49) * 128) + rc_inner)]));
-          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[((((((int)threadIdx.x) / 49) * 128) + rc_inner) + 32)]));
-          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[((((((int)threadIdx.x) / 49) * 128) + rc_inner) + 64)]));
-          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((rc_inner * 49) + (((int)threadIdx.x) % 49))] * kernel_shared[((((((int)threadIdx.x) / 49) * 128) + rc_inner) + 96)]));
-        }
+    for (int rx_outer_outer = 0; rx_outer_outer &lt; 3; ++rx_outer_outer) {
+      __syncthreads();
+      pad_temp_shared[((int)threadIdx.x)] = (((((7 &lt;= (((int)threadIdx.x) % 63)) &amp;&amp; ((((int)threadIdx.x) % 63) &lt; 56)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[(((((rc_outer_outer * 1568) + ((((int)threadIdx.x) / 63) * 49)) + rx_outer_outer) + (((int)threadIdx.x) % 63)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 224)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 5) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 5) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 224) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 5) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 448)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 1) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 1) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 448) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 1) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 672)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 6) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 6) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 672) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 6) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 896)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 2) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 2) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 896) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 2) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 1120)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 7) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 7) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1120) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 7) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 1344)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 3) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 3) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1344) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 3) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 8) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 8) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1568) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 8) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      pad_temp_shared[(((int)threadIdx.x) + 1792)] = (((((1 &lt;= (((((int)threadIdx.x) / 7) + 4) % 9)) &amp;&amp; ((((((int)threadIdx.x) / 7) + 4) % 9) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((int)threadIdx.x) % 7)))) &amp;&amp; ((rx_outer_outer + (((int)threadIdx.x) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1792) / 63) * 49)) + ((((((int)threadIdx.x) / 7) + 4) % 9) * 7)) + rx_outer_outer) + (((int)threadIdx.x) % 7)) - 8)] : 0.000000e+00f);
+      kernel_shared[((int)threadIdx.x)] = kernel[(((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 224)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 224) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 448)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 448) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 672)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 32256)];
+      kernel_shared[(((int)threadIdx.x) + 896)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 896) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 1120)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 1120) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 1344)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 64512)];
+      kernel_shared[(((int)threadIdx.x) + 1568)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 1568) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 1792)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 1792) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 2016)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 96768)];
+      kernel_shared[(((int)threadIdx.x) + 2240)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 2240) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 2464)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 2464) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 2688)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 129024)];
+      kernel_shared[(((int)threadIdx.x) + 2912)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 2912) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 3136)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 3136) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 3360)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 161280)];
+      kernel_shared[(((int)threadIdx.x) + 3584)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 3584) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 3808)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 3808) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 4032)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 193536)];
+      kernel_shared[(((int)threadIdx.x) + 4256)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 4256) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 4480)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 4480) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 4704)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 225792)];
+      kernel_shared[(((int)threadIdx.x) + 4928)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 4928) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 5152)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 5152) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 5376)] = kernel[((((((((int)blockIdx.x) * 294912) + ((((int)threadIdx.x) / 96) * 4608)) + (rc_outer_outer * 288)) + ((((int)threadIdx.x) % 96) * 3)) + rx_outer_outer) + 258048)];
+      kernel_shared[(((int)threadIdx.x) + 5600)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 5600) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 32) % 96) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 5824)] = kernel[(((((((int)blockIdx.x) * 294912) + (((((int)threadIdx.x) + 5824) / 96) * 4608)) + (rc_outer_outer * 288)) + (((((int)threadIdx.x) + 64) % 96) * 3)) + rx_outer_outer)];
+      if (((int)threadIdx.x) &lt; 96) {
+        kernel_shared[(((int)threadIdx.x) + 6048)] = kernel[(((((((int)blockIdx.x) * 294912) + (rc_outer_outer * 288)) + (((int)threadIdx.x) * 3)) + rx_outer_outer) + 290304)];
+      }
+      __syncthreads();
+      for (int rc_outer_inner = 0; rc_outer_inner &lt; 32; ++rc_outer_inner) {
+        conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((rc_outer_inner * 63) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[(((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3))]));
+        conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((rc_outer_inner * 63) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 96)]));
+        conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 1)]));
+        conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 7)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 97)]));
+        conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 56)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 2)]));
+        conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 14)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+        conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 21)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+        conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 28)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+        conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 35)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+        conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 42)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+        conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 49)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
+        conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((rc_outer_inner * 63) + (((int)threadIdx.x) % 7)) + 56)] * kernel_shared[((((((int)threadIdx.x) / 7) * 192) + (rc_outer_inner * 3)) + 98)]));
       }
     }
   }
-  for (int i1_inner = 0; i1_inner &lt; 4; ++i1_inner) {
-    compute[((((((int)blockIdx.x) * 784) + ((((int)threadIdx.x) / 49) * 196)) + (i1_inner * 49)) + (((int)threadIdx.x) % 49))] = max((conv2d_nchw[i1_inner] + bias[(((((int)blockIdx.x) * 16) + ((((int)threadIdx.x) / 49) * 4)) + i1_inner)]), 0.000000e+00f);
+  for (int i1_inner = 0; i1_inner &lt; 2; ++i1_inner) {
+    for (int i2_inner = 0; i2_inner &lt; 7; ++i2_inner) {
+      compute[(((((((int)blockIdx.x) * 3136) + ((((int)threadIdx.x) / 7) * 98)) + (i1_inner * 49)) + (i2_inner * 7)) + (((int)threadIdx.x) % 7))] = max((conv2d_nchw[((i1_inner * 7) + i2_inner)] + bias[(((((int)blockIdx.x) * 64) + ((((int)threadIdx.x) / 7) * 2)) + i1_inner)]), 0.000000e+00f);
+    }
   }
 }
 </pre></div>
@@ -735,7 +909,7 @@ In the example below we resume the status and do more 5 trials.</p>
 Get devices for measurement successfully!
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  21.389 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  18.923 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e3e540f3b477c0c52d8eb73e674e8ffd/tune_conv2d_layer_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_conv2d_layer_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
index cd56e395a..4448c2b65 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -876,7 +876,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   9.6421       9.6345       9.6745       9.6174       0.0239
+   9.4782       9.4833       9.4941       9.4573       0.0155
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
index 2526e1e6c..8915b9d95 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -895,7 +895,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  756.5040     755.1786     761.3652     752.9680      3.5539
+  767.1472     768.3834     771.2908     761.7675      3.9849
 </pre></div>
 </div>
 </div>
@@ -917,7 +917,7 @@ to learn how to use the RPC Tracker and RPC Server.
 To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
 with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
 </ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  19.007 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  19.200 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-x86-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e416b94ca1090b0897c0f6e0df95b911/tune_network_x86.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_x86.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
index 31f5ee17d..3a792107a 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -600,25 +600,75 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
              placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [65536], []),
              compute: Buffer(compute_2: Pointer(float32), float32, [65536], [])}
   buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute} {
-  for (i0.outer.i1.outer.fused: int32, 0, 512) &quot;parallel&quot; {
-    allocate(compute_3: Pointer(global float32), float32, [128]), storage_scope = global {
-      for (i.inner.init: int32, 0, 8) {
-        for (j.init: int32, 0, 16) {
-          compute_4: Buffer(compute_3, float32, [128], [])[((i.inner.init*16) + j.init)] = 0f32
+  for (i0.outer.i1.outer.fused: int32, 0, 128) &quot;parallel&quot; {
+    allocate(compute_3: Pointer(global float32), float32, [512]), storage_scope = global {
+      for (nb_j.inner: int32, 0, 2) {
+        for (i.inner.init: int32, 0, 16) {
+          let cse_var_1: int32 = ((i.inner.init*32) + (nb_j.inner*16))
+           {
+            compute_4: Buffer(compute_3, float32, [512], [])[cse_var_1] = 0f32
+            compute_4[(cse_var_1 + 1)] = 0f32
+            compute_4[(cse_var_1 + 2)] = 0f32
+            compute_4[(cse_var_1 + 3)] = 0f32
+            compute_4[(cse_var_1 + 4)] = 0f32
+            compute_4[(cse_var_1 + 5)] = 0f32
+            compute_4[(cse_var_1 + 6)] = 0f32
+            compute_4[(cse_var_1 + 7)] = 0f32
+            compute_4[(cse_var_1 + 8)] = 0f32
+            compute_4[(cse_var_1 + 9)] = 0f32
+            compute_4[(cse_var_1 + 10)] = 0f32
+            compute_4[(cse_var_1 + 11)] = 0f32
+            compute_4[(cse_var_1 + 12)] = 0f32
+            compute_4[(cse_var_1 + 13)] = 0f32
+            compute_4[(cse_var_1 + 14)] = 0f32
+            compute_4[(cse_var_1 + 15)] = 0f32
+          }
         }
-      }
-      for (elem_idx: int32, 0, let cse_var_1: int32 = floormod(i0.outer.i1.outer.fused, 32) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
-        for (i.inner: int32, 0, 8) {
-          for (j: int32, 0, 16) {
-            let cse_var_3: int32 = floormod(i0.outer.i1.outer.fused, 32)
-            let cse_var_2: int32 = ((i.inner*16) + j)
-            compute_4[cse_var_2] = (compute_4[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[(((floordiv(i0.outer.i1.outer.fused, 32)*2048) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
+        for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])) {
+          for (i.inner: int32, 0, 16) {
+            let cse_var_21: int32 = (elem_idx*16)
+            let cse_var_20: int32 = ((i.inner*32) + (nb_j.inner*16))
+            let cse_var_19: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+            let cse_var_18: int32 = (cse_var_20 + 1)
+            let cse_var_17: int32 = (cse_var_20 + 11)
+            let cse_var_16: int32 = (cse_var_20 + 12)
+            let cse_var_15: int32 = (cse_var_20 + 13)
+            let cse_var_14: int32 = (cse_var_20 + 14)
+            let cse_var_13: int32 = (cse_var_20 + 15)
+            let cse_var_12: int32 = (cse_var_20 + 2)
+            let cse_var_11: int32 = (cse_var_20 + 3)
+            let cse_var_10: int32 = (cse_var_20 + 4)
+            let cse_var_9: int32 = (cse_var_20 + 5)
+            let cse_var_8: int32 = (cse_var_20 + 6)
+            let cse_var_7: int32 = (cse_var_20 + 7)
+            let cse_var_6: int32 = (cse_var_20 + 8)
+            let cse_var_5: int32 = (cse_var_20 + 9)
+            let cse_var_4: int32 = ((floordiv(i0.outer.i1.outer.fused, 16)*4096) + (i.inner*256))
+            let cse_var_3: int32 = (cse_var_20 + 10)
+             {
+              compute_4[cse_var_20] = (compute_4[cse_var_20] + (placeholder_1[((placeholder_3[cse_var_19]*16) + cse_var_21)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_18] = (compute_4[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 1)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_12] = (compute_4[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 2)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_11] = (compute_4[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 3)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_10] = (compute_4[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 4)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_9] = (compute_4[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 5)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_8] = (compute_4[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 6)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_7] = (compute_4[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 7)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_6] = (compute_4[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 8)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_5] = (compute_4[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 9)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_3] = (compute_4[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 10)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_17] = (compute_4[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 11)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_16] = (compute_4[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 12)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_15] = (compute_4[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 13)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_14] = (compute_4[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 14)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+              compute_4[cse_var_13] = (compute_4[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 15)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+            }
           }
         }
       }
-      for (i0.inner: int32, 0, 8) {
-        let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 32)*4096) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 32)*16))
-        compute[ramp(cse_var_4, 1, 16)] = max((compute_4[ramp((i0.inner*16), 1, 16)] + placeholder_4[ramp(cse_var_4, 1, 16)]), broadcast(0f32, 16))
+      for (i0.inner: int32, 0, 16) {
+        let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*8192) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
+        compute[ramp(cse_var_22, 1, 32)] = max((compute_4[ramp((i0.inner*32), 1, 32)] + placeholder_4[ramp(cse_var_22, 1, 32)]), broadcast(0f32, 32))
       }
     }
   }
@@ -657,7 +707,7 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
 </pre></div>
 </div>
 <p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.527 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.669 ms
 </pre></div>
 </div>
 <div class="admonition note">
diff --git a/docs/how_to/tune_with_autotvm/sg_execution_times.html b/docs/how_to/tune_with_autotvm/sg_execution_times.html
index e55850ee8..945cfa24d 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -300,13 +300,13 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autotvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:44.564</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:43.937</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:43.701</strong>: <a class="reference internal" href="tune_conv2d_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-conv2d-cuda-py"><span class="std std-ref">Tuning High Performance Convolution on NVIDIA GPUs</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_cuda.py</span></code>)</p></li>
-<li><p><strong>00:00.232</strong>: <a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></li>
-<li><p><strong>00:00.216</strong>: <a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></li>
-<li><p><strong>00:00.213</strong>: <a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></li>
-<li><p><strong>00:00.202</strong>: <a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></li>
+<li><p><strong>00:43.104</strong>: <a class="reference internal" href="tune_conv2d_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-conv2d-cuda-py"><span class="std std-ref">Tuning High Performance Convolution on NVIDIA GPUs</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_cuda.py</span></code>)</p></li>
+<li><p><strong>00:00.221</strong>: <a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></li>
+<li><p><strong>00:00.206</strong>: <a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></li>
+<li><p><strong>00:00.203</strong>: <a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></li>
+<li><p><strong>00:00.202</strong>: <a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
index 3ea83f787..eed735211 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -1142,8 +1142,8 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 4, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 1, 128]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2885496
-No: 6   GFLOPS: 95.55/95.55     result: MeasureResult(costs=(0.0024227529583333335,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.592839241027832, timestamp=1649183885.0002024)       [(&#39;tile_f&#39;, [-1, 1, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,3754080
-No: 7   GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 6   GFLOPS: 112.07/112.07   result: MeasureResult(costs=(0.0020657315714285715,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8517277240753174, timestamp=1649181195.2135682)      [(&#39;tile_f&#39;, [-1, 1, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,3754080
+No: 7   GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -1266,7 +1266,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 16, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 256, 1]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6225319
-No: 8   GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 8   GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -1389,7 +1389,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 32]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 8, 64]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,943546
-No: 9   GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 9   GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -1512,7 +1512,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 16, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 16, 32]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2868708
-No: 10  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 10  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 142, in build
     res = future.result()
   File &quot;/usr/lib/python3.7/concurrent/futures/_base.py&quot;, line 435, in result
@@ -1530,7 +1530,7 @@ No: 10  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
 TimeoutError
 
         [(&#39;tile_f&#39;, [-1, 32, 2, 4]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 2]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4691833
-No: 11  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 11  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -1653,7 +1653,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 2, 64]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,1042124
-No: 12  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 12  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -1776,7 +1776,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 32, 1, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 32, 16]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10013405
-No: 13  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 13  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -1899,7 +1899,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 8, 8, 2]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 4, 32]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6732082
-No: 14  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 14  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -2022,7 +2022,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 4, 32]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 128]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 1)],None,7536735
-No: 15  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 15  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -2145,7 +2145,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 128, 4]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,482121
-No: 16  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 16  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -2268,7 +2268,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 2, 1, 16]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 32, 8]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2824525
-No: 17  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 17  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -2391,7 +2391,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 64, 1, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 8, 8]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4559286
-No: 18  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 18  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 571, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 523, in _build_func_common
@@ -2514,7 +2514,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 854, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 1, 32, 16]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 512]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9677544
-No: 19  GFLOPS: 0.00/95.55      result: Traceback (most recent call last):
+No: 19  GFLOPS: 0.00/112.07     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 721, in __call__
     yield remote, remote.load_module(os.path.split(build_result.filename)[1])
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 685, in run_through_rpc
@@ -2602,7 +2602,7 @@ tvm._ffi.base.TVMError: Traceback (most recent call last):
   15: _PyEval_EvalFrameDefault
   14: 0x0000000000537c30
   13: _PyObject_FastCallKeywords
-  12: 0x00007fc7a6a85fa2
+  12: 0x00007f20a6ca8fa2
   11: _ctypes_callproc
   10: ffi_call
   9: ffi_call_unix64
@@ -2667,7 +2667,7 @@ Traceback (most recent call last):
   21: _PyFunction_FastCallKeywords
   20: _PyEval_EvalFrameDefault
   19: _PyFunction_FastCall      [(&#39;tile_f&#39;, [-1, 8, 2, 16]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6390073
-No: 20  GFLOPS: 144.29/144.29   result: MeasureResult(costs=(0.00160446036,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4021077156066895, timestamp=1649183911.2835677)      [(&#39;tile_f&#39;, [-1, 1, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9881539
+No: 20  GFLOPS: 144.37/144.37   result: MeasureResult(costs=(0.00160352834,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4203155040740967, timestamp=1649181221.5153155)      [(&#39;tile_f&#39;, [-1, 1, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9881539
 </pre></div>
 </div>
 <p>Finally we can inspect the best config from log file, check correctness,
@@ -2706,7 +2706,7 @@ and measure running time.</p>
 <p class="sphx-glr-script-out">Out:</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Best config:
 [(&#39;tile_f&#39;, [-1, 1, 4, 1]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,9881539
-Time cost of this operator: 0.002010
+Time cost of this operator: 0.002032
 </pre></div>
 </div>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autotvm-tune-conv2d-cuda-py">
diff --git a/docs/how_to/work_with_microtvm/micro_autotune.html b/docs/how_to/work_with_microtvm/micro_autotune.html
index ff9a0a66d..dce56cc82 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -553,10 +553,10 @@ the tuned operator.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build without Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs
 ---------                                     ---                                           --------  -------  -----              ------  -------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  312.6     98.716   (1, 2, 10, 10, 3)  2       1
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.138     0.991    (1, 6, 10, 10)     1       1
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.93      0.294    (1, 1, 10, 10, 3)  1       1
-Total_time                                    -                                             316.667   -        -                  -       -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  309.7     98.735   (1, 2, 10, 10, 3)  2       1
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.045     0.971    (1, 6, 10, 10)     1       1
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.921     0.294    (1, 1, 10, 10, 3)  1       1
+Total_time                                    -                                             313.667   -        -                  -       -
 </pre></div>
 </div>
 </div>
@@ -608,10 +608,10 @@ Total_time                                    -
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build with Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs
 ---------                                     ---                                           --------  -------  -----              ------  -------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  220.1     98.478   (1, 1, 10, 10, 6)  2       1
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       2.5       1.119    (1, 6, 10, 10)     1       1
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.901     0.403    (1, 3, 10, 10, 1)  1       1
-Total_time                                    -                                             223.501   -        -                  -       -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  211.4     98.651   (1, 1, 10, 10, 6)  2       1
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.988     0.928    (1, 6, 10, 10)     1       1
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.902     0.421    (1, 3, 10, 10, 1)  1       1
+Total_time                                    -                                             214.29    -        -                  -       -
 </pre></div>
 </div>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-autotune-py">
diff --git a/docs/how_to/work_with_microtvm/sg_execution_times.html b/docs/how_to/work_with_microtvm/sg_execution_times.html
index a84307a4a..60a353cf7 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -300,13 +300,13 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-microtvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:43.704</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>00:44.265</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:39.697</strong>: <a class="reference internal" href="micro_autotune.html#sphx-glr-how-to-work-with-microtvm-micro-autotune-py"><span class="std std-ref">Autotuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></li>
-<li><p><strong>00:03.414</strong>: <a class="reference internal" href="micro_tflite.html#sphx-glr-how-to-work-with-microtvm-micro-tflite-py"><span class="std std-ref">microTVM with TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></li>
-<li><p><strong>00:00.200</strong>: <a class="reference internal" href="micro_ethosu.html#sphx-glr-how-to-work-with-microtvm-micro-ethosu-py"><span class="std std-ref">Running TVM on bare metal Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></li>
-<li><p><strong>00:00.199</strong>: <a class="reference internal" href="micro_reference_vm.html#sphx-glr-how-to-work-with-microtvm-micro-reference-vm-py"><span class="std std-ref">microTVM Reference Virtual Machines</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_reference_vm.py</span></code>)</p></li>
-<li><p><strong>00:00.192</strong>: <a class="reference internal" href="micro_tvmc.html#sphx-glr-how-to-work-with-microtvm-micro-tvmc-py"><span class="std std-ref">Executing a Tiny Model with TVMC Micro</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tvmc.py</span></code>)</p></li>
+<li><p><strong>00:40.190</strong>: <a class="reference internal" href="micro_autotune.html#sphx-glr-how-to-work-with-microtvm-micro-autotune-py"><span class="std std-ref">Autotuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></li>
+<li><p><strong>00:03.484</strong>: <a class="reference internal" href="micro_tflite.html#sphx-glr-how-to-work-with-microtvm-micro-tflite-py"><span class="std std-ref">microTVM with TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></li>
+<li><p><strong>00:00.200</strong>: <a class="reference internal" href="micro_reference_vm.html#sphx-glr-how-to-work-with-microtvm-micro-reference-vm-py"><span class="std std-ref">microTVM Reference Virtual Machines</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_reference_vm.py</span></code>)</p></li>
+<li><p><strong>00:00.197</strong>: <a class="reference internal" href="micro_ethosu.html#sphx-glr-how-to-work-with-microtvm-micro-ethosu-py"><span class="std std-ref">Running TVM on bare metal Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></li>
+<li><p><strong>00:00.194</strong>: <a class="reference internal" href="micro_tvmc.html#sphx-glr-how-to-work-with-microtvm-micro-tvmc-py"><span class="std std-ref">Executing a Tiny Model with TVMC Micro</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tvmc.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/work_with_relay/sg_execution_times.html b/docs/how_to/work_with_relay/sg_execution_times.html
index 8cfabe89c..83b83025b 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -300,11 +300,11 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-relay-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:09.163</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:06.450</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:07.214</strong>: <a class="reference internal" href="using_external_lib.html#sphx-glr-how-to-work-with-relay-using-external-lib-py"><span class="std std-ref">Using External Libraries in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_external_lib.py</span></code>)</p></li>
-<li><p><strong>00:01.733</strong>: <a class="reference internal" href="build_gcn.html#sphx-glr-how-to-work-with-relay-build-gcn-py"><span class="std std-ref">Building a Graph Convolutional Network</span></a> (<code class="docutils literal notranslate"><span class="pre">build_gcn.py</span></code>)</p></li>
-<li><p><strong>00:00.216</strong>: <a class="reference internal" href="using_relay_viz.html#sphx-glr-how-to-work-with-relay-using-relay-viz-py"><span class="std std-ref">Use Relay Visualizer to Visualize Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_relay_viz.py</span></code>)</p></li>
+<li><p><strong>00:04.361</strong>: <a class="reference internal" href="using_external_lib.html#sphx-glr-how-to-work-with-relay-using-external-lib-py"><span class="std std-ref">Using External Libraries in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_external_lib.py</span></code>)</p></li>
+<li><p><strong>00:01.884</strong>: <a class="reference internal" href="build_gcn.html#sphx-glr-how-to-work-with-relay-build-gcn-py"><span class="std std-ref">Building a Graph Convolutional Network</span></a> (<code class="docutils literal notranslate"><span class="pre">build_gcn.py</span></code>)</p></li>
+<li><p><strong>00:00.205</strong>: <a class="reference internal" href="using_relay_viz.html#sphx-glr-how-to-work-with-relay-using-relay-viz-py"><span class="std std-ref">Use Relay Visualizer to Visualize Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_relay_viz.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/work_with_schedules/sg_execution_times.html b/docs/how_to/work_with_schedules/sg_execution_times.html
index d1ea48084..1dddb0561 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -300,16 +300,16 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-schedules-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:05.473</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:05.418</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:01.983</strong>: <a class="reference internal" href="intrin_math.html#sphx-glr-how-to-work-with-schedules-intrin-math-py"><span class="std std-ref">Intrinsics and Math Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">intrin_math.py</span></code>)</p></li>
-<li><p><strong>00:01.137</strong>: <a class="reference internal" href="tensorize.html#sphx-glr-how-to-work-with-schedules-tensorize-py"><span class="std std-ref">Use Tensorize to Leverage Hardware Intrinsics</span></a> (<code class="docutils literal notranslate"><span class="pre">tensorize.py</span></code>)</p></li>
-<li><p><strong>00:00.699</strong>: <a class="reference internal" href="reduction.html#sphx-glr-how-to-work-with-schedules-reduction-py"><span class="std std-ref">Reduction</span></a> (<code class="docutils literal notranslate"><span class="pre">reduction.py</span></code>)</p></li>
-<li><p><strong>00:00.682</strong>: <a class="reference internal" href="scan.html#sphx-glr-how-to-work-with-schedules-scan-py"><span class="std std-ref">Scan and Recurrent Kernel</span></a> (<code class="docutils literal notranslate"><span class="pre">scan.py</span></code>)</p></li>
-<li><p><strong>00:00.301</strong>: <a class="reference internal" href="extern_op.html#sphx-glr-how-to-work-with-schedules-extern-op-py"><span class="std std-ref">External Tensor Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">extern_op.py</span></code>)</p></li>
-<li><p><strong>00:00.233</strong>: <a class="reference internal" href="schedule_primitives.html#sphx-glr-how-to-work-with-schedules-schedule-primitives-py"><span class="std std-ref">Schedule Primitives in TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">schedule_primitives.py</span></code>)</p></li>
-<li><p><strong>00:00.223</strong>: <a class="reference internal" href="tedd.html#sphx-glr-how-to-work-with-schedules-tedd-py"><span class="std std-ref">Use Tensor Expression Debug Display (TEDD) for Visualization</span></a> (<code class="docutils literal notranslate"><span class="pre">tedd.py</span></code>)</p></li>
-<li><p><strong>00:00.216</strong>: <a class="reference internal" href="tuple_inputs.html#sphx-glr-how-to-work-with-schedules-tuple-inputs-py"><span class="std std-ref">Compute and Reduce with Tuple Inputs</span></a> (<code class="docutils literal notranslate"><span class="pre">tuple_inputs.py</span></code>)</p></li>
+<li><p><strong>00:01.962</strong>: <a class="reference internal" href="intrin_math.html#sphx-glr-how-to-work-with-schedules-intrin-math-py"><span class="std std-ref">Intrinsics and Math Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">intrin_math.py</span></code>)</p></li>
+<li><p><strong>00:01.122</strong>: <a class="reference internal" href="tensorize.html#sphx-glr-how-to-work-with-schedules-tensorize-py"><span class="std std-ref">Use Tensorize to Leverage Hardware Intrinsics</span></a> (<code class="docutils literal notranslate"><span class="pre">tensorize.py</span></code>)</p></li>
+<li><p><strong>00:00.691</strong>: <a class="reference internal" href="reduction.html#sphx-glr-how-to-work-with-schedules-reduction-py"><span class="std std-ref">Reduction</span></a> (<code class="docutils literal notranslate"><span class="pre">reduction.py</span></code>)</p></li>
+<li><p><strong>00:00.675</strong>: <a class="reference internal" href="scan.html#sphx-glr-how-to-work-with-schedules-scan-py"><span class="std std-ref">Scan and Recurrent Kernel</span></a> (<code class="docutils literal notranslate"><span class="pre">scan.py</span></code>)</p></li>
+<li><p><strong>00:00.298</strong>: <a class="reference internal" href="extern_op.html#sphx-glr-how-to-work-with-schedules-extern-op-py"><span class="std std-ref">External Tensor Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">extern_op.py</span></code>)</p></li>
+<li><p><strong>00:00.232</strong>: <a class="reference internal" href="schedule_primitives.html#sphx-glr-how-to-work-with-schedules-schedule-primitives-py"><span class="std std-ref">Schedule Primitives in TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">schedule_primitives.py</span></code>)</p></li>
+<li><p><strong>00:00.226</strong>: <a class="reference internal" href="tedd.html#sphx-glr-how-to-work-with-schedules-tedd-py"><span class="std std-ref">Use Tensor Expression Debug Display (TEDD) for Visualization</span></a> (<code class="docutils literal notranslate"><span class="pre">tedd.py</span></code>)</p></li>
+<li><p><strong>00:00.213</strong>: <a class="reference internal" href="tuple_inputs.html#sphx-glr-how-to-work-with-schedules-tuple-inputs-py"><span class="std std-ref">Compute and Reduce with Tuple Inputs</span></a> (<code class="docutils literal notranslate"><span class="pre">tuple_inputs.py</span></code>)</p></li>
 </ul>
 </div>
 
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index 37f2f1d4e..d3627e13f 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -548,8 +548,8 @@ The importing needs to happen before the tensorized GEMV being executed.</p>
              B: Buffer(B_2: Pointer(float32), float32, [32768], []),
              C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C} {
-  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmp04zs_4v7/input0.cc&#39;
-source_filename = &quot;/tmp/tmp04zs_4v7/input0.cc&quot;
+  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmpxviplmdz/input0.cc&#39;
+source_filename = &quot;/tmp/tmpxviplmdz/input0.cc&quot;
 target datalayout = &quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128&quot;
 target triple = &quot;x86_64-pc-linux-gnu&quot;
 
diff --git a/docs/reference/api/doxygen/annotated.html b/docs/reference/api/doxygen/annotated.html
index 57087093f..1006aaace 100644
--- a/docs/reference/api/doxygen/annotated.html
+++ b/docs/reference/api/doxygen/annotated.html
@@ -300,10 +300,11 @@ $(function() {
 <tr id="row_1_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1parser_1_1SourceNode.html" target="_self">SourceNode</a></td><td class="desc"></td></tr>
 <tr id="row_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_6_" class="arrow" onclick="toggleFolder('1_6_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay.html" target="_self">relay</a></td><td class="desc">Relay: a high level functional IR for TVM </td></tr>
 <tr id="row_1_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_6_0_" class="arrow" onclick="toggleFolder('1_6_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1relay_1_1qnn.html" target="_self">qnn</a></td><td class="desc"></td></tr>
-<tr id="row_1_6_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
-<tr id="row_1_6_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
-<tr id="row_1_6_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
-<tr id="row_1_6_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1SimulatedQuantizeAttrs.html" target="_self">SimulatedQuantizeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html" target="_self">BroadcastAttrs</a></td><td class="desc">Attribute for broadcast operator </td></tr>
+<tr id="row_1_6_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
+<tr id="row_1_6_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
+<tr id="row_1_6_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
+<tr id="row_1_6_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1SimulatedQuantizeAttrs.html" target="_self">SimulatedQuantizeAttrs</a></td><td class="desc"></td></tr>
 <tr id="row_1_6_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool1DAttrs.html" target="_self">AdaptivePool1DAttrs</a></td><td class="desc">Attributes for 1d adaptive pool operator </td></tr>
 <tr id="row_1_6_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html" target="_self">AdaptivePool2DAttrs</a></td><td class="desc">Attributes for 2d adaptive pool operator </td></tr>
 <tr id="row_1_6_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html" target="_self">AdaptivePool3DAttrs</a></td><td class="desc">Attributes for 3d adaptive pool operator </td></tr>
diff --git a/docs/reference/api/doxygen/classes.html b/docs/reference/api/doxygen/classes.html
index d51d66e3c..d988c5e0f 100644
--- a/docs/reference/api/doxygen/classes.html
+++ b/docs/reference/api/doxygen/classes.html
@@ -65,127 +65,128 @@ $(function() {
 <div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|& [...]
 <table class="classindex">
 <tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html">ConvGemmWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1iterator.html">MapNode::iterator</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1Pragma [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html">ConvWinogradWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Map_1_1iterator.html">Map::iterator</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1PragmaS [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html">AccessAnalyzer</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1Iterator.html">I [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html">AccessAnalyzerNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1Span_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool1DAttrs.html">AdaptivePool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html">I [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1auto__scheduler_1_1AttachMapNode_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html">Iter [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html">CountNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.html">IterMapExprNode</a> (<a class="el [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMark.html">IterMark</a> (<a class="el" href="namespacetvm_1_1arith. [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html">Conv3DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1IterAdapter.html">IterAdapter</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PostprocNode.html">PostprocNode</a> (<a [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html">ConvGemmWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1iterator.html">MapNode::iterator</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1PragmaS [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html">AccessAnalyzer</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html">ConvWinogradWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1run [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html">AccessAnalyzerNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1Iterator [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool1DAttrs.html">AdaptivePool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1Span_1_1iterator__base.html">Sp [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html">I [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1auto__scheduler_1_1AttachMapNode_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html">IterMapExpr</a> (<a class="el" href="namesp [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html">CountNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.html">IterMapExprNode</a> (<a c [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMark.html">IterMark</a> (<a class="el" href="namespacetvm_1_1ar [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html">ADTObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMarkNode.html">IterMarkNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1PrimFunc.html">PrimFunc</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1State.html">State</a> (<a class="el" href="namespacetvm_1_1auto__schedu [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html">ADTObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html">IterSplitExpr</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html">PrimFuncNode</a> (<a class="el" href="namespacetvm_1_1t [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html">AffineGridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExprNode.html">IterSplitExprNode</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AffineType.html">AffineType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html">IterSumExpr</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AffineTypeNode.html">AffineTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExprNode.html">IterSumExprNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllClassNonMaximumSuppressionAttrs.html">AllClassNonMaximumSuppressionAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">IterVar</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Allocate.html">Allocate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html">IterVarAttr</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">AllocateConst</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html">DataTypePattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a class="el" href="namesp [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">AllocateConstNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html">DataTypePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html">IterVarNode</a> (<a class="el" hre [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfo.html">AllocatedPoolInfo</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html">DebugAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html">IterVarRelation</a> (<a cl [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html">AllocatedPoolInfoNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html">DeformableConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelationNo [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html">AllocateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html">DenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160; [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html">AffineGridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html">IterSplitExpr</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html">PrimFuncNode</a> (<a class="el" href="name [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AffineType.html">AffineType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExprNode.html">IterSplitExprNode</a> (<a class="el" href="namespacetvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AffineTypeNode.html">AffineTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html">IterSumExpr</a> (<a class="el" href="namespac [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllClassNonMaximumSuppressionAttrs.html">AllClassNonMaximumSuppressionAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExprNode.html">IterSum [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Allocate.html">Allocate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">IterVar</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">AllocateConst</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html">IterVarAttr</a> (<a class="el" href="namespacetvm_1_1te.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">AllocateConstNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html">DataTypePattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a class="el" href [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfo.html">AllocatedPoolInfo</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html">DataTypePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html">IterVarNode< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html">AllocatedPoolInfoNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html">DebugAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html">IterVarRelation</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html">AllocateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html">DeformableConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html">IterVarRelationNode</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Allocator.html">Allocator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html">DenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td> [...]
 </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html">ProgramBuilder</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Allocator.html">Allocator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DenseMapNode.html">DenseMapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilderNode.html">ProgramBuil [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html">AllocStorageAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DensePackAttrs.html">DensePackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html">L2NormalizeAttrs</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html">AllocTensorAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html">LayerNormAttrs</a> (<a class="el" href="namespa [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPattern.html">AltPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Layout.html">Layout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm:: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html">AltPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html">DequantizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html">LayoutAxis</a> (<a clas [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html">DeviceAPI</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutNode.html">LayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1And.html">And</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html">DeviceCopyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">LayoutTransformAttrs</a> (<a class="el" href="namespacetv [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DeviceWrapper.html">DeviceWrapper</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LE.html">LE</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStep.html">AnnotationStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html">DeviceWrapperNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="st [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html">AnnotationStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1LENode.html">LENode</a> (<a class= [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>) [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html">ApplyHistoryBest</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html">DFPatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetNode.html">LetNode</a>  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html">ApplyHistoryBestNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#1 [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html">ArangeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html">DFPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPattern.html">LetPattern</a> (<a class="el" href="namespacetvm_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html">DFPatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPatternNode.html">LetPatternNode</a> (<a  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Diagnostic.html">Diagnostic</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmt.html">LetStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tv [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgReduceAttrs.html">ArgReduceAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticBuilder.html">DiagnosticBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html">LetStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html" [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html">ArgsortAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContext.html">DiagnosticContext</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1LinearCongruentialEngine.html">LinearCongruentialEngine</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html">AllocStorageAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DenseMapNode.html">DenseMapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilderNode.html">ProgramBuilderNo [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html">AllocTensorAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DensePackAttrs.html">DensePackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html">L2NormalizeAttrs</a> (<a class [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPattern.html">AltPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html">LayerNormAttrs</a> (<a class="el" href="namespacetvm_1_1rela [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html">AltPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Layout.html">Layout</a> (<a class="el" href="namespacetvm_1_1tir.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html">DequantizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html">LayoutAxis</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1And.html">And</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html">DeviceAPI</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutNode.html">LayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html">DeviceCopyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">LayoutTransformAttrs</a> (<a class="el" href="nam [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStep.html">AnnotationStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DeviceWrapper.html">DeviceWrapper</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html">AnnotationStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html">DeviceWrapperNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el"  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1LENode.html">LENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::re [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html">ApplyHistoryBest</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Let.html">Let</a>  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html">ApplyHistoryBestNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html">DFPatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetNode.html">LetN [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html">ArangeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a cla [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html">DFPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPattern.html">LetPattern</a> (<a class="el" hre [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html">DFPatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPatternNode.html">LetPatternNode< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgReduceAttrs.html">ArgReduceAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Diagnostic.html">Diagnostic</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmt.html">LetStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&# [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html">ArgsortAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticBuilder.html">DiagnosticBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html">LetStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContext.html">DiagnosticContext</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1LinearCongruentialEngine.html">LinearCongruentialEngine</a> (<a class="el" href="namespac [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContextNode.html">DiagnosticContextNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1LinkedParam.html">LinkedParam</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#16 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor.html">ArrayAccessor</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticNode.html">DiagnosticNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1LinkedParamNode.html">LinkedParamNode</a> (<a class="el" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor_3_01const_01char_01_5_00_01_1_1tvm_1_1runtime_1_1String_01_4.html">ArrayAccessor&lt; const char *, ::tvm::runtime::String &gt;</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRenderer.html">DiagnosticRenderer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;& [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html">SimpleObjAllocator::ArrayHandler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRendererNode.html">DiagnosticRendererNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoadNode.html">LoadNode</a> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor.html">ArrayAccessor</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContextNode.html">DiagnosticContextNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1LinkedParam.html">LinkedParam</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor_3_01const_01char_01_5_00_01_1_1tvm_1_1runtime_1_1String_01_4.html">ArrayAccessor&lt; const char *, ::tvm::runtime::String &gt;</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticNode.html">DiagnosticNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html">SimpleObjAllocator::ArrayHandler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRenderer.html">DiagnosticRenderer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Load.html">Load</a> (<a class="el"  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayIterator.html">ArrayIterator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRendererNode.html">DiagnosticRendererNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoadNode.html">LoadNode</a> (<a c [...]
 </td><td valign="top"><a class="el" href="classtvm_1_1TargetKind.html">TargetKind</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayIterator.html">ArrayIterator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrs.html">DictAttrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilder.html">LocalBuilder</a> (<a class=" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html">ArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html">LocalBuilderNode</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html">AssertStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html">DilateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.html">LocalRunner</a> (<a class="el" href="namespacetvm_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html">ArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrs.html">DictAttrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilder.html">LocalBuilder</a> (<a class="el" href="namespacetvm_1_1auto__scheduler. [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html">AssertStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html">LocalBuilderNode</a> (<a class="el" href="namespacetvm_1_1auto__sche [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html">AssertStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html">DilateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.html">LocalRunner</a> (<a class="el" href="namesp [...]
 </td><td valign="top"><a class="el" href="classtvm_1_1TargetKindRegEntry.html">TargetKindRegEntry</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html">AssertStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html">Dilation2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html">LocalRunnerNode</a> (<a class=" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMap.html">AttachMap</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Div.html">Div</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRV.html">LoopRV</a> (<a class="el" href="namespacetvm_1_1tir.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html">AttachMapNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DivNode.html">DivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRVNode.html">LoopRVNode</a> (<a class="el" href="na [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html">DominatorPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html">LRNAttrs</a> (<a class="el" href="namespa [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html">DominatorPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LT.html">LT</a> (<a class="el" href="namespacet [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1AttrError.html">AttrError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html">DropoutAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LTNode.html">LTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html">DurationNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMap.html">AttachMap</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html">Dilation2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html">LocalR [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html">AttachMapNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Div.html">Div</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRV.html">LoopRV</a> (<a class="el" href="namespacetvm_1_1ti [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DivNode.html">DivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRVNode.html">LoopRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm: [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html">DominatorPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html">LRNAttrs</a> (<a class="el" href="nam [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1AttrError.html">AttrError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html">DominatorPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LT.html">LT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html">DropoutAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LTNode.html">LTNode</a> (<a class="el" href="namespacetvm_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html">DurationNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0">< [...]
 </td><td valign="top"><a class="el" href="classtvm_1_1RangeNode.html">RangeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1TempExpr.html">TempExpr</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DynExpandDimsAttrs.html">DynExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Rebase.html">Rebase</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DynExpandDimsAttrs.html">DynExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Rebase.html">Rebase</a> (<a class="el" href="namespacetvm_1_1te.html">tvm [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Map.html">Map</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1RebaseNode.html">RebaseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Tensor.html">Tensor</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;& [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode.html">MapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> (<a class="el" href="namespacetvm_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1EinsumAttrs.html">EinsumAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> (<a class="el" href="namespacetvm_1_1r [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFunc.html">EnvFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegion.html">MatchBufferRegion</a> (<a class="el" href="namespacetvm_1_1t [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFuncNode.html">EnvFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegionNode.html">MatchBufferRegionNode</a> (<a class="el" href="namespacetvm_1_1ti [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQ.html">EQ</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MatchNode.html">MatchNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tv [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html">AttrPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQNode.html">EQNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatmulAttrs.html">MatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html">AttrPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1ErrorBuilder.html">ErrorBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatrixSetDiagAttrs.html">MatrixSetDiagAttrs</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistry.html">AttrRegistry</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ErrorReporter.html">ErrorReporter</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMap.html">AttrRegistryMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Evaluate.html">Evaluate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html">AttrRegistryMapContainerMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html">EvaluateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html">MaxPool1DAttrs</a> (<a class="el" href="namespa [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html">Executable</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html">MaxPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrsNode.html">AttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Executor.html">Executor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html">MaxPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorNode.html">ExecutorNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> (< [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorRegEntry.html">ExecutorRegEntry</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html">MeasureCallback [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html">AttrStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">ExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html">MeasureCallbackNode</a> (<a class="el" h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html">AttrStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html">ExprDeepEqual</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNode.html">MeasureCallbackNode</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html">Measur [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html">MeasureCandidateNode</a> (<a class="el" href="namespacetvm_1_1meta_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AutoSchedulerLayoutTransformAttrs.html">AutoSchedulerLayoutTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html">AvgPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html">AvgPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResult.html">MeasureResult</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html">AvgPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html">MeasureResultNode</a> (<a class="el"  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode.html">MapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> (<a class="el" href="namespacet [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1EinsumAttrs.html">EinsumAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFunc.html">EnvFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegion.html">MatchBufferRegion</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFuncNode.html">EnvFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegionNode.html">MatchBufferRegionNode</a> (<a class="el" href="namespace [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html">AttrPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQ.html">EQ</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MatchNode.html">MatchNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html">AttrPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQNode.html">EQNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatmulAttrs.html">MatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistry.html">AttrRegistry</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1ErrorBuilder.html">ErrorBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatrixSetDiagAttrs.html">MatrixSetDiagAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#16 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMap.html">AttrRegistryMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ErrorReporter.html">ErrorReporter</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html">AttrRegistryMapContainerMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Evaluate.html">Evaluate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html">EvaluateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html">MaxPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrsNode.html">AttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html">Executable</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html">MaxPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1rel [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Executor.html">Executor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html">MaxPool3DAttrs</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorNode.html">ExecutorNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> (<a  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html">AttrStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorRegEntry.html">ExecutorRegEntry</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html">MeasureCallback</a> (<a class="el" href="n [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html">AttrStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">ExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html">MeasureCallbackNode</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html">ExprDeepEqual</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNode.html">Mea [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html">MeasureCandidate</a> (<a class="el" href="namespacetvm_1_1meta__s [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AutoSchedulerLayoutTransformAttrs.html">AutoSchedulerLayoutTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.htm [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html">AvgPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href=" [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html">AvgPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html">AvgPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResult.html">MeasureResult</a> (<a class="el" hr [...]
 <tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html">ExprPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfo.html">MemoryInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayExprNode.html">RelayExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html">ExprPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfoNode.html">MemoryInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RelayNode.html">RelayNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html">ExprRewriter</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1MemoryManager.html">MemoryManager</a> (<a class="el" href="namespacetvm_1_1runtime_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html">BaseComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structMemoryManagerInterface.html">MemoryManagerInterface</a>&#160;&#160;&#160;</td><td va [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExpr.html">BaseExpr</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html">MeshgridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160; [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExprNode.html">BaseExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOp.html">ExternOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html">MetadataArray</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html">ExternOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArrayNode.html">MetadataArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1me [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTask.html">ExtractedTask</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBase.html">MetadataBase</a> (<a class="el"  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorType.html">BaseTensorType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html">ExtractedTaskNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBaseNode.html">MetadataBaseNode [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorTypeNode.html">BaseTensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncObj_1_1Extractor.html">PackedFuncObj::Extractor</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MetaScheduleContext.html">MetaScheduleC [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueEqual.html">BaseValueEqual</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html">MeasureResultNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayExpr.html">RelayExpr</a> (<a class="el"  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html">ExprPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfo.html">MemoryInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayExprNode.html">RelayExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html">ExprPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfoNode.html">MemoryInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160; [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html">BaseComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html">ExprRewriter</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1MemoryManager.html">MemoryManager</a> (<a class="el" href=" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExpr.html">BaseExpr</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structMemoryManagerInterface.html">MemoryManagerInterface</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cla [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExprNode.html">BaseExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html">MeshgridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOp.html">ExternOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html">MetadataArray</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html">ExternOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArrayNode.html">MetadataArrayNode</a> (<a class="el" href="namespacetvm_1_1runti [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorType.html">BaseTensorType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTask.html">ExtractedTask</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBase.html">MetadataBase</a> (<a class=" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorTypeNode.html">BaseTensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html">ExtractedTaskNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBaseNode.html">Metadata [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueEqual.html">BaseValueEqual</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncObj_1_1Extractor.html">PackedFuncObj::Extractor</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MetaScheduleContext.html">MetaScheduleContext</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueHash.html">BaseValueHash</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MetaScheduleContextNode.html">MetaScheduleContextNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html">RequantizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1me [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueHash.html">BaseValueHash</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollector.html">MetricCollector</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html">ReshapeAttrs</a> (<a c [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchMatmulAttrs.html">BatchMatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractor.html">FeatureExtractor</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricColl [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html">BatchNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html">FeatureExtractorNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Min.html">Min</a> (<a c [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchToSpaceNDAttrs.html">BatchToSpaceNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html">FeatureSet</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MinNode.html">MinNode</a> (<a class="el" href="namespacetvm [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html">BiasAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html">FIFOBufferAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html">MirrorPadAttrs</a> (<a class="el" href [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html">BijectiveLayout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html">FixedPointMultiplyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html">MixedModeMutator</a> ( [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html">BijectiveLayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html">SeqStmt::Flattener</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html">MixedModeVisitor</a> (<a clas [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html">BinaryConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mod.html">Mod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&# [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html">BinaryDenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ModNode.html">ModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>) [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html">BinaryOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html">FloorDiv</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::ar [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html">BitPackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html">FloorDivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Block.html">Block</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorMod.html">FloorMod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1BlockInfo.html">BlockInfo</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Module.html">Module</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::run [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockNode.html">BlockNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStep.html">FollowFusedSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNode</a> ( [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealize.html">BlockRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html">FollowFusedSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</a> (<a c [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html">BlockRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html">FollowSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRV.html">BlockRV</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html">FollowSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html">MultiBoxPriorAt [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html">BlockRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBoxTransformLocAttrs</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Mutator.html">Mutator</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html">FrameBuffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MutatorNode.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Bool.html">Bool</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1Framer.html">Framer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchMatmulAttrs.html">BatchMatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollector.html">MetricCollector</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ReshapeAt [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html">BatchNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractor.html">FeatureExtractor</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollecto [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchToSpaceNDAttrs.html">BatchToSpaceNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html">FeatureExtractorNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Min.html">Min [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html">BiasAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html">FeatureSet</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MinNode.html">MinNode</a> (<a class="el" href="namespacetvm_1_1tir.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html">BijectiveLayout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html">FIFOBufferAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html">MirrorPadAttrs</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html">BijectiveLayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html">FixedPointMultiplyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html">MixedModeMutat [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html">BinaryConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html">SeqStmt::Flattener</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.html">MixedModeVisitor</a> (<a c [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html">BinaryDenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mod.html">Mod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#16 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html">BinaryOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ModNode.html">ModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html">BitPackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html">FloorDiv</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> (<a class="el" href="namespacetvm_1_1arith.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Block.html">Block</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html">FloorDivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.htm [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1BlockInfo.html">BlockInfo</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorMod.html">FloorMod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm: [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockNode.html">BlockNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Module.html">Module</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runt [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealize.html">BlockRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStep.html">FollowFusedSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNode [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html">BlockRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html">FollowFusedSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRV.html">BlockRV</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html">FollowSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</a> (<a class="el" href="name [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html">BlockRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html">FollowSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html">MultiBo [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBoxTransformLocAttrs</a> (<a class="el" href="namespacetvm_1_1re [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Mutator.html">Mutator</a> (<a class="el" href="namespacetvm_1_1meta__schedule [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Bool.html">Bool</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html">FrameBuffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MutatorNode.html">MutatorNode</a> (<a class="el" href="na [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Broadcast.html">Broadcast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1Framer.html">Framer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"> [...]
 </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html">RunnerInputNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structTVMMetadata.html">TVMMetadata</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Broadcast.html">Broadcast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ShapeTupleObj_1_1FromStd.html">ShapeTupleObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html">RunnerNode</a> (<a class=" [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html">BroadcastAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ShapeTupleObj_1_1FromStd.html">ShapeTupleObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1RunnerN [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html">BroadcastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html">StringObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray.html">NDArray</a> (<a class="el" href="nam [...]
 <tr><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Function.html">Function</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1NDArrayContainerTrait.html">NDArrayContainerTrait</a> (<a class="el" href [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html">FunctionNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">NdarraySizeAttrs</a> (<a class="el" href="namespacetvm_1_1rela [...]
@@ -202,10 +203,10 @@ $(function() {
 </td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NotNode.html">NotNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html">ScatterAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeCall.html">TypeCall</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#1 [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRegion.html">BufferRegion</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1NullOptType.html">NullOptType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ScatterNDAttrs.html">ScatterNDAttrs</a> (<a class="el" href="namespa [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRegionNode.html">BufferRegionNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html">GatherAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class=" [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Schedule.html">Schedule</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeConstraint.html">TypeConstraint</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStore.html">BufferStore</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherNDAttrs.html">GatherNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Schedule.html">Schedule</a> (<a class="el" href="namespacetvm_1_1tir.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html">BufferStoreNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" href="namespacetvm_1_1runtime.htm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tv [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Schedule.html">Schedule</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeConstraint.html">TypeConstraint</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStore.html">BufferStore</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherNDAttrs.html">GatherNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Schedule.html">Schedule</a> (<a class="el" href="namespacetvm_1_1te.html">tv [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html">BufferStoreNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" href="namespacetvm_1_1runtime.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tv [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFuncNode.html">GenericFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html">ObjectEqual</a> (<a class="el" href="nam [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">BuilderInputNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GENode.html">GENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectHash.html">ObjectHash</a> (<a class="el" hr [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html">GetValidCountsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</ [...]
@@ -250,11 +251,11 @@ $(function() {
 <tr><td valign="top"><a class="el" href="classtvm_1_1CompilationConfigNode.html">CompilationConfigNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html">ImplSEqualReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConvert [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1CompileError.html">CompileError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html">ImplSHashReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_1_1tvm_1_1runtime_1_1String_01_4.html">PackedFuncValu [...]
 <tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html">CompilerAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html">ImplSHashReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1P [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStep.html">ComputeAtStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html">ImplVisitAttrs</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html">PadAttrs</a>  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html">ComputeAtStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html">ImplVisitAttrs&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="clas [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStep.html">ComputeAtStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html">ImplVisitAttrs</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html">PadAttrs</a>  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html">ComputeAtStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html">ImplVisitAttrs&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="clas [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html">ComputeDAG</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteType.html">IncompleteType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContext.html">PassContext</a> (<a class="el" href="names [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html">ComputeDAGNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html">PassContextNode</a> (< [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStep.html">ComputeInlineStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMap.html">IndexMap</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfo.html">PassInfo</a> (<a class=" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html">ComputeDAGNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html">PassContextNode</a> (< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStep.html">ComputeInlineStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMap.html">IndexMap</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfo.html">PassInfo</a> (<a class=" [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html">ComputeInlineStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMapNode.html">IndexMapNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html">Pass [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOp.html">ComputeOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html">InitOpAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrument.html">PassInstrument</a> (<a class="el" href="namespacetvm_1_1in [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html">ComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html">InplaceArrayBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html">PassInstrumentNode</a> (<a clas [...]
@@ -273,8 +274,8 @@ $(function() {
 <tr><td valign="top"><a class="el" href="classtvm_1_1Constructor.html">Constructor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Integer.html">Integer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html">PatternVarNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1ConstructorNode.html">ConstructorNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosure.html">InterpreterClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html">PatternVisitor</a> (<a class="el" href="namespacetvm_1 [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html">ConstructorValue</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html">InterpreterClosureObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a>  [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html">ConstructorValueObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildcardNode.html">PatternWildcardNode</a> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html">NDArray::Container</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html">Per [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html">ConstructorValueObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildcardNode.html">PatternWildcardNode</a> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html">NDArray::Container</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html">Per [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html">NDArray::ContainerBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImm.html">IntImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1PlaceholderOp.html">PlaceholderOp</a> (<a class="el" href="namespacetvm_1_1te.ht [...]
 <tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html">Conv1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html">PlaceholderOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</ [...]
 <tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html">Conv1DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PointerType.html">PointerType</a> (<a class="el" href="namespacetvm.html [...]
@@ -285,7 +286,6 @@ $(function() {
 <tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html">Conv2DWinogradNNPACKWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PoolInfo.html">PoolInfo</a> (<a class="el" hr [...]
 <tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html">Conv3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1is__specialized.html">is_specialized</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1PoolInfoNode.html">PoolInfoNode</a> (<a class="el" href="namespacetv [...]
 <tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html">Conv3DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1is__specialized_3_01Container_3_01Args_8_8_8_01_4_00_01Container_01_4.html">is_specialized&lt; Container&lt; Args... &gt;, Container &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html">Conv3DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1IterAdapter.html">IterAdapter</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PostprocNode.html">PostprocNode</a> (<a  [...]
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
 <div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|& [...]
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
index 83439e1b3..465763329 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
@@ -79,7 +79,7 @@ $(function() {
 
 <p>Inherits <a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a>.</p>
 
-<p>Inherited by <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool1DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool2DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool3DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AffineGridAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AllClassNonMaximumSuppres [...]
+<p>Inherited by <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool1DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool2DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AdaptivePool3DAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AffineGridAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html">tvm::AttrsNode&lt; AllClassNonMaximumSuppres [...]
 <div class="dynheader">
 Collaboration diagram for tvm::BaseAttrsNode:</div>
 <div class="dyncontent">
@@ -318,7 +318,7 @@ Additional Inherited Members</h2></td></tr>
 </dl>
 <dl class="section note"><dt>Note</dt><dd>This function throws when the required field is not present. </dd></dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532 [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532559a">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acfba199ef906818f35432d2e5532 [...]
 
 </div>
 </div>
@@ -384,7 +384,7 @@ template&lt;typename... Args&gt; </div>
 <p>Get the field information. </p>
 <dl class="section return"><dt>Returns</dt><dd>The fields in the <a class="el" href="classtvm_1_1Attrs.html" title="Managed reference to BaseAttrsNode. ">Attrs</a>. </dd></dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6 [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6a981">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acefe615381b5d881870af9db7ce6 [...]
 
 </div>
 </div>
@@ -474,7 +474,7 @@ template&lt;typename... Args&gt; </div>
 </table>
 </div><div class="memdoc">
 
-<p>Reimplemented in <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a3 [...]
+<p>Reimplemented in <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a34a9c72">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#a5da687ced06b4f2dfa04b142a3 [...]
 
 </div>
 </div>
@@ -511,7 +511,7 @@ template&lt;typename... Args&gt; </div>
   </dd>
 </dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da88 [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; DilateAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da885205">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNode.html#acd05137ba529ac7cd07053e3da88 [...]
 
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg
index 1502b0fbc..4cf38b603 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 608)">
 <title>tvm::BaseAttrsNode</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-608 269,-608 269,4 -4,4"/>
-<!-- Node270 -->
+<!-- Node272 -->
 <g id="node1" class="node">
-<title>Node270</title>
+<title>Node272</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-178.5 207,-178.5 207,-.5 0,-.5"/>
 <text text-anchor="middle" x="103.5" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseAttrsNode</text>
 <polyline fill="none" stroke="#000000" points="0,-159.5 207,-159.5 "/>
@@ -30,9 +30,9 @@
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitByPackedArgs()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
 </g>
-<!-- Node271 -->
+<!-- Node273 -->
 <g id="node2" class="node">
-<title>Node271</title>
+<title>Node273</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
 <polygon fill="#ffffff" stroke="#000000" points="12,-216.5 12,-603.5 195,-603.5 195,-216.5 12,-216.5"/>
 <text text-anchor="middle" x="103.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
@@ -73,15 +73,15 @@
 </a>
 </g>
 </g>
-<!-- Node271&#45;&gt;Node270 -->
+<!-- Node273&#45;&gt;Node272 -->
 <g id="edge1" class="edge">
-<title>Node271&#45;&gt;Node270</title>
+<title>Node273&#45;&gt;Node272</title>
 <path fill="none" stroke="#191970" d="M103.5,-205.9464C103.5,-196.5963 103.5,-187.4618 103.5,-178.684"/>
 <polygon fill="none" stroke="#191970" points="100.0001,-206.1701 103.5,-216.1701 107.0001,-206.1701 100.0001,-206.1701"/>
 </g>
-<!-- Node271&#45;&gt;Node271 -->
+<!-- Node273&#45;&gt;Node273 -->
 <g id="edge2" class="edge">
-<title>Node271&#45;&gt;Node271</title>
+<title>Node273&#45;&gt;Node273</title>
 <path fill="none" stroke="#404040" d="M195.3625,-443.9248C206.0482,-437.6637 213,-426.3555 213,-410 213,-399.0112 209.8618,-390.3007 204.5615,-383.8687"/>
 <polygon fill="none" stroke="#404040" points="204.5184,-383.8322 197.3548,-383.0056 195.3625,-376.0752 202.5261,-376.9017 204.5184,-383.8322"/>
 <text text-anchor="middle" x="239" y="-407.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg
index 720280aaf..132323f4c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 392)">
 <title>tvm::runtime::Object</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-392 257,-392 257,4 -4,4"/>
-<!-- Node604 -->
+<!-- Node606 -->
 <g id="node1" class="node">
-<title>Node604</title>
+<title>Node606</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-387.5 183,-387.5 183,-.5 0,-.5"/>
 <text text-anchor="middle" x="91.5" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
 <polyline fill="none" stroke="#000000" points="0,-368.5 183,-368.5 "/>
@@ -49,9 +49,9 @@
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
 </g>
-<!-- Node604&#45;&gt;Node604 -->
+<!-- Node606&#45;&gt;Node606 -->
 <g id="edge1" class="edge">
-<title>Node604&#45;&gt;Node604</title>
+<title>Node606&#45;&gt;Node606</title>
 <path fill="none" stroke="#404040" d="M183.3625,-256.0888C194.0482,-244.6299 201,-223.9336 201,-194 201,-171.3159 197.0077,-153.9367 190.4236,-141.8623"/>
 <polygon fill="none" stroke="#404040" points="190.3069,-141.6977 183.5725,-139.1192 183.3625,-131.9112 190.0969,-134.4897 190.3069,-141.6977"/>
 <text text-anchor="middle" x="227" y="-191.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
diff --git a/docs/reference/api/doxygen/functions_func_s.html b/docs/reference/api/doxygen/functions_func_s.html
index 7173eec4e..9ad9dc079 100644
--- a/docs/reference/api/doxygen/functions_func_s.html
+++ b/docs/reference/api/doxygen/functions_func_s.html
@@ -688,7 +688,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1tir_1_1ScheduleNode.html#a93d1d23f24d903db844f75f51fe09a36">tvm::tir::ScheduleNode</a>
 </li>
 <li>StorageAlignStep()
-: <a class="el" href="classtvm_1_1auto__scheduler_1_1StorageAlignStep.html#a99dbb8c55d9e7d78268b6d43fd348bc7">tvm::auto_scheduler::StorageAlignStep</a>
+: <a class="el" href="classtvm_1_1auto__scheduler_1_1StorageAlignStep.html#af50b7c2f020f8e0a80f5bcc8e559b394">tvm::auto_scheduler::StorageAlignStep</a>
 </li>
 <li>Store()
 : <a class="el" href="classtvm_1_1tir_1_1Store.html#a2c4278b8bcdae57ada2022ecc7c290c3">tvm::tir::Store</a>
@@ -700,7 +700,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html#ac29b9295c432a87658392872c644864f">tvm::runtime::DeviceAPI</a>
 </li>
 <li>String()
-: <a class="el" href="classtvm_1_1runtime_1_1String.html#a68df7bab89fca339e3918438dd80300d">tvm::runtime::String</a>
+: <a class="el" href="classtvm_1_1runtime_1_1String.html#ac5d930b522e9fef9c07e51819d96d2f3">tvm::runtime::String</a>
 </li>
 <li>StringImm()
 : <a class="el" href="classtvm_1_1tir_1_1StringImm.html#a0f2830290e055f677c5d5dea98aab726">tvm::tir::StringImm</a>
diff --git a/docs/reference/api/doxygen/functions_func_t.html b/docs/reference/api/doxygen/functions_func_t.html
index 124ef0493..88be4c70c 100644
--- a/docs/reference/api/doxygen/functions_func_t.html
+++ b/docs/reference/api/doxygen/functions_func_t.html
@@ -300,6 +300,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relay_1_1PadAttrs.html#aac1b66ac003e46b63c82930ebc9518e3">tvm::relay::PadAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html#afb126b8cbdd8afad374eda19a71d7974">tvm::relay::PReluAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html#a9b385afc760a6a37cdbd51440452c2bb">tvm::relay::ProposalAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html#a711a295ff4a6374d94dbaf37012597c0">tvm::relay::qnn::BroadcastAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html#a9d8b66b3a7938fc2bed13e3eb574ad29">tvm::relay::qnn::DequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html#a34a809fceea00d2c7640eceb98e389c2">tvm::relay::qnn::QuantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html#afe0c71d143221032933f707078ea09ba">tvm::relay::qnn::RequantizeAttrs</a>
@@ -991,7 +992,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValueWithContext__.html#adf0eff794c9dd05da7e61c03b03f6bc7">tvm::runtime::TVMMovableArgValueWithContext_</a>
 </li>
 <li>TVMPODValue_()
-: <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#afe1837bdbafe8341c2031c5cebcf6e74">tvm::runtime::TVMPODValue_</a>
+: <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#a2f46b59a6c1d5eb4575d7f583b5f1a0c">tvm::runtime::TVMPODValue_</a>
 </li>
 <li>TVMRetValue()
 : <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#ab86bf21f214fca72e73a7f6e20ffab8d">tvm::runtime::TVMRetValue</a>
@@ -1020,10 +1021,10 @@ $(function() {
 : <a class="el" href="classtvm_1_1TypeData.html#a0a98fd1095812379d2bd1337db1511c1">tvm::TypeData</a>
 </li>
 <li>TypedEnvFunc()
-: <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a0d72a6fa7263821c14bcd37837998ed9">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a>
+: <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a41a6b9014d0feeb628ca7edfd0d26f0b">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypedPackedFunc()
-: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#aa3663a440db7a6951abd767109b9bf90">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
+: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a4abadc6786dd14a3aed6e2b5b342d1d6">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypeIndex2Key()
 : <a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">tvm::runtime::Object</a>
diff --git a/docs/reference/api/doxygen/functions_i.html b/docs/reference/api/doxygen/functions_i.html
index 867bfdf0d..9915eb3f1 100644
--- a/docs/reference/api/doxygen/functions_i.html
+++ b/docs/reference/api/doxygen/functions_i.html
@@ -554,7 +554,7 @@ $(function() {
 <li>iterator
 : <a class="el" href="classtvm_1_1runtime_1_1Array.html#a98e5ad633b8195d954c98067213ae29f">tvm::runtime::Array&lt; T, typename &gt;</a>
 , <a class="el" href="classtvm_1_1runtime_1_1Map_1_1iterator.html#ad8b40ddeffccb6f221601eda70202f9a">tvm::runtime::Map&lt; K, V, typename, typename &gt;::iterator</a>
-, <a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1iterator.html#a75e3f2657cdb7cc613bf922429983165">tvm::runtime::MapNode::iterator</a>
+, <a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1iterator.html#ad605c9f9aaed23e669c2a3c595d08ba4">tvm::runtime::MapNode::iterator</a>
 , <a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor.html#a79703afd52032715cc2d9d4c6830147f">tvm::runtime::metadata::ArrayAccessor&lt; C, Ref &gt;</a>
 , <a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor_3_01const_01char_01_5_00_01_1_1tvm_1_1runtime_1_1String_01_4.html#a3216d91ef7fb0771463e76c9a0afcd1c">tvm::runtime::metadata::ArrayAccessor&lt; const char *, ::tvm::runtime::String &gt;</a>
 , <a class="el" href="classtvm_1_1support_1_1Span.html#af6fbb6a54a3ecf8673146acae0c8228b">tvm::support::Span&lt; T, W &gt;</a>
@@ -584,7 +584,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1tir_1_1IterVar.html#a1c0d6998203092c953b7da00f16c5c31">tvm::tir::IterVar</a>
 </li>
 <li>IterVarAttr()
-: <a class="el" href="classtvm_1_1te_1_1IterVarAttr.html#aa20680587a1c880b659063cd37ba4763">tvm::te::IterVarAttr</a>
+: <a class="el" href="classtvm_1_1te_1_1IterVarAttr.html#a5549479b7e3ce243d89b219b0dd7ef71">tvm::te::IterVarAttr</a>
 </li>
 <li>IterVarRelation()
 : <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a3e611ee0870d9a542b8deb79575dbf66">tvm::te::IterVarRelation</a>
diff --git a/docs/reference/api/doxygen/functions_l.html b/docs/reference/api/doxygen/functions_l.html
index 2938fe832..13f61f0ae 100644
--- a/docs/reference/api/doxygen/functions_l.html
+++ b/docs/reference/api/doxygen/functions_l.html
@@ -143,6 +143,9 @@ $(function() {
 : <a class="el" href="classtvm_1_1relay_1_1ClauseNode.html#a85479b56eab2bb3255248a8b0fcd23f8">tvm::relay::ClauseNode</a>
 , <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html#a3fc76ed5cf3a73c803ce1c74dedf7429">tvm::tir::CommReducerNode</a>
 </li>
+<li>lhs_axis
+: <a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html#a73378c316806d3f78a3fa0fb27178ad3">tvm::relay::qnn::BroadcastAttrs</a>
+</li>
 <li>lhs_begin
 : <a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html#ab858f0ecef7ac56b1f9d69b57eb6f3c8">tvm::relay::ReshapeLikeAttrs</a>
 </li>
@@ -243,7 +246,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1IRModuleNode.html#ae078ad8def39579701d144578c787bcf">tvm::IRModuleNode</a>
 </li>
 <li>LookupTypeDef()
-: <a class="el" href="classtvm_1_1IRModuleNode.html#ae095c1fd87642bd417224668c5b4d910">tvm::IRModuleNode</a>
+: <a class="el" href="classtvm_1_1IRModuleNode.html#a23f3769fe60b3b06c9d163650ea7caaf">tvm::IRModuleNode</a>
 </li>
 <li>loop_var
 : <a class="el" href="classtvm_1_1tir_1_1ForNode.html#a7dbf66bdcf8ed397321517f0915a0946">tvm::tir::ForNode</a>
diff --git a/docs/reference/api/doxygen/functions_r.html b/docs/reference/api/doxygen/functions_r.html
index f8286a907..385a8d51a 100644
--- a/docs/reference/api/doxygen/functions_r.html
+++ b/docs/reference/api/doxygen/functions_r.html
@@ -489,6 +489,9 @@ $(function() {
 : <a class="el" href="classtvm_1_1relay_1_1ClauseNode.html#a93217eeea15c1f7c1a659da3da86d3bd">tvm::relay::ClauseNode</a>
 , <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html#a2902b0d55dd823febc6941fae9f32337">tvm::tir::CommReducerNode</a>
 </li>
+<li>rhs_axis
+: <a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html#afd0dadf19b60022c3c8cc0b0f9b6c27a">tvm::relay::qnn::BroadcastAttrs</a>
+</li>
 <li>rhs_begin
 : <a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html#a8f25936511569c3ea754e9d065ccff81">tvm::relay::ReshapeLikeAttrs</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_s.html b/docs/reference/api/doxygen/functions_s.html
index ea0727835..6305996cb 100644
--- a/docs/reference/api/doxygen/functions_s.html
+++ b/docs/reference/api/doxygen/functions_s.html
@@ -782,7 +782,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1SpanNode.html#ad573167f93facbfbee19983b08bbba3d">tvm::SpanNode</a>
 </li>
 <li>SourceMap()
-: <a class="el" href="classtvm_1_1parser_1_1SourceMap.html#afc48463cc0967ab79876178613a5aff2">tvm::parser::SourceMap</a>
+: <a class="el" href="classtvm_1_1parser_1_1SourceMap.html#a5fd3cc7160f57f7adcf1a0633603c72e">tvm::parser::SourceMap</a>
 </li>
 <li>space_generator
 : <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a7bdfdd48530bfe380c5f6c143158a07f">tvm::meta_schedule::TuneContextNode</a>
@@ -804,7 +804,7 @@ $(function() {
 </li>
 <li>Span()
 : <a class="el" href="classtvm_1_1Span.html#a5216631b639e8c802263d87d3fe9e5f6">tvm::Span</a>
-, <a class="el" href="classtvm_1_1support_1_1Span.html#a3c22dd06856e7029e7107adf38eb72f5">tvm::support::Span&lt; T, W &gt;</a>
+, <a class="el" href="classtvm_1_1support_1_1Span.html#a77653730a2542edf93b7c4413a72f3ec">tvm::support::Span&lt; T, W &gt;</a>
 </li>
 <li>span
 : <a class="el" href="classtvm_1_1tir_1_1BufferNode.html#a13fc164e1b65cee741b4895df6316a4a">tvm::tir::BufferNode</a>
@@ -877,8 +877,8 @@ $(function() {
 : <a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html#aac5b2c76325a587bbefaa5af87b4138f">tvm::relay::DeviceCopyAttrs</a>
 </li>
 <li>Stage()
-: <a class="el" href="classtvm_1_1auto__scheduler_1_1Stage.html#a39ffbb1b4e189180bc4067e74965f42b">tvm::auto_scheduler::Stage</a>
-, <a class="el" href="classtvm_1_1te_1_1Stage.html#a1ecdc9a000be62c9cc26a96d4c33e36e">tvm::te::Stage</a>
+: <a class="el" href="classtvm_1_1auto__scheduler_1_1Stage.html#af0643fe8c1298451c9a322f915c48843">tvm::auto_scheduler::Stage</a>
+, <a class="el" href="classtvm_1_1te_1_1Stage.html#aa6ace38b6312e42aaf9389c8749ae0a4">tvm::te::Stage</a>
 </li>
 <li>stage_id
 : <a class="el" href="classtvm_1_1auto__scheduler_1_1StepNode.html#afcc7aaf263348f66139307affbfcee09">tvm::auto_scheduler::StepNode</a>
@@ -1046,7 +1046,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1tir_1_1BufferNode.html#ac18ddd10b79a30ae57d3a8283686259d">tvm::tir::BufferNode</a>
 </li>
 <li>String()
-: <a class="el" href="classtvm_1_1runtime_1_1String.html#acf549b3c43142639879e0fc31ea5cd77">tvm::runtime::String</a>
+: <a class="el" href="classtvm_1_1runtime_1_1String.html#a02fca36e3ff55cc1e83635b02a11fca3">tvm::runtime::String</a>
 , <a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html#a7fb804f7dc96dd9f705c84095f37f1ca">tvm::runtime::StringObj::FromStd</a>
 , <a class="el" href="classtvm_1_1runtime_1_1StringObj.html#a7fb804f7dc96dd9f705c84095f37f1ca">tvm::runtime::StringObj</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_t.html b/docs/reference/api/doxygen/functions_t.html
index c26078dfb..e971389b8 100644
--- a/docs/reference/api/doxygen/functions_t.html
+++ b/docs/reference/api/doxygen/functions_t.html
@@ -482,6 +482,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relay_1_1PadAttrs.html#aac1b66ac003e46b63c82930ebc9518e3">tvm::relay::PadAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html#afb126b8cbdd8afad374eda19a71d7974">tvm::relay::PReluAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html#a9b385afc760a6a37cdbd51440452c2bb">tvm::relay::ProposalAttrs</a>
+, <a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html#a711a295ff4a6374d94dbaf37012597c0">tvm::relay::qnn::BroadcastAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html#a9d8b66b3a7938fc2bed13e3eb574ad29">tvm::relay::qnn::DequantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html#a34a809fceea00d2c7640eceb98e389c2">tvm::relay::qnn::QuantizeAttrs</a>
 , <a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html#afe0c71d143221032933f707078ea09ba">tvm::relay::qnn::RequantizeAttrs</a>
@@ -1170,7 +1171,7 @@ $(function() {
 </li>
 <li>TVMArgValue
 : <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#a7e8b2c6a4fde079ee813c425d2eb6b24">tvm::runtime::ObjectPtr&lt; T &gt;</a>
-, <a class="el" href="classtvm_1_1runtime_1_1TVMArgValue.html#a5fbd71750e5bbba6edc9094178af9276">tvm::runtime::TVMArgValue</a>
+, <a class="el" href="classtvm_1_1runtime_1_1TVMArgValue.html#a987b2fb283cea5484d4655e3f711c046">tvm::runtime::TVMArgValue</a>
 </li>
 <li>TVMMovableArgValue_
 : <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#acd985550cba6cf8509122cbd996c1557">tvm::runtime::ObjectPtr&lt; T &gt;</a>
@@ -1183,7 +1184,7 @@ $(function() {
 <li>TVMPODValue_
 : <a class="el" href="classtvm_1_1runtime_1_1NDArray.html#a9a9fd94393cfd7d4b6e6029348e3e19a">tvm::runtime::NDArray</a>
 , <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#a9a9fd94393cfd7d4b6e6029348e3e19a">tvm::runtime::ObjectPtr&lt; T &gt;</a>
-, <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#afe1837bdbafe8341c2031c5cebcf6e74">tvm::runtime::TVMPODValue_</a>
+, <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#a2f46b59a6c1d5eb4575d7f583b5f1a0c">tvm::runtime::TVMPODValue_</a>
 </li>
 <li>TVMRetValue
 : <a class="el" href="classtvm_1_1BaseAttrsNode.html#a1f56f080d0c1fab79d9469029aef8ebb">tvm::BaseAttrsNode</a>
@@ -1192,7 +1193,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::ObjectPtr&lt; T &gt;</a>
 , <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::ObjectRef</a>
 , <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::TVMPODValue_</a>
-, <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#ac4a3850c0989e7c2d5cd8e0f096d0997">tvm::runtime::TVMRetValue</a>
+, <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#a77455a8fe7d27b90a01a64f1cd28e9ec">tvm::runtime::TVMRetValue</a>
 , <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>type
@@ -1264,7 +1265,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a41a6b9014d0feeb628ca7edfd0d26f0b">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypedPackedFunc()
-: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a8941c80982a1b2a289440f3c79bb0ac8">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
+: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#af45a2ceff92e6f6c394ea766a45027a0">tvm::runtime::TypedPackedFunc&lt; R(Args...)&gt;</a>
 </li>
 <li>TypeIndex2Key()
 : <a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">tvm::runtime::Object</a>
@@ -1287,7 +1288,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1TypeRelation.html#ac26b1897eab8197ed26606ab81b7403b">tvm::TypeRelation</a>
 </li>
 <li>TypeReporter()
-: <a class="el" href="classtvm_1_1TypeReporter.html#aa3dc38a3c84d324d0b3a9f358460a091">tvm::TypeReporter</a>
+: <a class="el" href="classtvm_1_1TypeReporter.html#a8e7e05a07f9f7ad9bea91f27afac9051">tvm::TypeReporter</a>
 </li>
 <li>types
 : <a class="el" href="classtvm_1_1TupleAffineTypeNode.html#a30c834b7e1cb64467e6587ac16ebb187">tvm::TupleAffineTypeNode</a>
diff --git a/docs/reference/api/doxygen/functions_v.html b/docs/reference/api/doxygen/functions_v.html
index 0c03d69b1..a72753763 100644
--- a/docs/reference/api/doxygen/functions_v.html
+++ b/docs/reference/api/doxygen/functions_v.html
@@ -565,9 +565,9 @@ $(function() {
 , <a class="el" href="classtvm_1_1TypeMutator.html#a84e824911927d98e20a338eab8b75a45">tvm::TypeMutator</a>
 </li>
 <li>VisitType_()
-: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#ac94cab8aea5c2a9afb439d7417f30a20">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
-, <a class="el" href="classtvm_1_1TypeMutator.html#a89bd7a76f5a736defc7f3b0dda664761">tvm::TypeMutator</a>
-, <a class="el" href="classtvm_1_1TypeVisitor.html#a292b19b578526ea74b1434dc50514a18">tvm::TypeVisitor</a>
+: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a949688cb9b4a8fa16ddc3e5fbbf13580">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
+, <a class="el" href="classtvm_1_1TypeMutator.html#ac694fbe28eb7026d30c5ca5fa2fb4a1a">tvm::TypeMutator</a>
+, <a class="el" href="classtvm_1_1TypeVisitor.html#a2d6a319537d4d3dba04054f3ef8f32f9">tvm::TypeVisitor</a>
 </li>
 <li>VisitTypeDefault_()
 : <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a91553f9e04c39b3821a70ae4f7b0c597">tvm::TypeFunctor&lt; R(const Type &amp;n, Args...)&gt;</a>
@@ -589,7 +589,7 @@ $(function() {
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFrame.html#a8f8c990ee4fa7cb7472f5440f2ca3bde">tvm::runtime::vm::VMFrame</a>
 </li>
 <li>VMFunction()
-: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#aea763069fe1dd6849ce0d1ec336931e0">tvm::runtime::vm::VMFunction</a>
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#af9d2bdcf19642c21bc4909b9e9b6196d">tvm::runtime::vm::VMFunction</a>
 </li>
 <li>Void()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab8dc0832aff8fd7421884c0fe20a3bfd">tvm::runtime::DataType</a>
diff --git a/docs/reference/api/doxygen/functions_vars_l.html b/docs/reference/api/doxygen/functions_vars_l.html
index 63d524545..7c309e9eb 100644
--- a/docs/reference/api/doxygen/functions_vars_l.html
+++ b/docs/reference/api/doxygen/functions_vars_l.html
@@ -122,6 +122,9 @@ $(function() {
 : <a class="el" href="classtvm_1_1relay_1_1ClauseNode.html#a85479b56eab2bb3255248a8b0fcd23f8">tvm::relay::ClauseNode</a>
 , <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html#a3fc76ed5cf3a73c803ce1c74dedf7429">tvm::tir::CommReducerNode</a>
 </li>
+<li>lhs_axis
+: <a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html#a73378c316806d3f78a3fa0fb27178ad3">tvm::relay::qnn::BroadcastAttrs</a>
+</li>
 <li>lhs_begin
 : <a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html#ab858f0ecef7ac56b1f9d69b57eb6f3c8">tvm::relay::ReshapeLikeAttrs</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_vars_r.html b/docs/reference/api/doxygen/functions_vars_r.html
index eda413a3b..7be5fa2e5 100644
--- a/docs/reference/api/doxygen/functions_vars_r.html
+++ b/docs/reference/api/doxygen/functions_vars_r.html
@@ -220,6 +220,9 @@ $(function() {
 : <a class="el" href="classtvm_1_1relay_1_1ClauseNode.html#a93217eeea15c1f7c1a659da3da86d3bd">tvm::relay::ClauseNode</a>
 , <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html#a2902b0d55dd823febc6941fae9f32337">tvm::tir::CommReducerNode</a>
 </li>
+<li>rhs_axis
+: <a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html#afd0dadf19b60022c3c8cc0b0f9b6c27a">tvm::relay::qnn::BroadcastAttrs</a>
+</li>
 <li>rhs_begin
 : <a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html#a8f25936511569c3ea754e9d065ccff81">tvm::relay::ReshapeLikeAttrs</a>
 </li>
diff --git a/docs/reference/api/doxygen/hierarchy.html b/docs/reference/api/doxygen/hierarchy.html
index 6d3a5911d..71e3b14b0 100644
--- a/docs/reference/api/doxygen/hierarchy.html
+++ b/docs/reference/api/doxygen/hierarchy.html
@@ -288,232 +288,234 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_98_30_19_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html" target="_self">tvm::relay::BinaryDenseAttrs</a></td><td class="desc"></td></tr>
 <tr id="row_98_30_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_20_" class="arrow" onclick="toggleFolder('98_30_20_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; BitPackAttrs &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_98_30_20_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html" target="_self">tvm::relay::BitPackAttrs</a></td><td class="desc">Attributes used in bitpack operators </td></tr>
-<tr id="row_98_30_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_21_" class="arrow" onclick="toggleFolder('98_30_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CallLoweredAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_21_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CallLoweredAttrs.html" target="_self">tvm::relay::CallLoweredAttrs</a></td><td class="desc">Metadata for calls to TIR functions, useful for program analysis crossing Relay and TIR </td></tr>
-<tr id="row_98_30_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_22_" class="arrow" onclick="toggleFolder('98_30_22_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CastAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_22_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html" target="_self">tvm::relay::CastAttrs</a></td><td class="desc">Data type cast </td></tr>
-<tr id="row_98_30_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_23_" class="arrow" onclick="toggleFolder('98_30_23_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CastHintAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_23_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html" target="_self">tvm::relay::CastHintAttrs</a></td><td class="desc">Annotate an expression to be cast into specific data type </td></tr>
-<tr id="row_98_30_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_24_" class="arrow" onclick="toggleFolder('98_30_24_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ClipAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_24_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html" target="_self">tvm::relay::ClipAttrs</a></td><td class="desc">Attributes for Clip operator </td></tr>
-<tr id="row_98_30_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_25_" class="arrow" onclick="toggleFolder('98_30_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CompilerAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_25_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html" target="_self">tvm::relay::CompilerAttrs</a></td><td class="desc">Options for the operators used to annotate a compiler </td></tr>
-<tr id="row_98_30_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_26_" class="arrow" onclick="toggleFolder('98_30_26_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ConcatenateAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_26_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html" target="_self">tvm::relay::ConcatenateAttrs</a></td><td class="desc">Attributes used in concatenate operators </td></tr>
-<tr id="row_98_30_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_27_" class="arrow" onclick="toggleFolder('98_30_27_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_27_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html" target="_self">tvm::relay::Conv1DAttrs</a></td><td class="desc">Attributes used in 1D convolution operators </td></tr>
-<tr id="row_98_30_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_28_" class="arrow" onclick="toggleFolder('98_30_28_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv1DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_28_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html" target="_self">tvm::relay::Conv1DTransposeAttrs</a></td><td class="desc">Attributes used in 1D transposed convolution operator </td></tr>
-<tr id="row_98_30_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_29_" class="arrow" onclick="toggleFolder('98_30_29_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_29_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html" target="_self">tvm::relay::Conv2DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
-<tr id="row_98_30_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_30_" class="arrow" onclick="toggleFolder('98_30_30_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_30_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html" target="_self">tvm::relay::Conv2DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
-<tr id="row_98_30_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_31_" class="arrow" onclick="toggleFolder('98_30_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DWinogradAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_31_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html" target="_self">tvm::relay::Conv2DWinogradAttrs</a></td><td class="desc">Attributes used in convolution operators with winograd algorithm </td></tr>
-<tr id="row_98_30_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_32_" class="arrow" onclick="toggleFolder('98_30_32_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_32_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html" target="_self">tvm::relay::Conv2DWinogradNNPACKWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
-<tr id="row_98_30_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_33_" class="arrow" onclick="toggleFolder('98_30_33_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_33_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html" target="_self">tvm::relay::Conv3DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
-<tr id="row_98_30_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_34_" class="arrow" onclick="toggleFolder('98_30_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv3DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_34_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html" target="_self">tvm::relay::Conv3DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
-<tr id="row_98_30_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_35_" class="arrow" onclick="toggleFolder('98_30_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv3DWinogradAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_35_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html" target="_self">tvm::relay::Conv3DWinogradAttrs</a></td><td class="desc">Attributes used in 3d winograd convolution operators </td></tr>
-<tr id="row_98_30_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_36_" class="arrow" onclick="toggleFolder('98_30_36_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ConvGemmWeightTransformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_36_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html" target="_self">tvm::relay::ConvGemmWeightTransformAttrs</a></td><td class="desc">Attributes used in gemm weight transformation operators </td></tr>
-<tr id="row_98_30_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_37_" class="arrow" onclick="toggleFolder('98_30_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ConvWinogradWeightTransformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html" target="_self">tvm::relay::ConvWinogradWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
-<tr id="row_98_30_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_38_" class="arrow" onclick="toggleFolder('98_30_38_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CorrelationAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_38_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html" target="_self">tvm::relay::CorrelationAttrs</a></td><td class="desc">Attributes used in correlation operators </td></tr>
-<tr id="row_98_30_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_39_" class="arrow" onclick="toggleFolder('98_30_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CropAndResizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html" target="_self">tvm::relay::CropAndResizeAttrs</a></td><td class="desc">Attributes used in image crop_and_resize operator </td></tr>
-<tr id="row_98_30_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_40_" class="arrow" onclick="toggleFolder('98_30_40_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DebugAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html" target="_self">tvm::relay::DebugAttrs</a></td><td class="desc">Options for the debug operators </td></tr>
-<tr id="row_98_30_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_41_" class="arrow" onclick="toggleFolder('98_30_41_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DeformableConv2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_41_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html" target="_self">tvm::relay::DeformableConv2DAttrs</a></td><td class="desc">Attributes for DeformableConv2D operator </td></tr>
-<tr id="row_98_30_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_42_" class="arrow" onclick="toggleFolder('98_30_42_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DenseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_42_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html" target="_self">tvm::relay::DenseAttrs</a></td><td class="desc">Attributes for dense operator </td></tr>
-<tr id="row_98_30_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_43_" class="arrow" onclick="toggleFolder('98_30_43_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DensePackAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_43_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DensePackAttrs.html" target="_self">tvm::relay::DensePackAttrs</a></td><td class="desc">Attributes for dense_pack operator </td></tr>
-<tr id="row_98_30_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_44_" class="arrow" onclick="toggleFolder('98_30_44_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_44_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">tvm::relay::qnn::DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
-<tr id="row_98_30_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_45_" class="arrow" onclick="toggleFolder('98_30_45_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DeviceCopyAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_45_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_self">tvm::relay::DeviceCopyAttrs</a></td><td class="desc">Options for the device copy operators </td></tr>
-<tr id="row_98_30_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_46_" class="arrow" onclick="toggleFolder('98_30_46_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DilateAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_46_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html" target="_self">tvm::relay::DilateAttrs</a></td><td class="desc">Attributes used in dilate operator </td></tr>
-<tr id="row_98_30_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_47_" class="arrow" onclick="toggleFolder('98_30_47_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Dilation2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_47_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_self">tvm::relay::Dilation2DAttrs</a></td><td class="desc">Attributes used in dilation operators </td></tr>
-<tr id="row_98_30_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_48_" class="arrow" onclick="toggleFolder('98_30_48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DropoutAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_48_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_self">tvm::relay::DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
-<tr id="row_98_30_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_49_" class="arrow" onclick="toggleFolder('98_30_49_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DynExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_49_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DynExpandDimsAttrs.html" target="_self">tvm::relay::DynExpandDimsAttrs</a></td><td class="desc">Attributes used in dynamic expand_dims operators </td></tr>
-<tr id="row_98_30_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_50_" class="arrow" onclick="toggleFolder('98_30_50_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; EinsumAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_50_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1EinsumAttrs.html" target="_self">tvm::relay::EinsumAttrs</a></td><td class="desc">Attributes used in einsum operator </td></tr>
-<tr id="row_98_30_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_51_" class="arrow" onclick="toggleFolder('98_30_51_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_51_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_self">tvm::relay::ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
-<tr id="row_98_30_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_52_" class="arrow" onclick="toggleFolder('98_30_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FIFOBufferAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_52_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_self">tvm::relay::FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
-<tr id="row_98_30_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_53_" class="arrow" onclick="toggleFolder('98_30_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FixedPointMultiplyAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_53_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html" target="_self">tvm::relay::FixedPointMultiplyAttrs</a></td><td class="desc">Attributes for FixedPointMultiply operator </td></tr>
-<tr id="row_98_30_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_54_" class="arrow" onclick="toggleFolder('98_30_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GatherAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_54_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html" target="_self">tvm::relay::GatherAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_55_" class="arrow" onclick="toggleFolder('98_30_55_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GatherNDAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_55_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherNDAttrs.html" target="_self">tvm::relay::GatherNDAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_56_" class="arrow" onclick="toggleFolder('98_30_56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GetValidCountsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_56_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_self">tvm::relay::GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
-<tr id="row_98_30_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_57_" class="arrow" onclick="toggleFolder('98_30_57_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GlobalPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_57_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_self">tvm::relay::GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
-<tr id="row_98_30_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_58_" class="arrow" onclick="toggleFolder('98_30_58_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GridSampleAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_58_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_self">tvm::relay::GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
-<tr id="row_98_30_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_59_" class="arrow" onclick="toggleFolder('98_30_59_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GroupNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_59_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_self">tvm::relay::GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
-<tr id="row_98_30_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_60_" class="arrow" onclick="toggleFolder('98_30_60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InitOpAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_60_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_self">tvm::relay::InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
-<tr id="row_98_30_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_61_" class="arrow" onclick="toggleFolder('98_30_61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InstanceNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_61_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_self">tvm::relay::InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
-<tr id="row_98_30_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_62_" class="arrow" onclick="toggleFolder('98_30_62_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; L2NormalizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_62_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_self">tvm::relay::L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
-<tr id="row_98_30_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_63_" class="arrow" onclick="toggleFolder('98_30_63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayerNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_63_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_self">tvm::relay::LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
-<tr id="row_98_30_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_64_" class="arrow" onclick="toggleFolder('98_30_64_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayoutTransformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_64_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_self">tvm::relay::LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
-<tr id="row_98_30_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_65_" class="arrow" onclick="toggleFolder('98_30_65_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LeakyReluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_65_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_self">tvm::relay::LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
-<tr id="row_98_30_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_66_" class="arrow" onclick="toggleFolder('98_30_66_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LRNAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_66_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html" target="_self">tvm::relay::LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
-<tr id="row_98_30_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_67_" class="arrow" onclick="toggleFolder('98_30_67_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MatmulAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_67_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MatmulAttrs.html" target="_self">tvm::relay::MatmulAttrs</a></td><td class="desc">Attributes for matmul operator </td></tr>
-<tr id="row_98_30_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_68_" class="arrow" onclick="toggleFolder('98_30_68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MatrixSetDiagAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_68_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MatrixSetDiagAttrs.html" target="_self">tvm::relay::MatrixSetDiagAttrs</a></td><td class="desc">Attributes used in matrix_set_diag operator </td></tr>
-<tr id="row_98_30_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_69_" class="arrow" onclick="toggleFolder('98_30_69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_69_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_self">tvm::relay::MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
-<tr id="row_98_30_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_70_" class="arrow" onclick="toggleFolder('98_30_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_70_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_self">tvm::relay::MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
-<tr id="row_98_30_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_71_" class="arrow" onclick="toggleFolder('98_30_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_71_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_self">tvm::relay::MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
-<tr id="row_98_30_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_72_" class="arrow" onclick="toggleFolder('98_30_72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MeshgridAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_72_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_self">tvm::relay::MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
-<tr id="row_98_30_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_73_" class="arrow" onclick="toggleFolder('98_30_73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MirrorPadAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_73_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_self">tvm::relay::MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
-<tr id="row_98_30_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_74_" class="arrow" onclick="toggleFolder('98_30_74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxPriorAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_74_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_self">tvm::relay::MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
-<tr id="row_98_30_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_75_" class="arrow" onclick="toggleFolder('98_30_75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxTransformLocAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_75_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">tvm::relay::MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_76_" class="arrow" onclick="toggleFolder('98_30_76_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NdarraySizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_76_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_self">tvm::relay::NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
-<tr id="row_98_30_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_77_" class="arrow" onclick="toggleFolder('98_30_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NLLLossAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_77_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NLLLossAttrs.html" target="_self">tvm::relay::NLLLossAttrs</a></td><td class="desc">Attributes used in NLLLoss operator </td></tr>
-<tr id="row_98_30_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_78_" class="arrow" onclick="toggleFolder('98_30_78_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NonMaximumSuppressionAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_78_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">tvm::relay::NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
-<tr id="row_98_30_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_79_" class="arrow" onclick="toggleFolder('98_30_79_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NormalAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_79_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NormalAttrs.html" target="_self">tvm::relay::NormalAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_80_" class="arrow" onclick="toggleFolder('98_30_80_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OnDeviceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_80_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_self">tvm::relay::OnDeviceAttrs</a></td><td class="desc">Attributes for the "on_device" annotation (ie operator) </td></tr>
-<tr id="row_98_30_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_81_" class="arrow" onclick="toggleFolder('98_30_81_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OneHotAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_81_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_self">tvm::relay::OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
-<tr id="row_98_30_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_82_" class="arrow" onclick="toggleFolder('98_30_82_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PadAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_82_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html" target="_self">tvm::relay::PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
-<tr id="row_98_30_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_83_" class="arrow" onclick="toggleFolder('98_30_83_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PReluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_83_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html" target="_self">tvm::relay::PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
-<tr id="row_98_30_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_84_" class="arrow" onclick="toggleFolder('98_30_84_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ProposalAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_84_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_self">tvm::relay::ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
-<tr id="row_98_30_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_85_" class="arrow" onclick="toggleFolder('98_30_85_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; QuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_85_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">tvm::relay::qnn::QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
-<tr id="row_98_30_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_86_" class="arrow" onclick="toggleFolder('98_30_86_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReduceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_86_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_self">tvm::relay::ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
-<tr id="row_98_30_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_87_" class="arrow" onclick="toggleFolder('98_30_87_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RepeatAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_87_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_self">tvm::relay::RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
-<tr id="row_98_30_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_88_" class="arrow" onclick="toggleFolder('98_30_88_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_88_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">tvm::relay::qnn::RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
-<tr id="row_98_30_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_89_" class="arrow" onclick="toggleFolder('98_30_89_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_89_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_self">tvm::relay::ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
-<tr id="row_98_30_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_90_" class="arrow" onclick="toggleFolder('98_30_90_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeLikeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_90_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html" target="_self">tvm::relay::ReshapeLikeAttrs</a></td><td class="desc">Attributes used in MXNet-style reshape_like operators </td></tr>
-<tr id="row_98_30_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_91_" class="arrow" onclick="toggleFolder('98_30_91_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeTensorAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_91_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html" target="_self">tvm::relay::ReshapeTensorAttrs</a></td><td class="desc">Attributes for VM reshape_tensor operator </td></tr>
-<tr id="row_98_30_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_92_" class="arrow" onclick="toggleFolder('98_30_92_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_92_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize1DAttrs.html" target="_self">tvm::relay::Resize1DAttrs</a></td><td class="desc">Attributes used in image resize1d operator </td></tr>
-<tr id="row_98_30_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_93_" class="arrow" onclick="toggleFolder('98_30_93_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_93_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize2DAttrs.html" target="_self">tvm::relay::Resize2DAttrs</a></td><td class="desc">Attributes used in image resize2d operator </td></tr>
-<tr id="row_98_30_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_94_" class="arrow" onclick="toggleFolder('98_30_94_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_94_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize3DAttrs.html" target="_self">tvm::relay::Resize3DAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
-<tr id="row_98_30_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_95_" class="arrow" onclick="toggleFolder('98_30_95_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_95_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_self">tvm::relay::ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
-<tr id="row_98_30_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_96_" class="arrow" onclick="toggleFolder('98_30_96_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseSequenceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_96_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_self">tvm::relay::ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
-<tr id="row_98_30_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_97_" class="arrow" onclick="toggleFolder('98_30_97_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIAlignAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_97_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_self">tvm::relay::ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
-<tr id="row_98_30_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_98_" class="arrow" onclick="toggleFolder('98_30_98_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIPoolAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_98_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_self">tvm::relay::ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
-<tr id="row_98_30_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_99_" class="arrow" onclick="toggleFolder('98_30_99_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScanopAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_99_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScanopAttrs.html" target="_self">tvm::relay::ScanopAttrs</a></td><td class="desc">Attributes used in cumsum and cumprod operator </td></tr>
-<tr id="row_98_30_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_100_" class="arrow" onclick="toggleFolder('98_30_100_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAddAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_100_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html" target="_self">tvm::relay::ScatterAddAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_101_" class="arrow" onclick="toggleFolder('98_30_101_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_101_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_self">tvm::relay::ScatterAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_102_" class="arrow" onclick="toggleFolder('98_30_102_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterNDAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_102_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterNDAttrs.html" target="_self">tvm::relay::ScatterNDAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_103_" class="arrow" onclick="toggleFolder('98_30_103_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SearchSortedAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_103_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SearchSortedAttrs.html" target="_self">tvm::relay::SearchSortedAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_104_" class="arrow" onclick="toggleFolder('98_30_104_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SequenceMaskAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_104_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_self">tvm::relay::SequenceMaskAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_105_" class="arrow" onclick="toggleFolder('98_30_105_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeFuncAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_105_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_self">tvm::relay::ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
-<tr id="row_98_30_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_106_" class="arrow" onclick="toggleFolder('98_30_106_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeOfAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_106_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_self">tvm::relay::ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
-<tr id="row_98_30_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_107_" class="arrow" onclick="toggleFolder('98_30_107_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SimulatedQuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_107_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1SimulatedQuantizeAttrs.html" target="_self">tvm::relay::qnn::SimulatedQuantizeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_108_" class="arrow" onclick="toggleFolder('98_30_108_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SliceLikeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_108_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_self">tvm::relay::SliceLikeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_109_" class="arrow" onclick="toggleFolder('98_30_109_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SlidingWindowAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_109_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SlidingWindowAttrs.html" target="_self">tvm::relay::SlidingWindowAttrs</a></td><td class="desc">Attributes used for the sliding_window operator </td></tr>
-<tr id="row_98_30_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_110_" class="arrow" onclick="toggleFolder('98_30_110_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SoftmaxAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_110_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_self">tvm::relay::SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
-<tr id="row_98_30_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_111_" class="arrow" onclick="toggleFolder('98_30_111_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SpaceToBatchNDAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_111_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SpaceToBatchNDAttrs.html" target="_self">tvm::relay::SpaceToBatchNDAttrs</a></td><td class="desc">Attributes used in SpaceToBatchND operator </td></tr>
-<tr id="row_98_30_112_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_112_" class="arrow" onclick="toggleFolder('98_30_112_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseConv2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_112_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseConv2DAttrs.html" target="_self">tvm::relay::SparseConv2DAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
-<tr id="row_98_30_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_113_" class="arrow" onclick="toggleFolder('98_30_113_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseDenseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_113_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_self">tvm::relay::SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
-<tr id="row_98_30_114_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_114_" class="arrow" onclick="toggleFolder('98_30_114_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseToDenseAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_114_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_self">tvm::relay::SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
-<tr id="row_98_30_115_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_115_" class="arrow" onclick="toggleFolder('98_30_115_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_115_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_self">tvm::relay::SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
-<tr id="row_98_30_116_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_116_" class="arrow" onclick="toggleFolder('98_30_116_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SplitAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_116_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SplitAttrs.html" target="_self">tvm::relay::SplitAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_117_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_117_" class="arrow" onclick="toggleFolder('98_30_117_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SqueezeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_117_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_self">tvm::relay::SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
-<tr id="row_98_30_118_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_118_" class="arrow" onclick="toggleFolder('98_30_118_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StackAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_118_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StackAttrs.html" target="_self">tvm::relay::StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
-<tr id="row_98_30_119_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_119_" class="arrow" onclick="toggleFolder('98_30_119_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StridedSliceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_119_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_self">tvm::relay::StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
-<tr id="row_98_30_120_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_120_" class="arrow" onclick="toggleFolder('98_30_120_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SubPixelAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_120_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_self">tvm::relay::SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
-<tr id="row_98_30_121_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_121_" class="arrow" onclick="toggleFolder('98_30_121_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TakeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_121_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TakeAttrs.html" target="_self">tvm::relay::TakeAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_122_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_122_" class="arrow" onclick="toggleFolder('98_30_122_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ThreefryGenerateAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_122_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ThreefryGenerateAttrs.html" target="_self">tvm::relay::ThreefryGenerateAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_123_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_123_" class="arrow" onclick="toggleFolder('98_30_123_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TileAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_123_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TileAttrs.html" target="_self">tvm::relay::TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
-<tr id="row_98_30_124_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_124_" class="arrow" onclick="toggleFolder('98_30_124_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TopKAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_124_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TopKAttrs.html" target="_self">tvm::relay::TopKAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_125_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_125_" class="arrow" onclick="toggleFolder('98_30_125_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_125_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_self">tvm::relay::TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
-<tr id="row_98_30_126_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_126_" class="arrow" onclick="toggleFolder('98_30_126_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UniformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_126_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UniformAttrs.html" target="_self">tvm::relay::UniformAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_127_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_127_" class="arrow" onclick="toggleFolder('98_30_127_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UniqueAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_127_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UniqueAttrs.html" target="_self">tvm::relay::UniqueAttrs</a></td><td class="desc">Attributes used in unique operator </td></tr>
-<tr id="row_98_30_128_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_128_" class="arrow" onclick="toggleFolder('98_30_128_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSampling3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_128_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_self">tvm::relay::UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
-<tr id="row_98_30_129_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_129_" class="arrow" onclick="toggleFolder('98_30_129_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSamplingAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_129_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_self">tvm::relay::UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
-<tr id="row_98_30_130_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_130_" class="arrow" onclick="toggleFolder('98_30_130_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; VarianceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_130_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1VarianceAttrs.html" target="_self">tvm::relay::VarianceAttrs</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_131_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_131_" class="arrow" onclick="toggleFolder('98_30_131_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; VirtualDeviceNode &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_131_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceNode.html" target="_self">tvm::VirtualDeviceNode</a></td><td class="desc">Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by the [...]
-<tr id="row_98_30_132_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_132_" class="arrow" onclick="toggleFolder('98_30_132_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; YoloReorgAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_98_30_132_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_self">tvm::relay::YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
-<tr id="row_98_30_133_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DerivedType &gt;</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
-<tr id="row_98_30_134_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">tvm::DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Att [...]
+<tr id="row_98_30_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_21_" class="arrow" onclick="toggleFolder('98_30_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; BroadcastAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_21_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html" target="_self">tvm::relay::qnn::BroadcastAttrs</a></td><td class="desc">Attribute for broadcast operator </td></tr>
+<tr id="row_98_30_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_22_" class="arrow" onclick="toggleFolder('98_30_22_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CallLoweredAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_22_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CallLoweredAttrs.html" target="_self">tvm::relay::CallLoweredAttrs</a></td><td class="desc">Metadata for calls to TIR functions, useful for program analysis crossing Relay and TIR </td></tr>
+<tr id="row_98_30_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_23_" class="arrow" onclick="toggleFolder('98_30_23_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CastAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_23_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html" target="_self">tvm::relay::CastAttrs</a></td><td class="desc">Data type cast </td></tr>
+<tr id="row_98_30_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_24_" class="arrow" onclick="toggleFolder('98_30_24_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CastHintAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_24_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html" target="_self">tvm::relay::CastHintAttrs</a></td><td class="desc">Annotate an expression to be cast into specific data type </td></tr>
+<tr id="row_98_30_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_25_" class="arrow" onclick="toggleFolder('98_30_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ClipAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_25_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html" target="_self">tvm::relay::ClipAttrs</a></td><td class="desc">Attributes for Clip operator </td></tr>
+<tr id="row_98_30_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_26_" class="arrow" onclick="toggleFolder('98_30_26_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CompilerAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_26_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html" target="_self">tvm::relay::CompilerAttrs</a></td><td class="desc">Options for the operators used to annotate a compiler </td></tr>
+<tr id="row_98_30_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_27_" class="arrow" onclick="toggleFolder('98_30_27_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ConcatenateAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_27_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html" target="_self">tvm::relay::ConcatenateAttrs</a></td><td class="desc">Attributes used in concatenate operators </td></tr>
+<tr id="row_98_30_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_28_" class="arrow" onclick="toggleFolder('98_30_28_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_28_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html" target="_self">tvm::relay::Conv1DAttrs</a></td><td class="desc">Attributes used in 1D convolution operators </td></tr>
+<tr id="row_98_30_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_29_" class="arrow" onclick="toggleFolder('98_30_29_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv1DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_29_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html" target="_self">tvm::relay::Conv1DTransposeAttrs</a></td><td class="desc">Attributes used in 1D transposed convolution operator </td></tr>
+<tr id="row_98_30_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_30_" class="arrow" onclick="toggleFolder('98_30_30_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_30_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html" target="_self">tvm::relay::Conv2DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
+<tr id="row_98_30_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_31_" class="arrow" onclick="toggleFolder('98_30_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_31_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html" target="_self">tvm::relay::Conv2DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
+<tr id="row_98_30_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_32_" class="arrow" onclick="toggleFolder('98_30_32_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DWinogradAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_32_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html" target="_self">tvm::relay::Conv2DWinogradAttrs</a></td><td class="desc">Attributes used in convolution operators with winograd algorithm </td></tr>
+<tr id="row_98_30_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_33_" class="arrow" onclick="toggleFolder('98_30_33_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv2DWinogradNNPACKWeightTransformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_33_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html" target="_self">tvm::relay::Conv2DWinogradNNPACKWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
+<tr id="row_98_30_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_34_" class="arrow" onclick="toggleFolder('98_30_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_34_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html" target="_self">tvm::relay::Conv3DAttrs</a></td><td class="desc">Attributes used in convolution operators </td></tr>
+<tr id="row_98_30_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_35_" class="arrow" onclick="toggleFolder('98_30_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv3DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_35_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html" target="_self">tvm::relay::Conv3DTransposeAttrs</a></td><td class="desc">Attributes used in transposed convolution operator </td></tr>
+<tr id="row_98_30_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_36_" class="arrow" onclick="toggleFolder('98_30_36_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Conv3DWinogradAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_36_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html" target="_self">tvm::relay::Conv3DWinogradAttrs</a></td><td class="desc">Attributes used in 3d winograd convolution operators </td></tr>
+<tr id="row_98_30_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_37_" class="arrow" onclick="toggleFolder('98_30_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ConvGemmWeightTransformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html" target="_self">tvm::relay::ConvGemmWeightTransformAttrs</a></td><td class="desc">Attributes used in gemm weight transformation operators </td></tr>
+<tr id="row_98_30_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_38_" class="arrow" onclick="toggleFolder('98_30_38_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ConvWinogradWeightTransformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_38_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html" target="_self">tvm::relay::ConvWinogradWeightTransformAttrs</a></td><td class="desc">Attributes used in winograd weight transformation operators </td></tr>
+<tr id="row_98_30_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_39_" class="arrow" onclick="toggleFolder('98_30_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CorrelationAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html" target="_self">tvm::relay::CorrelationAttrs</a></td><td class="desc">Attributes used in correlation operators </td></tr>
+<tr id="row_98_30_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_40_" class="arrow" onclick="toggleFolder('98_30_40_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; CropAndResizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html" target="_self">tvm::relay::CropAndResizeAttrs</a></td><td class="desc">Attributes used in image crop_and_resize operator </td></tr>
+<tr id="row_98_30_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_41_" class="arrow" onclick="toggleFolder('98_30_41_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DebugAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_41_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html" target="_self">tvm::relay::DebugAttrs</a></td><td class="desc">Options for the debug operators </td></tr>
+<tr id="row_98_30_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_42_" class="arrow" onclick="toggleFolder('98_30_42_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DeformableConv2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_42_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html" target="_self">tvm::relay::DeformableConv2DAttrs</a></td><td class="desc">Attributes for DeformableConv2D operator </td></tr>
+<tr id="row_98_30_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_43_" class="arrow" onclick="toggleFolder('98_30_43_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DenseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_43_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html" target="_self">tvm::relay::DenseAttrs</a></td><td class="desc">Attributes for dense operator </td></tr>
+<tr id="row_98_30_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_44_" class="arrow" onclick="toggleFolder('98_30_44_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DensePackAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_44_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DensePackAttrs.html" target="_self">tvm::relay::DensePackAttrs</a></td><td class="desc">Attributes for dense_pack operator </td></tr>
+<tr id="row_98_30_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_45_" class="arrow" onclick="toggleFolder('98_30_45_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_45_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html" target="_self">tvm::relay::qnn::DequantizeAttrs</a></td><td class="desc">Attribute for dequantize operator </td></tr>
+<tr id="row_98_30_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_46_" class="arrow" onclick="toggleFolder('98_30_46_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DeviceCopyAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_46_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html" target="_self">tvm::relay::DeviceCopyAttrs</a></td><td class="desc">Options for the device copy operators </td></tr>
+<tr id="row_98_30_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_47_" class="arrow" onclick="toggleFolder('98_30_47_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DilateAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_47_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html" target="_self">tvm::relay::DilateAttrs</a></td><td class="desc">Attributes used in dilate operator </td></tr>
+<tr id="row_98_30_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_48_" class="arrow" onclick="toggleFolder('98_30_48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Dilation2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_48_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html" target="_self">tvm::relay::Dilation2DAttrs</a></td><td class="desc">Attributes used in dilation operators </td></tr>
+<tr id="row_98_30_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_49_" class="arrow" onclick="toggleFolder('98_30_49_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DropoutAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_49_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html" target="_self">tvm::relay::DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
+<tr id="row_98_30_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_50_" class="arrow" onclick="toggleFolder('98_30_50_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DynExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_50_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1DynExpandDimsAttrs.html" target="_self">tvm::relay::DynExpandDimsAttrs</a></td><td class="desc">Attributes used in dynamic expand_dims operators </td></tr>
+<tr id="row_98_30_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_51_" class="arrow" onclick="toggleFolder('98_30_51_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; EinsumAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_51_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1EinsumAttrs.html" target="_self">tvm::relay::EinsumAttrs</a></td><td class="desc">Attributes used in einsum operator </td></tr>
+<tr id="row_98_30_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_52_" class="arrow" onclick="toggleFolder('98_30_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_52_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html" target="_self">tvm::relay::ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
+<tr id="row_98_30_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_53_" class="arrow" onclick="toggleFolder('98_30_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FIFOBufferAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_53_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html" target="_self">tvm::relay::FIFOBufferAttrs</a></td><td class="desc">Attributes for FIFO buffer operator </td></tr>
+<tr id="row_98_30_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_54_" class="arrow" onclick="toggleFolder('98_30_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; FixedPointMultiplyAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_54_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html" target="_self">tvm::relay::FixedPointMultiplyAttrs</a></td><td class="desc">Attributes for FixedPointMultiply operator </td></tr>
+<tr id="row_98_30_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_55_" class="arrow" onclick="toggleFolder('98_30_55_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GatherAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_55_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html" target="_self">tvm::relay::GatherAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_56_" class="arrow" onclick="toggleFolder('98_30_56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GatherNDAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_56_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GatherNDAttrs.html" target="_self">tvm::relay::GatherNDAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_57_" class="arrow" onclick="toggleFolder('98_30_57_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GetValidCountsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_57_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html" target="_self">tvm::relay::GetValidCountsAttrs</a></td><td class="desc">Attributes used in get_valid_counts operator </td></tr>
+<tr id="row_98_30_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_58_" class="arrow" onclick="toggleFolder('98_30_58_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GlobalPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_58_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html" target="_self">tvm::relay::GlobalPool2DAttrs</a></td><td class="desc">Attributes for global pool operator </td></tr>
+<tr id="row_98_30_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_59_" class="arrow" onclick="toggleFolder('98_30_59_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GridSampleAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_59_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html" target="_self">tvm::relay::GridSampleAttrs</a></td><td class="desc">Attributes used in image grid_sample operator </td></tr>
+<tr id="row_98_30_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_60_" class="arrow" onclick="toggleFolder('98_30_60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; GroupNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_60_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html" target="_self">tvm::relay::GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
+<tr id="row_98_30_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_61_" class="arrow" onclick="toggleFolder('98_30_61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InitOpAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_61_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html" target="_self">tvm::relay::InitOpAttrs</a></td><td class="desc">Attributes that specify a tensor </td></tr>
+<tr id="row_98_30_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_62_" class="arrow" onclick="toggleFolder('98_30_62_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; InstanceNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_62_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html" target="_self">tvm::relay::InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
+<tr id="row_98_30_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_63_" class="arrow" onclick="toggleFolder('98_30_63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; L2NormalizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_63_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html" target="_self">tvm::relay::L2NormalizeAttrs</a></td><td class="desc">Attributes for L2Normalize operator </td></tr>
+<tr id="row_98_30_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_64_" class="arrow" onclick="toggleFolder('98_30_64_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayerNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_64_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html" target="_self">tvm::relay::LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
+<tr id="row_98_30_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_65_" class="arrow" onclick="toggleFolder('98_30_65_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LayoutTransformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_65_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html" target="_self">tvm::relay::LayoutTransformAttrs</a></td><td class="desc">Attributes for LayoutTransform operator </td></tr>
+<tr id="row_98_30_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_66_" class="arrow" onclick="toggleFolder('98_30_66_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LeakyReluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_66_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html" target="_self">tvm::relay::LeakyReluAttrs</a></td><td class="desc">Attributes for leaky relu operator </td></tr>
+<tr id="row_98_30_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_67_" class="arrow" onclick="toggleFolder('98_30_67_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; LRNAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_67_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html" target="_self">tvm::relay::LRNAttrs</a></td><td class="desc">Attributes for LRN operator </td></tr>
+<tr id="row_98_30_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_68_" class="arrow" onclick="toggleFolder('98_30_68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MatmulAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_68_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MatmulAttrs.html" target="_self">tvm::relay::MatmulAttrs</a></td><td class="desc">Attributes for matmul operator </td></tr>
+<tr id="row_98_30_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_69_" class="arrow" onclick="toggleFolder('98_30_69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MatrixSetDiagAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_69_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MatrixSetDiagAttrs.html" target="_self">tvm::relay::MatrixSetDiagAttrs</a></td><td class="desc">Attributes used in matrix_set_diag operator </td></tr>
+<tr id="row_98_30_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_70_" class="arrow" onclick="toggleFolder('98_30_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_70_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" target="_self">tvm::relay::MaxPool1DAttrs</a></td><td class="desc">Attributes for 1D max pool operator </td></tr>
+<tr id="row_98_30_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_71_" class="arrow" onclick="toggleFolder('98_30_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_71_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html" target="_self">tvm::relay::MaxPool2DAttrs</a></td><td class="desc">Attributes for max pool operator </td></tr>
+<tr id="row_98_30_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_72_" class="arrow" onclick="toggleFolder('98_30_72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MaxPool3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_72_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html" target="_self">tvm::relay::MaxPool3DAttrs</a></td><td class="desc">Attributes for 3D max pool operator </td></tr>
+<tr id="row_98_30_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_73_" class="arrow" onclick="toggleFolder('98_30_73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MeshgridAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_73_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html" target="_self">tvm::relay::MeshgridAttrs</a></td><td class="desc">Attributes used in meshgrid operators </td></tr>
+<tr id="row_98_30_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_74_" class="arrow" onclick="toggleFolder('98_30_74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MirrorPadAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_74_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html" target="_self">tvm::relay::MirrorPadAttrs</a></td><td class="desc">Attributes used for the MirrorPadding operator </td></tr>
+<tr id="row_98_30_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_75_" class="arrow" onclick="toggleFolder('98_30_75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxPriorAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_75_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" target="_self">tvm::relay::MultiBoxPriorAttrs</a></td><td class="desc">Attributes used in multibox_prior operators </td></tr>
+<tr id="row_98_30_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_76_" class="arrow" onclick="toggleFolder('98_30_76_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; MultiBoxTransformLocAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_76_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html" target="_self">tvm::relay::MultiBoxTransformLocAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_77_" class="arrow" onclick="toggleFolder('98_30_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NdarraySizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_77_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html" target="_self">tvm::relay::NdarraySizeAttrs</a></td><td class="desc">Attributes for ndarray_size operator </td></tr>
+<tr id="row_98_30_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_78_" class="arrow" onclick="toggleFolder('98_30_78_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NLLLossAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_78_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NLLLossAttrs.html" target="_self">tvm::relay::NLLLossAttrs</a></td><td class="desc">Attributes used in NLLLoss operator </td></tr>
+<tr id="row_98_30_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_79_" class="arrow" onclick="toggleFolder('98_30_79_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NonMaximumSuppressionAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_79_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html" target="_self">tvm::relay::NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in non_maximum_suppression operator </td></tr>
+<tr id="row_98_30_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_80_" class="arrow" onclick="toggleFolder('98_30_80_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; NormalAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_80_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1NormalAttrs.html" target="_self">tvm::relay::NormalAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_81_" class="arrow" onclick="toggleFolder('98_30_81_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OnDeviceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_81_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html" target="_self">tvm::relay::OnDeviceAttrs</a></td><td class="desc">Attributes for the "on_device" annotation (ie operator) </td></tr>
+<tr id="row_98_30_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_82_" class="arrow" onclick="toggleFolder('98_30_82_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; OneHotAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_82_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html" target="_self">tvm::relay::OneHotAttrs</a></td><td class="desc">Attributes used in one-hot operator </td></tr>
+<tr id="row_98_30_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_83_" class="arrow" onclick="toggleFolder('98_30_83_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PadAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_83_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html" target="_self">tvm::relay::PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
+<tr id="row_98_30_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_84_" class="arrow" onclick="toggleFolder('98_30_84_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; PReluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_84_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html" target="_self">tvm::relay::PReluAttrs</a></td><td class="desc">Attributes for prelu operator </td></tr>
+<tr id="row_98_30_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_85_" class="arrow" onclick="toggleFolder('98_30_85_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ProposalAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_85_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ProposalAttrs.html" target="_self">tvm::relay::ProposalAttrs</a></td><td class="desc">Attributes used in proposal operators </td></tr>
+<tr id="row_98_30_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_86_" class="arrow" onclick="toggleFolder('98_30_86_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; QuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_86_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1QuantizeAttrs.html" target="_self">tvm::relay::qnn::QuantizeAttrs</a></td><td class="desc">Attribute for quantize operator </td></tr>
+<tr id="row_98_30_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_87_" class="arrow" onclick="toggleFolder('98_30_87_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReduceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_87_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReduceAttrs.html" target="_self">tvm::relay::ReduceAttrs</a></td><td class="desc">Attributes for Reduce operators </td></tr>
+<tr id="row_98_30_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_88_" class="arrow" onclick="toggleFolder('98_30_88_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RepeatAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_88_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1RepeatAttrs.html" target="_self">tvm::relay::RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
+<tr id="row_98_30_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_89_" class="arrow" onclick="toggleFolder('98_30_89_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; RequantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_89_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1RequantizeAttrs.html" target="_self">tvm::relay::qnn::RequantizeAttrs</a></td><td class="desc">Attribute for requantize operator </td></tr>
+<tr id="row_98_30_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_90_" class="arrow" onclick="toggleFolder('98_30_90_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_90_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html" target="_self">tvm::relay::ReshapeAttrs</a></td><td class="desc">Attributes used in reshape operators </td></tr>
+<tr id="row_98_30_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_91_" class="arrow" onclick="toggleFolder('98_30_91_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeLikeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_91_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html" target="_self">tvm::relay::ReshapeLikeAttrs</a></td><td class="desc">Attributes used in MXNet-style reshape_like operators </td></tr>
+<tr id="row_98_30_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_92_" class="arrow" onclick="toggleFolder('98_30_92_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReshapeTensorAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_92_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReshapeTensorAttrs.html" target="_self">tvm::relay::ReshapeTensorAttrs</a></td><td class="desc">Attributes for VM reshape_tensor operator </td></tr>
+<tr id="row_98_30_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_93_" class="arrow" onclick="toggleFolder('98_30_93_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_93_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize1DAttrs.html" target="_self">tvm::relay::Resize1DAttrs</a></td><td class="desc">Attributes used in image resize1d operator </td></tr>
+<tr id="row_98_30_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_94_" class="arrow" onclick="toggleFolder('98_30_94_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_94_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize2DAttrs.html" target="_self">tvm::relay::Resize2DAttrs</a></td><td class="desc">Attributes used in image resize2d operator </td></tr>
+<tr id="row_98_30_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_95_" class="arrow" onclick="toggleFolder('98_30_95_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; Resize3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_95_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1Resize3DAttrs.html" target="_self">tvm::relay::Resize3DAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
+<tr id="row_98_30_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_96_" class="arrow" onclick="toggleFolder('98_30_96_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_96_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseAttrs.html" target="_self">tvm::relay::ReverseAttrs</a></td><td class="desc">Attributes used in reverse operators </td></tr>
+<tr id="row_98_30_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_97_" class="arrow" onclick="toggleFolder('98_30_97_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ReverseSequenceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_97_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ReverseSequenceAttrs.html" target="_self">tvm::relay::ReverseSequenceAttrs</a></td><td class="desc">Attributes used in reverse_sequence operators </td></tr>
+<tr id="row_98_30_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_98_" class="arrow" onclick="toggleFolder('98_30_98_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIAlignAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_98_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIAlignAttrs.html" target="_self">tvm::relay::ROIAlignAttrs</a></td><td class="desc">Attributes used in roi_align operators </td></tr>
+<tr id="row_98_30_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_99_" class="arrow" onclick="toggleFolder('98_30_99_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ROIPoolAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_99_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ROIPoolAttrs.html" target="_self">tvm::relay::ROIPoolAttrs</a></td><td class="desc">Attributes used in roi_pool operators </td></tr>
+<tr id="row_98_30_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_100_" class="arrow" onclick="toggleFolder('98_30_100_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScanopAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_100_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScanopAttrs.html" target="_self">tvm::relay::ScanopAttrs</a></td><td class="desc">Attributes used in cumsum and cumprod operator </td></tr>
+<tr id="row_98_30_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_101_" class="arrow" onclick="toggleFolder('98_30_101_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAddAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_101_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html" target="_self">tvm::relay::ScatterAddAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_102_" class="arrow" onclick="toggleFolder('98_30_102_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_102_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html" target="_self">tvm::relay::ScatterAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_103_" class="arrow" onclick="toggleFolder('98_30_103_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ScatterNDAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_103_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ScatterNDAttrs.html" target="_self">tvm::relay::ScatterNDAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_104_" class="arrow" onclick="toggleFolder('98_30_104_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SearchSortedAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_104_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SearchSortedAttrs.html" target="_self">tvm::relay::SearchSortedAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_105_" class="arrow" onclick="toggleFolder('98_30_105_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SequenceMaskAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_105_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SequenceMaskAttrs.html" target="_self">tvm::relay::SequenceMaskAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_106_" class="arrow" onclick="toggleFolder('98_30_106_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeFuncAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_106_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeFuncAttrs.html" target="_self">tvm::relay::ShapeFuncAttrs</a></td><td class="desc">Options for the shape function operator </td></tr>
+<tr id="row_98_30_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_107_" class="arrow" onclick="toggleFolder('98_30_107_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ShapeOfAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_107_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ShapeOfAttrs.html" target="_self">tvm::relay::ShapeOfAttrs</a></td><td class="desc">Attributes for ShapeOf operator </td></tr>
+<tr id="row_98_30_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_108_" class="arrow" onclick="toggleFolder('98_30_108_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SimulatedQuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_108_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1qnn_1_1SimulatedQuantizeAttrs.html" target="_self">tvm::relay::qnn::SimulatedQuantizeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_109_" class="arrow" onclick="toggleFolder('98_30_109_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SliceLikeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_109_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SliceLikeAttrs.html" target="_self">tvm::relay::SliceLikeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_110_" class="arrow" onclick="toggleFolder('98_30_110_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SlidingWindowAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_110_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SlidingWindowAttrs.html" target="_self">tvm::relay::SlidingWindowAttrs</a></td><td class="desc">Attributes used for the sliding_window operator </td></tr>
+<tr id="row_98_30_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_111_" class="arrow" onclick="toggleFolder('98_30_111_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SoftmaxAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_111_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SoftmaxAttrs.html" target="_self">tvm::relay::SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
+<tr id="row_98_30_112_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_112_" class="arrow" onclick="toggleFolder('98_30_112_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SpaceToBatchNDAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_112_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SpaceToBatchNDAttrs.html" target="_self">tvm::relay::SpaceToBatchNDAttrs</a></td><td class="desc">Attributes used in SpaceToBatchND operator </td></tr>
+<tr id="row_98_30_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_113_" class="arrow" onclick="toggleFolder('98_30_113_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseConv2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_113_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseConv2DAttrs.html" target="_self">tvm::relay::SparseConv2DAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
+<tr id="row_98_30_114_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_114_" class="arrow" onclick="toggleFolder('98_30_114_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseDenseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_114_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseDenseAttrs.html" target="_self">tvm::relay::SparseDenseAttrs</a></td><td class="desc">Attributes for sparse_dense operator </td></tr>
+<tr id="row_98_30_115_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_115_" class="arrow" onclick="toggleFolder('98_30_115_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseToDenseAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_115_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseToDenseAttrs.html" target="_self">tvm::relay::SparseToDenseAttrs</a></td><td class="desc">Attributes used in sparse_to_dense operator </td></tr>
+<tr id="row_98_30_116_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_116_" class="arrow" onclick="toggleFolder('98_30_116_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SparseTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_116_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SparseTransposeAttrs.html" target="_self">tvm::relay::SparseTransposeAttrs</a></td><td class="desc">Attributes for sparse_transpose operator </td></tr>
+<tr id="row_98_30_117_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_117_" class="arrow" onclick="toggleFolder('98_30_117_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SplitAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_117_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SplitAttrs.html" target="_self">tvm::relay::SplitAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_118_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_118_" class="arrow" onclick="toggleFolder('98_30_118_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SqueezeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_118_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SqueezeAttrs.html" target="_self">tvm::relay::SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
+<tr id="row_98_30_119_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_119_" class="arrow" onclick="toggleFolder('98_30_119_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StackAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_119_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StackAttrs.html" target="_self">tvm::relay::StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
+<tr id="row_98_30_120_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_120_" class="arrow" onclick="toggleFolder('98_30_120_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; StridedSliceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_120_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1StridedSliceAttrs.html" target="_self">tvm::relay::StridedSliceAttrs</a></td><td class="desc">Attributes for StridedSlice operator </td></tr>
+<tr id="row_98_30_121_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_121_" class="arrow" onclick="toggleFolder('98_30_121_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; SubPixelAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_121_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1SubPixelAttrs.html" target="_self">tvm::relay::SubPixelAttrs</a></td><td class="desc">Attributes used in subpixel operators </td></tr>
+<tr id="row_98_30_122_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_122_" class="arrow" onclick="toggleFolder('98_30_122_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TakeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_122_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TakeAttrs.html" target="_self">tvm::relay::TakeAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_123_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_123_" class="arrow" onclick="toggleFolder('98_30_123_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; ThreefryGenerateAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_123_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1ThreefryGenerateAttrs.html" target="_self">tvm::relay::ThreefryGenerateAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_124_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_124_" class="arrow" onclick="toggleFolder('98_30_124_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TileAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_124_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TileAttrs.html" target="_self">tvm::relay::TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
+<tr id="row_98_30_125_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_125_" class="arrow" onclick="toggleFolder('98_30_125_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TopKAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_125_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TopKAttrs.html" target="_self">tvm::relay::TopKAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_126_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_126_" class="arrow" onclick="toggleFolder('98_30_126_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; TransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_126_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1TransposeAttrs.html" target="_self">tvm::relay::TransposeAttrs</a></td><td class="desc">Attributes used in transpose operators </td></tr>
+<tr id="row_98_30_127_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_127_" class="arrow" onclick="toggleFolder('98_30_127_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UniformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_127_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UniformAttrs.html" target="_self">tvm::relay::UniformAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_128_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_128_" class="arrow" onclick="toggleFolder('98_30_128_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UniqueAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_128_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UniqueAttrs.html" target="_self">tvm::relay::UniqueAttrs</a></td><td class="desc">Attributes used in unique operator </td></tr>
+<tr id="row_98_30_129_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_129_" class="arrow" onclick="toggleFolder('98_30_129_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSampling3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_129_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSampling3DAttrs.html" target="_self">tvm::relay::UpSampling3DAttrs</a></td><td class="desc">Attributes for upsampling3d operator </td></tr>
+<tr id="row_98_30_130_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_130_" class="arrow" onclick="toggleFolder('98_30_130_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; UpSamplingAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_130_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1UpSamplingAttrs.html" target="_self">tvm::relay::UpSamplingAttrs</a></td><td class="desc">Attributes for upsampling operator </td></tr>
+<tr id="row_98_30_131_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_131_" class="arrow" onclick="toggleFolder('98_30_131_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; VarianceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_131_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1VarianceAttrs.html" target="_self">tvm::relay::VarianceAttrs</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_132_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_132_" class="arrow" onclick="toggleFolder('98_30_132_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; VirtualDeviceNode &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_132_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceNode.html" target="_self">tvm::VirtualDeviceNode</a></td><td class="desc">Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by the [...]
+<tr id="row_98_30_133_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_30_133_" class="arrow" onclick="toggleFolder('98_30_133_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; YoloReorgAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_98_30_133_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relay_1_1YoloReorgAttrs.html" target="_self">tvm::relay::YoloReorgAttrs</a></td><td class="desc">Attributes used in yolo reorg operators </td></tr>
+<tr id="row_98_30_134_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNode.html" target="_self">tvm::AttrsNode&lt; DerivedType &gt;</a></td><td class="desc">The base class of the all the Use "curiously recurring template pattern" </td></tr>
+<tr id="row_98_30_135_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">tvm::DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Att [...]
 <tr id="row_98_31_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_98_31_" class="arrow" onclick="toggleFolder('98_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">tvm::BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
 <tr id="row_98_31_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_98_31_0_" class="arrow" onclick="toggleFolder('98_31_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">tvm::PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
 <tr id="row_98_31_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_98_31_0_0_" class="arrow" onclick="toggleFolder('98_31_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html" target="_self">tvm::tir::BinaryOpNode&lt; AddNode &gt;</a></td><td class="desc"></td></tr>
@@ -1224,8 +1226,8 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_122_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html" target="_self">tvm::relay::PatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html" title="A dynamical functor on ADT patterns that dispatches on its first argument. You can use t [...]
 <tr id="row_123_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1Profiler.html" target="_self">tvm::runtime::profiling::Profiler</a></td><td class="desc"></td></tr>
 <tr id="row_124_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable.html" target="_self">tvm::ReflectionVTable</a></td><td class="desc">Virtual function table to support IR/AST node reflection </td></tr>
-<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Registry.html" target="_self">tvm::runtime::Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Registry.html" title="Registry for global function. ">Registry</a> for global function </td></tr>
-<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">tvm::ReflectionVTable::Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table. ">Registry</a> of a reflection table </td></tr>
+<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" target="_self">tvm::ReflectionVTable::Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1ReflectionVTable_1_1Registry.html" title="Registry of a reflection table. ">Registry</a> of a reflection table </td></tr>
+<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Registry.html" target="_self">tvm::runtime::Registry</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Registry.html" title="Registry for global function. ">Registry</a> for global function </td></tr>
 <tr id="row_127_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1ReprPrinter.html" target="_self">tvm::ReprPrinter</a></td><td class="desc">A printer class to print the AST/IR nodes </td></tr>
 <tr id="row_128_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1ReverseIterAdapter.html" target="_self">tvm::runtime::ReverseIterAdapter&lt; Converter, TIter &gt;</a></td><td class="desc">Iterator adapter that adapts TIter to return another type </td></tr>
 <tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1RewriteSimplifier.html" target="_self">tvm::arith::RewriteSimplifier</a></td><td class="desc">Rewrite-rule based simplifier </td></tr>
@@ -1259,8 +1261,8 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_153_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_153_" class="arrow" onclick="toggleFolder('153_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><b>true_type</b></td><td class="desc"></td></tr>
 <tr id="row_153_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1is__specialized_3_01Container_3_01Args_8_8_8_01_4_00_01Container_01_4.html" target="_self">tvm::detail::is_specialized&lt; Container&lt; Args... &gt;, Container &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_154_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm__workspace__t.html" target="_self">tvm_workspace_t</a></td><td class="desc"></td></tr>
-<tr id="row_155_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html" target="_self">tvm::runtime::TVMArgs</a></td><td class="desc">Arguments into TVM functions </td></tr>
-<tr id="row_156_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMArgs.html" target="_self">TVMArgs</a></td><td class="desc"></td></tr>
+<tr id="row_155_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMArgs.html" target="_self">TVMArgs</a></td><td class="desc"></td></tr>
+<tr id="row_156_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html" target="_self">tvm::runtime::TVMArgs</a></td><td class="desc">Arguments into TVM functions </td></tr>
 <tr id="row_157_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgsSetter.html" target="_self">tvm::runtime::TVMArgsSetter</a></td><td class="desc"></td></tr>
 <tr id="row_158_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMByteArray.html" target="_self">TVMByteArray</a></td><td class="desc">Byte array type used to pass in byte array When kTVMBytes is used as data type </td></tr>
 <tr id="row_159_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMFuncRegistry.html" target="_self">TVMFuncRegistry</a></td><td class="desc">A data structure that facilitates function lookup by C-string name </td></tr>
diff --git a/docs/reference/api/doxygen/inherit_graph_10.svg b/docs/reference/api/doxygen/inherit_graph_10.svg
index d78a8cc9b..755258c4b 100644
--- a/docs/reference/api/doxygen/inherit_graph_10.svg
+++ b/docs/reference/api/doxygen/inherit_graph_10.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 62)">
 <title>Graphical Class Hierarchy</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-62 186,-62 186,4 -4,4"/>
-<!-- Node1208 -->
+<!-- Node1210 -->
 <g id="node1" class="node">
-<title>Node1208</title>
+<title>Node1210</title>
 <polygon fill="#ffffff" stroke="#bfbfbf" points="0,-19.5 0,-38.5 40,-38.5 40,-19.5 0,-19.5"/>
 <text text-anchor="middle" x="20" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Error</text>
 </g>
@@ -24,24 +24,24 @@
 </a>
 </g>
 </g>
-<!-- Node1208&#45;&gt;Node0 -->
+<!-- Node1210&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
-<title>Node1208&#45;&gt;Node0</title>
+<title>Node1210&#45;&gt;Node0</title>
 <path fill="none" stroke="#191970" d="M50.1726,-34.2594C61.6171,-36.2544 74.8623,-38.5631 87.1902,-40.712"/>
 <polygon fill="#191970" stroke="#191970" points="50.6991,-30.7985 40.2466,-32.5292 49.497,-37.6945 50.6991,-30.7985"/>
 </g>
-<!-- Node1210 -->
+<!-- Node1212 -->
 <g id="node3" class="node">
-<title>Node1210</title>
+<title>Node1212</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1CompileError.html" target="_top" xlink:title="Custom Error class to be thrown during compilation. ">
 <polygon fill="#ffffff" stroke="#000000" points="76,-.5 76,-19.5 182,-19.5 182,-.5 76,-.5"/>
 <text text-anchor="middle" x="129" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::CompileError</text>
 </a>
 </g>
 </g>
-<!-- Node1208&#45;&gt;Node1210 -->
+<!-- Node1210&#45;&gt;Node1212 -->
 <g id="edge2" class="edge">
-<title>Node1208&#45;&gt;Node1210</title>
+<title>Node1210&#45;&gt;Node1212</title>
 <path fill="none" stroke="#191970" d="M50.1333,-23.7474C58.0955,-22.3595 66.9315,-20.8193 75.7249,-19.2865"/>
 <polygon fill="#191970" stroke="#191970" points="49.497,-20.3055 40.2466,-25.4708 50.6991,-27.2015 49.497,-20.3055"/>
 </g>
diff --git a/docs/reference/api/doxygen/inherit_graph_107.svg b/docs/reference/api/doxygen/inherit_graph_107.svg
index 548411798..601029b72 100644
--- a/docs/reference/api/doxygen/inherit_graph_107.svg
+++ b/docs/reference/api/doxygen/inherit_graph_107.svg
@@ -4,40 +4,40 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: Graphical Class Hierarchy Pages: 1 -->
-<svg width="1073pt" height="11033pt"
- viewBox="0.00 0.00 1073.00 11033.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 11029)">
+<svg width="1073pt" height="11095pt"
+ viewBox="0.00 0.00 1073.00 11095.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 11091)">
 <title>Graphical Class Hierarchy</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11029 1069,-11029 1069,4 -4,4"/>
-<!-- Node1218 -->
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11091 1069,-11091 1069,4 -4,4"/>
+<!-- Node1220 -->
 <g id="node1" class="node">
-<title>Node1218</title>
+<title>Node1220</title>
 <g id="a_node1"><a xlink:href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html" target="_top" xlink:title="The container base structure contains all the fields except for the Object header. ">
-<polygon fill="#ffffff" stroke="#000000" points="20,-9582 20,-9612 148,-9612 148,-9582 20,-9582"/>
-<text text-anchor="start" x="28" y="-9600" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::NDArray</text>
-<text text-anchor="middle" x="84" y="-9589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ContainerBase</text>
+<polygon fill="#ffffff" stroke="#000000" points="20,-9619 20,-9649 148,-9649 148,-9619 20,-9619"/>
+<text text-anchor="start" x="28" y="-9637" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::NDArray</text>
+<text text-anchor="middle" x="84" y="-9626" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ContainerBase</text>
 </a>
 </g>
 </g>
-<!-- Node499 -->
+<!-- Node501 -->
 <g id="node2" class="node">
-<title>Node499</title>
+<title>Node501</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1NDArray_1_1Container.html" target="_top" xlink:title="Object container class that backs NDArray. ">
-<polygon fill="#ffffff" stroke="#000000" points="241,-9580 241,-9610 369,-9610 369,-9580 241,-9580"/>
-<text text-anchor="start" x="249" y="-9598" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::NDArray</text>
-<text text-anchor="middle" x="305" y="-9587" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Container</text>
+<polygon fill="#ffffff" stroke="#000000" points="241,-9617 241,-9647 369,-9647 369,-9617 241,-9617"/>
+<text text-anchor="start" x="249" y="-9635" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::NDArray</text>
+<text text-anchor="middle" x="305" y="-9624" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Container</text>
 </a>
 </g>
 </g>
-<!-- Node1218&#45;&gt;Node499 -->
+<!-- Node1220&#45;&gt;Node501 -->
 <g id="edge1" class="edge">
-<title>Node1218&#45;&gt;Node499</title>
-<path fill="none" stroke="#191970" d="M158.2796,-9596.3278C184.9735,-9596.0862 214.8383,-9595.8159 240.6206,-9595.5826"/>
-<polygon fill="#191970" stroke="#191970" points="158.1871,-9592.8284 148.2192,-9596.4188 158.2505,-9599.8281 158.1871,-9592.8284"/>
+<title>Node1220&#45;&gt;Node501</title>
+<path fill="none" stroke="#191970" d="M158.2796,-9633.3278C184.9735,-9633.0862 214.8383,-9632.8159 240.6206,-9632.5826"/>
+<polygon fill="#191970" stroke="#191970" points="158.1871,-9629.8284 148.2192,-9633.4188 158.2505,-9636.8281 158.1871,-9629.8284"/>
 </g>
-<!-- Node1165 -->
+<!-- Node1167 -->
 <g id="node3" class="node">
-<title>Node1165</title>
+<title>Node1167</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_top" xlink:title="Base template for classes with array like memory layout. ">
 <polygon fill="#ffffff" stroke="#000000" points="222.5,-2303 222.5,-2333 387.5,-2333 387.5,-2303 222.5,-2303"/>
 <text text-anchor="start" x="230.5" y="-2321" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
@@ -45,70 +45,70 @@
 </a>
 </g>
 </g>
-<!-- Node493 -->
+<!-- Node495 -->
 <g id="node4" class="node">
-<title>Node493</title>
+<title>Node495</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1SmallMapNode.html" target="_top" xlink:title="A specialization of small&#45;sized hash map. ">
 <polygon fill="#ffffff" stroke="#000000" points="459.5,-1805.5 459.5,-1824.5 619.5,-1824.5 619.5,-1805.5 459.5,-1805.5"/>
 <text text-anchor="middle" x="539.5" y="-1812.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::SmallMapNode</text>
 </a>
 </g>
 </g>
-<!-- Node1165&#45;&gt;Node493 -->
+<!-- Node1167&#45;&gt;Node495 -->
 <g id="edge2" class="edge">
-<title>Node1165&#45;&gt;Node493</title>
+<title>Node1167&#45;&gt;Node495</title>
 <path fill="none" stroke="#191970" d="M396.273,-2302.0039C399.8327,-2299.3947 403.1089,-2296.4102 406,-2293 472.1628,-2214.9585 373.8998,-1910.3568 442,-1834 446.821,-1828.5944 452.6845,-1824.4512 459.1187,-1821.3015"/>
 <polygon fill="#191970" stroke="#191970" points="394.1606,-2299.1952 387.5002,-2307.4347 397.8451,-2305.147 394.1606,-2299.1952"/>
 </g>
-<!-- Node1164 -->
+<!-- Node1166 -->
 <g id="node5" class="node">
-<title>Node1164</title>
+<title>Node1166</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_top" xlink:title="tvm::runtime::InplaceArray\lBase\&lt; ADTObj, ObjectRef \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="7.5,-9533 7.5,-9563 160.5,-9563 160.5,-9533 7.5,-9533"/>
-<text text-anchor="start" x="15.5" y="-9551" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
-<text text-anchor="middle" x="84" y="-9540" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Base&lt; ADTObj, ObjectRef &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="7.5,-9570 7.5,-9600 160.5,-9600 160.5,-9570 7.5,-9570"/>
+<text text-anchor="start" x="15.5" y="-9588" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
+<text text-anchor="middle" x="84" y="-9577" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Base&lt; ADTObj, ObjectRef &gt;</text>
 </a>
 </g>
 </g>
-<!-- Node486 -->
+<!-- Node488 -->
 <g id="node6" class="node">
-<title>Node486</title>
+<title>Node488</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ADTObj.html" target="_top" xlink:title="An object representing a structure or enumeration. ">
-<polygon fill="#ffffff" stroke="#000000" points="243.5,-9538.5 243.5,-9557.5 366.5,-9557.5 366.5,-9538.5 243.5,-9538.5"/>
-<text text-anchor="middle" x="305" y="-9545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ADTObj</text>
+<polygon fill="#ffffff" stroke="#000000" points="243.5,-9575.5 243.5,-9594.5 366.5,-9594.5 366.5,-9575.5 243.5,-9575.5"/>
+<text text-anchor="middle" x="305" y="-9582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ADTObj</text>
 </a>
 </g>
 </g>
-<!-- Node1164&#45;&gt;Node486 -->
+<!-- Node1166&#45;&gt;Node488 -->
 <g id="edge3" class="edge">
-<title>Node1164&#45;&gt;Node486</title>
-<path fill="none" stroke="#191970" d="M170.9456,-9548C195.1707,-9548 220.9797,-9548 243.4174,-9548"/>
-<polygon fill="#191970" stroke="#191970" points="170.6749,-9544.5001 160.6748,-9548 170.6748,-9551.5001 170.6749,-9544.5001"/>
+<title>Node1166&#45;&gt;Node488</title>
+<path fill="none" stroke="#191970" d="M170.9456,-9585C195.1707,-9585 220.9797,-9585 243.4174,-9585"/>
+<polygon fill="#191970" stroke="#191970" points="170.6749,-9581.5001 160.6748,-9585 170.6748,-9588.5001 170.6749,-9581.5001"/>
 </g>
-<!-- Node1163 -->
+<!-- Node1165 -->
 <g id="node7" class="node">
-<title>Node1163</title>
+<title>Node1165</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_top" xlink:title="tvm::runtime::InplaceArray\lBase\&lt; ArrayNode, ObjectRef \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="0,-9484 0,-9514 168,-9514 168,-9484 0,-9484"/>
-<text text-anchor="start" x="8" y="-9502" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
-<text text-anchor="middle" x="84" y="-9491" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Base&lt; ArrayNode, ObjectRef &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-9521 0,-9551 168,-9551 168,-9521 0,-9521"/>
+<text text-anchor="start" x="8" y="-9539" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
+<text text-anchor="middle" x="84" y="-9528" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Base&lt; ArrayNode, ObjectRef &gt;</text>
 </a>
 </g>
 </g>
-<!-- Node487 -->
+<!-- Node489 -->
 <g id="node8" class="node">
-<title>Node487</title>
+<title>Node489</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1ArrayNode.html" target="_top" xlink:title="array node content in array ">
-<polygon fill="#ffffff" stroke="#000000" points="236,-9500.5 236,-9519.5 374,-9519.5 374,-9500.5 236,-9500.5"/>
-<text text-anchor="middle" x="305" y="-9507.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ArrayNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="236,-9537.5 236,-9556.5 374,-9556.5 374,-9537.5 236,-9537.5"/>
+<text text-anchor="middle" x="305" y="-9544.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ArrayNode</text>
 </a>
 </g>
 </g>
-<!-- Node1163&#45;&gt;Node487 -->
+<!-- Node1165&#45;&gt;Node489 -->
 <g id="edge4" class="edge">
-<title>Node1163&#45;&gt;Node487</title>
-<path fill="none" stroke="#191970" d="M178.2093,-9503.6892C197.5291,-9504.6508 217.5282,-9505.6462 235.774,-9506.5544"/>
-<polygon fill="#191970" stroke="#191970" points="178.3427,-9500.1916 168.1811,-9503.19 177.9947,-9507.1829 178.3427,-9500.1916"/>
+<title>Node1165&#45;&gt;Node489</title>
+<path fill="none" stroke="#191970" d="M178.2093,-9540.6892C197.5291,-9541.6508 217.5282,-9542.6462 235.774,-9543.5544"/>
+<polygon fill="#191970" stroke="#191970" points="178.3427,-9537.1916 168.1811,-9540.19 177.9947,-9544.1829 178.3427,-9537.1916"/>
 </g>
 <!-- Node0 -->
 <g id="node9" class="node">
@@ -119,9254 +119,9286 @@
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node499 -->
-<g id="edge503" class="edge">
-<title>Node0&#45;&gt;Node499</title>
-<path fill="none" stroke="#191970" d="M84.0437,-3273.6949C84.9279,-3654.5531 100.0514,-9432.9761 204,-9567 213.0887,-9578.7183 226.6271,-9585.8132 240.8608,-9590.0409"/>
-<polygon fill="#191970" stroke="#191970" points="87.5436,-3273.5999 84.0208,-3263.608 80.5436,-3273.616 87.5436,-3273.5999"/>
+<!-- Node0&#45;&gt;Node501 -->
+<g id="edge505" class="edge">
+<title>Node0&#45;&gt;Node501</title>
+<path fill="none" stroke="#191970" d="M84.0418,-3273.8103C84.8883,-3656.9004 99.4499,-9469.1851 204,-9604 213.088,-9615.7188 226.6262,-9622.8139 240.8598,-9627.0416"/>
+<polygon fill="#191970" stroke="#191970" points="87.5416,-3273.6566 84.0198,-3263.6643 80.5416,-3273.6719 87.5416,-3273.6566"/>
 </g>
-<!-- Node0&#45;&gt;Node486 -->
-<g id="edge490" class="edge">
-<title>Node0&#45;&gt;Node486</title>
-<path fill="none" stroke="#191970" d="M84.0277,-3273.591C84.6038,-3652.438 95.1355,-9400.2713 204,-9529 213.8508,-9540.6482 228.3877,-9546.6352 243.3817,-9549.4431"/>
-<polygon fill="#191970" stroke="#191970" points="87.5278,-3273.5521 84.0129,-3263.5573 80.5278,-3273.5625 87.5278,-3273.5521"/>
+<!-- Node0&#45;&gt;Node488 -->
+<g id="edge492" class="edge">
+<title>Node0&#45;&gt;Node488</title>
+<path fill="none" stroke="#191970" d="M84.0256,-3273.7065C84.562,-3654.787 94.5011,-9436.5064 204,-9566 213.8501,-9577.6488 228.3868,-9583.6359 243.3808,-9586.4438"/>
+<polygon fill="#191970" stroke="#191970" points="87.5256,-3273.6088 84.0119,-3263.6137 80.5256,-3273.6184 87.5256,-3273.6088"/>
 </g>
-<!-- Node0&#45;&gt;Node487 -->
-<g id="edge491" class="edge">
-<title>Node0&#45;&gt;Node487</title>
-<path fill="none" stroke="#191970" d="M84.0308,-3274.0409C84.6579,-3655.7343 95.8412,-9363.1208 204,-9491 212.1808,-9500.6723 223.5926,-9506.441 235.8141,-9509.7274"/>
-<polygon fill="#191970" stroke="#191970" points="87.5306,-3273.8991 84.0146,-3263.9047 80.5307,-3273.9104 87.5306,-3273.8991"/>
+<!-- Node0&#45;&gt;Node489 -->
+<g id="edge493" class="edge">
+<title>Node0&#45;&gt;Node489</title>
+<path fill="none" stroke="#191970" d="M84.0278,-3273.5879C84.6049,-3652.3745 95.1527,-9399.2919 204,-9528 212.1802,-9537.6728 223.5918,-9543.4417 235.8132,-9546.7281"/>
+<polygon fill="#191970" stroke="#191970" points="87.5278,-3273.5506 84.0129,-3263.5558 80.5278,-3273.561 87.5278,-3273.5506"/>
 </g>
 <!-- Node1 -->
 <g id="node10" class="node">
 <title>Node1</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1AffineTypeNode.html" target="_top" xlink:title="AffineType representation. ">
-<polygon fill="#ffffff" stroke="#000000" points="245.5,-7509.5 245.5,-7528.5 364.5,-7528.5 364.5,-7509.5 245.5,-7509.5"/>
-<text text-anchor="middle" x="305" y="-7516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AffineTypeNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="245.5,-7543.5 245.5,-7562.5 364.5,-7562.5 364.5,-7543.5 245.5,-7543.5"/>
+<text text-anchor="middle" x="305" y="-7550.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AffineTypeNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node1 -->
 <g id="edge5" class="edge">
 <title>Node0&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M84.2145,-3274.0573C87.5837,-3585.2326 130.5124,-7413.9038 204,-7500 214.3093,-7512.0781 229.6578,-7518.0546 245.2956,-7520.7122"/>
-<polygon fill="#191970" stroke="#191970" points="87.7118,-3273.7754 84.1042,-3263.8137 80.7122,-3273.8508 87.7118,-3273.7754"/>
+<path fill="none" stroke="#191970" d="M84.2067,-3273.7477C87.4941,-3584.0046 129.8969,-7447.163 204,-7534 214.308,-7546.0793 229.656,-7552.0561 245.2939,-7554.7137"/>
+<polygon fill="#191970" stroke="#191970" points="87.7046,-3273.5197 84.0993,-3263.5572 80.7049,-3273.5936 87.7046,-3273.5197"/>
 </g>
 <!-- Node4 -->
 <g id="node13" class="node">
 <title>Node4</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1arith_1_1ConstIntBoundNode.html" target="_top" xlink:title="Constant integer up and lower bound(inclusive). Useful for value bound analysis. ">
-<polygon fill="#ffffff" stroke="#000000" points="221.5,-7471.5 221.5,-7490.5 388.5,-7490.5 388.5,-7471.5 221.5,-7471.5"/>
-<text text-anchor="middle" x="305" y="-7478.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ConstIntBoundNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="221.5,-7505.5 221.5,-7524.5 388.5,-7524.5 388.5,-7505.5 221.5,-7505.5"/>
+<text text-anchor="middle" x="305" y="-7512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ConstIntBoundNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node4 -->
 <g id="edge8" class="edge">
 <title>Node0&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M84.2177,-3273.8778C87.6362,-3582.2689 131.1587,-7376.683 204,-7462 208.8658,-7467.6992 214.8536,-7472.0397 221.4642,-7475.314"/>
-<polygon fill="#191970" stroke="#191970" points="87.7159,-3273.6866 84.1058,-3263.7259 80.7163,-3273.7639 87.7159,-3273.6866"/>
+<path fill="none" stroke="#191970" d="M84.2149,-3274.0384C87.5892,-3584.9206 130.5804,-7409.9858 204,-7496 208.8651,-7501.6997 214.8525,-7506.0406 221.4628,-7509.3152"/>
+<polygon fill="#191970" stroke="#191970" points="87.7122,-3273.766 84.1044,-3263.8044 80.7126,-3273.8417 87.7122,-3273.766"/>
 </g>
 <!-- Node5 -->
 <g id="node14" class="node">
 <title>Node5</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsNode.html" target="_top" xlink:title="Represent integer constrains including (integer) variables, their ranges and the relations between th...">
-<polygon fill="#ffffff" stroke="#000000" points="223,-7433.5 223,-7452.5 387,-7452.5 387,-7433.5 223,-7433.5"/>
-<text text-anchor="middle" x="305" y="-7440.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraintsNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="223,-7467.5 223,-7486.5 387,-7486.5 387,-7467.5 223,-7467.5"/>
+<text text-anchor="middle" x="305" y="-7474.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraintsNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node5 -->
 <g id="edge9" class="edge">
 <title>Node0&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M84.223,-3273.6919C87.723,-3579.1992 132.2261,-7338.1392 204,-7423 209.1945,-7429.1417 215.6837,-7433.7422 222.8518,-7437.1535"/>
-<polygon fill="#191970" stroke="#191970" points="87.7222,-3273.5943 84.1084,-3263.6349 80.7227,-3273.6742 87.7222,-3273.5943"/>
+<path fill="none" stroke="#191970" d="M84.2202,-3273.8525C87.6763,-3581.8507 131.6512,-7371.4392 204,-7457 209.1938,-7463.1423 215.6825,-7467.7432 222.8503,-7471.1547"/>
+<polygon fill="#191970" stroke="#191970" points="87.7185,-3273.6737 84.107,-3263.7135 80.7189,-3273.752 87.7185,-3273.6737"/>
 </g>
 <!-- Node6 -->
 <g id="node15" class="node">
 <title>Node6</title>
 <g id="a_node15"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" target="_top" xlink:title="We can have different set of variables to represent the same constraints. For example, the following two systems are equivalent, {a + b = 0 | a &gt;= 0, b &gt;= 0} and {m &#45; n = 0 | m &gt;= 0, n &lt;= 0} This data structure represents the transformation between two equivalent linear systems. In the above example, src : {a + b = 0 | a &gt;= 0, b &gt;= 0} dst : {m &#45; n =  [...]
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-7384 235.5,-7414 374.5,-7414 374.5,-7384 235.5,-7384"/>
-<text text-anchor="start" x="243.5" y="-7402" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraints</text>
-<text text-anchor="middle" x="305" y="-7391" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">TransformNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-7418 235.5,-7448 374.5,-7448 374.5,-7418 235.5,-7418"/>
+<text text-anchor="start" x="243.5" y="-7436" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraints</text>
+<text text-anchor="middle" x="305" y="-7425" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">TransformNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node6 -->
 <g id="edge10" class="edge">
 <title>Node0&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M84.2426,-3273.9026C87.9993,-3578.9158 135.0854,-7288.5408 204,-7374 211.9942,-7383.9134 223.2451,-7390.2626 235.3528,-7394.259"/>
-<polygon fill="#191970" stroke="#191970" points="87.7377,-3273.474 84.1153,-3263.5177 80.7382,-3273.5599 87.7377,-3273.474"/>
+<path fill="none" stroke="#191970" d="M84.2343,-3273.6128C87.9074,-3577.8943 134.4931,-7321.7853 204,-7408 211.993,-7417.9143 223.2434,-7424.264 235.351,-7428.2605"/>
+<polygon fill="#191970" stroke="#191970" points="87.7339,-3273.5534 84.1139,-3263.5962 80.7344,-3273.6376 87.7339,-3273.5534"/>
 </g>
 <!-- Node7 -->
 <g id="node16" class="node">
 <title>Node7</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" target="_top" xlink:title="Represent integer grouped bounds which are classified into lower bounds (inclusive), upper bounds (inclusive) and equalities. It also contains coefficient as a multiplier for the bounds, i.e., coef * var &gt;= lower coef * var == equal coef * var &lt;= upper. ">
-<polygon fill="#ffffff" stroke="#000000" points="218,-7345.5 218,-7364.5 392,-7364.5 392,-7345.5 218,-7345.5"/>
-<text text-anchor="middle" x="305" y="-7352.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntGroupBoundsNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="218,-7379.5 218,-7398.5 392,-7398.5 392,-7379.5 218,-7379.5"/>
+<text text-anchor="middle" x="305" y="-7386.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntGroupBoundsNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node7 -->
 <g id="edge11" class="edge">
 <title>Node0&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M84.2392,-3274.1874C87.9012,-3579.7766 133.3721,-7253.3491 204,-7336 207.941,-7340.6119 212.6167,-7344.3339 217.7625,-7347.321"/>
-<polygon fill="#191970" stroke="#191970" points="87.7339,-3273.7172 84.1148,-3263.7597 80.7344,-3273.8007 87.7339,-3273.7172"/>
+<path fill="none" stroke="#191970" d="M84.2308,-3273.8934C87.8079,-3578.7638 132.7586,-7286.6107 204,-7370 207.9404,-7374.6124 212.6158,-7378.3347 217.7612,-7381.3221"/>
+<polygon fill="#191970" stroke="#191970" points="87.7262,-3273.4717 84.1096,-3263.5133 80.7266,-3273.5535 87.7262,-3273.4717"/>
 </g>
 <!-- Node8 -->
 <g id="node17" class="node">
 <title>Node8</title>
 <g id="a_node17"><a xlink:href="classtvm_1_1arith_1_1IntSetNode.html" target="_top" xlink:title="Base class of all Integer set containers. represent a set of integers in one dimension. ">
-<polygon fill="#ffffff" stroke="#000000" points="242.5,-7307.5 242.5,-7326.5 367.5,-7326.5 367.5,-7307.5 242.5,-7307.5"/>
-<text text-anchor="middle" x="305" y="-7314.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntSetNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="242.5,-7341.5 242.5,-7360.5 367.5,-7360.5 367.5,-7341.5 242.5,-7341.5"/>
+<text text-anchor="middle" x="305" y="-7348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntSetNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node8 -->
 <g id="edge12" class="edge">
 <title>Node0&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M84.2425,-3273.9996C87.9549,-3576.7446 134.0177,-7216.1275 204,-7298 213.6802,-7309.3249 227.7908,-7315.2834 242.4118,-7318.1715"/>
-<polygon fill="#191970" stroke="#191970" points="87.7383,-3273.6253 84.1165,-3263.6688 80.7388,-3273.7108 87.7383,-3273.6253"/>
+<path fill="none" stroke="#191970" d="M84.2395,-3274.1677C87.9068,-3579.4574 133.44,-7249.431 204,-7332 213.6788,-7343.3261 227.7889,-7349.2851 242.4098,-7352.1731"/>
+<polygon fill="#191970" stroke="#191970" points="87.7344,-3273.7075 84.115,-3263.7501 80.7349,-3273.7912 87.7344,-3273.7075"/>
 </g>
 <!-- Node9 -->
 <g id="node18" class="node">
 <title>Node9</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1arith_1_1IterMarkNode.html" target="_top" xlink:title="Mark the source as an iterator in [0, extent). ">
-<polygon fill="#ffffff" stroke="#000000" points="236.5,-7269.5 236.5,-7288.5 373.5,-7288.5 373.5,-7269.5 236.5,-7269.5"/>
-<text text-anchor="middle" x="305" y="-7276.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IterMarkNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="236.5,-7303.5 236.5,-7322.5 373.5,-7322.5 373.5,-7303.5 236.5,-7303.5"/>
+<text text-anchor="middle" x="305" y="-7310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IterMarkNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node9 -->
 <g id="edge13" class="edge">
 <title>Node0&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M84.2459,-3273.8117C88.0086,-3573.7126 134.6633,-7178.9059 204,-7260 212.3484,-7269.764 223.99,-7275.5387 236.4122,-7278.7957"/>
-<polygon fill="#191970" stroke="#191970" points="87.7428,-3273.5335 84.1181,-3263.578 80.7433,-3273.6209 87.7428,-3273.5335"/>
+<path fill="none" stroke="#191970" d="M84.2429,-3273.9798C87.9606,-3576.4255 134.0856,-7212.2094 204,-7294 212.3471,-7303.7651 223.9883,-7309.5402 236.4103,-7312.7973"/>
+<polygon fill="#191970" stroke="#191970" points="87.7388,-3273.6157 84.1166,-3263.6593 80.7393,-3273.7014 87.7388,-3273.6157"/>
 </g>
 <!-- Node10 -->
 <g id="node19" class="node">
 <title>Node10</title>
 <g id="a_node19"><a xlink:href="classtvm_1_1arith_1_1ModularSetNode.html" target="_top" xlink:title="Range of a linear integer function. Use to do specify the possible index values. ">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-7231.5 229.5,-7250.5 380.5,-7250.5 380.5,-7231.5 229.5,-7231.5"/>
-<text text-anchor="middle" x="305" y="-7238.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ModularSetNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-7265.5 229.5,-7284.5 380.5,-7284.5 380.5,-7265.5 229.5,-7265.5"/>
+<text text-anchor="middle" x="305" y="-7272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ModularSetNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node10 -->
 <g id="edge14" class="edge">
 <title>Node0&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M84.255,-3274.0743C88.1099,-3574.2706 135.3434,-7141.7246 204,-7222 210.7262,-7229.8645 219.589,-7235.1407 229.2749,-7238.5977"/>
-<polygon fill="#191970" stroke="#191970" points="87.7514,-3273.7627 84.1238,-3263.8083 80.752,-3273.8522 87.7514,-3273.7627"/>
+<path fill="none" stroke="#191970" d="M84.2462,-3273.7919C88.0143,-3573.3935 134.7312,-7174.9878 204,-7256 210.7252,-7263.8654 219.5874,-7269.142 229.2731,-7272.5992"/>
+<polygon fill="#191970" stroke="#191970" points="87.7433,-3273.5238 84.1183,-3263.5684 80.7438,-3273.6115 87.7433,-3273.5238"/>
 </g>
 <!-- Node11 -->
 <g id="node20" class="node">
 <title>Node11</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1AttrFieldInfoNode.html" target="_top" xlink:title="Information about attribute fields in string representations. ">
-<polygon fill="#ffffff" stroke="#000000" points="241.5,-7193.5 241.5,-7212.5 368.5,-7212.5 368.5,-7193.5 241.5,-7193.5"/>
-<text text-anchor="middle" x="305" y="-7200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrFieldInfoNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="241.5,-7227.5 241.5,-7246.5 368.5,-7246.5 368.5,-7227.5 241.5,-7227.5"/>
+<text text-anchor="middle" x="305" y="-7234.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrFieldInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node11 -->
 <g id="edge15" class="edge">
 <title>Node0&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M84.2606,-3273.8754C88.1976,-3571.0963 136.3858,-7103.1995 204,-7183 213.4176,-7194.115 227.0755,-7200.1799 241.3193,-7203.2837"/>
-<polygon fill="#191970" stroke="#191970" points="87.7582,-3273.664 84.1265,-3263.711 80.7588,-3273.7564 87.7582,-3273.664"/>
+<path fill="none" stroke="#191970" d="M84.2575,-3274.0473C88.1493,-3573.8396 135.8117,-7136.5006 204,-7217 213.4162,-7228.1162 227.0735,-7234.1816 241.3172,-7237.2854"/>
+<polygon fill="#191970" stroke="#191970" points="87.7541,-3273.749 84.125,-3263.7951 80.7546,-3273.8395 87.7541,-3273.749"/>
 </g>
 <!-- Node12 -->
 <g id="node21" class="node">
 <title>Node12</title>
 <g id="a_node21"><a xlink:href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html" target="_top" xlink:title="Static analyzer for a ComputeDAG. ">
-<polygon fill="#ffffff" stroke="#000000" points="242.5,-7144 242.5,-7174 367.5,-7174 367.5,-7144 242.5,-7144"/>
-<text text-anchor="start" x="250.5" y="-7162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-7151" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AccessAnalyzerNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="242.5,-7178 242.5,-7208 367.5,-7208 367.5,-7178 242.5,-7178"/>
+<text text-anchor="start" x="250.5" y="-7196" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-7185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AccessAnalyzerNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node12 -->
 <g id="edge16" class="edge">
 <title>Node0&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M84.2749,-3273.6193C88.4252,-3567.012 139.0893,-7053.654 204,-7134 213.5356,-7145.8031 227.6877,-7152.552 242.4001,-7156.2929"/>
-<polygon fill="#191970" stroke="#191970" points="87.7742,-3273.5356 84.1336,-3263.5859 80.7749,-3273.6343 87.7742,-3273.5356"/>
+<path fill="none" stroke="#191970" d="M84.272,-3273.7912C88.3783,-3569.7542 138.5319,-7086.9418 204,-7168 213.534,-7179.8044 227.6856,-7186.5538 242.398,-7190.2946"/>
+<polygon fill="#191970" stroke="#191970" points="87.7701,-3273.6205 84.1321,-3263.6699 80.7707,-3273.7173 87.7701,-3273.6205"/>
 </g>
 <!-- Node13 -->
 <g id="node22" class="node">
 <title>Node13</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html" target="_top" xlink:title="stores the compute_at relation between stages This stores a bi&#45;directional mapping from stages and it...">
-<polygon fill="#ffffff" stroke="#000000" points="247,-7095 247,-7125 363,-7125 363,-7095 247,-7095"/>
-<text text-anchor="start" x="255" y="-7113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-7102" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttachMapNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-7129 247,-7159 363,-7159 363,-7129 247,-7129"/>
+<text text-anchor="start" x="255" y="-7147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-7136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttachMapNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node13 -->
 <g id="edge17" class="edge">
 <title>Node0&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M84.2856,-3273.8111C88.5446,-3566.5225 139.9248,-7005.7202 204,-7085 214.5031,-7097.9954 230.6024,-7104.8635 246.8825,-7108.3356"/>
-<polygon fill="#191970" stroke="#191970" points="87.7849,-3273.728 84.1402,-3263.7798 80.7856,-3273.8295 87.7849,-3273.728"/>
+<path fill="none" stroke="#191970" d="M84.2825,-3273.9796C88.4963,-3569.2384 139.3672,-7039.0078 204,-7119 214.5013,-7131.9968 230.6001,-7138.8654 246.8804,-7142.3374"/>
+<polygon fill="#191970" stroke="#191970" points="87.7761,-3273.4981 84.1342,-3263.5489 80.7768,-3273.5976 87.7761,-3273.4981"/>
 </g>
 <!-- Node14 -->
 <g id="node23" class="node">
 <title>Node14</title>
 <g id="a_node23"><a xlink:href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html" target="_top" xlink:title="Store the result of a build. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-7046 247,-7076 363,-7076 363,-7046 247,-7046"/>
-<text text-anchor="start" x="255" y="-7064" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-7053" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuildResultNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-7080 247,-7110 363,-7110 363,-7080 247,-7080"/>
+<text text-anchor="start" x="255" y="-7098" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-7087" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuildResultNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node14 -->
 <g id="edge18" class="edge">
 <title>Node0&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M84.2964,-3273.989C88.6645,-3565.8854 140.759,-6957.7848 204,-7036 214.5057,-7048.9932 230.6058,-7055.8608 246.8858,-7059.333"/>
-<polygon fill="#191970" stroke="#191970" points="87.7911,-3273.6014 84.1424,-3263.6547 80.7919,-3273.7058 87.7911,-3273.6014"/>
+<path fill="none" stroke="#191970" d="M84.2933,-3274.1687C88.6166,-3568.6885 140.2022,-6991.0733 204,-7070 214.5039,-7082.9947 230.6034,-7089.8627 246.8835,-7093.3349"/>
+<polygon fill="#191970" stroke="#191970" points="87.7868,-3273.6893 84.1409,-3263.7415 80.7875,-3273.7916 87.7868,-3273.6893"/>
 </g>
 <!-- Node15 -->
 <g id="node24" class="node">
 <title>Node15</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html" target="_top" xlink:title="The auto&#45;scheduler&#39;s computational graph and related program analyses. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6997 247,-7027 363,-7027 363,-6997 247,-6997"/>
-<text text-anchor="start" x="255" y="-7015" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-7004" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeDAGNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-7031 247,-7061 363,-7061 363,-7031 247,-7031"/>
+<text text-anchor="start" x="255" y="-7049" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-7038" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeDAGNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node15 -->
 <g id="edge19" class="edge">
 <title>Node0&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M84.3009,-3273.7301C88.7336,-3561.8456 141.5614,-6909.8101 204,-6987 214.5084,-6999.9911 230.6092,-7006.858 246.8891,-7010.3304"/>
-<polygon fill="#191970" stroke="#191970" points="87.7975,-3273.4748 84.1446,-3263.5297 80.7983,-3273.5822 87.7975,-3273.4748"/>
+<path fill="none" stroke="#191970" d="M84.2978,-3273.9098C88.6857,-3564.6487 141.0046,-6943.0987 204,-7021 214.5065,-7033.9926 230.6068,-7040.8599 246.8868,-7044.3322"/>
+<polygon fill="#191970" stroke="#191970" points="87.7931,-3273.5627 84.1431,-3263.6165 80.7939,-3273.668 87.7931,-3273.5627"/>
 </g>
 <!-- Node16 -->
 <g id="node25" class="node">
 <title>Node16</title>
 <g id="a_node25"><a xlink:href="classtvm_1_1auto__scheduler_1_1CostModelNode.html" target="_top" xlink:title="The base class for cost model. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6948 247,-6978 363,-6978 363,-6948 247,-6948"/>
-<text text-anchor="start" x="255" y="-6966" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6955" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModelNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6982 247,-7012 363,-7012 363,-6982 247,-6982"/>
+<text text-anchor="start" x="255" y="-7000" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6989" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModelNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node16 -->
 <g id="edge20" class="edge">
 <title>Node0&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M84.3122,-3273.9028C88.8566,-3561.1306 142.3949,-6861.8738 204,-6938 214.5112,-6950.9888 230.6128,-6957.8551 246.8925,-6961.3276"/>
-<polygon fill="#191970" stroke="#191970" points="87.8088,-3273.6559 84.1515,-3263.7123 80.8097,-3273.7663 87.8088,-3273.6559"/>
+<path fill="none" stroke="#191970" d="M84.309,-3274.0864C88.8082,-3563.9644 141.8384,-6895.1627 204,-6972 214.5093,-6984.9904 230.6103,-6991.8571 246.8901,-6995.3295"/>
+<polygon fill="#191970" stroke="#191970" points="87.8043,-3273.7466 84.15,-3263.8019 80.8051,-3273.8549 87.8043,-3273.7466"/>
 </g>
 <!-- Node19 -->
 <g id="node28" class="node">
 <title>Node19</title>
 <g id="a_node28"><a xlink:href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html" target="_top" xlink:title="The parameters of target hardware used to guide the SearchPolicy. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-6899 239.5,-6929 370.5,-6929 370.5,-6899 239.5,-6899"/>
-<text text-anchor="start" x="247.5" y="-6917" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6906" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::HardwareParamsNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-6933 239.5,-6963 370.5,-6963 370.5,-6933 239.5,-6933"/>
+<text text-anchor="start" x="247.5" y="-6951" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6940" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::HardwareParamsNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node19 -->
 <g id="edge23" class="edge">
 <title>Node0&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M84.3167,-3273.6381C88.9265,-3557.0466 143.197,-6813.8986 204,-6889 212.8659,-6899.9508 225.7054,-6906.5493 239.2741,-6910.4311"/>
-<polygon fill="#191970" stroke="#191970" points="87.8155,-3273.5251 84.1538,-3263.5832 80.8164,-3273.6386 87.8155,-3273.5251"/>
+<path fill="none" stroke="#191970" d="M84.3136,-3273.8218C88.878,-3559.8804 142.6404,-6847.1875 204,-6923 212.8642,-6933.9521 225.7031,-6940.5512 239.2716,-6944.4331"/>
+<polygon fill="#191970" stroke="#191970" points="87.8108,-3273.6159 84.1522,-3263.6728 80.8117,-3273.7272 87.8108,-3273.6159"/>
 </g>
 <!-- Node20 -->
 <g id="node29" class="node">
 <title>Node20</title>
 <g id="a_node29"><a xlink:href="classtvm_1_1auto__scheduler_1_1IteratorNode.html" target="_top" xlink:title="An iterator of a for&#45;loop Similar to tvm::IterVar in include/tvm/tir/expr.h ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6850 247,-6880 363,-6880 363,-6850 247,-6850"/>
-<text text-anchor="start" x="255" y="-6868" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6857" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IteratorNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6884 247,-6914 363,-6914 363,-6884 247,-6884"/>
+<text text-anchor="start" x="255" y="-6902" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6891" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IteratorNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node20 -->
 <g id="edge24" class="edge">
 <title>Node0&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M84.3284,-3273.7981C89.0517,-3556.1974 144.0292,-6765.9606 204,-6840 214.517,-6852.9841 230.6201,-6859.8492 246.8995,-6863.3219"/>
-<polygon fill="#191970" stroke="#191970" points="87.8273,-3273.6985 84.1611,-3263.7582 80.8283,-3273.8152 87.8273,-3273.6985"/>
+<path fill="none" stroke="#191970" d="M84.3181,-3273.5571C88.9478,-3555.7964 143.4425,-6799.2123 204,-6874 214.5149,-6886.9858 230.6175,-6893.8513 246.897,-6897.3239"/>
+<polygon fill="#191970" stroke="#191970" points="87.8175,-3273.4851 84.1545,-3263.5436 80.8185,-3273.5995 87.8175,-3273.4851"/>
 </g>
 <!-- Node21 -->
 <g id="node30" class="node">
 <title>Node21</title>
 <g id="a_node30"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNode.html" target="_top" xlink:title="Bass class of measurement callbacks. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-6801 239.5,-6831 370.5,-6831 370.5,-6801 239.5,-6801"/>
-<text text-anchor="start" x="247.5" y="-6819" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6808" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallbackNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-6835 239.5,-6865 370.5,-6865 370.5,-6835 239.5,-6835"/>
+<text text-anchor="start" x="247.5" y="-6853" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6842" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallbackNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node21 -->
 <g id="edge25" class="edge">
 <title>Node0&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M84.3402,-3273.9434C89.1774,-3555.203 144.8601,-6718.021 204,-6791 212.8709,-6801.9467 225.7124,-6808.5437 239.2813,-6812.4252"/>
-<polygon fill="#191970" stroke="#191970" points="87.8343,-3273.5635 84.1634,-3263.6249 80.8353,-3273.6835 87.8343,-3273.5635"/>
+<path fill="none" stroke="#191970" d="M84.3369,-3274.1351C89.1279,-3558.0976 144.3042,-6751.3107 204,-6825 212.8691,-6835.9482 225.7099,-6842.5457 239.2788,-6846.4273"/>
+<polygon fill="#191970" stroke="#191970" points="87.8295,-3273.6572 84.1618,-3263.7174 80.8304,-3273.7749 87.8295,-3273.6572"/>
 </g>
 <!-- Node24 -->
 <g id="node33" class="node">
 <title>Node24</title>
 <g id="a_node33"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html" target="_top" xlink:title="Store the input of a measurement. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6752 247,-6782 363,-6782 363,-6752 247,-6752"/>
-<text text-anchor="start" x="255" y="-6770" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureInputNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6786 247,-6816 363,-6816 363,-6786 247,-6786"/>
+<text text-anchor="start" x="255" y="-6804" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6793" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureInputNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node24 -->
 <g id="edge28" class="edge">
 <title>Node0&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M84.3524,-3274.0885C89.3055,-3554.1732 145.6907,-6670.081 204,-6742 214.5231,-6754.9792 230.6279,-6761.8428 246.907,-6765.3159"/>
-<polygon fill="#191970" stroke="#191970" points="87.8467,-3273.7289 84.171,-3263.7921 80.8478,-3273.8523 87.8467,-3273.7289"/>
+<path fill="none" stroke="#191970" d="M84.3417,-3273.8589C89.1992,-3553.926 145.1054,-6703.3344 204,-6776 214.5209,-6788.9809 230.6252,-6795.8451 246.9044,-6799.318"/>
+<polygon fill="#191970" stroke="#191970" points="87.8365,-3273.5221 84.1641,-3263.5841 80.8375,-3273.6432 87.8365,-3273.5221"/>
 </g>
 <!-- Node25 -->
 <g id="node34" class="node">
 <title>Node25</title>
 <g id="a_node34"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html" target="_top" xlink:title="Store the results of a measurement. ">
-<polygon fill="#ffffff" stroke="#000000" points="245.5,-6703 245.5,-6733 364.5,-6733 364.5,-6703 245.5,-6703"/>
-<text text-anchor="start" x="253.5" y="-6721" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6710" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureResultNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="245.5,-6737 245.5,-6767 364.5,-6767 364.5,-6737 245.5,-6737"/>
+<text text-anchor="start" x="253.5" y="-6755" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6744" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureResultNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node25 -->
 <g id="edge29" class="edge">
 <title>Node0&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M84.3573,-3273.8064C89.3775,-3549.9575 146.4916,-6622.1042 204,-6693 214.1848,-6705.5558 229.5931,-6712.388 245.3277,-6715.964"/>
-<polygon fill="#191970" stroke="#191970" points="87.854,-3273.5895 84.1733,-3263.6546 80.8552,-3273.7164 87.854,-3273.5895"/>
+<path fill="none" stroke="#191970" d="M84.3539,-3274.0022C89.3276,-3552.8827 145.9359,-6655.3942 204,-6727 214.1827,-6739.5575 229.5904,-6746.3902 245.325,-6749.9662"/>
+<polygon fill="#191970" stroke="#191970" points="87.8489,-3273.6862 84.1717,-3263.75 80.85,-3273.8107 87.8489,-3273.6862"/>
 </g>
 <!-- Node26 -->
 <g id="node35" class="node">
 <title>Node26</title>
 <g id="a_node35"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramBuilderNode.html" target="_top" xlink:title="ProgramBuilder that builds the programs. ">
-<polygon fill="#ffffff" stroke="#000000" points="243,-6654 243,-6684 367,-6684 367,-6654 243,-6654"/>
-<text text-anchor="start" x="251" y="-6672" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramBuilderNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="243,-6688 243,-6718 367,-6718 367,-6688 243,-6688"/>
+<text text-anchor="start" x="251" y="-6706" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6695" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramBuilderNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node26 -->
 <g id="edge30" class="edge">
 <title>Node0&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M84.0191,-3273.9068C84.3621,-3545.3791 90.698,-6504.3944 204,-6644 213.6758,-6655.922 228.0609,-6662.6832 242.9615,-6666.3963"/>
-<polygon fill="#191970" stroke="#191970" points="87.5189,-3273.5955 84.0075,-3263.5995 80.5189,-3273.6035 87.5189,-3273.5955"/>
+<path fill="none" stroke="#191970" d="M84.0117,-3273.7008C84.2549,-3545.3371 89.5311,-6536.906 204,-6678 213.6737,-6689.9237 228.0581,-6696.6855 242.9587,-6700.3986"/>
+<polygon fill="#191970" stroke="#191970" points="87.5118,-3273.693 84.0041,-3263.6957 80.5118,-3273.6985 87.5118,-3273.693"/>
 </g>
 <!-- Node28 -->
 <g id="node37" class="node">
 <title>Node28</title>
 <g id="a_node37"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html" target="_top" xlink:title="Measurer that measures the time costs of tvm programs This class combines ProgramBuilder and ProgramR...">
-<polygon fill="#ffffff" stroke="#000000" points="238,-6605 238,-6635 372,-6635 372,-6605 238,-6605"/>
-<text text-anchor="start" x="246" y="-6623" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6612" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramMeasurerNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="238,-6639 238,-6669 372,-6669 372,-6639 238,-6639"/>
+<text text-anchor="start" x="246" y="-6657" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6646" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramMeasurerNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node28 -->
 <g id="edge32" class="edge">
 <title>Node0&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M84.03,-3274.026C84.5169,-3544.1104 92.3543,-6457.5081 204,-6595 212.5971,-6605.5873 224.9081,-6612.1043 237.9947,-6616.0308"/>
-<polygon fill="#191970" stroke="#191970" points="87.5296,-3273.7451 84.0128,-3263.751 80.5296,-3273.7569 87.5296,-3273.7451"/>
+<path fill="none" stroke="#191970" d="M84.0222,-3273.8188C84.4071,-3544.0905 91.1878,-6490.0202 204,-6629 212.5952,-6639.5889 224.9054,-6646.1065 237.9918,-6650.0331"/>
+<polygon fill="#191970" stroke="#191970" points="87.522,-3273.5525 84.009,-3263.5571 80.522,-3273.5616 87.522,-3273.5525"/>
 </g>
 <!-- Node29 -->
 <g id="node38" class="node">
 <title>Node29</title>
 <g id="a_node38"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramRunnerNode.html" target="_top" xlink:title="ProgramRunner that runs the built programs and measure the time cost. ">
-<polygon fill="#ffffff" stroke="#000000" points="243.5,-6556 243.5,-6586 366.5,-6586 366.5,-6556 243.5,-6556"/>
-<text text-anchor="start" x="251.5" y="-6574" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6563" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramRunnerNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="243.5,-6590 243.5,-6620 366.5,-6620 366.5,-6590 243.5,-6590"/>
+<text text-anchor="start" x="251.5" y="-6608" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramRunnerNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node29 -->
 <g id="edge33" class="edge">
 <title>Node0&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M84.0403,-3273.7325C84.6653,-3539.858 93.9534,-6410.5514 204,-6546 213.7959,-6558.0571 228.4085,-6564.8347 243.496,-6568.5193"/>
-<polygon fill="#191970" stroke="#191970" points="87.5401,-3273.6003 84.0179,-3263.6081 80.5401,-3273.6159 87.5401,-3273.6003"/>
+<path fill="none" stroke="#191970" d="M84.0331,-3273.9362C84.5624,-3542.8086 92.8438,-6443.1336 204,-6580 213.7937,-6592.059 228.4055,-6598.8372 243.493,-6602.5217"/>
+<polygon fill="#191970" stroke="#191970" points="87.5328,-3273.7008 84.0144,-3263.7073 80.5328,-3273.7137 87.5328,-3273.7008"/>
 </g>
 <!-- Node32 -->
 <g id="node41" class="node">
 <title>Node32</title>
 <g id="a_node41"><a xlink:href="classtvm_1_1auto__scheduler_1_1RecordReaderNode.html" target="_top" xlink:title="Log reader to load step logs from a file. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6507 247,-6537 363,-6537 363,-6507 247,-6507"/>
-<text text-anchor="start" x="255" y="-6525" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6514" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RecordReaderNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6541 247,-6571 363,-6571 363,-6541 247,-6541"/>
+<text text-anchor="start" x="255" y="-6559" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6548" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RecordReaderNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node32 -->
 <g id="edge36" class="edge">
 <title>Node0&#45;&gt;Node32</title>
-<path fill="none" stroke="#191970" d="M84.0518,-3273.8378C84.8246,-3538.4587 95.6073,-6363.6619 204,-6497 214.5399,-6509.9655 230.6494,-6516.8254 246.9276,-6520.2991"/>
-<polygon fill="#191970" stroke="#191970" points="87.5517,-3273.7412 84.0237,-3263.751 80.5517,-3273.7607 87.5517,-3273.7412"/>
+<path fill="none" stroke="#191970" d="M84.0435,-3273.6427C84.7108,-3538.5563 94.443,-6396.1768 204,-6531 214.5374,-6543.9676 230.6462,-6550.828 246.9246,-6554.3016"/>
+<polygon fill="#191970" stroke="#191970" points="87.5434,-3273.5559 84.0194,-3263.5643 80.5434,-3273.5727 87.5434,-3273.5559"/>
 </g>
 <!-- Node33 -->
 <g id="node42" class="node">
 <title>Node33</title>
 <g id="a_node42"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchCallbackNode.html" target="_top" xlink:title="Callback function to be called by the search process. This interface allows to do extra initializatio...">
-<polygon fill="#ffffff" stroke="#000000" points="243.5,-6458 243.5,-6488 366.5,-6488 366.5,-6458 243.5,-6458"/>
-<text text-anchor="start" x="251.5" y="-6476" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6465" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchCallbackNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="243.5,-6492 243.5,-6522 366.5,-6522 366.5,-6492 243.5,-6492"/>
+<text text-anchor="start" x="251.5" y="-6510" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6499" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchCallbackNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node33 -->
 <g id="edge37" class="edge">
 <title>Node0&#45;&gt;Node33</title>
-<path fill="none" stroke="#191970" d="M84.0637,-3273.9275C84.9866,-3536.9203 97.2585,-6316.7691 204,-6448 213.7457,-6459.9816 228.2476,-6466.7485 243.2418,-6470.4475"/>
-<polygon fill="#191970" stroke="#191970" points="87.5627,-3273.5919 84.0289,-3263.6037 80.5627,-3273.6155 87.5627,-3273.5919"/>
+<path fill="none" stroke="#191970" d="M84.055,-3273.7461C84.8705,-3537.1437 96.0965,-6349.287 204,-6482 213.7433,-6493.9835 228.2445,-6500.7511 243.2386,-6504.45"/>
+<polygon fill="#191970" stroke="#191970" points="87.555,-3273.6955 84.0253,-3263.7059 80.555,-3273.7163 87.555,-3273.6955"/>
 </g>
 <!-- Node35 -->
 <g id="node44" class="node">
 <title>Node35</title>
 <g id="a_node44"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html" target="_top" xlink:title="The base class of search policies. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6409 247,-6439 363,-6439 363,-6409 247,-6409"/>
-<text text-anchor="start" x="255" y="-6427" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6416" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchPolicyNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6443 247,-6473 363,-6473 363,-6443 247,-6443"/>
+<text text-anchor="start" x="255" y="-6461" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6450" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchPolicyNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node35 -->
 <g id="edge39" class="edge">
 <title>Node0&#45;&gt;Node35</title>
-<path fill="none" stroke="#191970" d="M84.0761,-3274.016C85.1518,-3535.3454 98.909,-6269.8754 204,-6399 214.5474,-6411.9595 230.659,-6418.8176 246.9367,-6422.2917"/>
-<polygon fill="#191970" stroke="#191970" points="87.575,-3273.7237 84.0352,-3263.7377 80.5751,-3273.7516 87.575,-3273.7237"/>
+<path fill="none" stroke="#191970" d="M84.067,-3273.834C85.0329,-3535.5924 97.7475,-6302.3939 204,-6433 214.5447,-6445.9616 230.6556,-6452.8204 246.9335,-6456.2943"/>
+<polygon fill="#191970" stroke="#191970" points="87.5661,-3273.5461 84.0305,-3263.5587 80.5661,-3273.5711 87.5661,-3273.5461"/>
 </g>
 <!-- Node36 -->
 <g id="node45" class="node">
 <title>Node36</title>
 <g id="a_node45"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchTaskNode.html" target="_top" xlink:title="The computation information and hardware parameters for a specific schedule search task...">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6360 247,-6390 363,-6390 363,-6360 247,-6360"/>
-<text text-anchor="start" x="255" y="-6378" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6367" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchTaskNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6394 247,-6424 363,-6424 363,-6394 247,-6394"/>
+<text text-anchor="start" x="255" y="-6412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchTaskNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node36 -->
 <g id="edge40" class="edge">
 <title>Node0&#45;&gt;Node36</title>
-<path fill="none" stroke="#191970" d="M84.087,-3273.7044C85.3046,-3530.9647 100.5056,-6222.9155 204,-6350 214.5513,-6362.9563 230.6639,-6369.8136 246.9415,-6373.2878"/>
-<polygon fill="#191970" stroke="#191970" points="87.5866,-3273.5699 84.0405,-3263.5861 80.5866,-3273.6021 87.5866,-3273.5699"/>
+<path fill="none" stroke="#191970" d="M84.0794,-3273.9206C85.1986,-3534.0043 99.3978,-6255.4999 204,-6384 214.5485,-6396.9585 230.6605,-6403.8164 246.9382,-6407.2905"/>
+<polygon fill="#191970" stroke="#191970" points="87.5785,-3273.6766 84.0368,-3263.6913 80.5786,-3273.7058 87.5785,-3273.6766"/>
 </g>
 <!-- Node37 -->
 <g id="node46" class="node">
 <title>Node37</title>
 <g id="a_node46"><a xlink:href="classtvm_1_1auto__scheduler_1_1StageNode.html" target="_top" xlink:title="A op stage in the compute declaration. Similar to te::Stage in include/tvm/te/schedule.h. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6311 247,-6341 363,-6341 363,-6311 247,-6311"/>
-<text text-anchor="start" x="255" y="-6329" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6318" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StageNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6345 247,-6375 363,-6375 363,-6345 247,-6345"/>
+<text text-anchor="start" x="255" y="-6363" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6352" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StageNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node37 -->
 <g id="edge41" class="edge">
 <title>Node0&#45;&gt;Node37</title>
-<path fill="none" stroke="#191970" d="M84.1001,-3273.7782C85.4741,-3529.2594 102.1537,-6176.0186 204,-6301 214.5553,-6313.953 230.6691,-6320.8094 246.9464,-6324.2838"/>
-<polygon fill="#191970" stroke="#191970" points="87.5998,-3273.6923 84.0473,-3263.7108 80.5999,-3273.7291 87.5998,-3273.6923"/>
+<path fill="none" stroke="#191970" d="M84.0904,-3273.609C85.3513,-3529.6236 100.9944,-6208.54 204,-6335 214.5525,-6347.9553 230.6655,-6354.8123 246.943,-6358.2866"/>
+<polygon fill="#191970" stroke="#191970" points="87.5901,-3273.5228 84.0422,-3263.5397 80.5902,-3273.5564 87.5901,-3273.5228"/>
 </g>
 <!-- Node38 -->
 <g id="node47" class="node">
 <title>Node38</title>
 <g id="a_node47"><a xlink:href="classtvm_1_1auto__scheduler_1_1StateNode.html" target="_top" xlink:title="A state in the search process. It consists of the current loop structure and a list of transformation...">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6262 247,-6292 363,-6292 363,-6262 247,-6262"/>
-<text text-anchor="start" x="255" y="-6280" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StateNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6296 247,-6326 363,-6326 363,-6296 247,-6296"/>
+<text text-anchor="start" x="255" y="-6314" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6303" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StateNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node38 -->
 <g id="edge42" class="edge">
 <title>Node0&#45;&gt;Node38</title>
-<path fill="none" stroke="#191970" d="M84.1135,-3273.8359C85.6463,-3527.4173 103.7992,-6129.1185 204,-6252 214.5595,-6264.9496 230.6744,-6271.805 246.9515,-6275.2796"/>
-<polygon fill="#191970" stroke="#191970" points="87.6119,-3273.5339 84.0528,-3263.5548 80.612,-3273.5753 87.6119,-3273.5339"/>
+<path fill="none" stroke="#191970" d="M84.1035,-3273.6809C85.5214,-3527.9052 102.6422,-6161.6428 204,-6286 214.5566,-6298.952 230.6707,-6305.8081 246.948,-6309.2825"/>
+<polygon fill="#191970" stroke="#191970" points="87.6034,-3273.6439 84.049,-3263.6631 80.6035,-3273.682 87.6034,-3273.6439"/>
 </g>
 <!-- Node39 -->
 <g id="node48" class="node">
 <title>Node39</title>
 <g id="a_node48"><a xlink:href="classtvm_1_1auto__scheduler_1_1StepNode.html" target="_top" xlink:title="The base class of transformation steps. Each step has its corresponding tvm.te schedule primitives...">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6213 247,-6243 363,-6243 363,-6213 247,-6213"/>
-<text text-anchor="start" x="255" y="-6231" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6220" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247,-6247 247,-6277 363,-6277 363,-6247 247,-6247"/>
+<text text-anchor="start" x="255" y="-6265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6254" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StepNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node39 -->
 <g id="edge43" class="edge">
 <title>Node0&#45;&gt;Node39</title>
-<path fill="none" stroke="#191970" d="M84.1275,-3273.8918C85.8218,-3525.5371 105.4439,-6082.2175 204,-6203 214.5638,-6215.9461 230.6799,-6222.8006 246.9568,-6226.2753"/>
-<polygon fill="#191970" stroke="#191970" points="87.626,-3273.6467 84.0601,-3263.67 80.6262,-3273.6929 87.626,-3273.6467"/>
+<path fill="none" stroke="#191970" d="M84.117,-3273.7368C85.694,-3526.0502 104.2874,-6114.7424 204,-6237 214.5608,-6249.9485 230.6761,-6256.8037 246.9531,-6260.2783"/>
+<polygon fill="#191970" stroke="#191970" points="87.6156,-3273.4854 84.0545,-3263.507 80.6158,-3273.5282 87.6156,-3273.4854"/>
 </g>
 <!-- Node54 -->
 <g id="node63" class="node">
 <title>Node54</title>
 <g id="a_node63"><a xlink:href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html" target="_top" xlink:title="Tuning and measurement options. ">
-<polygon fill="#ffffff" stroke="#000000" points="246.5,-6164 246.5,-6194 363.5,-6194 363.5,-6164 246.5,-6164"/>
-<text text-anchor="start" x="254.5" y="-6182" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="305" y="-6171" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningOptionsNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="246.5,-6198 246.5,-6228 363.5,-6228 363.5,-6198 246.5,-6198"/>
+<text text-anchor="start" x="254.5" y="-6216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="305" y="-6205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningOptionsNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node54 -->
 <g id="edge58" class="edge">
 <title>Node0&#45;&gt;Node54</title>
-<path fill="none" stroke="#191970" d="M84.1391,-3273.5615C85.9789,-3521.0283 107.038,-6035.2543 204,-6154 214.4539,-6166.8026 230.3377,-6173.647 246.4344,-6177.157"/>
-<polygon fill="#191970" stroke="#191970" points="87.6387,-3273.4836 84.0658,-3263.5094 80.6389,-3273.5347 87.6387,-3273.4836"/>
+<path fill="none" stroke="#191970" d="M84.131,-3273.7907C85.8699,-3524.1569 105.9319,-6067.841 204,-6188 214.4509,-6200.8051 230.3338,-6207.6503 246.4306,-6211.1601"/>
+<polygon fill="#191970" stroke="#191970" points="87.6299,-3273.5967 84.0618,-3263.6208 80.63,-3273.6444 87.6299,-3273.5967"/>
 </g>
 <!-- Node55 -->
 <g id="node64" class="node">
 <title>Node55</title>
 <g id="a_node64"><a xlink:href="classtvm_1_1BaseAttrsNode.html" target="_top" xlink:title="Base class of all attribute class. ">
-<polygon fill="#ffffff" stroke="#000000" points="247.5,-6125.5 247.5,-6144.5 362.5,-6144.5 362.5,-6125.5 247.5,-6125.5"/>
-<text text-anchor="middle" x="305" y="-6132.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseAttrsNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="247.5,-6159.5 247.5,-6178.5 362.5,-6178.5 362.5,-6159.5 247.5,-6159.5"/>
+<text text-anchor="middle" x="305" y="-6166.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseAttrsNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node55 -->
 <g id="edge59" class="edge">
 <title>Node0&#45;&gt;Node55</title>
-<path fill="none" stroke="#191970" d="M85.5223,-3273.8445C104.3115,-3518.7845 290.9461,-5951.7912 304.2522,-6125.2512"/>
-<polygon fill="#191970" stroke="#191970" points="88.9904,-3273.2934 84.7357,-3263.5904 82.0109,-3273.8288 88.9904,-3273.2934"/>
+<path fill="none" stroke="#191970" d="M85.4949,-3273.7173C104.1388,-3519.6313 291.1318,-5986.0775 304.2726,-6159.4051"/>
+<polygon fill="#191970" stroke="#191970" points="88.9817,-3273.4103 84.7357,-3263.7036 82.0018,-3273.9396 88.9817,-3273.4103"/>
 </g>
-<!-- Node324 -->
-<g id="node333" class="node">
-<title>Node324</title>
-<g id="a_node333"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions. ">
+<!-- Node326 -->
+<g id="node335" class="node">
+<title>Node326</title>
+<g id="a_node335"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions. ">
 <polygon fill="#ffffff" stroke="#000000" points="248.5,-4403.5 248.5,-4422.5 361.5,-4422.5 361.5,-4403.5 248.5,-4403.5"/>
 <text text-anchor="middle" x="305" y="-4410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExprNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node324 -->
-<g id="edge328" class="edge">
-<title>Node0&#45;&gt;Node324</title>
+<!-- Node0&#45;&gt;Node326 -->
+<g id="edge330" class="edge">
+<title>Node0&#45;&gt;Node326</title>
 <path fill="none" stroke="#191970" d="M84.6813,-3273.7752C89.8379,-3418.2567 124.6997,-4307.9955 204,-4394 215.3086,-4406.2647 231.8297,-4412.1049 248.2471,-4414.5775"/>
 <polygon fill="#191970" stroke="#191970" points="88.1766,-3273.5783 84.3274,-3263.7074 81.181,-3273.8242 88.1766,-3273.5783"/>
 </g>
-<!-- Node400 -->
-<g id="node409" class="node">
-<title>Node400</title>
-<g id="a_node409"><a xlink:href="classtvm_1_1CompilationConfigNode.html" target="_top" xlink:title="Gathers the Targets and distinguished VirtualDevices in canonical form needed to compile a Relay modu...">
-<polygon fill="#ffffff" stroke="#000000" points="226,-4365.5 226,-4384.5 384,-4384.5 384,-4365.5 226,-4365.5"/>
-<text text-anchor="middle" x="305" y="-4372.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::CompilationConfigNode</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node400 -->
-<g id="edge404" class="edge">
-<title>Node0&#45;&gt;Node400</title>
-<path fill="none" stroke="#191970" d="M84.7645,-3273.9807C90.3903,-3416.3001 127.321,-4273.1372 204,-4356 210.0592,-4362.5478 217.6043,-4367.2626 225.8238,-4370.6108"/>
-<polygon fill="#191970" stroke="#191970" points="88.2509,-3273.5611 84.3641,-3263.705 81.2562,-3273.8338 88.2509,-3273.5611"/>
-</g>
-<!-- Node401 -->
-<g id="node410" class="node">
-<title>Node401</title>
-<g id="a_node410"><a xlink:href="classtvm_1_1DiagnosticContextNode.html" target="_top" xlink:title="tvm::DiagnosticContextNode">
-<polygon fill="#ffffff" stroke="#000000" points="226,-4327.5 226,-4346.5 384,-4346.5 384,-4327.5 226,-4327.5"/>
-<text text-anchor="middle" x="305" y="-4334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticContextNode</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node401 -->
-<g id="edge405" class="edge">
-<title>Node0&#45;&gt;Node401</title>
-<path fill="none" stroke="#191970" d="M84.8345,-3273.7235C90.8812,-3412.4356 129.8568,-4238.1857 204,-4318 210.0717,-4324.5361 217.6245,-4329.2439 225.8482,-4332.5881"/>
-<polygon fill="#191970" stroke="#191970" points="88.3293,-3273.5259 84.4026,-3263.6856 81.3358,-3273.8269 88.3293,-3273.5259"/>
-</g>
 <!-- Node402 -->
 <g id="node411" class="node">
 <title>Node402</title>
-<g id="a_node411"><a xlink:href="classtvm_1_1DiagnosticNode.html" target="_top" xlink:title="A compiler diagnostic message. ">
-<polygon fill="#ffffff" stroke="#000000" points="245.5,-4289.5 245.5,-4308.5 364.5,-4308.5 364.5,-4289.5 245.5,-4289.5"/>
-<text text-anchor="middle" x="305" y="-4296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticNode</text>
+<g id="a_node411"><a xlink:href="classtvm_1_1CompilationConfigNode.html" target="_top" xlink:title="Gathers the Targets and distinguished VirtualDevices in canonical form needed to compile a Relay modu...">
+<polygon fill="#ffffff" stroke="#000000" points="226,-4365.5 226,-4384.5 384,-4384.5 384,-4365.5 226,-4365.5"/>
+<text text-anchor="middle" x="305" y="-4372.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::CompilationConfigNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node402 -->
 <g id="edge406" class="edge">
 <title>Node0&#45;&gt;Node402</title>
-<path fill="none" stroke="#191970" d="M84.9266,-3273.8485C91.4629,-3410.0426 132.4586,-4203.3042 204,-4280 214.7099,-4291.4815 229.9913,-4297.3146 245.4358,-4300.0259"/>
-<polygon fill="#191970" stroke="#191970" points="88.4127,-3273.4716 84.443,-3263.6486 81.4206,-3273.8032 88.4127,-3273.4716"/>
+<path fill="none" stroke="#191970" d="M84.7645,-3273.9807C90.3903,-3416.3001 127.321,-4273.1372 204,-4356 210.0592,-4362.5478 217.6043,-4367.2626 225.8238,-4370.6108"/>
+<polygon fill="#191970" stroke="#191970" points="88.2509,-3273.5611 84.3641,-3263.705 81.2562,-3273.8338 88.2509,-3273.5611"/>
 </g>
 <!-- Node403 -->
 <g id="node412" class="node">
 <title>Node403</title>
-<g id="a_node412"><a xlink:href="classtvm_1_1DiagnosticRendererNode.html" target="_top" xlink:title="Display diagnostics in a given display format. ">
-<polygon fill="#ffffff" stroke="#000000" points="223.5,-4251.5 223.5,-4270.5 386.5,-4270.5 386.5,-4251.5 223.5,-4251.5"/>
-<text text-anchor="middle" x="305" y="-4258.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticRendererNode</text>
+<g id="a_node412"><a xlink:href="classtvm_1_1DiagnosticContextNode.html" target="_top" xlink:title="tvm::DiagnosticContextNode">
+<polygon fill="#ffffff" stroke="#000000" points="226,-4327.5 226,-4346.5 384,-4346.5 384,-4327.5 226,-4327.5"/>
+<text text-anchor="middle" x="305" y="-4334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticContextNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node403 -->
 <g id="edge407" class="edge">
 <title>Node0&#45;&gt;Node403</title>
-<path fill="none" stroke="#191970" d="M85.0239,-3273.9275C92.0611,-3407.4007 135.0493,-4168.4093 204,-4242 209.4897,-4247.8591 216.1702,-4252.2454 223.4532,-4255.4957"/>
-<polygon fill="#191970" stroke="#191970" points="88.5011,-3273.3977 84.4853,-3263.5934 81.5106,-3273.7621 88.5011,-3273.3977"/>
+<path fill="none" stroke="#191970" d="M84.8345,-3273.7235C90.8812,-3412.4356 129.8568,-4238.1857 204,-4318 210.0717,-4324.5361 217.6245,-4329.2439 225.8482,-4332.5881"/>
+<polygon fill="#191970" stroke="#191970" points="88.3293,-3273.5259 84.4026,-3263.6856 81.3358,-3273.8269 88.3293,-3273.5259"/>
 </g>
 <!-- Node404 -->
 <g id="node413" class="node">
 <title>Node404</title>
-<g id="a_node413"><a xlink:href="classtvm_1_1EnvFuncNode.html" target="_top" xlink:title="A serializable function backed by TVM&#39;s global environment. ">
-<polygon fill="#ffffff" stroke="#000000" points="251.5,-4213.5 251.5,-4232.5 358.5,-4232.5 358.5,-4213.5 251.5,-4213.5"/>
-<text text-anchor="middle" x="305" y="-4220.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::EnvFuncNode</text>
+<g id="a_node413"><a xlink:href="classtvm_1_1DiagnosticNode.html" target="_top" xlink:title="A compiler diagnostic message. ">
+<polygon fill="#ffffff" stroke="#000000" points="245.5,-4289.5 245.5,-4308.5 364.5,-4308.5 364.5,-4289.5 245.5,-4289.5"/>
+<text text-anchor="middle" x="305" y="-4296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node404 -->
 <g id="edge408" class="edge">
 <title>Node0&#45;&gt;Node404</title>
-<path fill="none" stroke="#191970" d="M85.104,-3273.566C92.585,-3403.042 137.5619,-4133.4301 204,-4204 216.1081,-4216.8611 233.956,-4222.6164 251.2936,-4224.8384"/>
-<polygon fill="#191970" stroke="#191970" points="88.5948,-3273.3035 84.5296,-3263.5196 81.6062,-3273.7032 88.5948,-3273.3035"/>
+<path fill="none" stroke="#191970" d="M84.9266,-3273.8485C91.4629,-3410.0426 132.4586,-4203.3042 204,-4280 214.7099,-4291.4815 229.9913,-4297.3146 245.4358,-4300.0259"/>
+<polygon fill="#191970" stroke="#191970" points="88.4127,-3273.4716 84.443,-3263.6486 81.4206,-3273.8032 88.4127,-3273.4716"/>
 </g>
 <!-- Node405 -->
 <g id="node414" class="node">
 <title>Node405</title>
-<g id="a_node414"><a xlink:href="classtvm_1_1GenericFuncNode.html" target="_top" xlink:title="Represents a generic function that can be specialized on a per&#45;target basis. ">
-<polygon fill="#ffffff" stroke="#000000" points="241.5,-4175.5 241.5,-4194.5 368.5,-4194.5 368.5,-4175.5 241.5,-4175.5"/>
-<text text-anchor="middle" x="305" y="-4182.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::GenericFuncNode</text>
+<g id="a_node414"><a xlink:href="classtvm_1_1DiagnosticRendererNode.html" target="_top" xlink:title="Display diagnostics in a given display format. ">
+<polygon fill="#ffffff" stroke="#000000" points="223.5,-4251.5 223.5,-4270.5 386.5,-4270.5 386.5,-4251.5 223.5,-4251.5"/>
+<text text-anchor="middle" x="305" y="-4258.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticRendererNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node405 -->
 <g id="edge409" class="edge">
 <title>Node0&#45;&gt;Node405</title>
-<path fill="none" stroke="#191970" d="M85.2358,-3273.9533C93.3094,-3401.4227 140.199,-4098.5818 204,-4166 213.8112,-4176.3674 227.3536,-4182.1107 241.3372,-4185.1074"/>
-<polygon fill="#191970" stroke="#191970" points="88.713,-3273.4785 84.5939,-3263.7172 81.7268,-3273.9167 88.713,-3273.4785"/>
+<path fill="none" stroke="#191970" d="M85.0239,-3273.9275C92.0611,-3407.4007 135.0493,-4168.4093 204,-4242 209.4897,-4247.8591 216.1702,-4252.2454 223.4532,-4255.4957"/>
+<polygon fill="#191970" stroke="#191970" points="88.5011,-3273.3977 84.4853,-3263.5934 81.5106,-3273.7621 88.5011,-3273.3977"/>
 </g>
 <!-- Node406 -->
 <g id="node415" class="node">
 <title>Node406</title>
-<g id="a_node415"><a xlink:href="classtvm_1_1instrument_1_1PassInstrumentNode.html" target="_top" xlink:title="PassInstrumentNode forms an instrument implementation. It provides API for users to register callback...">
-<polygon fill="#ffffff" stroke="#000000" points="204,-4137.5 204,-4156.5 406,-4156.5 406,-4137.5 204,-4137.5"/>
-<text text-anchor="middle" x="305" y="-4144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::instrument::PassInstrumentNode</text>
+<g id="a_node415"><a xlink:href="classtvm_1_1EnvFuncNode.html" target="_top" xlink:title="A serializable function backed by TVM&#39;s global environment. ">
+<polygon fill="#ffffff" stroke="#000000" points="251.5,-4213.5 251.5,-4232.5 358.5,-4232.5 358.5,-4213.5 251.5,-4213.5"/>
+<text text-anchor="middle" x="305" y="-4220.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::EnvFuncNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node406 -->
 <g id="edge410" class="edge">
 <title>Node0&#45;&gt;Node406</title>
-<path fill="none" stroke="#191970" d="M85.3498,-3273.8828C93.9562,-3398.0382 142.7554,-4063.6463 204,-4128 207.4441,-4131.6189 211.343,-4134.6735 215.5561,-4137.2439"/>
-<polygon fill="#191970" stroke="#191970" points="88.8204,-3273.3331 84.6434,-3263.5964 81.8369,-3273.8128 88.8204,-3273.3331"/>
+<path fill="none" stroke="#191970" d="M85.104,-3273.566C92.585,-3403.042 137.5619,-4133.4301 204,-4204 216.1081,-4216.8611 233.956,-4222.6164 251.2936,-4224.8384"/>
+<polygon fill="#191970" stroke="#191970" points="88.5948,-3273.3035 84.5296,-3263.5196 81.6062,-3273.7032 88.5948,-3273.3035"/>
 </g>
 <!-- Node407 -->
 <g id="node416" class="node">
 <title>Node407</title>
-<g id="a_node416"><a xlink:href="classtvm_1_1IRModuleNode.html" target="_top" xlink:title="IRModule that holds functions and type definitions. ">
-<polygon fill="#ffffff" stroke="#000000" points="248.5,-4099.5 248.5,-4118.5 361.5,-4118.5 361.5,-4099.5 248.5,-4099.5"/>
-<text text-anchor="middle" x="305" y="-4106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IRModuleNode</text>
+<g id="a_node416"><a xlink:href="classtvm_1_1GenericFuncNode.html" target="_top" xlink:title="Represents a generic function that can be specialized on a per&#45;target basis. ">
+<polygon fill="#ffffff" stroke="#000000" points="241.5,-4175.5 241.5,-4194.5 368.5,-4194.5 368.5,-4175.5 241.5,-4175.5"/>
+<text text-anchor="middle" x="305" y="-4182.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::GenericFuncNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node407 -->
 <g id="edge411" class="edge">
 <title>Node0&#45;&gt;Node407</title>
-<path fill="none" stroke="#191970" d="M85.4706,-3273.7724C94.6224,-3394.4557 145.3024,-4028.6993 204,-4090 215.476,-4101.985 231.9433,-4107.7696 248.2608,-4110.2771"/>
-<polygon fill="#191970" stroke="#191970" points="88.9557,-3273.4424 84.7157,-3263.733 81.9754,-3273.9673 88.9557,-3273.4424"/>
+<path fill="none" stroke="#191970" d="M85.2358,-3273.9533C93.3094,-3401.4227 140.199,-4098.5818 204,-4166 213.8112,-4176.3674 227.3536,-4182.1107 241.3372,-4185.1074"/>
+<polygon fill="#191970" stroke="#191970" points="88.713,-3273.4785 84.5939,-3263.7172 81.7268,-3273.9167 88.713,-3273.4785"/>
 </g>
 <!-- Node408 -->
 <g id="node417" class="node">
 <title>Node408</title>
-<g id="a_node417"><a xlink:href="classtvm_1_1LinkedParamNode.html" target="_top" xlink:title="Describes one parameter that should be linked into the generated module. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-4061.5 239.5,-4080.5 370.5,-4080.5 370.5,-4061.5 239.5,-4061.5"/>
-<text text-anchor="middle" x="305" y="-4068.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::LinkedParamNode</text>
+<g id="a_node417"><a xlink:href="classtvm_1_1instrument_1_1PassInstrumentNode.html" target="_top" xlink:title="PassInstrumentNode forms an instrument implementation. It provides API for users to register callback...">
+<polygon fill="#ffffff" stroke="#000000" points="204,-4137.5 204,-4156.5 406,-4156.5 406,-4137.5 204,-4137.5"/>
+<text text-anchor="middle" x="305" y="-4144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::instrument::PassInstrumentNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node408 -->
 <g id="edge412" class="edge">
 <title>Node0&#45;&gt;Node408</title>
-<path fill="none" stroke="#191970" d="M85.5962,-3273.593C95.3007,-3390.5803 147.8353,-3993.736 204,-4052 213.411,-4061.7627 226.1358,-4067.4034 239.3774,-4070.5091"/>
-<polygon fill="#191970" stroke="#191970" points="89.0791,-3273.2407 84.7706,-3263.5615 82.1027,-3273.8149 89.0791,-3273.2407"/>
+<path fill="none" stroke="#191970" d="M85.3498,-3273.8828C93.9562,-3398.0382 142.7554,-4063.6463 204,-4128 207.4441,-4131.6189 211.343,-4134.6735 215.5561,-4137.2439"/>
+<polygon fill="#191970" stroke="#191970" points="88.8204,-3273.3331 84.6434,-3263.5964 81.8369,-3273.8128 88.8204,-3273.3331"/>
 </g>
 <!-- Node409 -->
 <g id="node418" class="node">
 <title>Node409</title>
-<g id="a_node418"><a xlink:href="classtvm_1_1MemoryInfoNode.html" target="_top" xlink:title="Memory information of special memory region. Use MemoryInfo as its container type. ">
-<polygon fill="#ffffff" stroke="#000000" points="242,-4023.5 242,-4042.5 368,-4042.5 368,-4023.5 242,-4023.5"/>
-<text text-anchor="middle" x="305" y="-4030.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::MemoryInfoNode</text>
+<g id="a_node418"><a xlink:href="classtvm_1_1IRModuleNode.html" target="_top" xlink:title="IRModule that holds functions and type definitions. ">
+<polygon fill="#ffffff" stroke="#000000" points="248.5,-4099.5 248.5,-4118.5 361.5,-4118.5 361.5,-4099.5 248.5,-4099.5"/>
+<text text-anchor="middle" x="305" y="-4106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IRModuleNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node409 -->
 <g id="edge413" class="edge">
 <title>Node0&#45;&gt;Node409</title>
-<path fill="none" stroke="#191970" d="M84.186,-3273.6608C85.6226,-3381.7548 98.0281,-3902.847 204,-4013 213.9762,-4023.3698 227.6653,-4029.1956 241.7457,-4032.3098"/>
-<polygon fill="#191970" stroke="#191970" points="87.6844,-3273.4885 84.0687,-3263.5297 80.6848,-3273.5696 87.6844,-3273.4885"/>
+<path fill="none" stroke="#191970" d="M85.4706,-3273.7724C94.6224,-3394.4557 145.3024,-4028.6993 204,-4090 215.476,-4101.985 231.9433,-4107.7696 248.2608,-4110.2771"/>
+<polygon fill="#191970" stroke="#191970" points="88.9557,-3273.4424 84.7157,-3263.733 81.9754,-3273.9673 88.9557,-3273.4424"/>
 </g>
 <!-- Node410 -->
 <g id="node419" class="node">
 <title>Node410</title>
-<g id="a_node419"><a xlink:href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" target="_top" xlink:title="The argument information. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-3974 247,-4004 363,-4004 363,-3974 247,-3974"/>
-<text text-anchor="start" x="255" y="-3992" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-3981" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfoNode</text>
+<g id="a_node419"><a xlink:href="classtvm_1_1LinkedParamNode.html" target="_top" xlink:title="Describes one parameter that should be linked into the generated module. ">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-4061.5 239.5,-4080.5 370.5,-4080.5 370.5,-4061.5 239.5,-4061.5"/>
+<text text-anchor="middle" x="305" y="-4068.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::LinkedParamNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node410 -->
 <g id="edge414" class="edge">
 <title>Node0&#45;&gt;Node410</title>
-<path fill="none" stroke="#191970" d="M84.5164,-3273.9352C87.6227,-3378.1534 107.1071,-3859.5307 204,-3964 215.1169,-3975.9861 230.996,-3982.622 246.8811,-3986.1925"/>
-<polygon fill="#191970" stroke="#191970" points="88.0125,-3273.7421 84.2329,-3263.8444 81.0152,-3273.9388 88.0125,-3273.7421"/>
+<path fill="none" stroke="#191970" d="M85.5962,-3273.593C95.3007,-3390.5803 147.8353,-3993.736 204,-4052 213.411,-4061.7627 226.1358,-4067.4034 239.3774,-4070.5091"/>
+<polygon fill="#191970" stroke="#191970" points="89.0791,-3273.2407 84.7706,-3263.5615 82.1027,-3273.8149 89.0791,-3273.2407"/>
+</g>
+<!-- Node411 -->
+<g id="node420" class="node">
+<title>Node411</title>
+<g id="a_node420"><a xlink:href="classtvm_1_1MemoryInfoNode.html" target="_top" xlink:title="Memory information of special memory region. Use MemoryInfo as its container type. ">
+<polygon fill="#ffffff" stroke="#000000" points="242,-4023.5 242,-4042.5 368,-4042.5 368,-4023.5 242,-4023.5"/>
+<text text-anchor="middle" x="305" y="-4030.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::MemoryInfoNode</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node411 -->
+<g id="edge415" class="edge">
+<title>Node0&#45;&gt;Node411</title>
+<path fill="none" stroke="#191970" d="M84.186,-3273.6608C85.6226,-3381.7548 98.0281,-3902.847 204,-4013 213.9762,-4023.3698 227.6653,-4029.1956 241.7457,-4032.3098"/>
+<polygon fill="#191970" stroke="#191970" points="87.6844,-3273.4885 84.0687,-3263.5297 80.6848,-3273.5696 87.6844,-3273.4885"/>
 </g>
 <!-- Node412 -->
 <g id="node421" class="node">
 <title>Node412</title>
-<g id="a_node421"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" target="_top" xlink:title="The builder&#39;s input, containing an IRModule and the target. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-3925 247,-3955 363,-3955 363,-3925 247,-3925"/>
-<text text-anchor="start" x="255" y="-3943" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-3932" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderInputNode</text>
+<g id="a_node421"><a xlink:href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" target="_top" xlink:title="The argument information. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-3974 247,-4004 363,-4004 363,-3974 247,-3974"/>
+<text text-anchor="start" x="255" y="-3992" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-3981" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node412 -->
 <g id="edge416" class="edge">
 <title>Node0&#45;&gt;Node412</title>
+<path fill="none" stroke="#191970" d="M84.5164,-3273.9352C87.6227,-3378.1534 107.1071,-3859.5307 204,-3964 215.1169,-3975.9861 230.996,-3982.622 246.8811,-3986.1925"/>
+<polygon fill="#191970" stroke="#191970" points="88.0125,-3273.7421 84.2329,-3263.8444 81.0152,-3273.9388 88.0125,-3273.7421"/>
+</g>
+<!-- Node414 -->
+<g id="node423" class="node">
+<title>Node414</title>
+<g id="a_node423"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" target="_top" xlink:title="The builder&#39;s input, containing an IRModule and the target. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-3925 247,-3955 363,-3955 363,-3925 247,-3925"/>
+<text text-anchor="start" x="255" y="-3943" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-3932" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderInputNode</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node414 -->
+<g id="edge418" class="edge">
+<title>Node0&#45;&gt;Node414</title>
 <path fill="none" stroke="#191970" d="M84.782,-3273.7945C89.1167,-3373.364 113.3873,-3818.4852 204,-3915 215.1895,-3926.9183 231.09,-3933.5344 246.9722,-3937.1075"/>
 <polygon fill="#191970" stroke="#191970" points="88.272,-3273.481 84.358,-3263.6357 81.2781,-3273.773 88.272,-3273.481"/>
 </g>
-<!-- Node413 -->
-<g id="node422" class="node">
-<title>Node413</title>
-<g id="a_node422"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderNode.html" target="_top" xlink:title="The abstract builder interface. ">
+<!-- Node415 -->
+<g id="node424" class="node">
+<title>Node415</title>
+<g id="a_node424"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderNode.html" target="_top" xlink:title="The abstract builder interface. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3876 247,-3906 363,-3906 363,-3876 247,-3876"/>
 <text text-anchor="start" x="255" y="-3894" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3883" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node413 -->
-<g id="edge417" class="edge">
-<title>Node0&#45;&gt;Node413</title>
+<!-- Node0&#45;&gt;Node415 -->
+<g id="edge419" class="edge">
+<title>Node0&#45;&gt;Node415</title>
 <path fill="none" stroke="#191970" d="M85.0952,-3273.8197C90.7495,-3368.9158 119.6999,-3777.4623 204,-3866 215.2106,-3877.7741 231.0219,-3884.3595 246.8136,-3887.9491"/>
 <polygon fill="#191970" stroke="#191970" points="88.5886,-3273.6011 84.519,-3263.819 81.6001,-3274.0038 88.5886,-3273.6011"/>
 </g>
-<!-- Node415 -->
-<g id="node424" class="node">
-<title>Node415</title>
-<g id="a_node424"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" target="_top" xlink:title="The builder&#39;s output, containing the artifact path or error message if any. ">
+<!-- Node417 -->
+<g id="node426" class="node">
+<title>Node417</title>
+<g id="a_node426"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" target="_top" xlink:title="The builder&#39;s output, containing the artifact path or error message if any. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3827 247,-3857 363,-3857 363,-3827 247,-3827"/>
 <text text-anchor="start" x="255" y="-3845" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3834" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderResultNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node415 -->
-<g id="edge419" class="edge">
-<title>Node0&#45;&gt;Node415</title>
+<!-- Node0&#45;&gt;Node417 -->
+<g id="edge421" class="edge">
+<title>Node0&#45;&gt;Node417</title>
 <path fill="none" stroke="#191970" d="M85.469,-3273.9314C92.5436,-3364.5132 126.0152,-3736.4268 204,-3817 215.3066,-3828.6819 231.1465,-3835.2399 246.9347,-3838.8328"/>
 <polygon fill="#191970" stroke="#191970" points="88.9542,-3273.6028 84.7047,-3263.8975 81.9744,-3274.1345 88.9542,-3273.6028"/>
 </g>
-<!-- Node416 -->
-<g id="node425" class="node">
-<title>Node416</title>
-<g id="a_node425"><a xlink:href="classtvm_1_1meta__schedule_1_1CostModelNode.html" target="_top" xlink:title="Cost model. ">
+<!-- Node418 -->
+<g id="node427" class="node">
+<title>Node418</title>
+<g id="a_node427"><a xlink:href="classtvm_1_1meta__schedule_1_1CostModelNode.html" target="_top" xlink:title="Cost model. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3778 247,-3808 363,-3808 363,-3778 247,-3778"/>
 <text text-anchor="start" x="255" y="-3796" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3785" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModelNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node416 -->
-<g id="edge420" class="edge">
-<title>Node0&#45;&gt;Node416</title>
+<!-- Node0&#45;&gt;Node418 -->
+<g id="edge422" class="edge">
+<title>Node0&#45;&gt;Node418</title>
 <path fill="none" stroke="#191970" d="M85.918,-3274.0715C94.5224,-3359.9456 132.3109,-3695.3516 204,-3768 215.3557,-3779.5077 231.1162,-3786.0246 246.8136,-3789.6339"/>
 <polygon fill="#191970" stroke="#191970" points="89.3761,-3273.4716 84.916,-3263.8613 82.4095,-3274.1553 89.3761,-3273.4716"/>
 </g>
-<!-- Node418 -->
-<g id="node427" class="node">
-<title>Node418</title>
-<g id="a_node427"><a xlink:href="classtvm_1_1meta__schedule_1_1DatabaseNode.html" target="_top" xlink:title="tvm::meta_schedule\l::DatabaseNode">
+<!-- Node420 -->
+<g id="node429" class="node">
+<title>Node420</title>
+<g id="a_node429"><a xlink:href="classtvm_1_1meta__schedule_1_1DatabaseNode.html" target="_top" xlink:title="tvm::meta_schedule\l::DatabaseNode">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3729 247,-3759 363,-3759 363,-3729 247,-3729"/>
 <text text-anchor="start" x="255" y="-3747" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3736" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DatabaseNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node418 -->
-<g id="edge422" class="edge">
-<title>Node0&#45;&gt;Node418</title>
+<!-- Node0&#45;&gt;Node420 -->
+<g id="edge424" class="edge">
+<title>Node0&#45;&gt;Node420</title>
 <path fill="none" stroke="#191970" d="M86.4274,-3273.9271C96.6211,-3354.3933 138.4966,-3654.1423 204,-3719 215.4884,-3730.3752 231.2888,-3736.8523 246.982,-3740.4658"/>
 <polygon fill="#191970" stroke="#191970" points="89.8629,-3273.1912 85.1542,-3263.7002 82.9165,-3274.056 89.8629,-3273.1912"/>
 </g>
-<!-- Node420 -->
-<g id="node429" class="node">
-<title>Node420</title>
-<g id="a_node429"><a xlink:href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html" target="_top" xlink:title="A tuning task extracted from the high&#45;level IR. ">
+<!-- Node422 -->
+<g id="node431" class="node">
+<title>Node422</title>
+<g id="a_node431"><a xlink:href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html" target="_top" xlink:title="A tuning task extracted from the high&#45;level IR. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3680 247,-3710 363,-3710 363,-3680 247,-3680"/>
 <text text-anchor="start" x="255" y="-3698" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3687" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExtractedTaskNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node420 -->
-<g id="edge424" class="edge">
-<title>Node0&#45;&gt;Node420</title>
+<!-- Node0&#45;&gt;Node422 -->
+<g id="edge426" class="edge">
+<title>Node0&#45;&gt;Node422</title>
 <path fill="none" stroke="#191970" d="M87.0392,-3273.7295C98.9369,-3348.4699 144.6325,-3612.8576 204,-3670 215.5831,-3681.1489 231.3196,-3687.5675 246.9217,-3691.1973"/>
 <polygon fill="#191970" stroke="#191970" points="90.4848,-3273.1087 85.4769,-3263.7722 83.5694,-3274.1939 90.4848,-3273.1087"/>
 </g>
-<!-- Node421 -->
-<g id="node430" class="node">
-<title>Node421</title>
-<g id="a_node430"><a xlink:href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html" target="_top" xlink:title="Extractor for features from measure candidates for use in cost model. ">
+<!-- Node423 -->
+<g id="node432" class="node">
+<title>Node423</title>
+<g id="a_node432"><a xlink:href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html" target="_top" xlink:title="Extractor for features from measure candidates for use in cost model. ">
 <polygon fill="#ffffff" stroke="#000000" points="241,-3631 241,-3661 369,-3661 369,-3631 241,-3631"/>
 <text text-anchor="start" x="249" y="-3649" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3638" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FeatureExtractorNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node421 -->
-<g id="edge425" class="edge">
-<title>Node0&#45;&gt;Node421</title>
+<!-- Node0&#45;&gt;Node423 -->
+<g id="edge427" class="edge">
+<title>Node0&#45;&gt;Node423</title>
 <path fill="none" stroke="#191970" d="M87.8113,-3273.5828C101.5778,-3342.3789 150.7372,-3571.5084 204,-3621 214.1894,-3630.4679 227.3866,-3636.5021 240.8605,-3640.3115"/>
 <polygon fill="#191970" stroke="#191970" points="91.2192,-3272.774 85.8466,-3263.6425 84.352,-3274.1314 91.2192,-3272.774"/>
 </g>
-<!-- Node423 -->
-<g id="node432" class="node">
-<title>Node423</title>
-<g id="a_node432"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html" target="_top" xlink:title="Rules to apply after measure results is available. ">
+<!-- Node425 -->
+<g id="node434" class="node">
+<title>Node425</title>
+<g id="a_node434"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html" target="_top" xlink:title="Rules to apply after measure results is available. ">
 <polygon fill="#ffffff" stroke="#000000" points="239.5,-3582 239.5,-3612 370.5,-3612 370.5,-3582 239.5,-3582"/>
 <text text-anchor="start" x="247.5" y="-3600" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallbackNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node423 -->
-<g id="edge427" class="edge">
-<title>Node0&#45;&gt;Node423</title>
+<!-- Node0&#45;&gt;Node425 -->
+<g id="edge429" class="edge">
+<title>Node0&#45;&gt;Node425</title>
 <path fill="none" stroke="#191970" d="M85.3169,-3273.8379C90.1357,-3329.7815 111.741,-3490.0479 204,-3572 213.9263,-3580.8174 226.4784,-3586.6324 239.3302,-3590.4424"/>
 <polygon fill="#191970" stroke="#191970" points="88.7821,-3273.2508 84.524,-3263.5493 81.8028,-3273.7887 88.7821,-3273.2508"/>
 </g>
-<!-- Node425 -->
-<g id="node434" class="node">
-<title>Node425</title>
-<g id="a_node434"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" target="_top" xlink:title="The schedule (with input shapes) to be measured. ">
+<!-- Node427 -->
+<g id="node436" class="node">
+<title>Node427</title>
+<g id="a_node436"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" target="_top" xlink:title="The schedule (with input shapes) to be measured. ">
 <polygon fill="#ffffff" stroke="#000000" points="235.5,-3533 235.5,-3563 374.5,-3563 374.5,-3533 235.5,-3533"/>
 <text text-anchor="start" x="243.5" y="-3551" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3540" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCandidateNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node425 -->
-<g id="edge429" class="edge">
-<title>Node0&#45;&gt;Node425</title>
+<!-- Node0&#45;&gt;Node427 -->
+<g id="edge431" class="edge">
+<title>Node0&#45;&gt;Node427</title>
 <path fill="none" stroke="#191970" d="M86.8153,-3273.7416C95.0124,-3323.656 123.601,-3455.703 204,-3523 213.0037,-3530.5364 223.9465,-3535.8575 235.2632,-3539.6022"/>
 <polygon fill="#191970" stroke="#191970" points="90.241,-3272.9908 85.2562,-3263.6419 83.3229,-3274.0588 90.241,-3272.9908"/>
 </g>
-<!-- Node426 -->
-<g id="node435" class="node">
-<title>Node426</title>
-<g id="a_node435"><a xlink:href="classtvm_1_1meta__schedule_1_1MetaScheduleContextNode.html" target="_top" xlink:title="A context manager interface for the integration. ">
+<!-- Node428 -->
+<g id="node437" class="node">
+<title>Node428</title>
+<g id="a_node437"><a xlink:href="classtvm_1_1meta__schedule_1_1MetaScheduleContextNode.html" target="_top" xlink:title="A context manager interface for the integration. ">
 <polygon fill="#ffffff" stroke="#000000" points="227.5,-3484 227.5,-3514 382.5,-3514 382.5,-3484 227.5,-3484"/>
 <text text-anchor="start" x="235.5" y="-3502" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3491" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MetaScheduleContextNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node426 -->
-<g id="edge430" class="edge">
-<title>Node0&#45;&gt;Node426</title>
+<!-- Node0&#45;&gt;Node428 -->
+<g id="edge432" class="edge">
+<title>Node0&#45;&gt;Node428</title>
 <path fill="none" stroke="#191970" d="M88.8907,-3273.5914C100.7454,-3316.8644 135.2326,-3420.9537 204,-3474 211.0085,-3479.4062 219.0343,-3483.6588 227.4312,-3487.0013"/>
 <polygon fill="#191970" stroke="#191970" points="92.2302,-3272.528 86.3018,-3263.7471 85.4604,-3274.3085 92.2302,-3272.528"/>
 </g>
-<!-- Node428 -->
-<g id="node437" class="node">
-<title>Node428</title>
-<g id="a_node437"><a xlink:href="classtvm_1_1meta__schedule_1_1MutatorNode.html" target="_top" xlink:title="Mutator is designed to mutate the trace to explore the design space. ">
+<!-- Node430 -->
+<g id="node439" class="node">
+<title>Node430</title>
+<g id="a_node439"><a xlink:href="classtvm_1_1meta__schedule_1_1MutatorNode.html" target="_top" xlink:title="Mutator is designed to mutate the trace to explore the design space. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3435 247,-3465 363,-3465 363,-3435 247,-3435"/>
 <text text-anchor="start" x="255" y="-3453" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3442" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MutatorNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node428 -->
-<g id="edge432" class="edge">
-<title>Node0&#45;&gt;Node428</title>
+<!-- Node0&#45;&gt;Node430 -->
+<g id="edge434" class="edge">
+<title>Node0&#45;&gt;Node430</title>
 <path fill="none" stroke="#191970" d="M91.7461,-3272.8082C107.3946,-3308.3705 146.2731,-3385.4416 204,-3425 216.6658,-3433.6795 232.0554,-3439.3513 246.9637,-3443.056"/>
 <polygon fill="#191970" stroke="#191970" points="94.9444,-3271.3855 87.7953,-3263.5662 88.5078,-3274.1371 94.9444,-3271.3855"/>
 </g>
-<!-- Node430 -->
-<g id="node439" class="node">
-<title>Node430</title>
-<g id="a_node439"><a xlink:href="classtvm_1_1meta__schedule_1_1PostprocNode.html" target="_top" xlink:title="Rules to apply a postprocessor to a schedule. ">
+<!-- Node432 -->
+<g id="node441" class="node">
+<title>Node432</title>
+<g id="a_node441"><a xlink:href="classtvm_1_1meta__schedule_1_1PostprocNode.html" target="_top" xlink:title="Rules to apply a postprocessor to a schedule. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3386 247,-3416 363,-3416 363,-3386 247,-3386"/>
 <text text-anchor="start" x="255" y="-3404" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PostprocNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node430 -->
-<g id="edge434" class="edge">
-<title>Node0&#45;&gt;Node430</title>
+<!-- Node0&#45;&gt;Node432 -->
+<g id="edge436" class="edge">
+<title>Node0&#45;&gt;Node432</title>
 <path fill="none" stroke="#191970" d="M96.6423,-3272.1576C116.3758,-3299.0819 157.1326,-3349.2802 204,-3376 217.025,-3383.4257 232.221,-3388.6643 246.811,-3392.3533"/>
 <polygon fill="#191970" stroke="#191970" points="99.2356,-3269.7679 90.5636,-3263.6814 93.5472,-3273.8474 99.2356,-3269.7679"/>
 </g>
-<!-- Node432 -->
-<g id="node441" class="node">
-<title>Node432</title>
-<g id="a_node441"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" target="_top" xlink:title="A class to asynchronously fetch runner&#39;s output. ">
+<!-- Node434 -->
+<g id="node443" class="node">
+<title>Node434</title>
+<g id="a_node443"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" target="_top" xlink:title="A class to asynchronously fetch runner&#39;s output. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3337 247,-3367 363,-3367 363,-3337 247,-3337"/>
 <text text-anchor="start" x="255" y="-3355" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerFutureNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node432 -->
-<g id="edge436" class="edge">
-<title>Node0&#45;&gt;Node432</title>
+<!-- Node0&#45;&gt;Node434 -->
+<g id="edge438" class="edge">
+<title>Node0&#45;&gt;Node434</title>
 <path fill="none" stroke="#191970" d="M105.3395,-3269.7558C128.5386,-3286.203 167.2341,-3311.6897 204,-3327 217.5074,-3332.6248 232.5785,-3337.193 246.8716,-3340.8101"/>
 <polygon fill="#191970" stroke="#191970" points="107.1226,-3266.727 96.9608,-3263.7288 103.035,-3272.4096 107.1226,-3266.727"/>
 </g>
-<!-- Node433 -->
-<g id="node442" class="node">
-<title>Node433</title>
-<g id="a_node442"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" target="_top" xlink:title="Runner&#39;s input containing path of artifact, type of device and argument info. ">
+<!-- Node435 -->
+<g id="node444" class="node">
+<title>Node435</title>
+<g id="a_node444"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" target="_top" xlink:title="Runner&#39;s input containing path of artifact, type of device and argument info. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3288 247,-3318 363,-3318 363,-3288 247,-3288"/>
 <text text-anchor="start" x="255" y="-3306" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3295" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerInputNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node433 -->
-<g id="edge437" class="edge">
-<title>Node0&#45;&gt;Node433</title>
+<!-- Node0&#45;&gt;Node435 -->
+<g id="edge439" class="edge">
+<title>Node0&#45;&gt;Node435</title>
 <path fill="none" stroke="#191970" d="M136.8245,-3265.7122C169.949,-3273.0566 212.6813,-3282.5311 246.7813,-3290.0918"/>
 <polygon fill="#191970" stroke="#191970" points="137.3936,-3262.2535 126.8731,-3263.5058 135.8783,-3269.0875 137.3936,-3262.2535"/>
 </g>
-<!-- Node434 -->
-<g id="node443" class="node">
-<title>Node434</title>
-<g id="a_node443"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerNode.html" target="_top" xlink:title="The abstract runner interface. ">
+<!-- Node436 -->
+<g id="node445" class="node">
+<title>Node436</title>
+<g id="a_node445"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerNode.html" target="_top" xlink:title="The abstract runner interface. ">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3239 247,-3269 363,-3269 363,-3239 247,-3239"/>
 <text text-anchor="start" x="255" y="-3257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3246" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node434 -->
-<g id="edge438" class="edge">
-<title>Node0&#45;&gt;Node434</title>
+<!-- Node0&#45;&gt;Node436 -->
+<g id="edge440" class="edge">
+<title>Node0&#45;&gt;Node436</title>
 <path fill="none" stroke="#191970" d="M153.6079,-3254C183.5653,-3254 218.191,-3254 246.761,-3254"/>
 <polygon fill="#191970" stroke="#191970" points="153.224,-3250.5001 143.2239,-3254 153.2239,-3257.5001 153.224,-3250.5001"/>
 </g>
-<!-- Node436 -->
-<g id="node445" class="node">
-<title>Node436</title>
-<g id="a_node445"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" target="_top" xlink:title="Runner&#39;s output containing measurement result of MeasureCandidate or error msg if any...">
+<!-- Node438 -->
+<g id="node447" class="node">
+<title>Node438</title>
+<g id="a_node447"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" target="_top" xlink:title="Runner&#39;s output containing measurement result of MeasureCandidate or error msg if any...">
 <polygon fill="#ffffff" stroke="#000000" points="247,-3190 247,-3220 363,-3220 363,-3190 247,-3190"/>
 <text text-anchor="start" x="255" y="-3208" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
 <text text-anchor="middle" x="305" y="-3197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerResultNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node436 -->
-<g id="edge440" class="edge">
-<title>Node0&#45;&gt;Node436</title>
+<!-- Node0&#45;&gt;Node438 -->
+<g id="edge442" class="edge">
+<title>Node0&#45;&gt;Node438</title>
 <path fill="none" stroke="#191970" d="M136.8245,-3242.2878C169.949,-3234.9434 212.6813,-3225.4689 246.7813,-3217.9082"/>
 <polygon fill="#191970" stroke="#191970" points="135.8783,-3238.9125 126.8731,-3244.4942 137.3936,-3245.7465 135.8783,-3238.9125"/>
 </g>
-<!-- Node437 -->
-<g id="node446" class="node">
-<title>Node437</title>
-<g id="a_node446"><a xlink:href="classtvm_1_1meta__schedule_1_1ScheduleRuleNode.html" target="_top" xlink:title="Rules to modify a block in a schedule. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-3141 247,-3171 363,-3171 363,-3141 247,-3141"/>
-<text text-anchor="start" x="255" y="-3159" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-3148" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRuleNode</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node437 -->
-<g id="edge441" class="edge">
-<title>Node0&#45;&gt;Node437</title>
-<path fill="none" stroke="#191970" d="M104.9018,-3238.2151C128.0034,-3221.4815 166.8725,-3195.3892 204,-3180 217.486,-3174.4101 232.5493,-3169.9548 246.8416,-3166.4758"/>
-<polygon fill="#191970" stroke="#191970" points="102.5592,-3235.5933 96.5765,-3244.3373 106.7063,-3241.2327 102.5592,-3235.5933"/>
-</g>
 <!-- Node439 -->
 <g id="node448" class="node">
 <title>Node439</title>
-<g id="a_node448"><a xlink:href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" target="_top" xlink:title="The search strategy for measure candidates generation. ">
-<polygon fill="#ffffff" stroke="#000000" points="244,-3092 244,-3122 366,-3122 366,-3092 244,-3092"/>
-<text text-anchor="start" x="252" y="-3110" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-3099" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchStrategyNode</text>
+<g id="a_node448"><a xlink:href="classtvm_1_1meta__schedule_1_1ScheduleRuleNode.html" target="_top" xlink:title="Rules to modify a block in a schedule. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-3141 247,-3171 363,-3171 363,-3141 247,-3141"/>
+<text text-anchor="start" x="255" y="-3159" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-3148" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRuleNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node439 -->
 <g id="edge443" class="edge">
 <title>Node0&#45;&gt;Node439</title>
-<path fill="none" stroke="#191970" d="M96.3187,-3235.9901C115.8662,-3208.8573 156.6605,-3157.8239 204,-3131 216.1525,-3124.114 230.2035,-3119.1978 243.8898,-3115.6897"/>
-<polygon fill="#191970" stroke="#191970" points="93.4278,-3234.0164 90.5253,-3244.206 99.1486,-3238.0505 93.4278,-3234.0164"/>
+<path fill="none" stroke="#191970" d="M104.9018,-3238.2151C128.0034,-3221.4815 166.8725,-3195.3892 204,-3180 217.486,-3174.4101 232.5493,-3169.9548 246.8416,-3166.4758"/>
+<polygon fill="#191970" stroke="#191970" points="102.5592,-3235.5933 96.5765,-3244.3373 106.7063,-3241.2327 102.5592,-3235.5933"/>
 </g>
 <!-- Node441 -->
 <g id="node450" class="node">
 <title>Node441</title>
-<g id="a_node450"><a xlink:href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" target="_top" xlink:title="The abstract class for design space generation. ">
-<polygon fill="#ffffff" stroke="#000000" points="242,-3043 242,-3073 368,-3073 368,-3043 242,-3043"/>
-<text text-anchor="start" x="250" y="-3061" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-3050" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SpaceGeneratorNode</text>
+<g id="a_node450"><a xlink:href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" target="_top" xlink:title="The search strategy for measure candidates generation. ">
+<polygon fill="#ffffff" stroke="#000000" points="244,-3092 244,-3122 366,-3122 366,-3092 244,-3092"/>
+<text text-anchor="start" x="252" y="-3110" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-3099" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchStrategyNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node441 -->
 <g id="edge445" class="edge">
 <title>Node0&#45;&gt;Node441</title>
-<path fill="none" stroke="#191970" d="M91.6811,-3235.0331C107.2186,-3199.1796 145.9157,-3121.5218 204,-3082 215.2501,-3074.3452 228.6492,-3069.1181 241.9513,-3065.5524"/>
-<polygon fill="#191970" stroke="#191970" points="88.4124,-3233.777 87.7605,-3244.3517 94.8646,-3236.4916 88.4124,-3233.777"/>
+<path fill="none" stroke="#191970" d="M96.3187,-3235.9901C115.8662,-3208.8573 156.6605,-3157.8239 204,-3131 216.1525,-3124.114 230.2035,-3119.1978 243.8898,-3115.6897"/>
+<polygon fill="#191970" stroke="#191970" points="93.4278,-3234.0164 90.5253,-3244.206 99.1486,-3238.0505 93.4278,-3234.0164"/>
 </g>
 <!-- Node443 -->
 <g id="node452" class="node">
 <title>Node443</title>
-<g id="a_node452"><a xlink:href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" target="_top" xlink:title="The abstract interface of task schedulers. ">
-<polygon fill="#ffffff" stroke="#000000" points="246,-2994 246,-3024 364,-3024 364,-2994 246,-2994"/>
-<text text-anchor="start" x="254" y="-3012" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-3001" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
+<g id="a_node452"><a xlink:href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" target="_top" xlink:title="The abstract class for design space generation. ">
+<polygon fill="#ffffff" stroke="#000000" points="242,-3043 242,-3073 368,-3073 368,-3043 242,-3043"/>
+<text text-anchor="start" x="250" y="-3061" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-3050" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SpaceGeneratorNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node443 -->
 <g id="edge447" class="edge">
 <title>Node0&#45;&gt;Node443</title>
-<path fill="none" stroke="#191970" d="M88.8269,-3234.2741C100.5521,-3190.7122 134.7939,-3085.9749 204,-3033 216.0216,-3023.7979 231.0283,-3018.0507 245.7668,-3014.4818"/>
-<polygon fill="#191970" stroke="#191970" points="85.3791,-3233.6275 86.2686,-3244.185 92.157,-3235.3772 85.3791,-3233.6275"/>
+<path fill="none" stroke="#191970" d="M91.6811,-3235.0331C107.2186,-3199.1796 145.9157,-3121.5218 204,-3082 215.2501,-3074.3452 228.6492,-3069.1181 241.9513,-3065.5524"/>
+<polygon fill="#191970" stroke="#191970" points="88.4124,-3233.777 87.7605,-3244.3517 94.8646,-3236.4916 88.4124,-3233.777"/>
 </g>
 <!-- Node445 -->
 <g id="node454" class="node">
 <title>Node445</title>
-<g id="a_node454"><a xlink:href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" target="_top" xlink:title="The auto tuning context. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-2945 247,-2975 363,-2975 363,-2945 247,-2945"/>
-<text text-anchor="start" x="255" y="-2963" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-2952" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContextNode</text>
+<g id="a_node454"><a xlink:href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" target="_top" xlink:title="The abstract interface of task schedulers. ">
+<polygon fill="#ffffff" stroke="#000000" points="246,-2994 246,-3024 364,-3024 364,-2994 246,-2994"/>
+<text text-anchor="start" x="254" y="-3012" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-3001" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node445 -->
 <g id="edge449" class="edge">
 <title>Node0&#45;&gt;Node445</title>
-<path fill="none" stroke="#191970" d="M86.7538,-3234.1418C94.8062,-3183.9403 123.0832,-3051.1837 204,-2984 216.0638,-2973.9837 231.5928,-2968.0035 246.8386,-2964.4729"/>
-<polygon fill="#191970" stroke="#191970" points="83.2522,-3233.8908 85.2249,-3244.3003 90.1742,-3234.9326 83.2522,-3233.8908"/>
-</g>
-<!-- Node446 -->
-<g id="node455" class="node">
-<title>Node446</title>
-<g id="a_node455"><a xlink:href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" target="_top" xlink:title="The class of tuning records. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-2896 247,-2926 363,-2926 363,-2896 247,-2896"/>
-<text text-anchor="start" x="255" y="-2914" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-2903" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningRecordNode</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node446 -->
-<g id="edge450" class="edge">
-<title>Node0&#45;&gt;Node446</title>
-<path fill="none" stroke="#191970" d="M85.228,-3234.4093C89.8294,-3178.5014 110.9519,-3016.9635 204,-2935 215.9013,-2924.5164 231.5551,-2918.4044 246.9751,-2914.8972"/>
-<polygon fill="#191970" stroke="#191970" points="81.7362,-3234.1701 84.4941,-3244.3997 88.7174,-3234.683 81.7362,-3234.1701"/>
+<path fill="none" stroke="#191970" d="M88.8269,-3234.2741C100.5521,-3190.7122 134.7939,-3085.9749 204,-3033 216.0216,-3023.7979 231.0283,-3018.0507 245.7668,-3014.4818"/>
+<polygon fill="#191970" stroke="#191970" points="85.3791,-3233.6275 86.2686,-3244.185 92.157,-3235.3772 85.3791,-3233.6275"/>
 </g>
 <!-- Node447 -->
 <g id="node456" class="node">
 <title>Node447</title>
-<g id="a_node456"><a xlink:href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" target="_top" xlink:title="A workload, i.e. an IRModule and its structural hash. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-2847 247,-2877 363,-2877 363,-2847 247,-2847"/>
-<text text-anchor="start" x="255" y="-2865" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="305" y="-2854" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::WorkloadNode</text>
+<g id="a_node456"><a xlink:href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" target="_top" xlink:title="The auto tuning context. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-2945 247,-2975 363,-2975 363,-2945 247,-2945"/>
+<text text-anchor="start" x="255" y="-2963" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-2952" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContextNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node447 -->
 <g id="edge451" class="edge">
 <title>Node0&#45;&gt;Node447</title>
-<path fill="none" stroke="#191970" d="M87.7873,-3234.3469C101.4732,-3165.3065 150.3945,-2935.3848 204,-2886 215.731,-2875.1927 231.4216,-2868.9894 246.9323,-2865.4984"/>
-<polygon fill="#191970" stroke="#191970" points="84.3209,-3233.8366 85.8345,-3244.3227 91.1905,-3235.1814 84.3209,-3233.8366"/>
+<path fill="none" stroke="#191970" d="M86.7538,-3234.1418C94.8062,-3183.9403 123.0832,-3051.1837 204,-2984 216.0638,-2973.9837 231.5928,-2968.0035 246.8386,-2964.4729"/>
+<polygon fill="#191970" stroke="#191970" points="83.2522,-3233.8908 85.2249,-3244.3003 90.1742,-3234.9326 83.2522,-3233.8908"/>
 </g>
 <!-- Node448 -->
 <g id="node457" class="node">
 <title>Node448</title>
-<g id="a_node457"><a xlink:href="classtvm_1_1parser_1_1SourceMapNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node. ">
-<polygon fill="#ffffff" stroke="#000000" points="226,-2808.5 226,-2827.5 384,-2827.5 384,-2808.5 226,-2808.5"/>
-<text text-anchor="middle" x="305" y="-2815.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::parser::SourceMapNode</text>
+<g id="a_node457"><a xlink:href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" target="_top" xlink:title="The class of tuning records. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-2896 247,-2926 363,-2926 363,-2896 247,-2896"/>
+<text text-anchor="start" x="255" y="-2914" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-2903" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningRecordNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node448 -->
 <g id="edge452" class="edge">
 <title>Node0&#45;&gt;Node448</title>
-<path fill="none" stroke="#191970" d="M86.9333,-3234.1179C98.4448,-3158.8147 142.919,-2892.5791 204,-2837 210.3344,-2831.2361 217.8442,-2826.9658 225.866,-2823.8314"/>
-<polygon fill="#191970" stroke="#191970" points="83.4506,-3233.7416 85.4233,-3244.1511 90.3726,-3234.7834 83.4506,-3233.7416"/>
+<path fill="none" stroke="#191970" d="M85.228,-3234.4093C89.8294,-3178.5014 110.9519,-3016.9635 204,-2935 215.9013,-2924.5164 231.5551,-2918.4044 246.9751,-2914.8972"/>
+<polygon fill="#191970" stroke="#191970" points="81.7362,-3234.1701 84.4941,-3244.3997 88.7174,-3234.683 81.7362,-3234.1701"/>
 </g>
 <!-- Node449 -->
 <g id="node458" class="node">
 <title>Node449</title>
-<g id="a_node458"><a xlink:href="classtvm_1_1parser_1_1SourceNode.html" target="_top" xlink:title="tvm::parser::SourceNode">
-<polygon fill="#ffffff" stroke="#000000" points="236.5,-2770.5 236.5,-2789.5 373.5,-2789.5 373.5,-2770.5 236.5,-2770.5"/>
-<text text-anchor="middle" x="305" y="-2777.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::parser::SourceNode</text>
+<g id="a_node458"><a xlink:href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" target="_top" xlink:title="A workload, i.e. an IRModule and its structural hash. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-2847 247,-2877 363,-2877 363,-2847 247,-2847"/>
+<text text-anchor="start" x="255" y="-2865" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="305" y="-2854" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::WorkloadNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node449 -->
 <g id="edge453" class="edge">
 <title>Node0&#45;&gt;Node449</title>
-<path fill="none" stroke="#191970" d="M86.3929,-3234.3938C96.4523,-3155.2392 137.8771,-2860.5306 204,-2799 213.0127,-2790.6133 224.5043,-2785.3672 236.4838,-2782.1781"/>
-<polygon fill="#191970" stroke="#191970" points="82.9027,-3234.0984 85.1371,-3244.4549 89.8488,-3234.9655 82.9027,-3234.0984"/>
+<path fill="none" stroke="#191970" d="M87.7873,-3234.3469C101.4732,-3165.3065 150.3945,-2935.3848 204,-2886 215.731,-2875.1927 231.4216,-2868.9894 246.9323,-2865.4984"/>
+<polygon fill="#191970" stroke="#191970" points="84.3209,-3233.8366 85.8345,-3244.3227 91.1905,-3235.1814 84.3209,-3233.8366"/>
 </g>
 <!-- Node450 -->
 <g id="node459" class="node">
 <title>Node450</title>
-<g id="a_node459"><a xlink:href="structtvm_1_1PoolInfoNode.html" target="_top" xlink:title="Describes a pool of memory accessible by one or more targets. ">
-<polygon fill="#ffffff" stroke="#000000" points="251.5,-2732.5 251.5,-2751.5 358.5,-2751.5 358.5,-2732.5 251.5,-2732.5"/>
-<text text-anchor="middle" x="305" y="-2739.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PoolInfoNode</text>
+<g id="a_node459"><a xlink:href="classtvm_1_1parser_1_1SourceMapNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node. ">
+<polygon fill="#ffffff" stroke="#000000" points="226,-2808.5 226,-2827.5 384,-2827.5 384,-2808.5 226,-2808.5"/>
+<text text-anchor="middle" x="305" y="-2815.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::parser::SourceMapNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node450 -->
 <g id="edge454" class="edge">
 <title>Node0&#45;&gt;Node450</title>
-<path fill="none" stroke="#191970" d="M85.9703,-3234.3848C94.7313,-3151.162 132.8877,-2828.452 204,-2761 216.6215,-2749.0281 234.2794,-2743.4194 251.3066,-2741.0635"/>
-<polygon fill="#191970" stroke="#191970" points="82.4729,-3234.1807 84.9288,-3244.4869 89.436,-3234.8986 82.4729,-3234.1807"/>
+<path fill="none" stroke="#191970" d="M86.9333,-3234.1179C98.4448,-3158.8147 142.919,-2892.5791 204,-2837 210.3344,-2831.2361 217.8442,-2826.9658 225.866,-2823.8314"/>
+<polygon fill="#191970" stroke="#191970" points="83.4506,-3233.7416 85.4233,-3244.1511 90.3726,-3234.7834 83.4506,-3233.7416"/>
 </g>
 <!-- Node451 -->
 <g id="node460" class="node">
 <title>Node451</title>
-<g id="a_node460"><a xlink:href="classtvm_1_1RangeNode.html" target="_top" xlink:title="range over one dimension ">
-<polygon fill="#ffffff" stroke="#000000" points="256,-2694.5 256,-2713.5 354,-2713.5 354,-2694.5 256,-2694.5"/>
-<text text-anchor="middle" x="305" y="-2701.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::RangeNode</text>
+<g id="a_node460"><a xlink:href="classtvm_1_1parser_1_1SourceNode.html" target="_top" xlink:title="tvm::parser::SourceNode">
+<polygon fill="#ffffff" stroke="#000000" points="236.5,-2770.5 236.5,-2789.5 373.5,-2789.5 373.5,-2770.5 236.5,-2770.5"/>
+<text text-anchor="middle" x="305" y="-2777.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::parser::SourceNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node451 -->
 <g id="edge455" class="edge">
 <title>Node0&#45;&gt;Node451</title>
-<path fill="none" stroke="#191970" d="M85.6385,-3234.0042C93.2415,-3146.245 127.985,-2796.3038 204,-2723 217.6782,-2709.8097 237.4557,-2704.3058 255.8904,-2702.3758"/>
-<polygon fill="#191970" stroke="#191970" points="82.1323,-3233.9312 84.7773,-3244.1905 89.1074,-3234.521 82.1323,-3233.9312"/>
+<path fill="none" stroke="#191970" d="M86.3929,-3234.3938C96.4523,-3155.2392 137.8771,-2860.5306 204,-2799 213.0127,-2790.6133 224.5043,-2785.3672 236.4838,-2782.1781"/>
+<polygon fill="#191970" stroke="#191970" points="82.9027,-3234.0984 85.1371,-3244.4549 89.8488,-3234.9655 82.9027,-3234.0984"/>
 </g>
 <!-- Node452 -->
 <g id="node461" class="node">
 <title>Node452</title>
-<g id="a_node461"><a xlink:href="classtvm_1_1relay_1_1ClauseNode.html" target="_top" xlink:title="Clause container node. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-2656.5 239.5,-2675.5 370.5,-2675.5 370.5,-2656.5 239.5,-2656.5"/>
-<text text-anchor="middle" x="305" y="-2663.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::ClauseNode</text>
+<g id="a_node461"><a xlink:href="structtvm_1_1PoolInfoNode.html" target="_top" xlink:title="Describes a pool of memory accessible by one or more targets. ">
+<polygon fill="#ffffff" stroke="#000000" points="251.5,-2732.5 251.5,-2751.5 358.5,-2751.5 358.5,-2732.5 251.5,-2732.5"/>
+<text text-anchor="middle" x="305" y="-2739.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PoolInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node452 -->
 <g id="edge456" class="edge">
 <title>Node0&#45;&gt;Node452</title>
-<path fill="none" stroke="#191970" d="M85.2913,-3234.3407C91.6734,-3143.3768 122.8565,-2764.3852 204,-2685 213.5654,-2675.6419 226.1949,-2670.1363 239.2723,-2667.029"/>
-<polygon fill="#191970" stroke="#191970" points="81.7949,-3234.1707 84.6066,-3244.3857 88.7787,-3234.6469 81.7949,-3234.1707"/>
+<path fill="none" stroke="#191970" d="M85.9703,-3234.3848C94.7313,-3151.162 132.8877,-2828.452 204,-2761 216.6215,-2749.0281 234.2794,-2743.4194 251.3066,-2741.0635"/>
+<polygon fill="#191970" stroke="#191970" points="82.4729,-3234.1807 84.9288,-3244.4869 89.436,-3234.8986 82.4729,-3234.1807"/>
 </g>
 <!-- Node453 -->
 <g id="node462" class="node">
 <title>Node453</title>
-<g id="a_node462"><a xlink:href="structtvm_1_1relay_1_1ConstructorValueObj.html" target="_top" xlink:title="tvm::relay::ConstructorValueObj">
-<polygon fill="#ffffff" stroke="#000000" points="219,-2618.5 219,-2637.5 391,-2637.5 391,-2618.5 219,-2618.5"/>
-<text text-anchor="middle" x="305" y="-2625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::ConstructorValueObj</text>
+<g id="a_node462"><a xlink:href="classtvm_1_1RangeNode.html" target="_top" xlink:title="range over one dimension ">
+<polygon fill="#ffffff" stroke="#000000" points="256,-2694.5 256,-2713.5 354,-2713.5 354,-2694.5 256,-2694.5"/>
+<text text-anchor="middle" x="305" y="-2701.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::RangeNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node453 -->
 <g id="edge457" class="edge">
 <title>Node0&#45;&gt;Node453</title>
-<path fill="none" stroke="#191970" d="M85.0339,-3233.9503C90.3671,-3138.6192 117.9278,-2732.2813 204,-2647 208.3093,-2642.7303 213.2556,-2639.2595 218.5935,-2636.4509"/>
-<polygon fill="#191970" stroke="#191970" points="81.5243,-3234.0356 84.48,-3244.2098 88.5141,-3234.4131 81.5243,-3234.0356"/>
+<path fill="none" stroke="#191970" d="M85.6385,-3234.0042C93.2415,-3146.245 127.985,-2796.3038 204,-2723 217.6782,-2709.8097 237.4557,-2704.3058 255.8904,-2702.3758"/>
+<polygon fill="#191970" stroke="#191970" points="82.1323,-3233.9312 84.7773,-3244.1905 89.1074,-3234.521 82.1323,-3233.9312"/>
 </g>
 <!-- Node454 -->
 <g id="node463" class="node">
 <title>Node454</title>
-<g id="a_node463"><a xlink:href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" target="_top" xlink:title="Base type of all dataflow pattern callbacks. ">
-<polygon fill="#ffffff" stroke="#000000" points="211.5,-2580.5 211.5,-2599.5 398.5,-2599.5 398.5,-2580.5 211.5,-2580.5"/>
-<text text-anchor="middle" x="305" y="-2587.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::DFPatternCallbackNode</text>
+<g id="a_node463"><a xlink:href="classtvm_1_1relay_1_1ClauseNode.html" target="_top" xlink:title="Clause container node. ">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-2656.5 239.5,-2675.5 370.5,-2675.5 370.5,-2656.5 239.5,-2656.5"/>
+<text text-anchor="middle" x="305" y="-2663.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::ClauseNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node454 -->
 <g id="edge458" class="edge">
 <title>Node0&#45;&gt;Node454</title>
-<path fill="none" stroke="#191970" d="M84.7815,-3233.9567C89.056,-3135.0731 112.8675,-2700.3151 204,-2609 207.6551,-2605.3376 211.7782,-2602.2611 216.2163,-2599.6848"/>
-<polygon fill="#191970" stroke="#191970" points="81.2791,-3233.9443 84.3627,-3244.0804 88.2731,-3234.2337 81.2791,-3233.9443"/>
+<path fill="none" stroke="#191970" d="M85.2913,-3234.3407C91.6734,-3143.3768 122.8565,-2764.3852 204,-2685 213.5654,-2675.6419 226.1949,-2670.1363 239.2723,-2667.029"/>
+<polygon fill="#191970" stroke="#191970" points="81.7949,-3234.1707 84.6066,-3244.3857 88.7787,-3234.6469 81.7949,-3234.1707"/>
 </g>
 <!-- Node455 -->
 <g id="node464" class="node">
 <title>Node455</title>
-<g id="a_node464"><a xlink:href="classtvm_1_1relay_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns. ">
-<polygon fill="#ffffff" stroke="#000000" points="232.5,-2542.5 232.5,-2561.5 377.5,-2561.5 377.5,-2542.5 232.5,-2542.5"/>
-<text text-anchor="middle" x="305" y="-2549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::DFPatternNode</text>
+<g id="a_node464"><a xlink:href="structtvm_1_1relay_1_1ConstructorValueObj.html" target="_top" xlink:title="tvm::relay::ConstructorValueObj">
+<polygon fill="#ffffff" stroke="#000000" points="219,-2618.5 219,-2637.5 391,-2637.5 391,-2618.5 219,-2618.5"/>
+<text text-anchor="middle" x="305" y="-2625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::ConstructorValueObj</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node455 -->
 <g id="edge459" class="edge">
 <title>Node0&#45;&gt;Node455</title>
-<path fill="none" stroke="#191970" d="M84.5423,-3234.4116C87.7612,-3132.9931 107.6535,-2668.5121 204,-2571 211.775,-2563.1309 221.7081,-2557.959 232.298,-2554.6394"/>
-<polygon fill="#191970" stroke="#191970" points="81.0419,-3234.3776 84.241,-3244.4779 88.0387,-3234.5871 81.0419,-3234.3776"/>
+<path fill="none" stroke="#191970" d="M85.0339,-3233.9503C90.3671,-3138.6192 117.9278,-2732.2813 204,-2647 208.3093,-2642.7303 213.2556,-2639.2595 218.5935,-2636.4509"/>
+<polygon fill="#191970" stroke="#191970" points="81.5243,-3234.0356 84.48,-3244.2098 88.5141,-3234.4131 81.5243,-3234.0356"/>
 </g>
-<!-- Node472 -->
-<g id="node481" class="node">
-<title>Node472</title>
-<g id="a_node481"><a xlink:href="classtvm_1_1relay_1_1ExecutorNode.html" target="_top" xlink:title="Executor information. ">
-<polygon fill="#ffffff" stroke="#000000" points="235,-2504.5 235,-2523.5 375,-2523.5 375,-2504.5 235,-2504.5"/>
-<text text-anchor="middle" x="305" y="-2511.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::ExecutorNode</text>
+<!-- Node456 -->
+<g id="node465" class="node">
+<title>Node456</title>
+<g id="a_node465"><a xlink:href="classtvm_1_1relay_1_1DFPatternCallbackNode.html" target="_top" xlink:title="Base type of all dataflow pattern callbacks. ">
+<polygon fill="#ffffff" stroke="#000000" points="211.5,-2580.5 211.5,-2599.5 398.5,-2599.5 398.5,-2580.5 211.5,-2580.5"/>
+<text text-anchor="middle" x="305" y="-2587.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::DFPatternCallbackNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node472 -->
-<g id="edge476" class="edge">
-<title>Node0&#45;&gt;Node472</title>
-<path fill="none" stroke="#191970" d="M84.3472,-3234.3263C86.6134,-3129.3987 102.5964,-2636.5581 204,-2533 212.3637,-2524.4586 223.2677,-2519.0867 234.8094,-2515.8102"/>
-<polygon fill="#191970" stroke="#191970" points="80.8455,-3234.3828 84.1464,-3244.4503 87.8441,-3234.5217 80.8455,-3234.3828"/>
+<!-- Node0&#45;&gt;Node456 -->
+<g id="edge460" class="edge">
+<title>Node0&#45;&gt;Node456</title>
+<path fill="none" stroke="#191970" d="M84.7815,-3233.9567C89.056,-3135.0731 112.8675,-2700.3151 204,-2609 207.6551,-2605.3376 211.7782,-2602.2611 216.2163,-2599.6848"/>
+<polygon fill="#191970" stroke="#191970" points="81.2791,-3233.9443 84.3627,-3244.0804 88.2731,-3234.2337 81.2791,-3233.9443"/>
 </g>
-<!-- Node473 -->
-<g id="node482" class="node">
-<title>Node473</title>
-<g id="a_node482"><a xlink:href="classtvm_1_1relay_1_1IdNode.html" target="_top" xlink:title="The unique identifier of variables. ">
-<polygon fill="#ffffff" stroke="#000000" points="251.5,-2466.5 251.5,-2485.5 358.5,-2485.5 358.5,-2466.5 251.5,-2466.5"/>
-<text text-anchor="middle" x="305" y="-2473.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::IdNode</text>
+<!-- Node457 -->
+<g id="node466" class="node">
+<title>Node457</title>
+<g id="a_node466"><a xlink:href="classtvm_1_1relay_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns. ">
+<polygon fill="#ffffff" stroke="#000000" points="232.5,-2542.5 232.5,-2561.5 377.5,-2561.5 377.5,-2542.5 232.5,-2542.5"/>
+<text text-anchor="middle" x="305" y="-2549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::DFPatternNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node473 -->
-<g id="edge477" class="edge">
-<title>Node0&#45;&gt;Node473</title>
-<path fill="none" stroke="#191970" d="M84.1687,-3234.3225C85.5125,-3126.1389 97.5036,-2604.646 204,-2495 216.2448,-2482.3931 234.0193,-2476.6748 251.2555,-2474.4104"/>
-<polygon fill="#191970" stroke="#191970" points="80.6675,-3234.4251 84.0602,-3244.4621 87.6671,-3234.5001 80.6675,-3234.4251"/>
+<!-- Node0&#45;&gt;Node457 -->
+<g id="edge461" class="edge">
+<title>Node0&#45;&gt;Node457</title>
+<path fill="none" stroke="#191970" d="M84.5423,-3234.4116C87.7612,-3132.9931 107.6535,-2668.5121 204,-2571 211.775,-2563.1309 221.7081,-2557.959 232.298,-2554.6394"/>
+<polygon fill="#191970" stroke="#191970" points="81.0419,-3234.3776 84.241,-3244.4779 88.0387,-3234.5871 81.0419,-3234.3776"/>
 </g>
 <!-- Node474 -->
 <g id="node483" class="node">
 <title>Node474</title>
-<g id="a_node483"><a xlink:href="classtvm_1_1relay_1_1OpImplementationNode.html" target="_top" xlink:title="Operator implementation that includes compute and schedule function. ">
-<polygon fill="#ffffff" stroke="#000000" points="210.5,-2428.5 210.5,-2447.5 399.5,-2447.5 399.5,-2428.5 210.5,-2428.5"/>
-<text text-anchor="middle" x="305" y="-2435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::OpImplementationNode</text>
+<g id="a_node483"><a xlink:href="classtvm_1_1relay_1_1ExecutorNode.html" target="_top" xlink:title="Executor information. ">
+<polygon fill="#ffffff" stroke="#000000" points="235,-2504.5 235,-2523.5 375,-2523.5 375,-2504.5 235,-2504.5"/>
+<text text-anchor="middle" x="305" y="-2511.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::ExecutorNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node474 -->
 <g id="edge478" class="edge">
 <title>Node0&#45;&gt;Node474</title>
-<path fill="none" stroke="#191970" d="M85.598,-3234.4314C95.313,-3117.5902 147.8988,-2515.1875 204,-2457 207.5914,-2453.2751 211.6652,-2450.1503 216.066,-2447.5374"/>
-<polygon fill="#191970" stroke="#191970" points="82.1055,-3234.1965 84.7715,-3244.4505 89.0819,-3234.7721 82.1055,-3234.1965"/>
+<path fill="none" stroke="#191970" d="M84.3472,-3234.3263C86.6134,-3129.3987 102.5964,-2636.5581 204,-2533 212.3637,-2524.4586 223.2677,-2519.0867 234.8094,-2515.8102"/>
+<polygon fill="#191970" stroke="#191970" points="80.8455,-3234.3828 84.1464,-3244.4503 87.8441,-3234.5217 80.8455,-3234.3828"/>
 </g>
 <!-- Node475 -->
 <g id="node484" class="node">
 <title>Node475</title>
-<g id="a_node484"><a xlink:href="classtvm_1_1relay_1_1OpSpecializationNode.html" target="_top" xlink:title="Specialized implementations for operators under certain conditions. ">
-<polygon fill="#ffffff" stroke="#000000" points="215.5,-2352.5 215.5,-2371.5 394.5,-2371.5 394.5,-2352.5 215.5,-2352.5"/>
-<text text-anchor="middle" x="305" y="-2359.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::OpSpecializationNode</text>
+<g id="a_node484"><a xlink:href="classtvm_1_1relay_1_1IdNode.html" target="_top" xlink:title="The unique identifier of variables. ">
+<polygon fill="#ffffff" stroke="#000000" points="251.5,-2466.5 251.5,-2485.5 358.5,-2485.5 358.5,-2466.5 251.5,-2466.5"/>
+<text text-anchor="middle" x="305" y="-2473.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::IdNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node475 -->
 <g id="edge479" class="edge">
 <title>Node0&#45;&gt;Node475</title>
-<path fill="none" stroke="#191970" d="M85.3515,-3234.1398C93.9681,-3110.126 142.8193,-2445.2767 204,-2381 207.4444,-2377.3813 211.3435,-2374.327 215.5568,-2371.7567"/>
-<polygon fill="#191970" stroke="#191970" points="81.8393,-3234.1977 84.6442,-3244.4145 88.8228,-3234.6785 81.8393,-3234.1977"/>
+<path fill="none" stroke="#191970" d="M84.1687,-3234.3225C85.5125,-3126.1389 97.5036,-2604.646 204,-2495 216.2448,-2482.3931 234.0193,-2476.6748 251.2555,-2474.4104"/>
+<polygon fill="#191970" stroke="#191970" points="80.6675,-3234.4251 84.0602,-3244.4621 87.6671,-3234.5001 80.6675,-3234.4251"/>
 </g>
 <!-- Node476 -->
 <g id="node485" class="node">
 <title>Node476</title>
-<g id="a_node485"><a xlink:href="classtvm_1_1relay_1_1OpStrategyNode.html" target="_top" xlink:title="Operator strategy to choose implementation. ">
-<polygon fill="#ffffff" stroke="#000000" points="229,-2264.5 229,-2283.5 381,-2283.5 381,-2264.5 229,-2264.5"/>
-<text text-anchor="middle" x="305" y="-2271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::OpStrategyNode</text>
+<g id="a_node485"><a xlink:href="classtvm_1_1relay_1_1OpImplementationNode.html" target="_top" xlink:title="Operator implementation that includes compute and schedule function. ">
+<polygon fill="#ffffff" stroke="#000000" points="210.5,-2428.5 210.5,-2447.5 399.5,-2447.5 399.5,-2428.5 210.5,-2428.5"/>
+<text text-anchor="middle" x="305" y="-2435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::OpImplementationNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node476 -->
 <g id="edge480" class="edge">
 <title>Node0&#45;&gt;Node476</title>
-<path fill="none" stroke="#191970" d="M85.0872,-3234.2082C92.4592,-3103.2385 136.8554,-2364.422 204,-2293 210.8438,-2285.7202 219.5265,-2280.7161 228.916,-2277.3405"/>
-<polygon fill="#191970" stroke="#191970" points="81.5828,-3234.1914 84.5213,-3244.3705 88.572,-3234.5807 81.5828,-3234.1914"/>
+<path fill="none" stroke="#191970" d="M85.598,-3234.4314C95.313,-3117.5902 147.8988,-2515.1875 204,-2457 207.5914,-2453.2751 211.6652,-2450.1503 216.066,-2447.5374"/>
+<polygon fill="#191970" stroke="#191970" points="82.1055,-3234.1965 84.7715,-3244.4505 89.0819,-3234.7721 82.1055,-3234.1965"/>
 </g>
 <!-- Node477 -->
 <g id="node486" class="node">
 <title>Node477</title>
-<g id="a_node486"><a xlink:href="classtvm_1_1relay_1_1RecClosureObj.html" target="_top" xlink:title="The container type of RecClosure. ">
-<polygon fill="#ffffff" stroke="#000000" points="233.5,-2226.5 233.5,-2245.5 376.5,-2245.5 376.5,-2226.5 233.5,-2226.5"/>
-<text text-anchor="middle" x="305" y="-2233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RecClosureObj</text>
+<g id="a_node486"><a xlink:href="classtvm_1_1relay_1_1OpSpecializationNode.html" target="_top" xlink:title="Specialized implementations for operators under certain conditions. ">
+<polygon fill="#ffffff" stroke="#000000" points="215.5,-2352.5 215.5,-2371.5 394.5,-2371.5 394.5,-2352.5 215.5,-2352.5"/>
+<text text-anchor="middle" x="305" y="-2359.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::OpSpecializationNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node477 -->
 <g id="edge481" class="edge">
 <title>Node0&#45;&gt;Node477</title>
-<path fill="none" stroke="#191970" d="M84.9867,-3234.2568C91.8511,-3100.4463 134.2717,-2329.519 204,-2255 211.9239,-2246.5317 222.3353,-2241.1387 233.4601,-2237.8055"/>
-<polygon fill="#191970" stroke="#191970" points="81.4884,-3234.1356 84.4773,-3244.3001 88.4794,-3234.4903 81.4884,-3234.1356"/>
+<path fill="none" stroke="#191970" d="M85.3515,-3234.1398C93.9681,-3110.126 142.8193,-2445.2767 204,-2381 207.4444,-2377.3813 211.3435,-2374.327 215.5568,-2371.7567"/>
+<polygon fill="#191970" stroke="#191970" points="81.8393,-3234.1977 84.6442,-3244.4145 88.8228,-3234.6785 81.8393,-3234.1977"/>
 </g>
 <!-- Node478 -->
 <g id="node487" class="node">
 <title>Node478</title>
-<g id="a_node487"><a xlink:href="structtvm_1_1relay_1_1RefValueObj.html" target="_top" xlink:title="tvm::relay::RefValueObj">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-2188.5 239.5,-2207.5 370.5,-2207.5 370.5,-2188.5 239.5,-2188.5"/>
-<text text-anchor="middle" x="305" y="-2195.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RefValueObj</text>
+<g id="a_node487"><a xlink:href="classtvm_1_1relay_1_1OpStrategyNode.html" target="_top" xlink:title="Operator strategy to choose implementation. ">
+<polygon fill="#ffffff" stroke="#000000" points="229,-2264.5 229,-2283.5 381,-2283.5 381,-2264.5 229,-2264.5"/>
+<text text-anchor="middle" x="305" y="-2271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::OpStrategyNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node478 -->
 <g id="edge482" class="edge">
 <title>Node0&#45;&gt;Node478</title>
-<path fill="none" stroke="#191970" d="M84.9107,-3233.9394C91.3406,-3096.2902 131.7494,-2294.5513 204,-2217 213.3042,-2207.0132 226.0668,-2201.2984 239.3901,-2198.1942"/>
-<polygon fill="#191970" stroke="#191970" points="81.3998,-3234.0976 84.4352,-3244.2483 88.3924,-3234.4203 81.3998,-3234.0976"/>
+<path fill="none" stroke="#191970" d="M85.0872,-3234.2082C92.4592,-3103.2385 136.8554,-2364.422 204,-2293 210.8438,-2285.7202 219.5265,-2280.7161 228.916,-2277.3405"/>
+<polygon fill="#191970" stroke="#191970" points="81.5828,-3234.1914 84.5213,-3244.3705 88.572,-3234.5807 81.5828,-3234.1914"/>
 </g>
 <!-- Node479 -->
 <g id="node488" class="node">
 <title>Node479</title>
-<g id="a_node488"><a xlink:href="classtvm_1_1relay_1_1RelayNode.html" target="_top" xlink:title="This is the base node container of all relay structures. ">
-<polygon fill="#ffffff" stroke="#000000" points="242.5,-2390.5 242.5,-2409.5 367.5,-2409.5 367.5,-2390.5 242.5,-2390.5"/>
-<text text-anchor="middle" x="305" y="-2397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RelayNode</text>
+<g id="a_node488"><a xlink:href="classtvm_1_1relay_1_1RecClosureObj.html" target="_top" xlink:title="The container type of RecClosure. ">
+<polygon fill="#ffffff" stroke="#000000" points="233.5,-2226.5 233.5,-2245.5 376.5,-2245.5 376.5,-2226.5 233.5,-2226.5"/>
+<text text-anchor="middle" x="305" y="-2233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RecClosureObj</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node479 -->
 <g id="edge483" class="edge">
 <title>Node0&#45;&gt;Node479</title>
+<path fill="none" stroke="#191970" d="M84.9867,-3234.2568C91.8511,-3100.4463 134.2717,-2329.519 204,-2255 211.9239,-2246.5317 222.3353,-2241.1387 233.4601,-2237.8055"/>
+<polygon fill="#191970" stroke="#191970" points="81.4884,-3234.1356 84.4773,-3244.3001 88.4794,-3234.4903 81.4884,-3234.1356"/>
+</g>
+<!-- Node480 -->
+<g id="node489" class="node">
+<title>Node480</title>
+<g id="a_node489"><a xlink:href="structtvm_1_1relay_1_1RefValueObj.html" target="_top" xlink:title="tvm::relay::RefValueObj">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-2188.5 239.5,-2207.5 370.5,-2207.5 370.5,-2188.5 239.5,-2188.5"/>
+<text text-anchor="middle" x="305" y="-2195.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RefValueObj</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node480 -->
+<g id="edge484" class="edge">
+<title>Node0&#45;&gt;Node480</title>
+<path fill="none" stroke="#191970" d="M84.9107,-3233.9394C91.3406,-3096.2902 131.7494,-2294.5513 204,-2217 213.3042,-2207.0132 226.0668,-2201.2984 239.3901,-2198.1942"/>
+<polygon fill="#191970" stroke="#191970" points="81.3998,-3234.0976 84.4352,-3244.2483 88.3924,-3234.4203 81.3998,-3234.0976"/>
+</g>
+<!-- Node481 -->
+<g id="node490" class="node">
+<title>Node481</title>
+<g id="a_node490"><a xlink:href="classtvm_1_1relay_1_1RelayNode.html" target="_top" xlink:title="This is the base node container of all relay structures. ">
+<polygon fill="#ffffff" stroke="#000000" points="242.5,-2390.5 242.5,-2409.5 367.5,-2409.5 367.5,-2390.5 242.5,-2390.5"/>
+<text text-anchor="middle" x="305" y="-2397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RelayNode</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node481 -->
+<g id="edge485" class="edge">
+<title>Node0&#45;&gt;Node481</title>
 <path fill="none" stroke="#191970" d="M85.4723,-3234.2512C94.6346,-3113.7117 145.3661,-2480.2239 204,-2419 214.1195,-2408.4335 228.1189,-2402.6867 242.4742,-2399.7562"/>
 <polygon fill="#191970" stroke="#191970" points="81.9781,-3234.0438 84.7165,-3244.2786 88.9583,-3234.57 81.9781,-3234.0438"/>
 </g>
-<!-- Node485 -->
-<g id="node494" class="node">
-<title>Node485</title>
-<g id="a_node494"><a xlink:href="classtvm_1_1relay_1_1RuntimeNode.html" target="_top" xlink:title="Runtime information. ">
+<!-- Node487 -->
+<g id="node496" class="node">
+<title>Node487</title>
+<g id="a_node496"><a xlink:href="classtvm_1_1relay_1_1RuntimeNode.html" target="_top" xlink:title="Runtime information. ">
 <polygon fill="#ffffff" stroke="#000000" points="236,-2150.5 236,-2169.5 374,-2169.5 374,-2150.5 236,-2150.5"/>
 <text text-anchor="middle" x="305" y="-2157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::relay::RuntimeNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node485 -->
-<g id="edge489" class="edge">
-<title>Node0&#45;&gt;Node485</title>
+<!-- Node0&#45;&gt;Node487 -->
+<g id="edge491" class="edge">
+<title>Node0&#45;&gt;Node487</title>
 <path fill="none" stroke="#191970" d="M84.8193,-3234.0733C90.7613,-3093.9319 129.1459,-2259.6718 204,-2179 212.4952,-2169.8446 223.8961,-2164.2754 235.9786,-2161.0158"/>
 <polygon fill="#191970" stroke="#191970" points="81.3162,-3234.077 84.395,-3244.2146 88.3101,-3234.3697 81.3162,-3234.077"/>
 </g>
-<!-- Node488 -->
-<g id="node495" class="node">
-<title>Node488</title>
-<g id="a_node495"><a xlink:href="classtvm_1_1runtime_1_1ClosureObj.html" target="_top" xlink:title="An object representing a closure. This object is used by both the Relay VM and interpreter. ">
+<!-- Node490 -->
+<g id="node497" class="node">
+<title>Node490</title>
+<g id="a_node497"><a xlink:href="classtvm_1_1runtime_1_1ClosureObj.html" target="_top" xlink:title="An object representing a closure. This object is used by both the Relay VM and interpreter. ">
 <polygon fill="#ffffff" stroke="#000000" points="235,-2074.5 235,-2093.5 375,-2093.5 375,-2074.5 235,-2074.5"/>
 <text text-anchor="middle" x="305" y="-2081.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ClosureObj</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node488 -->
-<g id="edge492" class="edge">
-<title>Node0&#45;&gt;Node488</title>
+<!-- Node0&#45;&gt;Node490 -->
+<g id="edge494" class="edge">
+<title>Node0&#45;&gt;Node490</title>
 <path fill="none" stroke="#191970" d="M84.6671,-3234.0346C89.7215,-3088.1634 123.986,-2189.8652 204,-2103 212.22,-2094.0761 223.1994,-2088.5525 234.8922,-2085.2524"/>
 <polygon fill="#191970" stroke="#191970" points="81.1634,-3234.0857 84.3204,-3244.1992 88.1593,-3234.3244 81.1634,-3234.0857"/>
 </g>
-<!-- Node491 -->
-<g id="node498" class="node">
-<title>Node491</title>
-<g id="a_node498"><a xlink:href="classtvm_1_1runtime_1_1MapNode.html" target="_top" xlink:title="Shared content of all specializations of hash map. ">
+<!-- Node493 -->
+<g id="node500" class="node">
+<title>Node493</title>
+<g id="a_node500"><a xlink:href="classtvm_1_1runtime_1_1MapNode.html" target="_top" xlink:title="Shared content of all specializations of hash map. ">
 <polygon fill="#ffffff" stroke="#000000" points="239,-2112.5 239,-2131.5 371,-2131.5 371,-2112.5 239,-2112.5"/>
 <text text-anchor="middle" x="305" y="-2119.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::MapNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node491 -->
-<g id="edge495" class="edge">
-<title>Node0&#45;&gt;Node491</title>
+<!-- Node0&#45;&gt;Node493 -->
+<g id="edge497" class="edge">
+<title>Node0&#45;&gt;Node493</title>
 <path fill="none" stroke="#191970" d="M84.7496,-3233.8205C90.2716,-3090.0851 126.609,-2224.7214 204,-2141 213.1441,-2131.108 225.6794,-2125.3981 238.8104,-2122.264"/>
 <polygon fill="#191970" stroke="#191970" points="81.2377,-3234.0731 84.3568,-3244.1984 88.2327,-3234.338 81.2377,-3234.0731"/>
 </g>
-<!-- Node494 -->
-<g id="node500" class="node">
-<title>Node494</title>
-<g id="a_node500"><a xlink:href="classtvm_1_1runtime_1_1metadata_1_1MetadataBaseNode.html" target="_top" xlink:title="Common base class for all Metadata. ">
+<!-- Node496 -->
+<g id="node502" class="node">
+<title>Node496</title>
+<g id="a_node502"><a xlink:href="classtvm_1_1runtime_1_1metadata_1_1MetadataBaseNode.html" target="_top" xlink:title="Common base class for all Metadata. ">
 <polygon fill="#ffffff" stroke="#000000" points="238,-2025 238,-2055 372,-2055 372,-2025 238,-2025"/>
 <text text-anchor="start" x="246" y="-2043" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::metadata</text>
 <text text-anchor="middle" x="305" y="-2032" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MetadataBaseNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node494 -->
-<g id="edge498" class="edge">
-<title>Node0&#45;&gt;Node494</title>
+<!-- Node0&#45;&gt;Node496 -->
+<g id="edge500" class="edge">
+<title>Node0&#45;&gt;Node496</title>
 <path fill="none" stroke="#191970" d="M84.6537,-3233.8879C89.669,-3084.9988 124.0175,-2157.2361 204,-2065 212.8166,-2054.8327 225.0554,-2048.4658 237.9778,-2044.5484"/>
 <polygon fill="#191970" stroke="#191970" points="81.1439,-3234.1279 84.3105,-3244.2384 88.1401,-3234.36 81.1439,-3234.1279"/>
 </g>
-<!-- Node496 -->
-<g id="node502" class="node">
-<title>Node496</title>
-<g id="a_node502"><a xlink:href="classtvm_1_1runtime_1_1ModuleNode.html" target="_top" xlink:title="Base container of module. ">
+<!-- Node498 -->
+<g id="node504" class="node">
+<title>Node498</title>
+<g id="a_node504"><a xlink:href="classtvm_1_1runtime_1_1ModuleNode.html" target="_top" xlink:title="Base container of module. ">
 <polygon fill="#ffffff" stroke="#000000" points="231.5,-1986.5 231.5,-2005.5 378.5,-2005.5 378.5,-1986.5 231.5,-1986.5"/>
 <text text-anchor="middle" x="305" y="-1993.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ModuleNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node496 -->
-<g id="edge500" class="edge">
-<title>Node0&#45;&gt;Node496</title>
+<!-- Node0&#45;&gt;Node498 -->
+<g id="edge502" class="edge">
+<title>Node0&#45;&gt;Node498</title>
 <path fill="none" stroke="#191970" d="M84.5023,-3234.4083C88.549,-3083.4893 117.9226,-2109.1379 204,-2015 211.3444,-2006.9678 220.9234,-2001.6847 231.2549,-1998.2966"/>
 <polygon fill="#191970" stroke="#191970" points="81.0011,-3234.4083 84.237,-3244.4969 87.9987,-3234.5924 81.0011,-3234.4083"/>
 </g>
-<!-- Node500 -->
-<g id="node505" class="node">
-<title>Node500</title>
-<g id="a_node505"><a xlink:href="classtvm_1_1runtime_1_1PackedFuncObj.html" target="_top" xlink:title="Object container class that backs PackedFunc. ">
+<!-- Node502 -->
+<g id="node507" class="node">
+<title>Node502</title>
+<g id="a_node507"><a xlink:href="classtvm_1_1runtime_1_1PackedFuncObj.html" target="_top" xlink:title="Object container class that backs PackedFunc. ">
 <polygon fill="#ffffff" stroke="#000000" points="225.5,-1948.5 225.5,-1967.5 384.5,-1967.5 384.5,-1948.5 225.5,-1948.5"/>
 <text text-anchor="middle" x="305" y="-1955.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFuncObj</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node500 -->
-<g id="edge504" class="edge">
-<title>Node0&#45;&gt;Node500</title>
+<!-- Node0&#45;&gt;Node502 -->
+<g id="edge506" class="edge">
+<title>Node0&#45;&gt;Node502</title>
 <path fill="none" stroke="#191970" d="M84.4573,-3233.8093C88.1638,-3078.2754 115.4454,-2074.1252 204,-1977 209.8904,-1970.5395 217.2262,-1965.8561 225.2382,-1962.5061"/>
 <polygon fill="#191970" stroke="#191970" points="80.9491,-3234.1274 84.215,-3244.2063 87.9472,-3234.2906 80.9491,-3234.1274"/>
 </g>
-<!-- Node502 -->
-<g id="node507" class="node">
-<title>Node502</title>
-<g id="a_node507"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html" target="_top" xlink:title="tvm::runtime::profiling\l::CountNode">
+<!-- Node504 -->
+<g id="node509" class="node">
+<title>Node504</title>
+<g id="a_node509"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html" target="_top" xlink:title="tvm::runtime::profiling\l::CountNode">
 <polygon fill="#ffffff" stroke="#000000" points="242,-1899 242,-1929 368,-1929 368,-1899 242,-1899"/>
 <text text-anchor="start" x="250" y="-1917" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::profiling</text>
 <text text-anchor="middle" x="305" y="-1906" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CountNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node502 -->
-<g id="edge506" class="edge">
-<title>Node0&#45;&gt;Node502</title>
+<!-- Node0&#45;&gt;Node504 -->
+<g id="edge508" class="edge">
+<title>Node0&#45;&gt;Node504</title>
 <path fill="none" stroke="#191970" d="M84.4419,-3234.221C88.1134,-3077.6598 115.6628,-2041.8623 204,-1939 213.6505,-1927.7627 227.4812,-1921.1594 241.8241,-1917.3742"/>
 <polygon fill="#191970" stroke="#191970" points="80.9411,-3234.2169 84.2105,-3244.2946 87.9393,-3234.3776 80.9411,-3234.2169"/>
 </g>
-<!-- Node503 -->
-<g id="node508" class="node">
-<title>Node503</title>
-<g id="a_node508"><a xlink:href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html" target="_top" xlink:title="Wrapper for Device because Device is not passable across the PackedFunc interface. ">
+<!-- Node505 -->
+<g id="node510" class="node">
+<title>Node505</title>
+<g id="a_node510"><a xlink:href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html" target="_top" xlink:title="Wrapper for Device because Device is not passable across the PackedFunc interface. ">
 <polygon fill="#ffffff" stroke="#000000" points="242,-1850 242,-1880 368,-1880 368,-1850 242,-1850"/>
 <text text-anchor="start" x="250" y="-1868" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::profiling</text>
 <text text-anchor="middle" x="305" y="-1857" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DeviceWrapperNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node503 -->
-<g id="edge507" class="edge">
-<title>Node0&#45;&gt;Node503</title>
+<!-- Node0&#45;&gt;Node505 -->
+<g id="edge509" class="edge">
+<title>Node0&#45;&gt;Node505</title>
 <path fill="none" stroke="#191970" d="M84.369,-3233.9635C87.5087,-3073.1264 111.9147,-1995.5744 204,-1889 213.6624,-1877.8173 227.4974,-1871.3361 241.8406,-1867.6919"/>
 <polygon fill="#191970" stroke="#191970" points="80.8636,-3234.2216 84.1725,-3244.2865 87.8623,-3234.3549 80.8636,-3234.2216"/>
 </g>
-<!-- Node504 -->
-<g id="node509" class="node">
-<title>Node504</title>
-<g id="a_node509"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html" target="_top" xlink:title="tvm::runtime::profiling\l::DurationNode">
+<!-- Node506 -->
+<g id="node511" class="node">
+<title>Node506</title>
+<g id="a_node511"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html" target="_top" xlink:title="tvm::runtime::profiling\l::DurationNode">
 <polygon fill="#ffffff" stroke="#000000" points="242,-1801 242,-1831 368,-1831 368,-1801 242,-1801"/>
 <text text-anchor="start" x="250" y="-1819" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::profiling</text>
 <text text-anchor="middle" x="305" y="-1808" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::DurationNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node504 -->
-<g id="edge508" class="edge">
-<title>Node0&#45;&gt;Node504</title>
+<!-- Node0&#45;&gt;Node506 -->
+<g id="edge510" class="edge">
+<title>Node0&#45;&gt;Node506</title>
 <path fill="none" stroke="#191970" d="M84.3002,-3234.2499C86.9541,-3071.1907 108.6075,-1950.7399 204,-1840 213.6455,-1828.8027 227.4744,-1822.3163 241.8172,-1818.6717"/>
 <polygon fill="#191970" stroke="#191970" points="80.7998,-3234.2545 84.1412,-3244.3086 87.7989,-3234.3652 80.7998,-3234.2545"/>
 </g>
-<!-- Node505 -->
-<g id="node510" class="node">
-<title>Node505</title>
-<g id="a_node510"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html" target="_top" xlink:title="Interface for user defined profiling metric collection. ">
+<!-- Node507 -->
+<g id="node512" class="node">
+<title>Node507</title>
+<g id="a_node512"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html" target="_top" xlink:title="Interface for user defined profiling metric collection. ">
 <polygon fill="#ffffff" stroke="#000000" points="242,-1752 242,-1782 368,-1782 368,-1752 242,-1752"/>
 <text text-anchor="start" x="250" y="-1770" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::profiling</text>
 <text text-anchor="middle" x="305" y="-1759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MetricCollectorNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node505 -->
-<g id="edge509" class="edge">
-<title>Node0&#45;&gt;Node505</title>
+<!-- Node0&#45;&gt;Node507 -->
+<g id="edge511" class="edge">
+<title>Node0&#45;&gt;Node507</title>
 <path fill="none" stroke="#191970" d="M84.2434,-3234.0848C86.4593,-3067.2583 105.3855,-1905.8076 204,-1791 213.6296,-1779.7891 227.4529,-1773.2978 241.7952,-1769.6528"/>
 <polygon fill="#191970" stroke="#191970" points="80.7404,-3234.3053 84.1119,-3244.3494 87.7398,-3234.3951 80.7404,-3234.3053"/>
 </g>
-<!-- Node506 -->
-<g id="node511" class="node">
-<title>Node506</title>
-<g id="a_node511"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html" target="_top" xlink:title="tvm::runtime::profiling\l::PercentNode">
+<!-- Node508 -->
+<g id="node513" class="node">
+<title>Node508</title>
+<g id="a_node513"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html" target="_top" xlink:title="tvm::runtime::profiling\l::PercentNode">
 <polygon fill="#ffffff" stroke="#000000" points="242,-1703 242,-1733 368,-1733 368,-1703 242,-1703"/>
 <text text-anchor="start" x="250" y="-1721" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::profiling</text>
 <text text-anchor="middle" x="305" y="-1710" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PercentNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node506 -->
-<g id="edge510" class="edge">
-<title>Node0&#45;&gt;Node506</title>
+<!-- Node0&#45;&gt;Node508 -->
+<g id="edge512" class="edge">
+<title>Node0&#45;&gt;Node508</title>
 <path fill="none" stroke="#191970" d="M84.1865,-3234.2027C85.9595,-3064.6907 102.1056,-1860.9435 204,-1742 213.6148,-1730.7764 227.4328,-1724.2805 241.7747,-1720.6352"/>
 <polygon fill="#191970" stroke="#191970" points="80.6847,-3234.3736 84.0844,-3244.4081 87.6844,-3234.4436 80.6847,-3234.3736"/>
 </g>
-<!-- Node507 -->
-<g id="node512" class="node">
-<title>Node507</title>
-<g id="a_node512"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1ReportNode.html" target="_top" xlink:title="Data collected from a profiling run. Includes per&#45;call metrics and per&#45;device metrics. ">
+<!-- Node509 -->
+<g id="node514" class="node">
+<title>Node509</title>
+<g id="a_node514"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1ReportNode.html" target="_top" xlink:title="Data collected from a profiling run. Includes per&#45;call metrics and per&#45;device metrics. ">
 <polygon fill="#ffffff" stroke="#000000" points="242,-1654 242,-1684 368,-1684 368,-1654 242,-1654"/>
 <text text-anchor="start" x="250" y="-1672" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::profiling</text>
 <text text-anchor="middle" x="305" y="-1661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ReportNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node507 -->
-<g id="edge511" class="edge">
-<title>Node0&#45;&gt;Node507</title>
+<!-- Node0&#45;&gt;Node509 -->
+<g id="edge513" class="edge">
+<title>Node0&#45;&gt;Node509</title>
 <path fill="none" stroke="#191970" d="M84.1334,-3234.3569C85.4763,-3062.3683 98.8155,-1816.0922 204,-1693 213.6009,-1681.7645 227.4139,-1675.2644 241.7555,-1671.6187"/>
 <polygon fill="#191970" stroke="#191970" points="80.6327,-3234.4585 84.0589,-3244.4841 87.6325,-3234.5101 80.6327,-3234.4585"/>
 </g>
-<!-- Node508 -->
-<g id="node513" class="node">
-<title>Node508</title>
-<g id="a_node513"><a xlink:href="classtvm_1_1runtime_1_1ShapeTupleObj.html" target="_top" xlink:title="An object representing a shape tuple. ">
-<polygon fill="#ffffff" stroke="#000000" points="226,-1615.5 226,-1634.5 384,-1634.5 384,-1615.5 226,-1615.5"/>
-<text text-anchor="middle" x="305" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ShapeTupleObj</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node508 -->
-<g id="edge512" class="edge">
-<title>Node0&#45;&gt;Node508</title>
-<path fill="none" stroke="#191970" d="M84.0446,-3233.9698C84.6219,-3057.2939 92.6474,-1768.522 204,-1644 209.9467,-1637.35 217.4234,-1632.5728 225.6054,-1629.1906"/>
-<polygon fill="#191970" stroke="#191970" points="80.5442,-3234.158 84.0159,-3244.1678 87.5442,-3234.1777 80.5442,-3234.158"/>
-</g>
 <!-- Node510 -->
 <g id="node515" class="node">
 <title>Node510</title>
-<g id="a_node515"><a xlink:href="classtvm_1_1runtime_1_1StringObj.html" target="_top" xlink:title="An object representing string. It&#39;s POD type. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-1577.5 239.5,-1596.5 370.5,-1596.5 370.5,-1577.5 239.5,-1577.5"/>
-<text text-anchor="middle" x="305" y="-1584.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::StringObj</text>
+<g id="a_node515"><a xlink:href="classtvm_1_1runtime_1_1ShapeTupleObj.html" target="_top" xlink:title="An object representing a shape tuple. ">
+<polygon fill="#ffffff" stroke="#000000" points="226,-1615.5 226,-1634.5 384,-1634.5 384,-1615.5 226,-1615.5"/>
+<text text-anchor="middle" x="305" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ShapeTupleObj</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node510 -->
 <g id="edge514" class="edge">
 <title>Node0&#45;&gt;Node510</title>
-<path fill="none" stroke="#191970" d="M84.7514,-3234.2878C91.7722,-3052.2902 146.8975,-1669.9658 204,-1606 213.1492,-1595.7511 225.932,-1589.9486 239.3348,-1586.845"/>
-<polygon fill="#191970" stroke="#191970" points="81.2527,-3234.1894 84.3666,-3244.3163 88.2476,-3234.4579 81.2527,-3234.1894"/>
+<path fill="none" stroke="#191970" d="M84.0446,-3233.9698C84.6219,-3057.2939 92.6474,-1768.522 204,-1644 209.9467,-1637.35 217.4234,-1632.5728 225.6054,-1629.1906"/>
+<polygon fill="#191970" stroke="#191970" points="80.5442,-3234.158 84.0159,-3244.1678 87.5442,-3234.1777 80.5442,-3234.158"/>
 </g>
 <!-- Node512 -->
 <g id="node517" class="node">
 <title>Node512</title>
-<g id="a_node517"><a xlink:href="classtvm_1_1runtime_1_1TimerNode.html" target="_top" xlink:title="Base class for all implementations. ">
-<polygon fill="#ffffff" stroke="#000000" points="235,-1539.5 235,-1558.5 375,-1558.5 375,-1539.5 235,-1539.5"/>
-<text text-anchor="middle" x="305" y="-1546.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TimerNode</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node512 -->
-<g id="edge516" class="edge">
-<title>Node0&#45;&gt;Node512</title>
-<path fill="none" stroke="#191970" d="M84.7351,-3233.8338C91.6065,-3047.6444 145.6412,-1633.4807 204,-1568 212.1318,-1558.8758 223.1432,-1553.2742 234.911,-1549.9632"/>
-<polygon fill="#191970" stroke="#191970" points="81.2277,-3233.9715 84.3585,-3244.0932 88.223,-3234.2284 81.2277,-3233.9715"/>
-</g>
-<!-- Node513 -->
-<g id="node518" class="node">
-<title>Node513</title>
-<g id="a_node518"><a xlink:href="classtvm_1_1runtime_1_1vm_1_1StorageObj.html" target="_top" xlink:title="An object representing a storage allocation. ">
-<polygon fill="#ffffff" stroke="#000000" points="224,-1501.5 224,-1520.5 386,-1520.5 386,-1501.5 224,-1501.5"/>
-<text text-anchor="middle" x="305" y="-1508.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::vm::StorageObj</text>
+<g id="a_node517"><a xlink:href="classtvm_1_1runtime_1_1StringObj.html" target="_top" xlink:title="An object representing string. It&#39;s POD type. ">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-1577.5 239.5,-1596.5 370.5,-1596.5 370.5,-1577.5 239.5,-1577.5"/>
+<text text-anchor="middle" x="305" y="-1584.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::StringObj</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node513 -->
-<g id="edge517" class="edge">
-<title>Node0&#45;&gt;Node513</title>
-<path fill="none" stroke="#191970" d="M84.6883,-3234.2408C91.2796,-3047.4058 144.2939,-1597.0978 204,-1530 209.456,-1523.8686 216.2123,-1519.3271 223.6254,-1516.0023"/>
-<polygon fill="#191970" stroke="#191970" points="81.1886,-3234.1737 84.3357,-3244.2903 88.1843,-3234.4192 81.1886,-3234.1737"/>
+<!-- Node0&#45;&gt;Node512 -->
+<g id="edge516" class="edge">
+<title>Node0&#45;&gt;Node512</title>
+<path fill="none" stroke="#191970" d="M84.7514,-3234.2878C91.7722,-3052.2902 146.8975,-1669.9658 204,-1606 213.1492,-1595.7511 225.932,-1589.9486 239.3348,-1586.845"/>
+<polygon fill="#191970" stroke="#191970" points="81.2527,-3234.1894 84.3666,-3244.3163 88.2476,-3234.4579 81.2527,-3234.1894"/>
 </g>
 <!-- Node514 -->
 <g id="node519" class="node">
 <title>Node514</title>
-<g id="a_node519"><a xlink:href="classtvm_1_1SourceNameNode.html" target="_top" xlink:title="The name of a source fragment. ">
-<polygon fill="#ffffff" stroke="#000000" points="240,-1463.5 240,-1482.5 370,-1482.5 370,-1463.5 240,-1463.5"/>
-<text text-anchor="middle" x="305" y="-1470.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SourceNameNode</text>
+<g id="a_node519"><a xlink:href="classtvm_1_1runtime_1_1TimerNode.html" target="_top" xlink:title="Base class for all implementations. ">
+<polygon fill="#ffffff" stroke="#000000" points="235,-1539.5 235,-1558.5 375,-1558.5 375,-1539.5 235,-1539.5"/>
+<text text-anchor="middle" x="305" y="-1546.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TimerNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node514 -->
 <g id="edge518" class="edge">
 <title>Node0&#45;&gt;Node514</title>
-<path fill="none" stroke="#191970" d="M84.6529,-3234.3874C91.011,-3045.8897 142.973,-1560.6854 204,-1492 213.2437,-1481.5963 226.2308,-1475.7685 239.822,-1472.694"/>
-<polygon fill="#191970" stroke="#191970" points="81.1511,-3234.3853 84.3139,-3244.4971 88.1472,-3234.62 81.1511,-3234.3853"/>
+<path fill="none" stroke="#191970" d="M84.7351,-3233.8338C91.6065,-3047.6444 145.6412,-1633.4807 204,-1568 212.1318,-1558.8758 223.1432,-1553.2742 234.911,-1549.9632"/>
+<polygon fill="#191970" stroke="#191970" points="81.2277,-3233.9715 84.3585,-3244.0932 88.223,-3234.2284 81.2277,-3233.9715"/>
 </g>
 <!-- Node515 -->
 <g id="node520" class="node">
 <title>Node515</title>
-<g id="a_node520"><a xlink:href="classtvm_1_1SpanNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node. ">
-<polygon fill="#ffffff" stroke="#000000" points="259,-1425.5 259,-1444.5 351,-1444.5 351,-1425.5 259,-1425.5"/>
-<text text-anchor="middle" x="305" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SpanNode</text>
+<g id="a_node520"><a xlink:href="classtvm_1_1runtime_1_1vm_1_1StorageObj.html" target="_top" xlink:title="An object representing a storage allocation. ">
+<polygon fill="#ffffff" stroke="#000000" points="224,-1501.5 224,-1520.5 386,-1520.5 386,-1501.5 224,-1501.5"/>
+<text text-anchor="middle" x="305" y="-1508.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::vm::StorageObj</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node515 -->
 <g id="edge519" class="edge">
 <title>Node0&#45;&gt;Node515</title>
-<path fill="none" stroke="#191970" d="M84.6284,-3234.2519C90.8002,-3042.9194 141.6821,-1524.2395 204,-1454 217.5583,-1438.7182 239.193,-1433.3056 258.9672,-1431.9909"/>
-<polygon fill="#191970" stroke="#191970" points="81.1289,-3234.1853 84.3064,-3244.2923 88.1253,-3234.4097 81.1289,-3234.1853"/>
+<path fill="none" stroke="#191970" d="M84.6883,-3234.2408C91.2796,-3047.4058 144.2939,-1597.0978 204,-1530 209.456,-1523.8686 216.2123,-1519.3271 223.6254,-1516.0023"/>
+<polygon fill="#191970" stroke="#191970" points="81.1886,-3234.1737 84.3357,-3244.2903 88.1843,-3234.4192 81.1886,-3234.1737"/>
 </g>
 <!-- Node516 -->
 <g id="node521" class="node">
 <title>Node516</title>
-<g id="a_node521"><a xlink:href="classtvm_1_1TargetKindNode.html" target="_top" xlink:title="Target kind, specifies the kind of the target. ">
-<polygon fill="#ffffff" stroke="#000000" points="245.5,-1387.5 245.5,-1406.5 364.5,-1406.5 364.5,-1387.5 245.5,-1387.5"/>
-<text text-anchor="middle" x="305" y="-1394.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TargetKindNode</text>
+<g id="a_node521"><a xlink:href="classtvm_1_1SourceNameNode.html" target="_top" xlink:title="The name of a source fragment. ">
+<polygon fill="#ffffff" stroke="#000000" points="240,-1463.5 240,-1482.5 370,-1482.5 370,-1463.5 240,-1463.5"/>
+<text text-anchor="middle" x="305" y="-1470.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SourceNameNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node516 -->
 <g id="edge520" class="edge">
 <title>Node0&#45;&gt;Node516</title>
-<path fill="none" stroke="#191970" d="M84.6134,-3233.8354C90.6411,-3038.4679 140.4215,-1487.7595 204,-1416 214.4715,-1404.1811 229.7735,-1398.2632 245.3147,-1395.5787"/>
-<polygon fill="#191970" stroke="#191970" points="81.1072,-3233.985 84.299,-3244.0876 88.1039,-3234.1996 81.1072,-3233.985"/>
+<path fill="none" stroke="#191970" d="M84.6529,-3234.3874C91.011,-3045.8897 142.973,-1560.6854 204,-1492 213.2437,-1481.5963 226.2308,-1475.7685 239.822,-1472.694"/>
+<polygon fill="#191970" stroke="#191970" points="81.1511,-3234.3853 84.3139,-3244.4971 88.1472,-3234.62 81.1511,-3234.3853"/>
 </g>
 <!-- Node517 -->
 <g id="node522" class="node">
 <title>Node517</title>
-<g id="a_node522"><a xlink:href="classtvm_1_1TargetNode.html" target="_top" xlink:title="Compilation target. ">
-<polygon fill="#ffffff" stroke="#000000" points="256,-1349.5 256,-1368.5 354,-1368.5 354,-1349.5 256,-1349.5"/>
-<text text-anchor="middle" x="305" y="-1356.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TargetNode</text>
+<g id="a_node522"><a xlink:href="classtvm_1_1SpanNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node. ">
+<polygon fill="#ffffff" stroke="#000000" points="259,-1425.5 259,-1444.5 351,-1444.5 351,-1425.5 259,-1425.5"/>
+<text text-anchor="middle" x="305" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SpanNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node517 -->
 <g id="edge521" class="edge">
 <title>Node0&#45;&gt;Node517</title>
-<path fill="none" stroke="#191970" d="M84.5718,-3234.3188C90.3341,-3038.8321 139.0622,-1451.391 204,-1378 216.8284,-1363.5017 236.9253,-1357.88 255.8253,-1356.215"/>
-<polygon fill="#191970" stroke="#191970" points="81.0732,-3234.223 84.2788,-3244.3212 88.0702,-3234.428 81.0732,-3234.223"/>
+<path fill="none" stroke="#191970" d="M84.6284,-3234.2519C90.8002,-3042.9194 141.6821,-1524.2395 204,-1454 217.5583,-1438.7182 239.193,-1433.3056 258.9672,-1431.9909"/>
+<polygon fill="#191970" stroke="#191970" points="81.1289,-3234.1853 84.3064,-3244.2923 88.1253,-3234.4097 81.1289,-3234.1853"/>
 </g>
 <!-- Node518 -->
 <g id="node523" class="node">
 <title>Node518</title>
-<g id="a_node523"><a xlink:href="classtvm_1_1TargetTagNode.html" target="_top" xlink:title="A target tag. ">
-<polygon fill="#ffffff" stroke="#000000" points="248,-1311.5 248,-1330.5 362,-1330.5 362,-1311.5 248,-1311.5"/>
-<text text-anchor="middle" x="305" y="-1318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TargetTagNode</text>
+<g id="a_node523"><a xlink:href="classtvm_1_1TargetKindNode.html" target="_top" xlink:title="Target kind, specifies the kind of the target. ">
+<polygon fill="#ffffff" stroke="#000000" points="245.5,-1387.5 245.5,-1406.5 364.5,-1406.5 364.5,-1387.5 245.5,-1387.5"/>
+<text text-anchor="middle" x="305" y="-1394.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TargetKindNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node518 -->
 <g id="edge522" class="edge">
 <title>Node0&#45;&gt;Node518</title>
-<path fill="none" stroke="#191970" d="M84.5574,-3233.9205C90.1784,-3034.4782 137.7995,-1414.9134 204,-1340 215.0469,-1327.4991 231.4975,-1321.5952 247.9308,-1319.137"/>
-<polygon fill="#191970" stroke="#191970" points="81.053,-3234.0313 84.2716,-3244.1254 88.0503,-3234.2273 81.053,-3234.0313"/>
+<path fill="none" stroke="#191970" d="M84.6134,-3233.8354C90.6411,-3038.4679 140.4215,-1487.7595 204,-1416 214.4715,-1404.1811 229.7735,-1398.2632 245.3147,-1395.5787"/>
+<polygon fill="#191970" stroke="#191970" points="81.1072,-3233.985 84.299,-3244.0876 88.1039,-3234.1996 81.1072,-3233.985"/>
 </g>
 <!-- Node519 -->
 <g id="node524" class="node">
 <title>Node519</title>
-<g id="a_node524"><a xlink:href="classtvm_1_1te_1_1IterVarAttrNode.html" target="_top" xlink:title="node container for IterVar attr ">
-<polygon fill="#ffffff" stroke="#000000" points="238,-1273.5 238,-1292.5 372,-1292.5 372,-1273.5 238,-1273.5"/>
-<text text-anchor="middle" x="305" y="-1280.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::IterVarAttrNode</text>
+<g id="a_node524"><a xlink:href="classtvm_1_1TargetNode.html" target="_top" xlink:title="Compilation target. ">
+<polygon fill="#ffffff" stroke="#000000" points="256,-1349.5 256,-1368.5 354,-1368.5 354,-1349.5 256,-1349.5"/>
+<text text-anchor="middle" x="305" y="-1356.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TargetNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node519 -->
 <g id="edge523" class="edge">
 <title>Node0&#45;&gt;Node519</title>
-<path fill="none" stroke="#191970" d="M84.5263,-3234.1404C89.9278,-3033.4966 136.4679,-1378.514 204,-1302 212.7961,-1292.0341 225.0262,-1286.2595 237.9468,-1283.0808"/>
-<polygon fill="#191970" stroke="#191970" points="81.0213,-3234.2858 84.2527,-3244.3758 88.0188,-3234.4729 81.0213,-3234.2858"/>
+<path fill="none" stroke="#191970" d="M84.5718,-3234.3188C90.3341,-3038.8321 139.0622,-1451.391 204,-1378 216.8284,-1363.5017 236.9253,-1357.88 255.8253,-1356.215"/>
+<polygon fill="#191970" stroke="#191970" points="81.0732,-3234.223 84.2788,-3244.3212 88.0702,-3234.428 81.0732,-3234.223"/>
 </g>
 <!-- Node520 -->
 <g id="node525" class="node">
 <title>Node520</title>
-<g id="a_node525"><a xlink:href="classtvm_1_1te_1_1IterVarRelationNode.html" target="_top" xlink:title="base node of iteration var ">
-<polygon fill="#ffffff" stroke="#000000" points="227.5,-1235.5 227.5,-1254.5 382.5,-1254.5 382.5,-1235.5 227.5,-1235.5"/>
-<text text-anchor="middle" x="305" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::IterVarRelationNode</text>
+<g id="a_node525"><a xlink:href="classtvm_1_1TargetTagNode.html" target="_top" xlink:title="A target tag. ">
+<polygon fill="#ffffff" stroke="#000000" points="248,-1311.5 248,-1330.5 362,-1330.5 362,-1311.5 248,-1311.5"/>
+<text text-anchor="middle" x="305" y="-1318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TargetTagNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node520 -->
 <g id="edge524" class="edge">
 <title>Node0&#45;&gt;Node520</title>
-<path fill="none" stroke="#191970" d="M84.5045,-3234.0587C89.729,-3030.8891 135.1695,-1342.0771 204,-1264 210.3714,-1256.7726 218.5489,-1251.7489 227.4869,-1248.3208"/>
-<polygon fill="#191970" stroke="#191970" points="81.0024,-3234.1025 84.2458,-3244.1886 88.0001,-3234.2812 81.0024,-3234.1025"/>
+<path fill="none" stroke="#191970" d="M84.5574,-3233.9205C90.1784,-3034.4782 137.7995,-1414.9134 204,-1340 215.0469,-1327.4991 231.4975,-1321.5952 247.9308,-1319.137"/>
+<polygon fill="#191970" stroke="#191970" points="81.053,-3234.0313 84.2716,-3244.1254 88.0503,-3234.2273 81.053,-3234.0313"/>
 </g>
-<!-- Node526 -->
-<g id="node531" class="node">
-<title>Node526</title>
-<g id="a_node531"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-1197.5 239.5,-1216.5 370.5,-1216.5 370.5,-1197.5 239.5,-1197.5"/>
-<text text-anchor="middle" x="305" y="-1204.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::OperationNode</text>
+<!-- Node521 -->
+<g id="node526" class="node">
+<title>Node521</title>
+<g id="a_node526"><a xlink:href="classtvm_1_1te_1_1IterVarAttrNode.html" target="_top" xlink:title="node container for IterVar attr ">
+<polygon fill="#ffffff" stroke="#000000" points="238,-1273.5 238,-1292.5 372,-1292.5 372,-1273.5 238,-1273.5"/>
+<text text-anchor="middle" x="305" y="-1280.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::IterVarAttrNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node526 -->
-<g id="edge530" class="edge">
-<title>Node0&#45;&gt;Node526</title>
-<path fill="none" stroke="#191970" d="M84.4753,-3234.3067C89.4863,-3030.1432 133.8332,-1305.6833 204,-1226 213.1384,-1215.6222 226.0002,-1209.7866 239.4935,-1206.694"/>
-<polygon fill="#191970" stroke="#191970" points="80.9728,-3234.3725 84.2281,-3244.4548 87.9707,-3234.5431 80.9728,-3234.3725"/>
+<!-- Node0&#45;&gt;Node521 -->
+<g id="edge525" class="edge">
+<title>Node0&#45;&gt;Node521</title>
+<path fill="none" stroke="#191970" d="M84.5263,-3234.1404C89.9278,-3033.4966 136.4679,-1378.514 204,-1302 212.7961,-1292.0341 225.0262,-1286.2595 237.9468,-1283.0808"/>
+<polygon fill="#191970" stroke="#191970" points="81.0213,-3234.2858 84.2527,-3244.3758 88.0188,-3234.4729 81.0213,-3234.2858"/>
 </g>
-<!-- Node534 -->
-<g id="node539" class="node">
-<title>Node534</title>
-<g id="a_node539"><a xlink:href="classtvm_1_1te_1_1ScheduleNode.html" target="_top" xlink:title="node container for schedule ">
-<polygon fill="#ffffff" stroke="#000000" points="241,-1159.5 241,-1178.5 369,-1178.5 369,-1159.5 241,-1159.5"/>
-<text text-anchor="middle" x="305" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::ScheduleNode</text>
+<!-- Node522 -->
+<g id="node527" class="node">
+<title>Node522</title>
+<g id="a_node527"><a xlink:href="classtvm_1_1te_1_1IterVarRelationNode.html" target="_top" xlink:title="base node of iteration var ">
+<polygon fill="#ffffff" stroke="#000000" points="227.5,-1235.5 227.5,-1254.5 382.5,-1254.5 382.5,-1235.5 227.5,-1235.5"/>
+<text text-anchor="middle" x="305" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::IterVarRelationNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node534 -->
-<g id="edge538" class="edge">
-<title>Node0&#45;&gt;Node534</title>
-<path fill="none" stroke="#191970" d="M84.4547,-3234.2475C89.2932,-3027.7019 132.5315,-1269.2504 204,-1188 213.4273,-1177.2824 226.8259,-1171.4078 240.793,-1168.396"/>
-<polygon fill="#191970" stroke="#191970" points="80.955,-3234.1974 84.2216,-3244.2761 87.9532,-3234.3602 80.955,-3234.1974"/>
+<!-- Node0&#45;&gt;Node522 -->
+<g id="edge526" class="edge">
+<title>Node0&#45;&gt;Node522</title>
+<path fill="none" stroke="#191970" d="M84.5045,-3234.0587C89.729,-3030.8891 135.1695,-1342.0771 204,-1264 210.3714,-1256.7726 218.5489,-1251.7489 227.4869,-1248.3208"/>
+<polygon fill="#191970" stroke="#191970" points="81.0024,-3234.1025 84.2458,-3244.1886 88.0001,-3234.2812 81.0024,-3234.1025"/>
 </g>
-<!-- Node535 -->
-<g id="node540" class="node">
-<title>Node535</title>
-<g id="a_node540"><a xlink:href="classtvm_1_1te_1_1SpecializedConditionNode.html" target="_top" xlink:title="Container for specialization conditions. ">
-<polygon fill="#ffffff" stroke="#000000" points="212.5,-1121.5 212.5,-1140.5 397.5,-1140.5 397.5,-1121.5 212.5,-1121.5"/>
-<text text-anchor="middle" x="305" y="-1128.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::SpecializedConditionNode</text>
+<!-- Node528 -->
+<g id="node533" class="node">
+<title>Node528</title>
+<g id="a_node533"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes. ">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-1197.5 239.5,-1216.5 370.5,-1216.5 370.5,-1197.5 239.5,-1197.5"/>
+<text text-anchor="middle" x="305" y="-1204.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::OperationNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node535 -->
-<g id="edge539" class="edge">
-<title>Node0&#45;&gt;Node535</title>
-<path fill="none" stroke="#191970" d="M84.4416,-3233.8845C89.1442,-3023.5435 131.2646,-1232.7779 204,-1150 207.1798,-1146.3811 210.8124,-1143.3143 214.7669,-1140.7232"/>
-<polygon fill="#191970" stroke="#191970" points="80.9378,-3234.0223 84.215,-3244.0975 87.936,-3234.1776 80.9378,-3234.0223"/>
+<!-- Node0&#45;&gt;Node528 -->
+<g id="edge532" class="edge">
+<title>Node0&#45;&gt;Node528</title>
+<path fill="none" stroke="#191970" d="M84.4753,-3234.3067C89.4863,-3030.1432 133.8332,-1305.6833 204,-1226 213.1384,-1215.6222 226.0002,-1209.7866 239.4935,-1206.694"/>
+<polygon fill="#191970" stroke="#191970" points="80.9728,-3234.3725 84.2281,-3244.4548 87.9707,-3234.5431 80.9728,-3234.3725"/>
 </g>
 <!-- Node536 -->
 <g id="node541" class="node">
 <title>Node536</title>
-<g id="a_node541"><a xlink:href="classtvm_1_1te_1_1StageNode.html" target="_top" xlink:title="represents a stage. ">
-<polygon fill="#ffffff" stroke="#000000" points="249.5,-1083.5 249.5,-1102.5 360.5,-1102.5 360.5,-1083.5 249.5,-1083.5"/>
-<text text-anchor="middle" x="305" y="-1090.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::StageNode</text>
+<g id="a_node541"><a xlink:href="classtvm_1_1te_1_1ScheduleNode.html" target="_top" xlink:title="node container for schedule ">
+<polygon fill="#ffffff" stroke="#000000" points="241,-1159.5 241,-1178.5 369,-1178.5 369,-1159.5 241,-1159.5"/>
+<text text-anchor="middle" x="305" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::ScheduleNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node536 -->
 <g id="edge540" class="edge">
 <title>Node0&#45;&gt;Node536</title>
-<path fill="none" stroke="#191970" d="M84.4146,-3234.1707C88.9117,-3023.0999 129.9223,-1196.3913 204,-1112 215.3584,-1099.0602 232.5051,-1093.176 249.4623,-1090.8668"/>
-<polygon fill="#191970" stroke="#191970" points="80.9109,-3234.3151 84.1987,-3244.3868 87.9093,-3234.463 80.9109,-3234.3151"/>
+<path fill="none" stroke="#191970" d="M84.4547,-3234.2475C89.2932,-3027.7019 132.5315,-1269.2504 204,-1188 213.4273,-1177.2824 226.8259,-1171.4078 240.793,-1168.396"/>
+<polygon fill="#191970" stroke="#191970" points="80.955,-3234.1974 84.2216,-3244.2761 87.9532,-3234.3602 80.955,-3234.1974"/>
 </g>
 <!-- Node537 -->
 <g id="node542" class="node">
 <title>Node537</title>
-<g id="a_node542"><a xlink:href="classtvm_1_1te_1_1TensorIntrinCallNode.html" target="_top" xlink:title="tvm::te::TensorIntrinCallNode">
-<polygon fill="#ffffff" stroke="#000000" points="225.5,-1045.5 225.5,-1064.5 384.5,-1064.5 384.5,-1045.5 225.5,-1045.5"/>
-<text text-anchor="middle" x="305" y="-1052.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::TensorIntrinCallNode</text>
+<g id="a_node542"><a xlink:href="classtvm_1_1te_1_1SpecializedConditionNode.html" target="_top" xlink:title="Container for specialization conditions. ">
+<polygon fill="#ffffff" stroke="#000000" points="212.5,-1121.5 212.5,-1140.5 397.5,-1140.5 397.5,-1121.5 212.5,-1121.5"/>
+<text text-anchor="middle" x="305" y="-1128.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::SpecializedConditionNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node537 -->
 <g id="edge541" class="edge">
 <title>Node0&#45;&gt;Node537</title>
-<path fill="none" stroke="#191970" d="M84.7426,-3234.3735C92.9018,-3019.7904 166.2699,-1117.0253 204,-1074 209.8819,-1067.2926 217.3191,-1062.4804 225.4796,-1059.0791"/>
-<polygon fill="#191970" stroke="#191970" points="81.2409,-3234.3557 84.3591,-3244.4812 88.2358,-3234.6211 81.2409,-3234.3557"/>
+<path fill="none" stroke="#191970" d="M84.4416,-3233.8845C89.1442,-3023.5435 131.2646,-1232.7779 204,-1150 207.1798,-1146.3811 210.8124,-1143.3143 214.7669,-1140.7232"/>
+<polygon fill="#191970" stroke="#191970" points="80.9378,-3234.0223 84.215,-3244.0975 87.936,-3234.1776 80.9378,-3234.0223"/>
 </g>
 <!-- Node538 -->
 <g id="node543" class="node">
 <title>Node538</title>
-<g id="a_node543"><a xlink:href="classtvm_1_1te_1_1TensorIntrinNode.html" target="_top" xlink:title="Node to represent a Tensor intrinsic operator. ">
-<polygon fill="#ffffff" stroke="#000000" points="235,-1007.5 235,-1026.5 375,-1026.5 375,-1007.5 235,-1007.5"/>
-<text text-anchor="middle" x="305" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::TensorIntrinNode</text>
+<g id="a_node543"><a xlink:href="classtvm_1_1te_1_1StageNode.html" target="_top" xlink:title="represents a stage. ">
+<polygon fill="#ffffff" stroke="#000000" points="249.5,-1083.5 249.5,-1102.5 360.5,-1102.5 360.5,-1083.5 249.5,-1083.5"/>
+<text text-anchor="middle" x="305" y="-1090.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::StageNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node538 -->
 <g id="edge542" class="edge">
 <title>Node0&#45;&gt;Node538</title>
-<path fill="none" stroke="#191970" d="M84.3828,-3233.7927C88.5796,-3016.7973 127.3476,-1123.4932 204,-1036 212.0539,-1026.807 223.0291,-1021.1734 234.7857,-1017.8524"/>
-<polygon fill="#191970" stroke="#191970" points="80.8787,-3233.9808 84.1863,-3244.0461 87.8774,-3234.115 80.8787,-3233.9808"/>
+<path fill="none" stroke="#191970" d="M84.4146,-3234.1707C88.9117,-3023.0999 129.9223,-1196.3913 204,-1112 215.3584,-1099.0602 232.5051,-1093.176 249.4623,-1090.8668"/>
+<polygon fill="#191970" stroke="#191970" points="80.9109,-3234.3151 84.1987,-3244.3868 87.9093,-3234.463 80.9109,-3234.3151"/>
 </g>
 <!-- Node539 -->
 <g id="node544" class="node">
 <title>Node539</title>
-<g id="a_node544"><a xlink:href="classtvm_1_1tir_1_1BijectiveLayoutNode.html" target="_top" xlink:title="tvm::tir::BijectiveLayoutNode">
-<polygon fill="#ffffff" stroke="#000000" points="225,-969.5 225,-988.5 385,-988.5 385,-969.5 225,-969.5"/>
-<text text-anchor="middle" x="305" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BijectiveLayoutNode</text>
+<g id="a_node544"><a xlink:href="classtvm_1_1te_1_1TensorIntrinCallNode.html" target="_top" xlink:title="tvm::te::TensorIntrinCallNode">
+<polygon fill="#ffffff" stroke="#000000" points="225.5,-1045.5 225.5,-1064.5 384.5,-1064.5 384.5,-1045.5 225.5,-1045.5"/>
+<text text-anchor="middle" x="305" y="-1052.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::TensorIntrinCallNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node539 -->
 <g id="edge543" class="edge">
 <title>Node0&#45;&gt;Node539</title>
-<path fill="none" stroke="#191970" d="M84.358,-3234.1151C88.3574,-3016.6569 125.9993,-1087.1138 204,-998 209.7582,-991.4214 217.0124,-986.6651 224.9789,-983.2744"/>
-<polygon fill="#191970" stroke="#191970" points="80.8542,-3234.2951 84.1714,-3244.3572 87.8531,-3234.4227 80.8542,-3234.2951"/>
+<path fill="none" stroke="#191970" d="M84.7426,-3234.3735C92.9018,-3019.7904 166.2699,-1117.0253 204,-1074 209.8819,-1067.2926 217.3191,-1062.4804 225.4796,-1059.0791"/>
+<polygon fill="#191970" stroke="#191970" points="81.2409,-3234.3557 84.3591,-3244.4812 88.2358,-3234.6211 81.2409,-3234.3557"/>
 </g>
 <!-- Node540 -->
 <g id="node545" class="node">
 <title>Node540</title>
-<g id="a_node545"><a xlink:href="classtvm_1_1tir_1_1BlockRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR block. ">
-<polygon fill="#ffffff" stroke="#000000" points="243,-931.5 243,-950.5 367,-950.5 367,-931.5 243,-931.5"/>
-<text text-anchor="middle" x="305" y="-938.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BlockRVNode</text>
+<g id="a_node545"><a xlink:href="classtvm_1_1te_1_1TensorIntrinNode.html" target="_top" xlink:title="Node to represent a Tensor intrinsic operator. ">
+<polygon fill="#ffffff" stroke="#000000" points="235,-1007.5 235,-1026.5 375,-1026.5 375,-1007.5 235,-1007.5"/>
+<text text-anchor="middle" x="305" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::te::TensorIntrinNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node540 -->
 <g id="edge544" class="edge">
 <title>Node0&#45;&gt;Node540</title>
-<path fill="none" stroke="#191970" d="M84.3401,-3234.1091C88.1778,-3014.6143 124.6895,-1050.6906 204,-960 213.8663,-948.718 228.1321,-942.7942 242.8479,-939.9269"/>
-<polygon fill="#191970" stroke="#191970" points="80.8392,-3234.1358 84.1655,-3244.1949 87.8382,-3234.2571 80.8392,-3234.1358"/>
+<path fill="none" stroke="#191970" d="M84.3828,-3233.7927C88.5796,-3016.7973 127.3476,-1123.4932 204,-1036 212.0539,-1026.807 223.0291,-1021.1734 234.7857,-1017.8524"/>
+<polygon fill="#191970" stroke="#191970" points="80.8787,-3233.9808 84.1863,-3244.0461 87.8774,-3234.115 80.8787,-3233.9808"/>
 </g>
 <!-- Node541 -->
 <g id="node546" class="node">
 <title>Node541</title>
-<g id="a_node546"><a xlink:href="classtvm_1_1tir_1_1BlockScopeNode.html" target="_top" xlink:title="An object with 1&#45;to&#45;1 correspondence with each block reference in the sref tree. This data structure ...">
-<polygon fill="#ffffff" stroke="#000000" points="235,-893.5 235,-912.5 375,-912.5 375,-893.5 235,-893.5"/>
-<text text-anchor="middle" x="305" y="-900.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BlockScopeNode</text>
+<g id="a_node546"><a xlink:href="classtvm_1_1tir_1_1BijectiveLayoutNode.html" target="_top" xlink:title="tvm::tir::BijectiveLayoutNode">
+<polygon fill="#ffffff" stroke="#000000" points="225,-969.5 225,-988.5 385,-988.5 385,-969.5 225,-969.5"/>
+<text text-anchor="middle" x="305" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BijectiveLayoutNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node541 -->
 <g id="edge545" class="edge">
 <title>Node0&#45;&gt;Node541</title>
-<path fill="none" stroke="#191970" d="M84.3282,-3233.7799C88.0355,-3010.6523 123.4185,-1014.223 204,-922 212.0418,-912.7964 223.0114,-907.1578 234.7661,-903.8354"/>
-<polygon fill="#191970" stroke="#191970" points="80.8246,-3233.9764 84.1595,-3244.0327 87.8236,-3234.0916 80.8246,-3233.9764"/>
+<path fill="none" stroke="#191970" d="M84.358,-3234.1151C88.3574,-3016.6569 125.9993,-1087.1138 204,-998 209.7582,-991.4214 217.0124,-986.6651 224.9789,-983.2744"/>
+<polygon fill="#191970" stroke="#191970" points="80.8542,-3234.2951 84.1714,-3244.3572 87.8531,-3234.4227 80.8542,-3234.2951"/>
 </g>
 <!-- Node542 -->
 <g id="node547" class="node">
 <title>Node542</title>
-<g id="a_node547"><a xlink:href="classtvm_1_1tir_1_1BufferNode.html" target="_top" xlink:title="Node to represent a buffer. ">
-<polygon fill="#ffffff" stroke="#000000" points="248.5,-855.5 248.5,-874.5 361.5,-874.5 361.5,-855.5 248.5,-855.5"/>
-<text text-anchor="middle" x="305" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BufferNode</text>
+<g id="a_node547"><a xlink:href="classtvm_1_1tir_1_1BlockRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR block. ">
+<polygon fill="#ffffff" stroke="#000000" points="243,-931.5 243,-950.5 367,-950.5 367,-931.5 243,-931.5"/>
+<text text-anchor="middle" x="305" y="-938.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BlockRVNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node542 -->
 <g id="edge546" class="edge">
 <title>Node0&#45;&gt;Node542</title>
-<path fill="none" stroke="#191970" d="M84.3054,-3234.1364C87.8237,-3010.8161 122.0642,-977.8508 204,-884 215.0889,-871.2985 231.7539,-865.3853 248.3671,-862.9794"/>
-<polygon fill="#191970" stroke="#191970" points="80.8024,-3234.3109 84.146,-3244.3642 87.8015,-3234.42 80.8024,-3234.3109"/>
+<path fill="none" stroke="#191970" d="M84.3401,-3234.1091C88.1778,-3014.6143 124.6895,-1050.6906 204,-960 213.8663,-948.718 228.1321,-942.7942 242.8479,-939.9269"/>
+<polygon fill="#191970" stroke="#191970" points="80.8392,-3234.1358 84.1655,-3244.1949 87.8382,-3234.2571 80.8392,-3234.1358"/>
 </g>
 <!-- Node543 -->
 <g id="node548" class="node">
 <title>Node543</title>
-<g id="a_node548"><a xlink:href="classtvm_1_1tir_1_1BufferRegionNode.html" target="_top" xlink:title="Representing the region of multi&#45;dimensional buffer access. ">
-<polygon fill="#ffffff" stroke="#000000" points="232,-817.5 232,-836.5 378,-836.5 378,-817.5 232,-817.5"/>
-<text text-anchor="middle" x="305" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BufferRegionNode</text>
+<g id="a_node548"><a xlink:href="classtvm_1_1tir_1_1BlockScopeNode.html" target="_top" xlink:title="An object with 1&#45;to&#45;1 correspondence with each block reference in the sref tree. This data structure ...">
+<polygon fill="#ffffff" stroke="#000000" points="235,-893.5 235,-912.5 375,-912.5 375,-893.5 235,-893.5"/>
+<text text-anchor="middle" x="305" y="-900.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BlockScopeNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node543 -->
 <g id="edge547" class="edge">
 <title>Node0&#45;&gt;Node543</title>
-<path fill="none" stroke="#191970" d="M84.2889,-3234.1551C87.6509,-3008.9739 120.7505,-941.4324 204,-846 211.3892,-837.5294 221.2584,-832.0772 231.9393,-828.6709"/>
-<polygon fill="#191970" stroke="#191970" points="80.7885,-3234.1592 84.1404,-3244.2099 87.7878,-3234.2627 80.7885,-3234.1592"/>
+<path fill="none" stroke="#191970" d="M84.3282,-3233.7799C88.0355,-3010.6523 123.4185,-1014.223 204,-922 212.0418,-912.7964 223.0114,-907.1578 234.7661,-903.8354"/>
+<polygon fill="#191970" stroke="#191970" points="80.8246,-3233.9764 84.1595,-3244.0327 87.8236,-3234.0916 80.8246,-3233.9764"/>
 </g>
 <!-- Node544 -->
 <g id="node549" class="node">
 <title>Node544</title>
-<g id="a_node549"><a xlink:href="classtvm_1_1tir_1_1CommReducerNode.html" target="_top" xlink:title="A commutative reducer node to represent a commutative binary operator with identity element...">
-<polygon fill="#ffffff" stroke="#000000" points="227.5,-779.5 227.5,-798.5 382.5,-798.5 382.5,-779.5 227.5,-779.5"/>
-<text text-anchor="middle" x="305" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::CommReducerNode</text>
+<g id="a_node549"><a xlink:href="classtvm_1_1tir_1_1BufferNode.html" target="_top" xlink:title="Node to represent a buffer. ">
+<polygon fill="#ffffff" stroke="#000000" points="248.5,-855.5 248.5,-874.5 361.5,-874.5 361.5,-855.5 248.5,-855.5"/>
+<text text-anchor="middle" x="305" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BufferNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node544 -->
 <g id="edge548" class="edge">
 <title>Node0&#45;&gt;Node544</title>
-<path fill="none" stroke="#191970" d="M84.2775,-3233.8422C87.512,-3005.1103 119.4774,-904.9673 204,-808 210.3308,-800.737 218.4848,-795.6927 227.4111,-792.2543"/>
-<polygon fill="#191970" stroke="#191970" points="80.775,-3234.0075 84.1347,-3244.0555 87.7743,-3234.1054 80.775,-3234.0075"/>
+<path fill="none" stroke="#191970" d="M84.3054,-3234.1364C87.8237,-3010.8161 122.0642,-977.8508 204,-884 215.0889,-871.2985 231.7539,-865.3853 248.3671,-862.9794"/>
+<polygon fill="#191970" stroke="#191970" points="80.8024,-3234.3109 84.146,-3244.3642 87.8015,-3234.42 80.8024,-3234.3109"/>
 </g>
 <!-- Node545 -->
 <g id="node550" class="node">
 <title>Node545</title>
-<g id="a_node550"><a xlink:href="classtvm_1_1tir_1_1DataProducerNode.html" target="_top" xlink:title="Base node for data producers. ">
-<polygon fill="#ffffff" stroke="#000000" points="230,-741.5 230,-760.5 380,-760.5 380,-741.5 230,-741.5"/>
-<text text-anchor="middle" x="305" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::DataProducerNode</text>
+<g id="a_node550"><a xlink:href="classtvm_1_1tir_1_1BufferRegionNode.html" target="_top" xlink:title="Representing the region of multi&#45;dimensional buffer access. ">
+<polygon fill="#ffffff" stroke="#000000" points="232,-817.5 232,-836.5 378,-836.5 378,-817.5 232,-817.5"/>
+<text text-anchor="middle" x="305" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::BufferRegionNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node545 -->
 <g id="edge549" class="edge">
 <title>Node0&#45;&gt;Node545</title>
-<path fill="none" stroke="#191970" d="M84.2568,-3234.2309C87.3107,-3005.5793 118.1172,-868.6023 204,-770 210.9141,-762.062 220.0059,-756.7737 229.9044,-753.3354"/>
-<polygon fill="#191970" stroke="#191970" points="80.7549,-3234.3608 84.1225,-3244.4061 87.7543,-3234.4532 80.7549,-3234.3608"/>
+<path fill="none" stroke="#191970" d="M84.2889,-3234.1551C87.6509,-3008.9739 120.7505,-941.4324 204,-846 211.3892,-837.5294 221.2584,-832.0772 231.9393,-828.6709"/>
+<polygon fill="#191970" stroke="#191970" points="80.7885,-3234.1592 84.1404,-3244.2099 87.7878,-3234.2627 80.7885,-3234.1592"/>
+</g>
+<!-- Node546 -->
+<g id="node551" class="node">
+<title>Node546</title>
+<g id="a_node551"><a xlink:href="classtvm_1_1tir_1_1CommReducerNode.html" target="_top" xlink:title="A commutative reducer node to represent a commutative binary operator with identity element...">
+<polygon fill="#ffffff" stroke="#000000" points="227.5,-779.5 227.5,-798.5 382.5,-798.5 382.5,-779.5 227.5,-779.5"/>
+<text text-anchor="middle" x="305" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::CommReducerNode</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node546 -->
+<g id="edge550" class="edge">
+<title>Node0&#45;&gt;Node546</title>
+<path fill="none" stroke="#191970" d="M84.2775,-3233.8422C87.512,-3005.1103 119.4774,-904.9673 204,-808 210.3308,-800.737 218.4848,-795.6927 227.4111,-792.2543"/>
+<polygon fill="#191970" stroke="#191970" points="80.775,-3234.0075 84.1347,-3244.0555 87.7743,-3234.1054 80.775,-3234.0075"/>
 </g>
 <!-- Node547 -->
 <g id="node552" class="node">
 <title>Node547</title>
-<g id="a_node552"><a xlink:href="classtvm_1_1tir_1_1DependencyNode.html" target="_top" xlink:title="A tuple (src, dst, kind) representing certain types of dependency. For example, (A, B, kRAW) means block B depends on block A, and the dependency kind is read&#45;after&#45;write, which means block B reads the result written by block A. ">
-<polygon fill="#ffffff" stroke="#000000" points="232.5,-703.5 232.5,-722.5 377.5,-722.5 377.5,-703.5 232.5,-703.5"/>
-<text text-anchor="middle" x="305" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::DependencyNode</text>
+<g id="a_node552"><a xlink:href="classtvm_1_1tir_1_1DataProducerNode.html" target="_top" xlink:title="Base node for data producers. ">
+<polygon fill="#ffffff" stroke="#000000" points="230,-741.5 230,-760.5 380,-760.5 380,-741.5 230,-741.5"/>
+<text text-anchor="middle" x="305" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::DataProducerNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node547 -->
 <g id="edge551" class="edge">
 <title>Node0&#45;&gt;Node547</title>
-<path fill="none" stroke="#191970" d="M84.2458,-3233.9287C87.1741,-3001.782 116.8428,-832.1389 204,-732 211.4969,-723.3865 221.5578,-717.8923 232.4322,-714.496"/>
-<polygon fill="#191970" stroke="#191970" points="80.7421,-3234.2166 84.1172,-3244.2595 87.7415,-3234.3039 80.7421,-3234.2166"/>
-</g>
-<!-- Node548 -->
-<g id="node553" class="node">
-<title>Node548</title>
-<g id="a_node553"><a xlink:href="classtvm_1_1tir_1_1IndexMapNode.html" target="_top" xlink:title="Defines a mapping between two representations of indices into a buffer. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-665.5 239.5,-684.5 370.5,-684.5 370.5,-665.5 239.5,-665.5"/>
-<text text-anchor="middle" x="305" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::IndexMapNode</text>
-</a>
-</g>
-</g>
-<!-- Node0&#45;&gt;Node548 -->
-<g id="edge552" class="edge">
-<title>Node0&#45;&gt;Node548</title>
-<path fill="none" stroke="#191970" d="M84.2265,-3234.3304C86.9804,-3002.4096 115.4795,-795.7776 204,-694 213.0746,-683.5664 225.9112,-677.7087 239.4005,-674.6126"/>
-<polygon fill="#191970" stroke="#191970" points="80.7264,-3234.3278 84.1089,-3244.3682 87.7259,-3234.4099 80.7264,-3234.3278"/>
+<path fill="none" stroke="#191970" d="M84.2568,-3234.2309C87.3107,-3005.5793 118.1172,-868.6023 204,-770 210.9141,-762.062 220.0059,-756.7737 229.9044,-753.3354"/>
+<polygon fill="#191970" stroke="#191970" points="80.7549,-3234.3608 84.1225,-3244.4061 87.7543,-3234.4532 80.7549,-3234.3608"/>
 </g>
 <!-- Node549 -->
 <g id="node554" class="node">
 <title>Node549</title>
-<g id="a_node554"><a xlink:href="classtvm_1_1tir_1_1InstructionKindNode.html" target="_top" xlink:title="Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its...">
-<polygon fill="#ffffff" stroke="#000000" points="226,-627.5 226,-646.5 384,-646.5 384,-627.5 226,-627.5"/>
-<text text-anchor="middle" x="305" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::InstructionKindNode</text>
+<g id="a_node554"><a xlink:href="classtvm_1_1tir_1_1DependencyNode.html" target="_top" xlink:title="A tuple (src, dst, kind) representing certain types of dependency. For example, (A, B, kRAW) means block B depends on block A, and the dependency kind is read&#45;after&#45;write, which means block B reads the result written by block A. ">
+<polygon fill="#ffffff" stroke="#000000" points="232.5,-703.5 232.5,-722.5 377.5,-722.5 377.5,-703.5 232.5,-703.5"/>
+<text text-anchor="middle" x="305" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::DependencyNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node549 -->
 <g id="edge553" class="edge">
 <title>Node0&#45;&gt;Node549</title>
-<path fill="none" stroke="#191970" d="M84.2119,-3234.395C86.8184,-3000.9485 114.1582,-759.3681 204,-656 209.9693,-649.132 217.5687,-644.2464 225.9118,-640.8259"/>
-<polygon fill="#191970" stroke="#191970" points="80.7113,-3234.4432 84.1009,-3244.4811 87.7108,-3234.5203 80.7113,-3234.4432"/>
+<path fill="none" stroke="#191970" d="M84.2458,-3233.9287C87.1741,-3001.782 116.8428,-832.1389 204,-732 211.4969,-723.3865 221.5578,-717.8923 232.4322,-714.496"/>
+<polygon fill="#191970" stroke="#191970" points="80.7421,-3234.2166 84.1172,-3244.2595 87.7415,-3234.3039 80.7421,-3234.2166"/>
 </g>
 <!-- Node550 -->
 <g id="node555" class="node">
 <title>Node550</title>
-<g id="a_node555"><a xlink:href="classtvm_1_1tir_1_1InstructionNode.html" target="_top" xlink:title="Schedule instructions each corresponds to a schedule primitive. ">
-<polygon fill="#ffffff" stroke="#000000" points="237,-589.5 237,-608.5 373,-608.5 373,-589.5 237,-589.5"/>
-<text text-anchor="middle" x="305" y="-596.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::InstructionNode</text>
+<g id="a_node555"><a xlink:href="classtvm_1_1tir_1_1IndexMapNode.html" target="_top" xlink:title="Defines a mapping between two representations of indices into a buffer. ">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-665.5 239.5,-684.5 370.5,-684.5 370.5,-665.5 239.5,-665.5"/>
+<text text-anchor="middle" x="305" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::IndexMapNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node550 -->
 <g id="edge554" class="edge">
 <title>Node0&#45;&gt;Node550</title>
-<path fill="none" stroke="#191970" d="M84.2015,-3234.1085C86.6853,-2997.2501 112.8818,-722.9072 204,-618 212.4825,-608.2338 224.2611,-602.4754 236.7885,-599.238"/>
-<polygon fill="#191970" stroke="#191970" points="80.6994,-3234.3064 84.0958,-3244.342 87.699,-3234.3787 80.6994,-3234.3064"/>
+<path fill="none" stroke="#191970" d="M84.2265,-3234.3304C86.9804,-3002.4096 115.4795,-795.7776 204,-694 213.0746,-683.5664 225.9112,-677.7087 239.4005,-674.6126"/>
+<polygon fill="#191970" stroke="#191970" points="80.7264,-3234.3278 84.1089,-3244.3682 87.7259,-3234.4099 80.7264,-3234.3278"/>
 </g>
 <!-- Node551 -->
 <g id="node556" class="node">
 <title>Node551</title>
-<g id="a_node556"><a xlink:href="classtvm_1_1tir_1_1IterVarNode.html" target="_top" xlink:title="An iteration variable representing an iteration over a one dimensional interval. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-551.5 247,-570.5 363,-570.5 363,-551.5 247,-551.5"/>
-<text text-anchor="middle" x="305" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::IterVarNode</text>
+<g id="a_node556"><a xlink:href="classtvm_1_1tir_1_1InstructionKindNode.html" target="_top" xlink:title="Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its...">
+<polygon fill="#ffffff" stroke="#000000" points="226,-627.5 226,-646.5 384,-646.5 384,-627.5 226,-627.5"/>
+<text text-anchor="middle" x="305" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::InstructionKindNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node551 -->
 <g id="edge555" class="edge">
 <title>Node0&#45;&gt;Node551</title>
-<path fill="none" stroke="#191970" d="M84.1875,-3234.1855C86.5268,-2995.8897 111.5585,-686.5001 204,-580 214.7015,-567.671 230.6559,-561.728 246.7411,-559.1811"/>
-<polygon fill="#191970" stroke="#191970" points="80.6851,-3234.4294 84.0882,-3244.4628 87.6848,-3234.4971 80.6851,-3234.4294"/>
+<path fill="none" stroke="#191970" d="M84.2119,-3234.395C86.8184,-3000.9485 114.1582,-759.3681 204,-656 209.9693,-649.132 217.5687,-644.2464 225.9118,-640.8259"/>
+<polygon fill="#191970" stroke="#191970" points="80.7113,-3234.4432 84.1009,-3244.4811 87.7108,-3234.5203 80.7113,-3234.4432"/>
 </g>
 <!-- Node552 -->
 <g id="node557" class="node">
 <title>Node552</title>
-<g id="a_node557"><a xlink:href="classtvm_1_1tir_1_1LayoutNode.html" target="_top" xlink:title="Layout is to describe how data is organized within an N&#45;dimention tensor. It is composed of upper cas...">
-<polygon fill="#ffffff" stroke="#000000" points="246.5,-513.5 246.5,-532.5 363.5,-532.5 363.5,-513.5 246.5,-513.5"/>
-<text text-anchor="middle" x="305" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LayoutNode</text>
+<g id="a_node557"><a xlink:href="classtvm_1_1tir_1_1InstructionNode.html" target="_top" xlink:title="Schedule instructions each corresponds to a schedule primitive. ">
+<polygon fill="#ffffff" stroke="#000000" points="237,-589.5 237,-608.5 373,-608.5 373,-589.5 237,-589.5"/>
+<text text-anchor="middle" x="305" y="-596.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::InstructionNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node552 -->
 <g id="edge556" class="edge">
 <title>Node0&#45;&gt;Node552</title>
-<path fill="none" stroke="#191970" d="M84.174,-3234.2626C86.3712,-2994.5509 110.2348,-650.0936 204,-542 214.6392,-529.735 230.4768,-523.7888 246.4726,-521.219"/>
-<polygon fill="#191970" stroke="#191970" points="80.6737,-3234.2962 84.0833,-3244.3273 87.6734,-3234.3593 80.6737,-3234.2962"/>
+<path fill="none" stroke="#191970" d="M84.2015,-3234.1085C86.6853,-2997.2501 112.8818,-722.9072 204,-618 212.4825,-608.2338 224.2611,-602.4754 236.7885,-599.238"/>
+<polygon fill="#191970" stroke="#191970" points="80.6994,-3234.3064 84.0958,-3244.342 87.699,-3234.3787 80.6994,-3234.3064"/>
 </g>
 <!-- Node553 -->
 <g id="node558" class="node">
 <title>Node553</title>
-<g id="a_node558"><a xlink:href="classtvm_1_1tir_1_1LoopRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR for loop. ">
-<polygon fill="#ffffff" stroke="#000000" points="245,-475.5 245,-494.5 365,-494.5 365,-475.5 245,-475.5"/>
-<text text-anchor="middle" x="305" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LoopRVNode</text>
+<g id="a_node558"><a xlink:href="classtvm_1_1tir_1_1IterVarNode.html" target="_top" xlink:title="An iteration variable representing an iteration over a one dimensional interval. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-551.5 247,-570.5 363,-570.5 363,-551.5 247,-551.5"/>
+<text text-anchor="middle" x="305" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::IterVarNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node553 -->
 <g id="edge557" class="edge">
 <title>Node0&#45;&gt;Node553</title>
-<path fill="none" stroke="#191970" d="M84.1608,-3234.3538C86.2174,-2993.3261 108.9088,-613.6898 204,-504 214.2849,-492.1362 229.4334,-486.1836 244.8866,-483.4802"/>
-<polygon fill="#191970" stroke="#191970" points="80.6602,-3234.4267 84.0762,-3244.4557 87.6599,-3234.4854 80.6602,-3234.4267"/>
+<path fill="none" stroke="#191970" d="M84.1875,-3234.1855C86.5268,-2995.8897 111.5585,-686.5001 204,-580 214.7015,-567.671 230.6559,-561.728 246.7411,-559.1811"/>
+<polygon fill="#191970" stroke="#191970" points="80.6851,-3234.4294 84.0882,-3244.4628 87.6848,-3234.4971 80.6851,-3234.4294"/>
 </g>
 <!-- Node554 -->
 <g id="node559" class="node">
 <title>Node554</title>
-<g id="a_node559"><a xlink:href="classtvm_1_1tir_1_1MatchBufferRegionNode.html" target="_top" xlink:title="Match introduces a constraint that the source buffer region can be remapped to the data layout specif...">
-<polygon fill="#ffffff" stroke="#000000" points="217,-437.5 217,-456.5 393,-456.5 393,-437.5 217,-437.5"/>
-<text text-anchor="middle" x="305" y="-444.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::MatchBufferRegionNode</text>
+<g id="a_node559"><a xlink:href="classtvm_1_1tir_1_1LayoutNode.html" target="_top" xlink:title="Layout is to describe how data is organized within an N&#45;dimention tensor. It is composed of upper cas...">
+<polygon fill="#ffffff" stroke="#000000" points="246.5,-513.5 246.5,-532.5 363.5,-532.5 363.5,-513.5 246.5,-513.5"/>
+<text text-anchor="middle" x="305" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LayoutNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node554 -->
 <g id="edge558" class="edge">
 <title>Node0&#45;&gt;Node554</title>
-<path fill="none" stroke="#191970" d="M84.151,-3234.0825C86.0878,-2989.7267 107.6303,-577.2312 204,-466 207.7387,-461.6848 212.1208,-458.1515 216.9271,-455.2721"/>
-<polygon fill="#191970" stroke="#191970" points="80.6493,-3234.2969 84.0713,-3244.3239 87.6491,-3234.3514 80.6493,-3234.2969"/>
+<path fill="none" stroke="#191970" d="M84.174,-3234.2626C86.3712,-2994.5509 110.2348,-650.0936 204,-542 214.6392,-529.735 230.4768,-523.7888 246.4726,-521.219"/>
+<polygon fill="#191970" stroke="#191970" points="80.6737,-3234.2962 84.0833,-3244.3273 87.6734,-3234.3593 80.6737,-3234.2962"/>
 </g>
 <!-- Node555 -->
 <g id="node560" class="node">
 <title>Node555</title>
-<g id="a_node560"><a xlink:href="classtvm_1_1tir_1_1ScheduleNode.html" target="_top" xlink:title="The user&#45;facing schedule class. ">
-<polygon fill="#ffffff" stroke="#000000" points="241,-399.5 241,-418.5 369,-418.5 369,-399.5 241,-399.5"/>
-<text text-anchor="middle" x="305" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ScheduleNode</text>
+<g id="a_node560"><a xlink:href="classtvm_1_1tir_1_1LoopRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR for loop. ">
+<polygon fill="#ffffff" stroke="#000000" points="245,-475.5 245,-494.5 365,-494.5 365,-475.5 245,-475.5"/>
+<text text-anchor="middle" x="305" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::LoopRVNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node555 -->
 <g id="edge559" class="edge">
 <title>Node0&#45;&gt;Node555</title>
-<path fill="none" stroke="#191970" d="M84.1384,-3234.1856C85.9375,-2988.6029 106.3024,-540.8298 204,-428 213.4019,-417.1418 226.8779,-411.2337 240.936,-408.2361"/>
-<polygon fill="#191970" stroke="#191970" points="80.6366,-3234.4347 84.0646,-3244.4595 87.6364,-3234.4849 80.6366,-3234.4347"/>
+<path fill="none" stroke="#191970" d="M84.1608,-3234.3538C86.2174,-2993.3261 108.9088,-613.6898 204,-504 214.2849,-492.1362 229.4334,-486.1836 244.8866,-483.4802"/>
+<polygon fill="#191970" stroke="#191970" points="80.6602,-3234.4267 84.0762,-3244.4557 87.6599,-3234.4854 80.6602,-3234.4267"/>
 </g>
 <!-- Node556 -->
 <g id="node561" class="node">
 <title>Node556</title>
-<g id="a_node561"><a xlink:href="classtvm_1_1tir_1_1ScheduleStateNode.html" target="_top" xlink:title="The state of scheduling, which exposes a Replace method as the primary interface for all the scheduli...">
-<polygon fill="#ffffff" stroke="#000000" points="228,-361.5 228,-380.5 382,-380.5 382,-361.5 228,-361.5"/>
-<text text-anchor="middle" x="305" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ScheduleStateNode</text>
+<g id="a_node561"><a xlink:href="classtvm_1_1tir_1_1MatchBufferRegionNode.html" target="_top" xlink:title="Match introduces a constraint that the source buffer region can be remapped to the data layout specif...">
+<polygon fill="#ffffff" stroke="#000000" points="217,-437.5 217,-456.5 393,-456.5 393,-437.5 217,-437.5"/>
+<text text-anchor="middle" x="305" y="-444.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::MatchBufferRegionNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node556 -->
 <g id="edge560" class="edge">
 <title>Node0&#45;&gt;Node556</title>
-<path fill="none" stroke="#191970" d="M84.1262,-3234.2882C85.79,-2987.4996 104.9741,-504.4289 204,-390 210.4216,-382.5796 218.7459,-377.4706 227.8588,-374.0224"/>
-<polygon fill="#191970" stroke="#191970" points="80.6261,-3234.3084 84.06,-3244.3313 87.6259,-3234.3547 80.6261,-3234.3084"/>
+<path fill="none" stroke="#191970" d="M84.151,-3234.0825C86.0878,-2989.7267 107.6303,-577.2312 204,-466 207.7387,-461.6848 212.1208,-458.1515 216.9271,-455.2721"/>
+<polygon fill="#191970" stroke="#191970" points="80.6493,-3234.2969 84.0713,-3244.3239 87.6491,-3234.3514 80.6493,-3234.2969"/>
 </g>
 <!-- Node557 -->
 <g id="node562" class="node">
 <title>Node557</title>
-<g id="a_node562"><a xlink:href="classtvm_1_1tir_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements. ">
-<polygon fill="#ffffff" stroke="#000000" points="251.5,-323.5 251.5,-342.5 358.5,-342.5 358.5,-323.5 251.5,-323.5"/>
-<text text-anchor="middle" x="305" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StmtNode</text>
+<g id="a_node562"><a xlink:href="classtvm_1_1tir_1_1ScheduleNode.html" target="_top" xlink:title="The user&#45;facing schedule class. ">
+<polygon fill="#ffffff" stroke="#000000" points="241,-399.5 241,-418.5 369,-418.5 369,-399.5 241,-399.5"/>
+<text text-anchor="middle" x="305" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ScheduleNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node557 -->
 <g id="edge561" class="edge">
 <title>Node0&#45;&gt;Node557</title>
-<path fill="none" stroke="#191970" d="M84.1144,-3234.4046C85.6444,-2986.5119 103.6435,-468.0306 204,-352 215.7303,-338.4376 233.8164,-332.5956 251.4601,-330.5024"/>
-<polygon fill="#191970" stroke="#191970" points="80.6141,-3234.4531 84.0537,-3244.4741 87.614,-3234.4954 80.6141,-3234.4531"/>
+<path fill="none" stroke="#191970" d="M84.1384,-3234.1856C85.9375,-2988.6029 106.3024,-540.8298 204,-428 213.4019,-417.1418 226.8779,-411.2337 240.936,-408.2361"/>
+<polygon fill="#191970" stroke="#191970" points="80.6366,-3234.4347 84.0646,-3244.4595 87.6364,-3234.4849 80.6366,-3234.4347"/>
 </g>
-<!-- Node576 -->
-<g id="node581" class="node">
-<title>Node576</title>
-<g id="a_node581"><a xlink:href="classtvm_1_1tir_1_1StmtSRefNode.html" target="_top" xlink:title="An object that refers to schedulable elements (block/for&#45;loop) in TensorIR, aka &quot;sref&quot;. ">
-<polygon fill="#ffffff" stroke="#000000" points="240.5,-285.5 240.5,-304.5 369.5,-304.5 369.5,-285.5 240.5,-285.5"/>
-<text text-anchor="middle" x="305" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StmtSRefNode</text>
+<!-- Node558 -->
+<g id="node563" class="node">
+<title>Node558</title>
+<g id="a_node563"><a xlink:href="classtvm_1_1tir_1_1ScheduleStateNode.html" target="_top" xlink:title="The state of scheduling, which exposes a Replace method as the primary interface for all the scheduli...">
+<polygon fill="#ffffff" stroke="#000000" points="228,-361.5 228,-380.5 382,-380.5 382,-361.5 228,-361.5"/>
+<text text-anchor="middle" x="305" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::ScheduleStateNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node576 -->
-<g id="edge580" class="edge">
-<title>Node0&#45;&gt;Node576</title>
-<path fill="none" stroke="#191970" d="M84.105,-3234.1482C85.5182,-2983.0118 102.363,-431.5745 204,-314 213.2763,-303.2691 226.5316,-297.3707 240.3998,-294.3383"/>
-<polygon fill="#191970" stroke="#191970" points="80.6041,-3234.3304 84.0491,-3244.3494 87.604,-3234.3688 80.6041,-3234.3304"/>
+<!-- Node0&#45;&gt;Node558 -->
+<g id="edge562" class="edge">
+<title>Node0&#45;&gt;Node558</title>
+<path fill="none" stroke="#191970" d="M84.1262,-3234.2882C85.79,-2987.4996 104.9741,-504.4289 204,-390 210.4216,-382.5796 218.7459,-377.4706 227.8588,-374.0224"/>
+<polygon fill="#191970" stroke="#191970" points="80.6261,-3234.3084 84.06,-3244.3313 87.6259,-3234.3547 80.6261,-3234.3084"/>
 </g>
-<!-- Node577 -->
-<g id="node582" class="node">
-<title>Node577</title>
-<g id="a_node582"><a xlink:href="classtvm_1_1tir_1_1TensorIntrinNode.html" target="_top" xlink:title="Tensor intrinsics for tensorization. ">
-<polygon fill="#ffffff" stroke="#000000" points="234.5,-9462.5 234.5,-9481.5 375.5,-9481.5 375.5,-9462.5 234.5,-9462.5"/>
-<text text-anchor="middle" x="305" y="-9469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::TensorIntrinNode</text>
+<!-- Node559 -->
+<g id="node564" class="node">
+<title>Node559</title>
+<g id="a_node564"><a xlink:href="classtvm_1_1tir_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements. ">
+<polygon fill="#ffffff" stroke="#000000" points="251.5,-323.5 251.5,-342.5 358.5,-342.5 358.5,-323.5 251.5,-323.5"/>
+<text text-anchor="middle" x="305" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StmtNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node577 -->
-<g id="edge581" class="edge">
-<title>Node0&#45;&gt;Node577</title>
-<path fill="none" stroke="#191970" d="M84.033,-3273.9189C84.7015,-3653.2871 96.4924,-9325.906 204,-9453 211.8356,-9462.2632 222.6348,-9467.9459 234.2703,-9471.2966"/>
-<polygon fill="#191970" stroke="#191970" points="87.5329,-3273.8383 84.0157,-3263.8444 80.5329,-3273.8504 87.5329,-3273.8383"/>
+<!-- Node0&#45;&gt;Node559 -->
+<g id="edge563" class="edge">
+<title>Node0&#45;&gt;Node559</title>
+<path fill="none" stroke="#191970" d="M84.1144,-3234.4046C85.6444,-2986.5119 103.6435,-468.0306 204,-352 215.7303,-338.4376 233.8164,-332.5956 251.4601,-330.5024"/>
+<polygon fill="#191970" stroke="#191970" points="80.6141,-3234.4531 84.0537,-3244.4741 87.614,-3234.4954 80.6141,-3234.4531"/>
 </g>
 <!-- Node578 -->
 <g id="node583" class="node">
 <title>Node578</title>
-<g id="a_node583"><a xlink:href="classtvm_1_1tir_1_1TraceNode.html" target="_top" xlink:title="An execution trace of a scheduling program. ">
-<polygon fill="#ffffff" stroke="#000000" points="250,-9424.5 250,-9443.5 360,-9443.5 360,-9424.5 250,-9424.5"/>
-<text text-anchor="middle" x="305" y="-9431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::TraceNode</text>
+<g id="a_node583"><a xlink:href="classtvm_1_1tir_1_1StmtSRefNode.html" target="_top" xlink:title="An object that refers to schedulable elements (block/for&#45;loop) in TensorIR, aka &quot;sref&quot;. ">
+<polygon fill="#ffffff" stroke="#000000" points="240.5,-285.5 240.5,-304.5 369.5,-304.5 369.5,-285.5 240.5,-285.5"/>
+<text text-anchor="middle" x="305" y="-292.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::StmtSRefNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node578 -->
 <g id="edge582" class="edge">
 <title>Node0&#45;&gt;Node578</title>
-<path fill="none" stroke="#191970" d="M84.0372,-3273.7919C84.7866,-3650.7415 97.7647,-9287.2033 204,-9414 215.2502,-9427.4277 232.6881,-9433.5057 249.9275,-9435.8934"/>
-<polygon fill="#191970" stroke="#191970" points="87.5373,-3273.7748 84.0178,-3263.7816 80.5373,-3273.7884 87.5373,-3273.7748"/>
+<path fill="none" stroke="#191970" d="M84.105,-3234.1482C85.5182,-2983.0118 102.363,-431.5745 204,-314 213.2763,-303.2691 226.5316,-297.3707 240.3998,-294.3383"/>
+<polygon fill="#191970" stroke="#191970" points="80.6041,-3234.3304 84.0491,-3244.3494 87.604,-3234.3688 80.6041,-3234.3304"/>
 </g>
 <!-- Node579 -->
 <g id="node584" class="node">
 <title>Node579</title>
-<g id="a_node584"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html" target="_top" xlink:title="This object contains information post&#45;allocation for PoolInfo objects. ">
-<polygon fill="#ffffff" stroke="#000000" points="236.5,-9375 236.5,-9405 373.5,-9405 373.5,-9375 236.5,-9375"/>
-<text text-anchor="start" x="244.5" y="-9393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::Allocated</text>
-<text text-anchor="middle" x="305" y="-9382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">PoolInfoNode</text>
+<g id="a_node584"><a xlink:href="classtvm_1_1tir_1_1TensorIntrinNode.html" target="_top" xlink:title="Tensor intrinsics for tensorization. ">
+<polygon fill="#ffffff" stroke="#000000" points="234.5,-9499.5 234.5,-9518.5 375.5,-9518.5 375.5,-9499.5 234.5,-9499.5"/>
+<text text-anchor="middle" x="305" y="-9506.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::TensorIntrinNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node579 -->
 <g id="edge583" class="edge">
 <title>Node0&#45;&gt;Node579</title>
-<path fill="none" stroke="#191970" d="M84.0508,-3273.9038C85.051,-3650.1793 101.6196,-9236.8014 204,-9365 212.1725,-9375.2335 223.8167,-9381.6757 236.3107,-9385.6534"/>
-<polygon fill="#191970" stroke="#191970" points="87.5504,-3273.6905 84.0242,-3263.6998 80.5504,-3273.7089 87.5504,-3273.6905"/>
+<path fill="none" stroke="#191970" d="M84.0308,-3274.0377C84.6591,-3655.6699 95.8583,-9362.1414 204,-9490 211.8351,-9499.2636 222.634,-9504.9465 234.2694,-9508.2974"/>
+<polygon fill="#191970" stroke="#191970" points="87.5307,-3273.8975 84.0146,-3263.9032 80.5307,-3273.9088 87.5307,-3273.8975"/>
 </g>
 <!-- Node580 -->
 <g id="node585" class="node">
 <title>Node580</title>
-<g id="a_node585"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysisNode.html" target="_top" xlink:title="This is a composite node that is produced by extract_buffer_info analysis pass that contains useful g...">
-<polygon fill="#ffffff" stroke="#000000" points="235,-9326 235,-9356 375,-9356 375,-9326 235,-9326"/>
-<text text-anchor="start" x="243" y="-9344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::BufferInfo</text>
-<text text-anchor="middle" x="305" y="-9333" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AnalysisNode</text>
+<g id="a_node585"><a xlink:href="classtvm_1_1tir_1_1TraceNode.html" target="_top" xlink:title="An execution trace of a scheduling program. ">
+<polygon fill="#ffffff" stroke="#000000" points="250,-9461.5 250,-9480.5 360,-9480.5 360,-9461.5 250,-9461.5"/>
+<text text-anchor="middle" x="305" y="-9468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::TraceNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node580 -->
 <g id="edge584" class="edge">
 <title>Node0&#45;&gt;Node580</title>
-<path fill="none" stroke="#191970" d="M84.0536,-3273.7442C85.1056,-3647.0031 102.4301,-9188.837 204,-9316 211.8351,-9325.8094 222.8601,-9332.1352 234.7655,-9336.1459"/>
-<polygon fill="#191970" stroke="#191970" points="87.5533,-3273.6122 84.0255,-3263.622 80.5533,-3273.6317 87.5533,-3273.6122"/>
+<path fill="none" stroke="#191970" d="M84.0351,-3273.9107C84.7444,-3653.1241 97.1343,-9323.4358 204,-9451 215.2494,-9464.4283 232.6871,-9470.5065 249.9266,-9472.8941"/>
+<polygon fill="#191970" stroke="#191970" points="87.5351,-3273.8339 84.0167,-3263.8404 80.5351,-3273.8468 87.5351,-3273.8339"/>
 </g>
 <!-- Node581 -->
 <g id="node586" class="node">
 <title>Node581</title>
-<g id="a_node586"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1BufferInfoNode.html" target="_top" xlink:title="Describes an abstract memory buffer that will get allocated inside a pool. The actual memory buffer i...">
-<polygon fill="#ffffff" stroke="#000000" points="222.5,-9287.5 222.5,-9306.5 387.5,-9306.5 387.5,-9287.5 222.5,-9287.5"/>
-<text text-anchor="middle" x="305" y="-9294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::BufferInfoNode</text>
+<g id="a_node586"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html" target="_top" xlink:title="This object contains information post&#45;allocation for PoolInfo objects. ">
+<polygon fill="#ffffff" stroke="#000000" points="236.5,-9412 236.5,-9442 373.5,-9442 373.5,-9412 236.5,-9412"/>
+<text text-anchor="start" x="244.5" y="-9430" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::Allocated</text>
+<text text-anchor="middle" x="305" y="-9419" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">PoolInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node581 -->
 <g id="edge585" class="edge">
 <title>Node0&#45;&gt;Node581</title>
-<path fill="none" stroke="#191970" d="M84.0437,-3273.6304C84.9093,-3644.7362 99.5173,-9154.5523 204,-9278 209.0718,-9283.9924 215.3838,-9288.4862 222.3599,-9291.8195"/>
-<polygon fill="#191970" stroke="#191970" points="87.5436,-3273.5585 84.0207,-3263.5665 80.5436,-3273.5745 87.5436,-3273.5585"/>
+<path fill="none" stroke="#191970" d="M84.0487,-3274.0243C85.0098,-3652.5776 101.0076,-9273.0195 204,-9402 212.1719,-9412.2339 223.8158,-9418.6764 236.3097,-9422.6541"/>
+<polygon fill="#191970" stroke="#191970" points="87.5482,-3273.7497 84.0231,-3263.7585 80.5482,-3273.7672 87.5482,-3273.7497"/>
 </g>
 <!-- Node582 -->
 <g id="node587" class="node">
 <title>Node582</title>
-<g id="a_node587"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1PoolAllocationNode.html" target="_top" xlink:title="The pool allocation produced after the USMP algorithm. ">
-<polygon fill="#ffffff" stroke="#000000" points="211.5,-9249.5 211.5,-9268.5 398.5,-9268.5 398.5,-9249.5 211.5,-9249.5"/>
-<text text-anchor="middle" x="305" y="-9256.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::PoolAllocationNode</text>
+<g id="a_node587"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysisNode.html" target="_top" xlink:title="This is a composite node that is produced by extract_buffer_info analysis pass that contains useful g...">
+<polygon fill="#ffffff" stroke="#000000" points="235,-9363 235,-9393 375,-9393 375,-9363 235,-9363"/>
+<text text-anchor="start" x="243" y="-9381" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::BufferInfo</text>
+<text text-anchor="middle" x="305" y="-9370" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">AnalysisNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node582 -->
 <g id="edge586" class="edge">
 <title>Node0&#45;&gt;Node582</title>
-<path fill="none" stroke="#191970" d="M84.0459,-3273.5066C84.9532,-3642.2718 100.1684,-9117.3373 204,-9240 207.1125,-9243.677 210.6919,-9246.7897 214.6052,-9249.4162"/>
-<polygon fill="#191970" stroke="#191970" points="87.546,-3273.4977 84.0217,-3263.5062 80.546,-3273.5147 87.546,-3273.4977"/>
+<path fill="none" stroke="#191970" d="M84.0515,-3273.8647C85.0644,-3649.4014 101.8181,-9225.055 204,-9353 211.8345,-9362.8099 222.8592,-9369.1359 234.7645,-9373.1466"/>
+<polygon fill="#191970" stroke="#191970" points="87.5511,-3273.6714 84.0245,-3263.6807 80.5511,-3273.69 87.5511,-3273.6714"/>
 </g>
 <!-- Node583 -->
 <g id="node588" class="node">
 <title>Node583</title>
-<g id="a_node588"><a xlink:href="classtvm_1_1transform_1_1PassContextNode.html" target="_top" xlink:title="PassContextNode contains the information that a pass can rely on, such as analysis results...">
-<polygon fill="#ffffff" stroke="#000000" points="214,-9211.5 214,-9230.5 396,-9230.5 396,-9211.5 214,-9211.5"/>
-<text text-anchor="middle" x="305" y="-9218.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::transform::PassContextNode</text>
+<g id="a_node588"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1BufferInfoNode.html" target="_top" xlink:title="Describes an abstract memory buffer that will get allocated inside a pool. The actual memory buffer i...">
+<polygon fill="#ffffff" stroke="#000000" points="222.5,-9324.5 222.5,-9343.5 387.5,-9343.5 387.5,-9324.5 222.5,-9324.5"/>
+<text text-anchor="middle" x="305" y="-9331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::BufferInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node583 -->
 <g id="edge587" class="edge">
 <title>Node0&#45;&gt;Node583</title>
-<path fill="none" stroke="#191970" d="M84.0495,-3273.9362C85.0129,-3645.2464 100.8711,-9080.1832 204,-9202 207.1127,-9205.6768 210.6923,-9208.7893 214.6057,-9211.4157"/>
-<polygon fill="#191970" stroke="#191970" points="87.5494,-3273.8313 84.0238,-3263.8403 80.5494,-3273.8492 87.5494,-3273.8313"/>
+<path fill="none" stroke="#191970" d="M84.0415,-3273.7509C84.8666,-3647.1357 98.8834,-9190.788 204,-9315 209.0714,-9320.9927 215.3832,-9325.4867 222.3591,-9328.8201"/>
+<polygon fill="#191970" stroke="#191970" points="87.5413,-3273.6177 84.0196,-3263.6253 80.5413,-3273.6329 87.5413,-3273.6177"/>
 </g>
 <!-- Node584 -->
 <g id="node589" class="node">
 <title>Node584</title>
-<g id="a_node589"><a xlink:href="classtvm_1_1transform_1_1PassInfoNode.html" target="_top" xlink:title="Meta data that will be used to help optimization and analysis. ">
-<polygon fill="#ffffff" stroke="#000000" points="224,-9173.5 224,-9192.5 386,-9192.5 386,-9173.5 224,-9173.5"/>
-<text text-anchor="middle" x="305" y="-9180.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::transform::PassInfoNode</text>
+<g id="a_node589"><a xlink:href="structtvm_1_1tir_1_1usmp_1_1PoolAllocationNode.html" target="_top" xlink:title="The pool allocation produced after the USMP algorithm. ">
+<polygon fill="#ffffff" stroke="#000000" points="211.5,-9286.5 211.5,-9305.5 398.5,-9305.5 398.5,-9286.5 211.5,-9286.5"/>
+<text text-anchor="middle" x="305" y="-9293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::usmp::PoolAllocationNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node584 -->
 <g id="edge588" class="edge">
 <title>Node0&#45;&gt;Node584</title>
-<path fill="none" stroke="#191970" d="M84.0518,-3273.8089C85.0574,-3642.7473 101.5218,-9042.9678 204,-9164 209.4188,-9170.3999 216.2523,-9175.0903 223.7983,-9178.4832"/>
-<polygon fill="#191970" stroke="#191970" points="87.5518,-3273.768 84.0249,-3263.7775 80.5518,-3273.7868 87.5518,-3273.768"/>
+<path fill="none" stroke="#191970" d="M84.0437,-3273.6271C84.9105,-3644.6713 99.5345,-9153.573 204,-9277 207.1122,-9280.6771 210.6915,-9283.79 214.6046,-9286.4167"/>
+<polygon fill="#191970" stroke="#191970" points="87.5437,-3273.5569 84.0207,-3263.565 80.5437,-3273.573 87.5437,-3273.5569"/>
 </g>
 <!-- Node585 -->
 <g id="node590" class="node">
 <title>Node585</title>
-<g id="a_node590"><a xlink:href="classtvm_1_1transform_1_1PassNode.html" target="_top" xlink:title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">
-<polygon fill="#ffffff" stroke="#000000" points="233.5,-9135.5 233.5,-9154.5 376.5,-9154.5 376.5,-9135.5 233.5,-9135.5"/>
-<text text-anchor="middle" x="305" y="-9142.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::transform::PassNode</text>
+<g id="a_node590"><a xlink:href="classtvm_1_1transform_1_1PassContextNode.html" target="_top" xlink:title="PassContextNode contains the information that a pass can rely on, such as analysis results...">
+<polygon fill="#ffffff" stroke="#000000" points="214,-9248.5 214,-9267.5 396,-9267.5 396,-9248.5 214,-9248.5"/>
+<text text-anchor="middle" x="305" y="-9255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::transform::PassContextNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node585 -->
 <g id="edge589" class="edge">
 <title>Node0&#45;&gt;Node585</title>
-<path fill="none" stroke="#191970" d="M84.0549,-3273.9538C85.1103,-3642.8955 102.1977,-9005.782 204,-9126 211.61,-9134.9866 222.0093,-9140.6024 233.2539,-9143.9881"/>
-<polygon fill="#191970" stroke="#191970" points="87.5543,-3273.7047 84.0261,-3263.7146 80.5543,-3273.7245 87.5543,-3273.7047"/>
+<path fill="none" stroke="#191970" d="M84.0466,-3273.7772C84.9619,-3644.9079 100.2111,-9116.3882 204,-9239 207.1125,-9242.677 210.6919,-9245.7896 214.6052,-9248.4162"/>
+<polygon fill="#191970" stroke="#191970" points="87.546,-3273.4961 84.0218,-3263.5046 80.5461,-3273.5131 87.546,-3273.4961"/>
+</g>
+<!-- Node586 -->
+<g id="node591" class="node">
+<title>Node586</title>
+<g id="a_node591"><a xlink:href="classtvm_1_1transform_1_1PassInfoNode.html" target="_top" xlink:title="Meta data that will be used to help optimization and analysis. ">
+<polygon fill="#ffffff" stroke="#000000" points="224,-9210.5 224,-9229.5 386,-9229.5 386,-9210.5 224,-9210.5"/>
+<text text-anchor="middle" x="305" y="-9217.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::transform::PassInfoNode</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node586 -->
+<g id="edge590" class="edge">
+<title>Node0&#45;&gt;Node586</title>
+<path fill="none" stroke="#191970" d="M84.0496,-3273.9329C85.0141,-3645.1806 100.8882,-9079.2039 204,-9201 209.4184,-9207.4003 216.2517,-9212.0909 223.7975,-9215.4838"/>
+<polygon fill="#191970" stroke="#191970" points="87.5494,-3273.8297 84.0238,-3263.8387 80.5495,-3273.8476 87.5494,-3273.8297"/>
 </g>
 <!-- Node587 -->
 <g id="node592" class="node">
 <title>Node587</title>
-<g id="a_node592"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types. ">
-<polygon fill="#ffffff" stroke="#000000" points="260,-9097.5 260,-9116.5 350,-9116.5 350,-9097.5 260,-9097.5"/>
-<text text-anchor="middle" x="305" y="-9104.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TypeNode</text>
+<g id="a_node592"><a xlink:href="classtvm_1_1transform_1_1PassNode.html" target="_top" xlink:title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">
+<polygon fill="#ffffff" stroke="#000000" points="233.5,-9172.5 233.5,-9191.5 376.5,-9191.5 376.5,-9172.5 233.5,-9172.5"/>
+<text text-anchor="middle" x="305" y="-9179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::transform::PassNode</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node587 -->
 <g id="edge591" class="edge">
 <title>Node0&#45;&gt;Node587</title>
-<path fill="none" stroke="#191970" d="M84.237,-3273.7044C87.1131,-3507.693 116.7413,-5779.5567 204,-7614 233.5938,-8236.1522 296.3417,-9002.4589 304.1885,-9097.2371"/>
-<polygon fill="#191970" stroke="#191970" points="87.7356,-3273.5649 84.114,-3263.6082 80.7361,-3273.6502 87.7356,-3273.5649"/>
+<path fill="none" stroke="#191970" d="M84.0519,-3273.8055C85.0586,-3642.6815 101.5389,-9041.9884 204,-9163 211.6094,-9171.9871 222.0085,-9177.6031 233.2529,-9180.9889"/>
+<polygon fill="#191970" stroke="#191970" points="87.5519,-3273.7664 84.025,-3263.7758 80.5519,-3273.7852 87.5519,-3273.7664"/>
 </g>
-<!-- Node602 -->
-<g id="node607" class="node">
-<title>Node602</title>
-<g id="a_node607"><a xlink:href="classtvm_1_1TypeReporterNode.html" target="_top" xlink:title="reporter that reports back to the type resolution information. ">
-<polygon fill="#ffffff" stroke="#000000" points="239.5,-7585.5 239.5,-7604.5 370.5,-7604.5 370.5,-7585.5 239.5,-7585.5"/>
-<text text-anchor="middle" x="305" y="-7592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TypeReporterNode</text>
+<!-- Node589 -->
+<g id="node594" class="node">
+<title>Node589</title>
+<g id="a_node594"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types. ">
+<polygon fill="#ffffff" stroke="#000000" points="260,-9134.5 260,-9153.5 350,-9153.5 350,-9134.5 260,-9134.5"/>
+<text text-anchor="middle" x="305" y="-9141.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TypeNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node602 -->
-<g id="edge606" class="edge">
-<title>Node0&#45;&gt;Node602</title>
-<path fill="none" stroke="#191970" d="M84.2032,-3273.9414C87.4366,-3587.2422 129.1823,-7488.3013 204,-7576 212.9746,-7586.5197 225.7718,-7592.4114 239.2547,-7595.513"/>
-<polygon fill="#191970" stroke="#191970" points="87.7001,-3273.6145 84.0976,-3263.651 80.7005,-3273.6864 87.7001,-3273.6145"/>
+<!-- Node0&#45;&gt;Node589 -->
+<g id="edge593" class="edge">
+<title>Node0&#45;&gt;Node589</title>
+<path fill="none" stroke="#191970" d="M84.234,-3273.8581C87.0754,-3509.6708 116.3829,-5799.247 204,-7648 233.5446,-8271.4018 296.3355,-9039.2487 304.1879,-9134.2174"/>
+<polygon fill="#191970" stroke="#191970" points="87.7317,-3273.6406 84.1125,-3263.6832 80.7322,-3273.7242 87.7317,-3273.6406"/>
 </g>
-<!-- Node603 -->
-<g id="node608" class="node">
-<title>Node603</title>
-<g id="a_node608"><a xlink:href="structtvm_1_1WorkspaceMemoryPoolsNode.html" target="_top" xlink:title="tvm::WorkspaceMemoryPoolsNode">
-<polygon fill="#ffffff" stroke="#000000" points="211.5,-7547.5 211.5,-7566.5 398.5,-7566.5 398.5,-7547.5 211.5,-7547.5"/>
-<text text-anchor="middle" x="305" y="-7554.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::WorkspaceMemoryPoolsNode</text>
+<!-- Node604 -->
+<g id="node609" class="node">
+<title>Node604</title>
+<g id="a_node609"><a xlink:href="classtvm_1_1TypeReporterNode.html" target="_top" xlink:title="reporter that reports back to the type resolution information. ">
+<polygon fill="#ffffff" stroke="#000000" points="239.5,-7619.5 239.5,-7638.5 370.5,-7638.5 370.5,-7619.5 239.5,-7619.5"/>
+<text text-anchor="middle" x="305" y="-7626.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TypeReporterNode</text>
 </a>
 </g>
 </g>
-<!-- Node0&#45;&gt;Node603 -->
-<g id="edge607" class="edge">
-<title>Node0&#45;&gt;Node603</title>
-<path fill="none" stroke="#191970" d="M84.2063,-3273.7661C87.4886,-3584.313 129.8289,-7451.0809 204,-7538 207.1271,-7541.6645 210.718,-7544.7674 214.6402,-7547.3864"/>
-<polygon fill="#191970" stroke="#191970" points="87.7041,-3273.5288 84.0991,-3263.5661 80.7045,-3273.6024 87.7041,-3273.5288"/>
+<!-- Node0&#45;&gt;Node604 -->
+<g id="edge608" class="edge">
+<title>Node0&#45;&gt;Node604</title>
+<path fill="none" stroke="#191970" d="M84.2004,-3274.0982C87.3901,-3589.8631 128.6037,-7521.6038 204,-7610 212.9735,-7620.5207 225.7702,-7626.4127 239.253,-7629.5144"/>
+<polygon fill="#191970" stroke="#191970" points="87.6966,-3273.6912 84.0962,-3263.7269 80.6969,-3273.7616 87.6966,-3273.6912"/>
+</g>
+<!-- Node605 -->
+<g id="node610" class="node">
+<title>Node605</title>
+<g id="a_node610"><a xlink:href="structtvm_1_1WorkspaceMemoryPoolsNode.html" target="_top" xlink:title="tvm::WorkspaceMemoryPoolsNode">
+<polygon fill="#ffffff" stroke="#000000" points="211.5,-7581.5 211.5,-7600.5 398.5,-7600.5 398.5,-7581.5 211.5,-7581.5"/>
+<text text-anchor="middle" x="305" y="-7588.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::WorkspaceMemoryPoolsNode</text>
+</a>
+</g>
+</g>
+<!-- Node0&#45;&gt;Node605 -->
+<g id="edge609" class="edge">
+<title>Node0&#45;&gt;Node605</title>
+<path fill="none" stroke="#191970" d="M84.2035,-3273.9229C87.4421,-3586.9339 129.2503,-7484.3834 204,-7572 207.1267,-7575.6649 210.7173,-7578.7681 214.6393,-7581.3872"/>
+<polygon fill="#191970" stroke="#191970" points="87.7005,-3273.6055 84.0977,-3263.642 80.7009,-3273.6776 87.7005,-3273.6055"/>
 </g>
 <!-- Node2 -->
 <g id="node11" class="node">
 <title>Node2</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1TensorAffineTypeNode.html" target="_top" xlink:title="TensorAffineType representation. ">
-<polygon fill="#ffffff" stroke="#000000" points="464.5,-10473.5 464.5,-10492.5 614.5,-10492.5 614.5,-10473.5 464.5,-10473.5"/>
-<text text-anchor="middle" x="539.5" y="-10480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TensorAffineTypeNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="464.5,-10573.5 464.5,-10592.5 614.5,-10592.5 614.5,-10573.5 464.5,-10573.5"/>
+<text text-anchor="middle" x="539.5" y="-10580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TensorAffineTypeNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node2 -->
 <g id="edge6" class="edge">
 <title>Node1&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M374.434,-7519.2812C386.5774,-7522.5799 397.8963,-7528.3511 406,-7538 510.5166,-7662.4449 338.5059,-10337.7035 442,-10463 447.9423,-10470.1941 455.7159,-10475.2431 464.2839,-10478.7319"/>
-<polygon fill="#191970" stroke="#191970" points="375.079,-7515.8398 364.5642,-7517.1389 373.5942,-7522.6805 375.079,-7515.8398"/>
+<path fill="none" stroke="#191970" d="M374.4361,-7553.2794C386.5794,-7556.5783 397.8976,-7562.35 406,-7572 512.8927,-7699.3098 335.5225,-10436.3428 442,-10564 447.9649,-10571.1515 455.7517,-10576.1313 464.3262,-10579.5374"/>
+<polygon fill="#191970" stroke="#191970" points="375.0812,-7549.838 364.5663,-7551.1371 373.5963,-7556.6787 375.0812,-7549.838"/>
 </g>
 <!-- Node3 -->
 <g id="node12" class="node">
 <title>Node3</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1TupleAffineTypeNode.html" target="_top" xlink:title="TupleAffineType representation. ">
-<polygon fill="#ffffff" stroke="#000000" points="467.5,-10511.5 467.5,-10530.5 611.5,-10530.5 611.5,-10511.5 467.5,-10511.5"/>
-<text text-anchor="middle" x="539.5" y="-10518.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TupleAffineTypeNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="467.5,-10535.5 467.5,-10554.5 611.5,-10554.5 611.5,-10535.5 467.5,-10535.5"/>
+<text text-anchor="middle" x="539.5" y="-10542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::TupleAffineTypeNode</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge7" class="edge">
 <title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M374.4353,-7519.2802C386.5786,-7522.579 397.8971,-7528.3505 406,-7538 511.8997,-7664.1125 336.5116,-10375.5432 442,-10502 448.6282,-10509.9457 457.5052,-10515.2105 467.2129,-10518.6147"/>
-<polygon fill="#191970" stroke="#191970" points="375.0803,-7515.8387 364.5654,-7517.1379 373.5954,-7522.6795 375.0803,-7515.8387"/>
+<path fill="none" stroke="#191970" d="M374.4349,-7553.2804C386.5783,-7556.5792 397.8969,-7562.3507 406,-7572 511.5096,-7697.6422 337.5227,-10398.4981 442,-10525 448.6021,-10532.9939 457.4653,-10538.3392 467.167,-10541.8385"/>
+<polygon fill="#191970" stroke="#191970" points="375.0799,-7549.839 364.5651,-7551.1382 373.5951,-7556.6797 375.0799,-7549.839"/>
 </g>
 <!-- Node17 -->
 <g id="node26" class="node">
 <title>Node17</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html" target="_top" xlink:title="A wrapper for cost model defined by python code This class will call functions defined in the python...">
-<polygon fill="#ffffff" stroke="#000000" points="469,-10375 469,-10405 610,-10405 610,-10375 469,-10375"/>
-<text text-anchor="start" x="477" y="-10393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PythonBasedModelNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="469,-10486 469,-10516 610,-10516 610,-10486 469,-10486"/>
+<text text-anchor="start" x="477" y="-10504" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10493" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PythonBasedModelNode</text>
 </a>
 </g>
 </g>
 <!-- Node16&#45;&gt;Node17 -->
 <g id="edge21" class="edge">
 <title>Node16&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M373.0883,-6966.3885C385.8174,-6970.2288 397.7079,-6976.6207 406,-6987 464.572,-7060.3145 384.0794,-10291.1698 442,-10365 448.903,-10373.7992 458.4483,-10379.7612 468.8833,-10383.7548"/>
-<polygon fill="#191970" stroke="#191970" points="373.7868,-6962.9555 363.2365,-6963.9255 372.0889,-6969.7465 373.7868,-6962.9555"/>
+<path fill="none" stroke="#191970" d="M373.0902,-7000.387C385.8192,-7004.2274 397.7091,-7010.6198 406,-7021 465.898,-7095.9926 382.7682,-10400.4801 442,-10476 448.902,-10484.8 458.4467,-10490.7625 468.8815,-10494.7562"/>
+<polygon fill="#191970" stroke="#191970" points="373.7887,-6996.954 363.2384,-6997.924 372.0908,-7003.745 373.7887,-6996.954"/>
 </g>
 <!-- Node18 -->
 <g id="node27" class="node">
 <title>Node18</title>
 <g id="a_node27"><a xlink:href="classtvm_1_1auto__scheduler_1_1RandomModelNode.html" target="_top" xlink:title="The cost model returning random value for all predictions. ">
-<polygon fill="#ffffff" stroke="#000000" points="480.5,-10424 480.5,-10454 598.5,-10454 598.5,-10424 480.5,-10424"/>
-<text text-anchor="start" x="488.5" y="-10442" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10431" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RandomModelNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="480.5,-10437 480.5,-10467 598.5,-10467 598.5,-10437 480.5,-10437"/>
+<text text-anchor="start" x="488.5" y="-10455" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10444" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RandomModelNode</text>
 </a>
 </g>
 </g>
 <!-- Node16&#45;&gt;Node18 -->
 <g id="edge22" class="edge">
 <title>Node16&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M373.0895,-6966.3876C385.8186,-6970.2279 397.7087,-6976.6201 406,-6987 465.4158,-7061.3824 383.245,-10339.0945 442,-10414 451.3829,-10425.9621 465.649,-10432.681 480.3956,-10436.339"/>
-<polygon fill="#191970" stroke="#191970" points="373.788,-6962.9546 363.2377,-6963.9245 372.0901,-6969.7455 373.788,-6962.9546"/>
+<path fill="none" stroke="#191970" d="M373.089,-7000.388C385.8181,-7004.2283 397.7083,-7010.6204 406,-7021 465.0542,-7094.9247 383.6026,-10352.5554 442,-10427 451.3833,-10438.9618 465.6495,-10445.6806 480.3961,-10449.3386"/>
+<polygon fill="#191970" stroke="#191970" points="373.7875,-6996.955 363.2372,-6997.9249 372.0896,-7003.7459 373.7875,-6996.955"/>
 </g>
 <!-- Node22 -->
 <g id="node31" class="node">
 <title>Node22</title>
 <g id="a_node31"><a xlink:href="classtvm_1_1auto__scheduler_1_1PythonBasedMeasureCallbackNode.html" target="_top" xlink:title="A wrapper for measure callback defined by python code This class will call functions defined in the p...">
-<polygon fill="#ffffff" stroke="#000000" points="442,-10277 442,-10307 637,-10307 637,-10277 442,-10277"/>
-<text text-anchor="start" x="450" y="-10295" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10284" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PythonBasedMeasureCallbackNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="442,-10388 442,-10418 637,-10418 637,-10388 442,-10388"/>
+<text text-anchor="start" x="450" y="-10406" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10395" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PythonBasedMeasureCallbackNode</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node22 -->
 <g id="edge26" class="edge">
 <title>Node21&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M380.3442,-6821.9059C390.273,-6825.8431 399.3085,-6831.6229 406,-6840 465.4158,-6914.3824 383.245,-10192.0945 442,-10267 445.0198,-10270.8499 448.5454,-10274.1566 452.43,-10276.9931"/>
-<polygon fill="#191970" stroke="#191970" points="381.192,-6818.4996 370.5986,-6818.671 378.9867,-6825.1432 381.192,-6818.4996"/>
+<path fill="none" stroke="#191970" d="M380.346,-6855.9045C390.2745,-6859.842 399.3095,-6865.6222 406,-6874 466.7419,-6950.0605 381.9338,-10301.4047 442,-10378 445.0193,-10381.8502 448.5446,-10385.1573 452.4289,-10387.9939"/>
+<polygon fill="#191970" stroke="#191970" points="381.1939,-6852.4983 370.6004,-6852.6695 378.9885,-6859.1418 381.1939,-6852.4983"/>
 </g>
 <!-- Node23 -->
 <g id="node32" class="node">
 <title>Node23</title>
 <g id="a_node32"><a xlink:href="classtvm_1_1auto__scheduler_1_1RecordToFileNode.html" target="_top" xlink:title="Callback for logging the input and results of measurements to file. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-10326 481.5,-10356 597.5,-10356 597.5,-10326 481.5,-10326"/>
-<text text-anchor="start" x="489.5" y="-10344" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10333" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RecordToFileNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-10339 481.5,-10369 597.5,-10369 597.5,-10339 481.5,-10339"/>
+<text text-anchor="start" x="489.5" y="-10357" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10346" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RecordToFileNode</text>
 </a>
 </g>
 </g>
 <!-- Node21&#45;&gt;Node23 -->
 <g id="edge27" class="edge">
 <title>Node21&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M380.3453,-6821.905C390.274,-6825.8424 399.3091,-6831.6224 406,-6840 466.2597,-6915.4503 382.4106,-10240.0192 442,-10316 451.5977,-10328.2378 466.3063,-10334.9881 481.4122,-10338.5873"/>
-<polygon fill="#191970" stroke="#191970" points="381.1932,-6818.4987 370.5998,-6818.67 378.9879,-6825.1423 381.1932,-6818.4987"/>
+<path fill="none" stroke="#191970" d="M380.3449,-6855.9054C390.2736,-6859.8427 399.3088,-6865.6226 406,-6874 465.898,-6948.9926 382.7682,-10253.4801 442,-10329 451.5981,-10341.2375 466.3068,-10347.9877 481.4127,-10351.5869"/>
+<polygon fill="#191970" stroke="#191970" points="381.1927,-6852.4991 370.5993,-6852.6704 378.9874,-6859.1427 381.1927,-6852.4991"/>
 </g>
 <!-- Node27 -->
 <g id="node36" class="node">
 <title>Node27</title>
 <g id="a_node36"><a xlink:href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html" target="_top" xlink:title="LocalBuilder use local CPU cores to build programs in parallel. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-10228 481.5,-10258 597.5,-10258 597.5,-10228 481.5,-10228"/>
-<text text-anchor="start" x="489.5" y="-10246" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LocalBuilderNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-10290 481.5,-10320 597.5,-10320 597.5,-10290 481.5,-10290"/>
+<text text-anchor="start" x="489.5" y="-10308" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10297" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LocalBuilderNode</text>
 </a>
 </g>
 </g>
 <!-- Node26&#45;&gt;Node27 -->
 <g id="edge31" class="edge">
 <title>Node26&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M376.8487,-6673.6041C388.1418,-6677.5324 398.5317,-6683.6477 406,-6693 467.1035,-6769.5182 381.5762,-10140.9439 442,-10218 451.5968,-10230.2385 466.3052,-10236.989 481.411,-10240.5882"/>
-<polygon fill="#191970" stroke="#191970" points="377.7739,-6670.2282 367.1942,-6670.7957 375.8186,-6676.9496 377.7739,-6670.2282"/>
+<path fill="none" stroke="#191970" d="M376.8493,-6707.6036C388.1424,-6711.5319 398.5321,-6717.6474 406,-6727 467.5858,-6804.1284 381.0995,-10202.3294 442,-10280 451.5963,-10292.2388 466.3045,-10298.9895 481.4104,-10302.5887"/>
+<polygon fill="#191970" stroke="#191970" points="377.7745,-6704.2277 367.1949,-6704.7951 375.8192,-6710.9491 377.7745,-6704.2277"/>
 </g>
 <!-- Node30 -->
 <g id="node39" class="node">
 <title>Node30</title>
 <g id="a_node39"><a xlink:href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html" target="_top" xlink:title="LocalRunner that uses local CPU/GPU to measure the time cost of programs. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-10130 481.5,-10160 597.5,-10160 597.5,-10130 481.5,-10130"/>
-<text text-anchor="start" x="489.5" y="-10148" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LocalRunnerNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-10241 481.5,-10271 597.5,-10271 597.5,-10241 481.5,-10241"/>
+<text text-anchor="start" x="489.5" y="-10259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10248" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::LocalRunnerNode</text>
 </a>
 </g>
 </g>
 <!-- Node29&#45;&gt;Node30 -->
 <g id="edge34" class="edge">
 <title>Node29&#45;&gt;Node30</title>
-<path fill="none" stroke="#191970" d="M376.4497,-6575.4663C387.897,-6579.3889 398.4438,-6585.5376 406,-6595 467.1035,-6671.5182 381.5762,-10042.9439 442,-10120 451.5968,-10132.2385 466.3052,-10138.989 481.411,-10142.5882"/>
-<polygon fill="#191970" stroke="#191970" points="377.2449,-6572.0536 366.6681,-6572.6711 375.3215,-6578.7841 377.2449,-6572.0536"/>
+<path fill="none" stroke="#191970" d="M376.4514,-6609.465C387.8985,-6613.3877 398.4449,-6619.5368 406,-6629 468.4296,-6707.1963 380.2651,-10152.2541 442,-10231 451.5955,-10243.2395 466.3034,-10249.9904 481.4093,-10253.5895"/>
+<polygon fill="#191970" stroke="#191970" points="377.2467,-6606.0522 366.6699,-6606.6697 375.3232,-6612.7828 377.2467,-6606.0522"/>
 </g>
 <!-- Node31 -->
 <g id="node40" class="node">
 <title>Node31</title>
 <g id="a_node40"><a xlink:href="classtvm_1_1auto__scheduler_1_1RPCRunnerNode.html" target="_top" xlink:title="RPCRunner that uses RPC call to measures the time cost of programs on remote devices. Or sometime we may need to use RPC even in local running to insulate the thread environment. (e.g. running CUDA programs) ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-10179 481.5,-10209 597.5,-10209 597.5,-10179 481.5,-10179"/>
-<text text-anchor="start" x="489.5" y="-10197" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10186" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RPCRunnerNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-10192 481.5,-10222 597.5,-10222 597.5,-10192 481.5,-10192"/>
+<text text-anchor="start" x="489.5" y="-10210" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RPCRunnerNode</text>
 </a>
 </g>
 </g>
 <!-- Node29&#45;&gt;Node31 -->
 <g id="edge35" class="edge">
 <title>Node29&#45;&gt;Node31</title>
-<path fill="none" stroke="#191970" d="M376.4508,-6575.4655C387.8979,-6579.3882 398.4445,-6585.5371 406,-6595 467.9474,-6672.5861 380.7419,-10090.8686 442,-10169 451.596,-10181.2391 466.3041,-10187.9899 481.4099,-10191.5891"/>
-<polygon fill="#191970" stroke="#191970" points="377.2461,-6572.0527 366.6692,-6572.6702 375.3226,-6578.7833 377.2461,-6572.0527"/>
+<path fill="none" stroke="#191970" d="M376.4503,-6609.4659C387.8975,-6613.3885 398.4442,-6619.5373 406,-6629 467.5858,-6706.1284 381.0995,-10104.3294 442,-10182 451.5963,-10194.2388 466.3045,-10200.9895 481.4104,-10204.5887"/>
+<polygon fill="#191970" stroke="#191970" points="377.2456,-6606.0531 366.6688,-6606.6706 375.3221,-6612.7836 377.2456,-6606.0531"/>
 </g>
 <!-- Node34 -->
 <g id="node43" class="node">
 <title>Node34</title>
 <g id="a_node43"><a xlink:href="classtvm_1_1auto__scheduler_1_1PreloadMeasuredStatesNode.html" target="_top" xlink:title="Preload measured states from a log file. This can resume the state of the search policy. ">
-<polygon fill="#ffffff" stroke="#000000" points="458,-10081 458,-10111 621,-10111 621,-10081 458,-10081"/>
-<text text-anchor="start" x="466" y="-10099" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10088" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PreloadMeasuredStatesNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="458,-10143 458,-10173 621,-10173 621,-10143 458,-10143"/>
+<text text-anchor="start" x="466" y="-10161" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10150" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PreloadMeasuredStatesNode</text>
 </a>
 </g>
 </g>
 <!-- Node33&#45;&gt;Node34 -->
 <g id="edge38" class="edge">
 <title>Node33&#45;&gt;Node34</title>
-<path fill="none" stroke="#191970" d="M376.4508,-6477.4655C387.8979,-6481.3882 398.4445,-6487.5371 406,-6497 467.9474,-6574.5861 380.7419,-9992.8686 442,-10071 446.3128,-10076.5007 451.6582,-10080.8928 457.6083,-10084.3885"/>
-<polygon fill="#191970" stroke="#191970" points="377.2461,-6474.0527 366.6692,-6474.6702 375.3226,-6480.7833 377.2461,-6474.0527"/>
+<path fill="none" stroke="#191970" d="M376.4514,-6511.465C387.8985,-6515.3877 398.4449,-6521.5368 406,-6531 468.4296,-6609.1963 380.2651,-10054.2541 442,-10133 446.3126,-10138.5009 451.6578,-10142.8931 457.6078,-10146.3888"/>
+<polygon fill="#191970" stroke="#191970" points="377.2467,-6508.0522 366.6699,-6508.6697 375.3232,-6514.7828 377.2467,-6508.0522"/>
 </g>
 <!-- Node40 -->
 <g id="node49" class="node">
 <title>Node40</title>
 <g id="a_node49"><a xlink:href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html" target="_top" xlink:title="Annotation step that corresponds to vectorize, parallel, unroll and thread binding. (i.e. te::Stage::vectorize, te::Stage::parallel, te::Stage::vectorize, te::Stage::bind) ">
-<polygon fill="#ffffff" stroke="#000000" points="478,-9787 478,-9817 601,-9817 601,-9787 478,-9787"/>
-<text text-anchor="start" x="486" y="-9805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9794" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AnnotationStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="478,-9702 478,-9732 601,-9732 601,-9702 478,-9702"/>
+<text text-anchor="start" x="486" y="-9720" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9709" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AnnotationStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node40 -->
 <g id="edge44" class="edge">
 <title>Node39&#45;&gt;Node40</title>
-<path fill="none" stroke="#191970" d="M373.0918,-6231.3857C385.8207,-6235.2262 397.7102,-6241.6189 406,-6252 467.1035,-6328.5182 381.5762,-9699.9439 442,-9777 450.842,-9788.2759 464.0231,-9794.8932 477.8564,-9798.6793"/>
-<polygon fill="#191970" stroke="#191970" points="373.7904,-6227.9527 363.24,-6228.9226 372.0925,-6234.7437 373.7904,-6227.9527"/>
+<path fill="none" stroke="#191970" d="M373.089,-6265.388C385.8181,-6269.2283 397.7083,-6275.6204 406,-6286 465.0542,-6359.9247 383.6026,-9617.5554 442,-9692 450.844,-9703.2743 464.0259,-9709.891 477.8592,-9713.6772"/>
+<polygon fill="#191970" stroke="#191970" points="373.7875,-6261.955 363.2372,-6262.9249 372.0896,-6268.7459 373.7875,-6261.955"/>
 </g>
 <!-- Node41 -->
 <g id="node50" class="node">
 <title>Node41</title>
 <g id="a_node50"><a xlink:href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html" target="_top" xlink:title="Cache read step that corresponds to te::Schedule::cache_read. ">
-<polygon fill="#ffffff" stroke="#000000" points="477.5,-9738 477.5,-9768 601.5,-9768 601.5,-9738 477.5,-9738"/>
-<text text-anchor="start" x="485.5" y="-9756" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9745" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CacheReadStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="477.5,-9653 477.5,-9683 601.5,-9683 601.5,-9653 477.5,-9653"/>
+<text text-anchor="start" x="485.5" y="-9671" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9660" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CacheReadStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node41 -->
 <g id="edge45" class="edge">
 <title>Node39&#45;&gt;Node41</title>
-<path fill="none" stroke="#191970" d="M373.0907,-6231.3866C385.8196,-6235.227 397.7094,-6241.6195 406,-6252 466.2597,-6327.4503 382.4106,-9652.0192 442,-9728 450.735,-9739.1377 463.7034,-9745.7302 477.3517,-9749.5387"/>
-<polygon fill="#191970" stroke="#191970" points="373.7892,-6227.9536 363.2389,-6228.9236 372.0913,-6234.7446 373.7892,-6227.9536"/>
+<path fill="none" stroke="#191970" d="M373.0878,-6265.389C385.8169,-6269.2292 397.7075,-6275.621 406,-6286 464.2103,-6358.8569 384.437,-9569.6307 442,-9643 450.737,-9654.1361 463.7062,-9660.728 477.3546,-9664.5364"/>
+<polygon fill="#191970" stroke="#191970" points="373.7863,-6261.9559 363.2359,-6262.9259 372.0884,-6268.7469 373.7863,-6261.9559"/>
 </g>
 <!-- Node42 -->
 <g id="node51" class="node">
 <title>Node42</title>
 <g id="a_node51"><a xlink:href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html" target="_top" xlink:title="Cache write step that corresponds to te::Schedule::cache_write. ">
-<polygon fill="#ffffff" stroke="#000000" points="477,-9689 477,-9719 602,-9719 602,-9689 477,-9689"/>
-<text text-anchor="start" x="485" y="-9707" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9696" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CacheWriteStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="477,-9604 477,-9634 602,-9634 602,-9604 477,-9604"/>
+<text text-anchor="start" x="485" y="-9622" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9611" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CacheWriteStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node42 -->
 <g id="edge46" class="edge">
 <title>Node39&#45;&gt;Node42</title>
-<path fill="none" stroke="#191970" d="M373.0895,-6231.3876C385.8186,-6235.2279 397.7087,-6241.6201 406,-6252 465.4158,-6326.3824 383.245,-9604.0945 442,-9679 450.628,-9689.9996 463.3849,-9696.5659 476.8477,-9700.3954"/>
-<polygon fill="#191970" stroke="#191970" points="373.788,-6227.9546 363.2377,-6228.9245 372.0901,-6234.7455 373.788,-6227.9546"/>
+<path fill="none" stroke="#191970" d="M373.0865,-6265.39C385.8158,-6269.2301 397.7067,-6275.6217 406,-6286 463.3664,-6357.789 385.2713,-9521.706 442,-9594 450.63,-9604.998 463.3878,-9611.5636 476.8507,-9615.3931"/>
+<polygon fill="#191970" stroke="#191970" points="373.785,-6261.9569 363.2347,-6262.9269 372.0872,-6268.7479 373.785,-6261.9569"/>
 </g>
 <!-- Node43 -->
 <g id="node52" class="node">
 <title>Node43</title>
 <g id="a_node52"><a xlink:href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html" target="_top" xlink:title="Compute at step that corresponds to te::Stage::compute_at. ">
-<polygon fill="#ffffff" stroke="#000000" points="477,-9640 477,-9670 602,-9670 602,-9640 477,-9640"/>
-<text text-anchor="start" x="485" y="-9658" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9647" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeAtStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="477,-9555 477,-9585 602,-9585 602,-9555 477,-9555"/>
+<text text-anchor="start" x="485" y="-9573" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9562" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeAtStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node43 -->
 <g id="edge47" class="edge">
 <title>Node39&#45;&gt;Node43</title>
-<path fill="none" stroke="#191970" d="M373.0883,-6231.3885C385.8174,-6235.2288 397.7079,-6241.6207 406,-6252 464.572,-6325.3145 384.0794,-9556.1698 442,-9630 450.6288,-9640.9989 463.3861,-9647.565 476.8489,-9651.3945"/>
-<polygon fill="#191970" stroke="#191970" points="373.7868,-6227.9555 363.2365,-6228.9255 372.0889,-6234.7465 373.7868,-6227.9555"/>
+<path fill="none" stroke="#191970" d="M373.0852,-6265.391C385.8146,-6269.2311 397.7058,-6275.6223 406,-6286 462.5226,-6356.7211 386.1057,-9473.7813 442,-9545 450.6309,-9555.9973 463.389,-9562.5627 476.8519,-9566.3921"/>
+<polygon fill="#191970" stroke="#191970" points="373.7837,-6261.958 363.2334,-6262.928 372.0859,-6268.749 373.7837,-6261.958"/>
 </g>
 <!-- Node44 -->
 <g id="node53" class="node">
 <title>Node44</title>
 <g id="a_node53"><a xlink:href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html" target="_top" xlink:title="Compute inline step that corresponds to te::Stage::compute_inline. ">
-<polygon fill="#ffffff" stroke="#000000" points="469,-9591 469,-9621 610,-9621 610,-9591 469,-9591"/>
-<text text-anchor="start" x="477" y="-9609" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9598" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeInlineStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="469,-9506 469,-9536 610,-9536 610,-9506 469,-9506"/>
+<text text-anchor="start" x="477" y="-9524" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9513" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeInlineStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node44 -->
 <g id="edge48" class="edge">
 <title>Node39&#45;&gt;Node44</title>
-<path fill="none" stroke="#191970" d="M373.0871,-6231.3895C385.8163,-6235.2297 397.7071,-6241.6214 406,-6252 463.7281,-6324.2466 384.9137,-9508.2451 442,-9581 448.9037,-9589.7986 458.4493,-9595.7604 468.8844,-9599.7539"/>
-<polygon fill="#191970" stroke="#191970" points="373.7856,-6227.9565 363.2352,-6228.9265 372.0877,-6234.7475 373.7856,-6227.9565"/>
+<path fill="none" stroke="#191970" d="M373.0839,-6265.3921C385.8133,-6269.2321 397.705,-6275.623 406,-6286 461.6787,-6355.6532 386.9401,-9425.8566 442,-9496 448.9055,-9504.7972 458.452,-9510.7583 468.8874,-9514.7516"/>
+<polygon fill="#191970" stroke="#191970" points="373.7824,-6261.959 363.232,-6262.929 372.0845,-6268.75 373.7824,-6261.959"/>
 </g>
 <!-- Node45 -->
 <g id="node54" class="node">
 <title>Node45</title>
 <g id="a_node54"><a xlink:href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html" target="_top" xlink:title="Compute root step that corresponds to te::Stage::compute_root. ">
-<polygon fill="#ffffff" stroke="#000000" points="471.5,-9542 471.5,-9572 607.5,-9572 607.5,-9542 471.5,-9542"/>
-<text text-anchor="start" x="479.5" y="-9560" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9549" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeRootStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="471.5,-9457 471.5,-9487 607.5,-9487 607.5,-9457 471.5,-9457"/>
+<text text-anchor="start" x="479.5" y="-9475" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9464" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeRootStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node45 -->
 <g id="edge49" class="edge">
 <title>Node39&#45;&gt;Node45</title>
-<path fill="none" stroke="#191970" d="M373.0858,-6231.3906C385.8151,-6235.2307 397.7062,-6241.6221 406,-6252 462.8842,-6323.1788 385.7481,-9460.3204 442,-9532 449.4439,-9541.4854 459.9581,-9547.6738 471.3468,-9551.6533"/>
-<polygon fill="#191970" stroke="#191970" points="373.7843,-6227.9575 363.2339,-6228.9275 372.0864,-6234.7485 373.7843,-6227.9575"/>
+<path fill="none" stroke="#191970" d="M373.0825,-6265.3932C385.812,-6269.2331 397.7041,-6275.6238 406,-6286 460.8349,-6354.5854 387.7744,-9377.9319 442,-9447 449.4458,-9456.4839 459.961,-9462.6715 471.35,-9466.6508"/>
+<polygon fill="#191970" stroke="#191970" points="373.781,-6261.9601 363.2306,-6262.9301 372.0831,-6268.7511 373.781,-6261.9601"/>
 </g>
 <!-- Node46 -->
 <g id="node55" class="node">
 <title>Node46</title>
 <g id="a_node55"><a xlink:href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html" target="_top" xlink:title="Similar to FollowSplitStep, but uses split factors from multiple steps. ">
-<polygon fill="#ffffff" stroke="#000000" points="464,-9493 464,-9523 615,-9523 615,-9493 464,-9493"/>
-<text text-anchor="start" x="472" y="-9511" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9500" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FollowFusedSplitStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="464,-10094 464,-10124 615,-10124 615,-10094 464,-10094"/>
+<text text-anchor="start" x="472" y="-10112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10101" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FollowFusedSplitStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node46 -->
 <g id="edge50" class="edge">
 <title>Node39&#45;&gt;Node46</title>
-<path fill="none" stroke="#191970" d="M373.0845,-6231.3916C385.8138,-6235.2317 397.7053,-6241.6227 406,-6252 462.0404,-6322.1109 386.5825,-9412.3957 442,-9483 447.7183,-9490.2854 455.248,-9495.6258 463.5938,-9499.5142"/>
-<polygon fill="#191970" stroke="#191970" points="373.7829,-6227.9586 363.2326,-6228.9286 372.0851,-6234.7496 373.7829,-6227.9586"/>
+<path fill="none" stroke="#191970" d="M373.0976,-6265.3811C385.8261,-6269.2219 397.714,-6275.6159 406,-6286 471.8051,-6368.4678 376.9276,-10000.9529 442,-10084 447.7123,-10091.2902 455.2384,-10096.6333 463.5824,-10100.5231"/>
+<polygon fill="#191970" stroke="#191970" points="373.7962,-6261.9481 363.2459,-6262.918 372.0983,-6268.7391 373.7962,-6261.9481"/>
 </g>
 <!-- Node47 -->
 <g id="node56" class="node">
 <title>Node47</title>
 <g id="a_node56"><a xlink:href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html" target="_top" xlink:title="Similar to SplitStepNode, but uses split factors from another step (i.e. Follow another split step) ...">
-<polygon fill="#ffffff" stroke="#000000" points="478,-9444 478,-9474 601,-9474 601,-9444 478,-9444"/>
-<text text-anchor="start" x="486" y="-9462" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9451" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FollowSplitStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="478,-10045 478,-10075 601,-10075 601,-10045 478,-10045"/>
+<text text-anchor="start" x="486" y="-10063" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10052" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FollowSplitStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node47 -->
 <g id="edge51" class="edge">
 <title>Node39&#45;&gt;Node47</title>
-<path fill="none" stroke="#191970" d="M373.0831,-6231.3927C385.8126,-6235.2327 397.7045,-6241.6235 406,-6252 461.1965,-6321.043 387.4169,-9364.471 442,-9434 450.8482,-9445.271 464.0316,-9451.8865 477.865,-9455.6726"/>
-<polygon fill="#191970" stroke="#191970" points="373.7816,-6227.9596 363.2312,-6228.9297 372.0837,-6234.7506 373.7816,-6227.9596"/>
+<path fill="none" stroke="#191970" d="M373.0966,-6265.3819C385.8252,-6269.2226 397.7133,-6275.6164 406,-6286 470.9612,-6367.3999 377.7619,-9953.0282 442,-10035 450.8386,-10046.2786 464.0184,-10052.8968 477.8516,-10056.6831"/>
+<polygon fill="#191970" stroke="#191970" points="373.7952,-6261.9489 363.2449,-6262.9188 372.0973,-6268.7399 373.7952,-6261.9489"/>
 </g>
 <!-- Node48 -->
 <g id="node57" class="node">
 <title>Node48</title>
 <g id="a_node57"><a xlink:href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html" target="_top" xlink:title="Fuse step that corresponds to te::Stage::fuse. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-9395 481.5,-9425 597.5,-9425 597.5,-9395 481.5,-9395"/>
-<text text-anchor="start" x="489.5" y="-9413" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9402" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FuseStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-9996 481.5,-10026 597.5,-10026 597.5,-9996 481.5,-9996"/>
+<text text-anchor="start" x="489.5" y="-10014" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-10003" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FuseStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node48 -->
 <g id="edge52" class="edge">
 <title>Node39&#45;&gt;Node48</title>
-<path fill="none" stroke="#191970" d="M373.0817,-6231.3938C385.8113,-6235.2337 397.7035,-6241.6242 406,-6252 460.3527,-6319.9751 388.2512,-9316.5463 442,-9385 451.6046,-9397.2323 466.3154,-9403.981 481.421,-9407.5804"/>
-<polygon fill="#191970" stroke="#191970" points="373.7802,-6227.9608 363.2298,-6228.9308 372.0823,-6234.7518 373.7802,-6227.9608"/>
+<path fill="none" stroke="#191970" d="M373.0956,-6265.3827C385.8243,-6269.2233 397.7127,-6275.6169 406,-6286 470.1174,-6366.332 378.5963,-9905.1035 442,-9986 451.5939,-9998.2408 466.3013,-10004.992 481.4073,-10008.5912"/>
+<polygon fill="#191970" stroke="#191970" points="373.7942,-6261.9497 363.2439,-6262.9196 372.0963,-6268.7407 373.7942,-6261.9497"/>
 </g>
 <!-- Node49 -->
 <g id="node58" class="node">
 <title>Node49</title>
 <g id="a_node58"><a xlink:href="classtvm_1_1auto__scheduler_1_1PragmaStepNode.html" target="_top" xlink:title="Pragma step that corresponds to te::Stage::pragma. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-10032 481.5,-10062 597.5,-10062 597.5,-10032 481.5,-10032"/>
-<text text-anchor="start" x="489.5" y="-10050" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-10039" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PragmaStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-9947 481.5,-9977 597.5,-9977 597.5,-9947 481.5,-9947"/>
+<text text-anchor="start" x="489.5" y="-9965" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9954" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PragmaStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node49 -->
 <g id="edge53" class="edge">
 <title>Node39&#45;&gt;Node49</title>
-<path fill="none" stroke="#191970" d="M373.097,-6231.3816C385.8256,-6235.2223 397.7136,-6241.6161 406,-6252 471.3229,-6333.8576 377.4043,-9939.5673 442,-10022 451.5928,-10034.2416 466.2999,-10040.9931 481.4059,-10044.5923"/>
-<polygon fill="#191970" stroke="#191970" points="373.7957,-6227.9486 363.2453,-6228.9184 372.0977,-6234.7395 373.7957,-6227.9486"/>
+<path fill="none" stroke="#191970" d="M373.0946,-6265.3835C385.8233,-6269.2241 397.712,-6275.6174 406,-6286 469.2735,-6365.2642 379.4307,-9857.1788 442,-9937 451.5947,-9949.2402 466.3024,-9955.9912 481.4083,-9959.5904"/>
+<polygon fill="#191970" stroke="#191970" points="373.7932,-6261.9505 363.2428,-6262.9204 372.0953,-6268.7415 373.7932,-6261.9505"/>
 </g>
 <!-- Node50 -->
 <g id="node59" class="node">
 <title>Node50</title>
 <g id="a_node59"><a xlink:href="classtvm_1_1auto__scheduler_1_1ReorderStepNode.html" target="_top" xlink:title="Reorder step that corresponds to te::Stage::reorder. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-9983 481.5,-10013 597.5,-10013 597.5,-9983 481.5,-9983"/>
-<text text-anchor="start" x="489.5" y="-10001" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9990" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ReorderStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-9898 481.5,-9928 597.5,-9928 597.5,-9898 481.5,-9898"/>
+<text text-anchor="start" x="489.5" y="-9916" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9905" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ReorderStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node50 -->
 <g id="edge54" class="edge">
 <title>Node39&#45;&gt;Node50</title>
-<path fill="none" stroke="#191970" d="M373.096,-6231.3824C385.8247,-6235.223 397.713,-6241.6167 406,-6252 470.479,-6332.7897 378.2387,-9891.6426 442,-9973 451.5935,-9985.241 466.3009,-9991.9924 481.4068,-9995.5915"/>
-<polygon fill="#191970" stroke="#191970" points="373.7947,-6227.9493 363.2443,-6228.9192 372.0967,-6234.7403 373.7947,-6227.9493"/>
+<path fill="none" stroke="#191970" d="M373.0935,-6265.3844C385.8223,-6269.2249 397.7113,-6275.618 406,-6286 468.4296,-6364.1963 380.2651,-9809.2541 442,-9888 451.5955,-9900.2395 466.3034,-9906.9904 481.4093,-9910.5895"/>
+<polygon fill="#191970" stroke="#191970" points="373.7921,-6261.9514 363.2418,-6262.9213 372.0942,-6268.7423 373.7921,-6261.9514"/>
 </g>
 <!-- Node51 -->
 <g id="node60" class="node">
 <title>Node51</title>
 <g id="a_node60"><a xlink:href="classtvm_1_1auto__scheduler_1_1RfactorStepNode.html" target="_top" xlink:title="Reduction factor step that corresponds to te::Schedule::rfactor. ">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-9934 481.5,-9964 597.5,-9964 597.5,-9934 481.5,-9934"/>
-<text text-anchor="start" x="489.5" y="-9952" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9941" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RfactorStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-9849 481.5,-9879 597.5,-9879 597.5,-9849 481.5,-9849"/>
+<text text-anchor="start" x="489.5" y="-9867" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9856" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RfactorStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node51 -->
 <g id="edge55" class="edge">
 <title>Node39&#45;&gt;Node51</title>
-<path fill="none" stroke="#191970" d="M373.095,-6231.3832C385.8237,-6235.2238 397.7123,-6241.6172 406,-6252 469.6351,-6331.7218 379.0731,-9843.718 442,-9924 451.5943,-9936.2404 466.3019,-9942.9915 481.4078,-9946.5907"/>
-<polygon fill="#191970" stroke="#191970" points="373.7936,-6227.9502 363.2433,-6228.92 372.0957,-6234.7411 373.7936,-6227.9502"/>
+<path fill="none" stroke="#191970" d="M373.0924,-6265.3852C385.8213,-6269.2257 397.7106,-6275.6186 406,-6286 467.5858,-6363.1284 381.0995,-9761.3294 442,-9839 451.5963,-9851.2388 466.3045,-9857.9895 481.4104,-9861.5887"/>
+<polygon fill="#191970" stroke="#191970" points="373.791,-6261.9522 363.2407,-6262.9221 372.0931,-6268.7432 373.791,-6261.9522"/>
 </g>
 <!-- Node52 -->
 <g id="node61" class="node">
 <title>Node52</title>
 <g id="a_node61"><a xlink:href="classtvm_1_1auto__scheduler_1_1SplitStepNode.html" target="_top" xlink:title="Split step that corresponds to te::Stage::split with additional support of multiple&#45;level of factors...">
-<polygon fill="#ffffff" stroke="#000000" points="481.5,-9885 481.5,-9915 597.5,-9915 597.5,-9885 481.5,-9885"/>
-<text text-anchor="start" x="489.5" y="-9903" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9892" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SplitStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="481.5,-9800 481.5,-9830 597.5,-9830 597.5,-9800 481.5,-9800"/>
+<text text-anchor="start" x="489.5" y="-9818" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9807" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SplitStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node52 -->
 <g id="edge56" class="edge">
 <title>Node39&#45;&gt;Node52</title>
-<path fill="none" stroke="#191970" d="M373.094,-6231.384C385.8228,-6235.2246 397.7116,-6241.6177 406,-6252 468.7913,-6330.6539 379.9075,-9795.7933 442,-9875 451.5951,-9887.2398 466.303,-9893.9907 481.4089,-9897.5899"/>
-<polygon fill="#191970" stroke="#191970" points="373.7926,-6227.951 363.2422,-6228.9209 372.0947,-6234.742 373.7926,-6227.951"/>
+<path fill="none" stroke="#191970" d="M373.0913,-6265.3861C385.8203,-6269.2265 397.7099,-6275.6191 406,-6286 466.7419,-6362.0605 381.9338,-9713.4047 442,-9790 451.5972,-9802.2382 466.3057,-9808.9886 481.4115,-9812.5878"/>
+<polygon fill="#191970" stroke="#191970" points="373.7899,-6261.9531 363.2395,-6262.923 372.092,-6268.7441 373.7899,-6261.9531"/>
 </g>
 <!-- Node53 -->
 <g id="node62" class="node">
 <title>Node53</title>
 <g id="a_node62"><a xlink:href="classtvm_1_1auto__scheduler_1_1StorageAlignStepNode.html" target="_top" xlink:title="Storage align step that corresponds to te::Stage::storage_align. ">
-<polygon fill="#ffffff" stroke="#000000" points="473.5,-9836 473.5,-9866 605.5,-9866 605.5,-9836 473.5,-9836"/>
-<text text-anchor="start" x="481.5" y="-9854" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="539.5" y="-9843" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StorageAlignStepNode</text>
+<polygon fill="#ffffff" stroke="#000000" points="473.5,-9751 473.5,-9781 605.5,-9781 605.5,-9751 473.5,-9751"/>
+<text text-anchor="start" x="481.5" y="-9769" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="539.5" y="-9758" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::StorageAlignStepNode</text>
 </a>
 </g>
 </g>
 <!-- Node39&#45;&gt;Node53 -->
 <g id="edge57" class="edge">
 <title>Node39&#45;&gt;Node53</title>
-<path fill="none" stroke="#191970" d="M373.0929,-6231.3849C385.8217,-6235.2254 397.7109,-6241.6183 406,-6252 467.9474,-6329.5861 380.7419,-9747.8686 442,-9826 449.8708,-9836.0388 461.181,-9842.3853 473.3289,-9846.3288"/>
-<polygon fill="#191970" stroke="#191970" points="373.7915,-6227.9518 363.2411,-6228.9218 372.0936,-6234.7428 373.7915,-6227.9518"/>
+<path fill="none" stroke="#191970" d="M373.0902,-6265.387C385.8192,-6269.2274 397.7091,-6275.6198 406,-6286 465.898,-6360.9926 382.7682,-9665.4801 442,-9741 449.8726,-9751.0375 461.1835,-9757.3833 473.3316,-9761.3267"/>
+<polygon fill="#191970" stroke="#191970" points="373.7887,-6261.954 363.2384,-6262.924 372.0908,-6268.745 373.7887,-6261.954"/>
 </g>
 <!-- Node56 -->
 <g id="node65" class="node">
 <title>Node56</title>
 <g id="a_node65"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Adaptive\lPool1DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466.5,-7400 466.5,-7430 612.5,-7430 612.5,-7400 466.5,-7400"/>
-<text text-anchor="start" x="474.5" y="-7418" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Adaptive</text>
-<text text-anchor="middle" x="539.5" y="-7407" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Pool1DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="466.5,-7549 466.5,-7579 612.5,-7579 612.5,-7549 466.5,-7549"/>
+<text text-anchor="start" x="474.5" y="-7567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Adaptive</text>
+<text text-anchor="middle" x="539.5" y="-7556" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Pool1DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node56 -->
 <g id="edge60" class="edge">
 <title>Node55&#45;&gt;Node56</title>
-<path fill="none" stroke="#191970" d="M372.5004,-6134.9191C385.3309,-6138.1213 397.4112,-6143.9464 406,-6154 495.2418,-6258.4621 356.2028,-7282.6907 442,-7390 448.3292,-7397.9162 456.7952,-7403.5286 466.1049,-7407.4748"/>
-<polygon fill="#191970" stroke="#191970" points="373.0776,-6131.4655 362.588,-6132.955 371.717,-6138.332 373.0776,-6131.4655"/>
+<path fill="none" stroke="#191970" d="M372.5193,-6168.903C385.3486,-6172.1062 397.4237,-6177.9357 406,-6188 503.3969,-6302.2943 348.3718,-7421.5985 442,-7539 448.3194,-7546.924 456.7801,-7552.5407 466.0873,-7556.4888"/>
+<polygon fill="#191970" stroke="#191970" points="373.0966,-6165.4494 362.607,-6166.9388 371.7359,-6172.3159 373.0966,-6165.4494"/>
 </g>
 <!-- Node58 -->
 <g id="node67" class="node">
 <title>Node58</title>
 <g id="a_node67"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Adaptive\lPool2DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466.5,-7351 466.5,-7381 612.5,-7381 612.5,-7351 466.5,-7351"/>
-<text text-anchor="start" x="474.5" y="-7369" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Adaptive</text>
-<text text-anchor="middle" x="539.5" y="-7358" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Pool2DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="466.5,-7500 466.5,-7530 612.5,-7530 612.5,-7500 466.5,-7500"/>
+<text text-anchor="start" x="474.5" y="-7518" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Adaptive</text>
+<text text-anchor="middle" x="539.5" y="-7507" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Pool2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node58 -->
 <g id="edge62" class="edge">
 <title>Node55&#45;&gt;Node58</title>
-<path fill="none" stroke="#191970" d="M372.4913,-6134.9269C385.3223,-6138.1286 397.4052,-6143.9515 406,-6154 491.7672,-6254.2729 359.5393,-7237.9907 442,-7341 448.334,-7348.9123 456.8026,-7354.5227 466.1135,-7358.4679"/>
-<polygon fill="#191970" stroke="#191970" points="373.0684,-6131.4733 362.5788,-6132.9629 371.7078,-6138.3398 373.0684,-6131.4733"/>
+<path fill="none" stroke="#191970" d="M372.5116,-6168.9095C385.3415,-6172.1123 397.4186,-6177.94 406,-6188 499.9221,-6298.1049 351.7085,-7376.8987 442,-7490 448.3234,-7497.9208 456.7862,-7503.5358 466.0945,-7507.4831"/>
+<polygon fill="#191970" stroke="#191970" points="373.0889,-6165.4559 362.5993,-6166.9453 371.7283,-6172.3224 373.0889,-6165.4559"/>
 </g>
 <!-- Node60 -->
 <g id="node69" class="node">
 <title>Node60</title>
 <g id="a_node69"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Adaptive\lPool3DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466.5,-7302 466.5,-7332 612.5,-7332 612.5,-7302 466.5,-7302"/>
-<text text-anchor="start" x="474.5" y="-7320" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Adaptive</text>
-<text text-anchor="middle" x="539.5" y="-7309" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Pool3DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="466.5,-7451 466.5,-7481 612.5,-7481 612.5,-7451 466.5,-7451"/>
+<text text-anchor="start" x="474.5" y="-7469" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Adaptive</text>
+<text text-anchor="middle" x="539.5" y="-7458" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Pool3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node60 -->
 <g id="edge64" class="edge">
 <title>Node55&#45;&gt;Node60</title>
-<path fill="none" stroke="#191970" d="M372.4813,-6134.9354C385.313,-6138.1366 397.3986,-6143.9571 406,-6154 488.2927,-6250.0838 362.8757,-7193.2906 442,-7292 448.3391,-7299.9082 456.8106,-7305.5163 466.1227,-7309.4605"/>
-<polygon fill="#191970" stroke="#191970" points="373.0584,-6131.4818 362.5688,-6132.9714 371.6979,-6138.3483 373.0584,-6131.4818"/>
+<path fill="none" stroke="#191970" d="M372.5034,-6168.9165C385.3337,-6172.1189 397.4132,-6177.9447 406,-6188 496.4473,-6293.9156 355.0452,-7332.1989 442,-7441 448.3277,-7448.9174 456.7928,-7454.5305 466.1021,-7458.477"/>
+<polygon fill="#191970" stroke="#191970" points="373.0806,-6165.4629 362.591,-6166.9524 371.72,-6172.3294 373.0806,-6165.4629"/>
 </g>
 <!-- Node62 -->
 <g id="node71" class="node">
 <title>Node62</title>
 <g id="a_node71"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AffineGrid\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="464,-7253 464,-7283 615,-7283 615,-7253 464,-7253"/>
-<text text-anchor="start" x="472" y="-7271" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AffineGrid</text>
-<text text-anchor="middle" x="539.5" y="-7260" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="464,-7402 464,-7432 615,-7432 615,-7402 464,-7402"/>
+<text text-anchor="start" x="472" y="-7420" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AffineGrid</text>
+<text text-anchor="middle" x="539.5" y="-7409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node62 -->
 <g id="edge66" class="edge">
 <title>Node55&#45;&gt;Node62</title>
-<path fill="none" stroke="#191970" d="M372.4705,-6134.9447C385.3029,-6138.1453 397.3915,-6143.9633 406,-6154 484.8184,-6245.8949 366.212,-7148.5904 442,-7243 447.7978,-7250.2224 455.374,-7255.5257 463.7437,-7259.3952"/>
-<polygon fill="#191970" stroke="#191970" points="373.0475,-6131.491 362.5579,-6132.9808 371.687,-6138.3576 373.0475,-6131.491"/>
+<path fill="none" stroke="#191970" d="M372.4945,-6168.9241C385.3254,-6172.126 397.4073,-6177.9497 406,-6188 492.9727,-6289.7263 358.3817,-7287.4989 442,-7392 447.7864,-7399.2315 455.3559,-7404.5402 463.7222,-7408.4124"/>
+<polygon fill="#191970" stroke="#191970" points="373.0717,-6165.4705 362.5821,-6166.9601 371.7111,-6172.337 373.0717,-6165.4705"/>
 </g>
 <!-- Node64 -->
 <g id="node73" class="node">
 <title>Node64</title>
 <g id="a_node73"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AllClass\lNonMaximumSuppressionAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="450,-7204 450,-7234 629,-7234 629,-7204 450,-7204"/>
-<text text-anchor="start" x="458" y="-7222" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AllClass</text>
-<text text-anchor="middle" x="539.5" y="-7211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NonMaximumSuppressionAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="450,-7353 450,-7383 629,-7383 629,-7353 450,-7353"/>
+<text text-anchor="start" x="458" y="-7371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AllClass</text>
+<text text-anchor="middle" x="539.5" y="-7360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NonMaximumSuppressionAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node64 -->
 <g id="edge68" class="edge">
 <title>Node55&#45;&gt;Node64</title>
-<path fill="none" stroke="#191970" d="M372.4587,-6134.9548C385.2918,-6138.1548 397.3837,-6143.97 406,-6154 481.3441,-6241.7061 369.5482,-7103.8899 442,-7194 445.066,-7197.8132 448.6276,-7201.0913 452.5399,-7203.9058"/>
-<polygon fill="#191970" stroke="#191970" points="373.0355,-6131.5011 362.546,-6132.991 371.6751,-6138.3677 373.0355,-6131.5011"/>
+<path fill="none" stroke="#191970" d="M372.4849,-6168.9324C385.3163,-6172.1338 397.401,-6177.9551 406,-6188 489.4982,-6285.5372 361.7182,-7242.7988 442,-7343 445.0594,-7346.8185 448.6159,-7350.1007 452.5242,-7352.9184"/>
+<polygon fill="#191970" stroke="#191970" points="373.0619,-6165.4788 362.5724,-6166.9684 371.7014,-6172.3453 373.0619,-6165.4788"/>
 </g>
 <!-- Node66 -->
 <g id="node75" class="node">
 <title>Node66</title>
 <g id="a_node75"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AllocStorage\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="457.5,-7155 457.5,-7185 621.5,-7185 621.5,-7155 457.5,-7155"/>
-<text text-anchor="start" x="465.5" y="-7173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AllocStorage</text>
-<text text-anchor="middle" x="539.5" y="-7162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="457.5,-7304 457.5,-7334 621.5,-7334 621.5,-7304 457.5,-7304"/>
+<text text-anchor="start" x="465.5" y="-7322" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AllocStorage</text>
+<text text-anchor="middle" x="539.5" y="-7311" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node66 -->
 <g id="edge70" class="edge">
 <title>Node55&#45;&gt;Node66</title>
-<path fill="none" stroke="#191970" d="M372.4457,-6134.966C385.2796,-6138.1653 397.3751,-6143.9773 406,-6154 477.87,-6237.5174 372.8842,-7059.1894 442,-7145 446.275,-7150.3076 451.5103,-7154.5782 457.314,-7158.0047"/>
-<polygon fill="#191970" stroke="#191970" points="373.0224,-6131.5123 362.5329,-6133.0023 371.6621,-6138.3788 373.0224,-6131.5123"/>
+<path fill="none" stroke="#191970" d="M372.4744,-6168.9414C385.3065,-6172.1422 397.394,-6177.9611 406,-6188 486.0237,-6281.3482 365.0545,-7198.0986 442,-7294 446.265,-7299.3156 451.4933,-7303.5919 457.2924,-7307.0221"/>
+<polygon fill="#191970" stroke="#191970" points="373.0514,-6165.4877 362.5618,-6166.9775 371.6909,-6172.3543 373.0514,-6165.4877"/>
 </g>
 <!-- Node68 -->
 <g id="node77" class="node">
 <title>Node68</title>
 <g id="a_node77"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AllocTensor\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="460.5,-7106 460.5,-7136 618.5,-7136 618.5,-7106 460.5,-7106"/>
-<text text-anchor="start" x="468.5" y="-7124" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AllocTensor</text>
-<text text-anchor="middle" x="539.5" y="-7113" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="460.5,-7255 460.5,-7285 618.5,-7285 618.5,-7255 460.5,-7255"/>
+<text text-anchor="start" x="468.5" y="-7273" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AllocTensor</text>
+<text text-anchor="middle" x="539.5" y="-7262" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node68 -->
 <g id="edge72" class="edge">
 <title>Node55&#45;&gt;Node68</title>
-<path fill="none" stroke="#191970" d="M372.4314,-6134.9783C385.2662,-6138.1769 397.3657,-6143.9855 406,-6154 474.3961,-6233.329 376.2201,-7014.4885 442,-7096 446.9384,-7102.1195 453.1534,-7106.8601 460.0434,-7110.5174"/>
-<polygon fill="#191970" stroke="#191970" points="373.008,-6131.5246 362.5185,-6133.0147 371.6478,-6138.3912 373.008,-6131.5246"/>
+<path fill="none" stroke="#191970" d="M372.4629,-6168.9512C385.2958,-6172.1514 397.3865,-6177.9676 406,-6188 482.5494,-6277.1593 368.3908,-7153.3983 442,-7245 447.0352,-7251.2659 453.4089,-7256.0872 460.4775,-7259.7808"/>
+<polygon fill="#191970" stroke="#191970" points="373.0398,-6165.4975 362.5502,-6166.9874 371.6794,-6172.3641 373.0398,-6165.4975"/>
 </g>
 <!-- Node70 -->
 <g id="node79" class="node">
 <title>Node70</title>
 <g id="a_node79"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ArangeAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="454,-7067.5 454,-7086.5 625,-7086.5 625,-7067.5 454,-7067.5"/>
-<text text-anchor="middle" x="539.5" y="-7074.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ArangeAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="454,-7216.5 454,-7235.5 625,-7235.5 625,-7216.5 454,-7216.5"/>
+<text text-anchor="middle" x="539.5" y="-7223.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ArangeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node70 -->
 <g id="edge74" class="edge">
 <title>Node55&#45;&gt;Node70</title>
-<path fill="none" stroke="#191970" d="M372.4189,-6134.9891C385.2545,-6138.187 397.3574,-6143.9926 406,-6154 471.6313,-6229.9955 376.9932,-6980.4697 442,-7057 445.4679,-7061.0826 449.5256,-7064.4697 453.9794,-7067.2699"/>
-<polygon fill="#191970" stroke="#191970" points="372.9954,-6131.5353 362.5059,-6133.0255 371.6352,-6138.4019 372.9954,-6131.5353"/>
+<path fill="none" stroke="#191970" d="M372.453,-6168.9597C385.2865,-6172.1594 397.3799,-6177.9732 406,-6188 479.7843,-6273.8254 368.9209,-7119.5733 442,-7206 445.4587,-7210.0904 449.5094,-7213.4834 453.9581,-7216.288"/>
+<polygon fill="#191970" stroke="#191970" points="373.0298,-6165.506 362.5403,-6166.9959 371.6695,-6172.3726 373.0298,-6165.506"/>
 </g>
 <!-- Node72 -->
 <g id="node81" class="node">
 <title>Node72</title>
 <g id="a_node81"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ArgReduce\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="462.5,-7018 462.5,-7048 616.5,-7048 616.5,-7018 462.5,-7018"/>
-<text text-anchor="start" x="470.5" y="-7036" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ArgReduce</text>
-<text text-anchor="middle" x="539.5" y="-7025" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="462.5,-7167 462.5,-7197 616.5,-7197 616.5,-7167 462.5,-7167"/>
+<text text-anchor="start" x="470.5" y="-7185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ArgReduce</text>
+<text text-anchor="middle" x="539.5" y="-7174" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node72 -->
 <g id="edge76" class="edge">
 <title>Node55&#45;&gt;Node72</title>
-<path fill="none" stroke="#191970" d="M372.6086,-6135.0558C385.3683,-6138.2635 397.3925,-6144.0562 406,-6154 468.1577,-6225.8075 382.2106,-6934.2089 442,-7008 447.5005,-7014.7886 454.5717,-7019.8791 462.3902,-7023.6759"/>
-<polygon fill="#191970" stroke="#191970" points="373.245,-6131.6139 362.7522,-6133.0808 371.8696,-6138.4774 373.245,-6131.6139"/>
+<path fill="none" stroke="#191970" d="M372.4395,-6168.9714C385.2737,-6172.1704 397.371,-6177.9809 406,-6188 476.3103,-6269.6369 374.382,-7073.1196 442,-7157 447.4835,-7163.8023 454.5444,-7168.9012 462.3573,-7172.7025"/>
+<polygon fill="#191970" stroke="#191970" points="373.0161,-6165.5177 362.5266,-6167.0077 371.6558,-6172.3842 373.0161,-6165.5177"/>
 </g>
 <!-- Node74 -->
 <g id="node83" class="node">
 <title>Node74</title>
 <g id="a_node83"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ArgsortAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="453.5,-6979.5 453.5,-6998.5 625.5,-6998.5 625.5,-6979.5 453.5,-6979.5"/>
-<text text-anchor="middle" x="539.5" y="-6986.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ArgsortAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="453.5,-7128.5 453.5,-7147.5 625.5,-7147.5 625.5,-7128.5 453.5,-7128.5"/>
+<text text-anchor="middle" x="539.5" y="-7135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ArgsortAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node74 -->
 <g id="edge78" class="edge">
 <title>Node55&#45;&gt;Node74</title>
-<path fill="none" stroke="#191970" d="M372.5934,-6135.069C385.3541,-6138.2759 397.3825,-6144.0649 406,-6154 465.3932,-6222.4745 383.1694,-6900.0415 442,-6969 445.4766,-6973.0751 449.541,-6976.4566 453.9997,-6979.2527"/>
-<polygon fill="#191970" stroke="#191970" points="373.2296,-6131.627 362.7368,-6133.0942 371.8543,-6138.4906 373.2296,-6131.627"/>
+<path fill="none" stroke="#191970" d="M372.4277,-6168.9815C385.2627,-6172.1799 397.3632,-6177.9876 406,-6188 473.5453,-6266.3033 375.0981,-7039.1463 442,-7118 445.4655,-7122.0846 449.5214,-7125.4732 453.9739,-7128.2746"/>
+<polygon fill="#191970" stroke="#191970" points="373.0042,-6165.5278 362.5147,-6167.0179 371.644,-6172.3944 373.0042,-6165.5278"/>
 </g>
 <!-- Node76 -->
 <g id="node85" class="node">
 <title>Node76</title>
 <g id="a_node85"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AutoScheduler\lLayoutTransformAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="453,-6930 453,-6960 626,-6960 626,-6930 453,-6930"/>
-<text text-anchor="start" x="461" y="-6948" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AutoScheduler</text>
-<text text-anchor="middle" x="539.5" y="-6937" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">LayoutTransformAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="453,-7079 453,-7109 626,-7109 626,-7079 453,-7079"/>
+<text text-anchor="start" x="461" y="-7097" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AutoScheduler</text>
+<text text-anchor="middle" x="539.5" y="-7086" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">LayoutTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node76 -->
 <g id="edge80" class="edge">
 <title>Node55&#45;&gt;Node76</title>
-<path fill="none" stroke="#191970" d="M372.5721,-6135.0875C385.3341,-6138.2932 397.3685,-6144.077 406,-6154 461.9202,-6218.2871 388.2001,-6853.9282 442,-6920 445.0895,-6923.7942 448.6695,-6927.0574 452.5958,-6929.8606"/>
-<polygon fill="#191970" stroke="#191970" points="373.2081,-6131.6455 362.7153,-6133.1128 371.833,-6138.5091 373.2081,-6131.6455"/>
+<path fill="none" stroke="#191970" d="M372.6184,-6169.0474C385.3775,-6172.2556 397.3989,-6178.0507 406,-6188 470.0717,-6262.1152 380.3727,-6992.8403 442,-7069 445.1878,-7072.9395 448.9045,-7076.3072 452.9894,-7079.1822"/>
+<polygon fill="#191970" stroke="#191970" points="373.2548,-6165.6054 362.7621,-6167.0723 371.8794,-6172.469 373.2548,-6165.6054"/>
 </g>
 <!-- Node78 -->
 <g id="node87" class="node">
 <title>Node78</title>
 <g id="a_node87"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AvgPool1\lDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466,-6881 466,-6911 613,-6911 613,-6881 466,-6881"/>
-<text text-anchor="start" x="474" y="-6899" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AvgPool1</text>
-<text text-anchor="middle" x="539.5" y="-6888" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="466,-7030 466,-7060 613,-7060 613,-7030 466,-7030"/>
+<text text-anchor="start" x="474" y="-7048" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AvgPool1</text>
+<text text-anchor="middle" x="539.5" y="-7037" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node78 -->
 <g id="edge82" class="edge">
 <title>Node55&#45;&gt;Node78</title>
-<path fill="none" stroke="#191970" d="M372.5479,-6135.1086C385.3115,-6138.3129 397.3526,-6144.0909 406,-6154 510.8952,-6274.2003 341.0695,-6747.4518 442,-6871 448.3016,-6878.7138 456.6307,-6884.2319 465.772,-6888.1497"/>
-<polygon fill="#191970" stroke="#191970" points="373.1836,-6131.6665 362.6909,-6133.1341 371.8087,-6138.5301 373.1836,-6131.6665"/>
+<path fill="none" stroke="#191970" d="M372.6002,-6169.0631C385.3604,-6172.2703 397.387,-6178.061 406,-6188 466.5982,-6257.9273 383.708,-6948.1389 442,-7020 448.2749,-7027.7355 456.5891,-7033.2658 465.7235,-7037.1892"/>
+<polygon fill="#191970" stroke="#191970" points="373.2365,-6165.6211 362.7437,-6167.0882 371.8612,-6172.4847 373.2365,-6165.6211"/>
 </g>
 <!-- Node80 -->
 <g id="node89" class="node">
 <title>Node80</title>
 <g id="a_node89"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AvgPool2\lDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466,-6832 466,-6862 613,-6862 613,-6832 466,-6832"/>
-<text text-anchor="start" x="474" y="-6850" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AvgPool2</text>
-<text text-anchor="middle" x="539.5" y="-6839" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="466,-6981 466,-7011 613,-7011 613,-6981 466,-6981"/>
+<text text-anchor="start" x="474" y="-6999" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AvgPool2</text>
+<text text-anchor="middle" x="539.5" y="-6988" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node80 -->
 <g id="edge84" class="edge">
 <title>Node55&#45;&gt;Node80</title>
-<path fill="none" stroke="#191970" d="M372.5203,-6135.1328C385.2856,-6138.3355 397.3344,-6144.1068 406,-6154 503.9508,-6265.8275 347.7379,-6707.046 442,-6822 448.3158,-6829.7022 456.6527,-6835.2139 465.7976,-6839.1287"/>
-<polygon fill="#191970" stroke="#191970" points="373.1557,-6131.6906 362.663,-6133.1585 371.7809,-6138.5543 373.1557,-6131.6906"/>
+<path fill="none" stroke="#191970" d="M372.5798,-6169.0808C385.3413,-6172.2869 397.3736,-6178.0727 406,-6188 463.1251,-6253.7398 387.0431,-6903.4371 442,-6971 448.2853,-6978.7271 456.6054,-6984.2526 465.7424,-6988.1738"/>
+<polygon fill="#191970" stroke="#191970" points="373.2158,-6165.6388 362.7231,-6167.1061 371.8407,-6172.5024 373.2158,-6165.6388"/>
 </g>
 <!-- Node82 -->
 <g id="node91" class="node">
 <title>Node82</title>
 <g id="a_node91"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; AvgPool3\lDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466,-6783 466,-6813 613,-6813 613,-6783 466,-6783"/>
-<text text-anchor="start" x="474" y="-6801" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AvgPool3</text>
-<text text-anchor="middle" x="539.5" y="-6790" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="466,-6932 466,-6962 613,-6962 613,-6932 466,-6932"/>
+<text text-anchor="start" x="474" y="-6950" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; AvgPool3</text>
+<text text-anchor="middle" x="539.5" y="-6939" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node82 -->
 <g id="edge86" class="edge">
 <title>Node55&#45;&gt;Node82</title>
-<path fill="none" stroke="#191970" d="M372.4883,-6135.1608C385.2557,-6138.3618 397.3134,-6144.1252 406,-6154 497.0077,-6257.456 354.4052,-6666.6389 442,-6773 448.3321,-6780.6887 456.6782,-6786.193 465.8273,-6790.1043"/>
-<polygon fill="#191970" stroke="#191970" points="373.1233,-6131.7186 362.6307,-6133.1868 371.7488,-6138.5823 373.1233,-6131.7186"/>
+<path fill="none" stroke="#191970" d="M372.5567,-6169.1009C385.3197,-6172.3058 397.3584,-6178.0859 406,-6188 459.6523,-6249.5527 390.3779,-6858.7349 442,-6922 448.2972,-6929.7174 456.6237,-6935.2376 465.7639,-6939.1563"/>
+<polygon fill="#191970" stroke="#191970" points="373.1925,-6165.6589 362.6998,-6167.1264 371.8175,-6172.5225 373.1925,-6165.6589"/>
 </g>
 <!-- Node84 -->
 <g id="node93" class="node">
 <title>Node84</title>
 <g id="a_node93"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BatchMatmul\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="456,-6734 456,-6764 623,-6764 623,-6734 456,-6734"/>
-<text text-anchor="start" x="464" y="-6752" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BatchMatmul</text>
-<text text-anchor="middle" x="539.5" y="-6741" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="456,-6883 456,-6913 623,-6913 623,-6883 456,-6883"/>
+<text text-anchor="start" x="464" y="-6901" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BatchMatmul</text>
+<text text-anchor="middle" x="539.5" y="-6890" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node84 -->
 <g id="edge88" class="edge">
 <title>Node55&#45;&gt;Node84</title>
-<path fill="none" stroke="#191970" d="M372.4509,-6135.1938C385.2207,-6138.3927 397.2888,-6144.1469 406,-6154 490.0659,-6249.0861 361.071,-6626.2301 442,-6724 445.8999,-6728.7115 450.5559,-6732.6019 455.6884,-6735.8078"/>
-<polygon fill="#191970" stroke="#191970" points="373.0856,-6131.7515 362.593,-6133.2201 371.7113,-6138.6152 373.0856,-6131.7515"/>
+<path fill="none" stroke="#191970" d="M372.5303,-6169.124C385.295,-6172.3273 397.341,-6178.101 406,-6188 506.36,-6302.7322 345.4245,-6755.0645 442,-6873 445.875,-6877.732 450.5128,-6881.6374 455.6326,-6884.8538"/>
+<polygon fill="#191970" stroke="#191970" points="373.1658,-6165.6818 362.6732,-6167.1496 371.791,-6172.5455 373.1658,-6165.6818"/>
 </g>
 <!-- Node86 -->
 <g id="node95" class="node">
 <title>Node86</title>
 <g id="a_node95"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BatchNorm\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="461,-6685 461,-6715 618,-6715 618,-6685 461,-6685"/>
-<text text-anchor="start" x="469" y="-6703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BatchNorm</text>
-<text text-anchor="middle" x="539.5" y="-6692" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="461,-6834 461,-6864 618,-6864 618,-6834 461,-6834"/>
+<text text-anchor="start" x="469" y="-6852" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BatchNorm</text>
+<text text-anchor="middle" x="539.5" y="-6841" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node86 -->
 <g id="edge90" class="edge">
 <title>Node55&#45;&gt;Node86</title>
-<path fill="none" stroke="#191970" d="M372.4067,-6135.233C385.1793,-6138.4294 397.2597,-6144.1727 406,-6154 483.126,-6240.7184 367.7351,-6585.8192 442,-6675 447.1439,-6681.177 453.5872,-6685.9414 460.6969,-6689.6013"/>
-<polygon fill="#191970" stroke="#191970" points="373.0408,-6131.7906 362.5483,-6133.2597 371.6668,-6138.6545 373.0408,-6131.7906"/>
+<path fill="none" stroke="#191970" d="M372.4999,-6169.1506C385.2666,-6172.3522 397.3211,-6178.1185 406,-6188 499.4164,-6294.3602 352.0922,-6714.6579 442,-6824 447.1053,-6830.2089 453.524,-6834.9937 460.6191,-6838.6656"/>
+<polygon fill="#191970" stroke="#191970" points="373.1351,-6165.7084 362.6425,-6167.1765 371.7605,-6172.5721 373.1351,-6165.7084"/>
 </g>
 <!-- Node88 -->
 <g id="node97" class="node">
 <title>Node88</title>
 <g id="a_node97"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BatchToSpace\lNDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="454.5,-6636 454.5,-6666 624.5,-6666 624.5,-6636 454.5,-6636"/>
-<text text-anchor="start" x="462.5" y="-6654" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BatchToSpace</text>
-<text text-anchor="middle" x="539.5" y="-6643" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NDAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="454.5,-6785 454.5,-6815 624.5,-6815 624.5,-6785 454.5,-6785"/>
+<text text-anchor="start" x="462.5" y="-6803" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BatchToSpace</text>
+<text text-anchor="middle" x="539.5" y="-6792" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NDAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node88 -->
 <g id="edge92" class="edge">
 <title>Node55&#45;&gt;Node88</title>
-<path fill="none" stroke="#191970" d="M372.5605,-6135.3326C385.2601,-6138.536 397.2722,-6144.2569 406,-6154 476.1886,-6232.3533 374.3968,-6545.4054 442,-6626 445.5937,-6630.2843 449.8123,-6633.8881 454.4436,-6636.9146"/>
-<polygon fill="#191970" stroke="#191970" points="373.2537,-6131.902 362.7581,-6133.3487 371.8651,-6138.7629 373.2537,-6131.902"/>
+<path fill="none" stroke="#191970" d="M372.4646,-6169.1817C385.2335,-6172.3814 397.2978,-6178.139 406,-6188 492.4741,-6285.9897 358.7586,-6674.2497 442,-6775 445.5617,-6779.3109 449.7564,-6782.9346 454.3702,-6785.9757"/>
+<polygon fill="#191970" stroke="#191970" points="373.0994,-6165.7394 362.6068,-6167.2079 371.725,-6172.6032 373.0994,-6165.7394"/>
 </g>
 <!-- Node90 -->
 <g id="node99" class="node">
 <title>Node90</title>
 <g id="a_node99"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BiasAddAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="451.5,-6597.5 451.5,-6616.5 627.5,-6616.5 627.5,-6597.5 451.5,-6597.5"/>
-<text text-anchor="middle" x="539.5" y="-6604.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BiasAddAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="451.5,-6746.5 451.5,-6765.5 627.5,-6765.5 627.5,-6746.5 451.5,-6746.5"/>
+<text text-anchor="middle" x="539.5" y="-6753.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BiasAddAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node90 -->
 <g id="edge94" class="edge">
 <title>Node55&#45;&gt;Node90</title>
-<path fill="none" stroke="#191970" d="M372.5098,-6135.3782C385.2127,-6138.5786 397.239,-6144.2867 406,-6154 470.6692,-6225.698 377.92,-6514.7749 442,-6587 445.6697,-6591.1362 449.9455,-6594.5508 454.6183,-6597.3597"/>
-<polygon fill="#191970" stroke="#191970" points="373.2023,-6131.9474 362.7068,-6133.3948 371.8142,-6138.8084 373.2023,-6131.9474"/>
+<path fill="none" stroke="#191970" d="M372.432,-6169.2105C385.203,-6172.4083 397.2764,-6178.1579 406,-6188 486.9498,-6279.3289 361.8007,-6644.0114 442,-6736 445.6337,-6740.1679 449.8824,-6743.6063 454.5356,-6746.4324"/>
+<polygon fill="#191970" stroke="#191970" points="373.0664,-6165.7682 362.5739,-6167.237 371.6923,-6172.632 373.0664,-6165.7682"/>
 </g>
 <!-- Node92 -->
 <g id="node101" class="node">
 <title>Node92</title>
 <g id="a_node101"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BinaryConv2\lDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="457.5,-6548 457.5,-6578 621.5,-6578 621.5,-6548 457.5,-6548"/>
-<text text-anchor="start" x="465.5" y="-6566" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BinaryConv2</text>
-<text text-anchor="middle" x="539.5" y="-6555" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="457.5,-6697 457.5,-6727 621.5,-6727 621.5,-6697 457.5,-6697"/>
+<text text-anchor="start" x="465.5" y="-6715" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BinaryConv2</text>
+<text text-anchor="middle" x="539.5" y="-6704" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node92 -->
 <g id="edge96" class="edge">
 <title>Node55&#45;&gt;Node92</title>
-<path fill="none" stroke="#191970" d="M372.4319,-6135.4488C385.1399,-6138.6446 397.188,-6144.333 406,-6154 463.7386,-6217.3406 386.352,-6472.8151 442,-6538 446.3115,-6543.0503 451.4912,-6547.1522 457.1865,-6550.4759"/>
-<polygon fill="#191970" stroke="#191970" points="373.1234,-6132.0179 362.628,-6133.4663 371.7359,-6138.879 373.1234,-6132.0179"/>
+<path fill="none" stroke="#191970" d="M372.384,-6169.2532C385.1581,-6172.4483 397.2449,-6178.186 406,-6188 480.0109,-6270.9622 370.7264,-6601.6746 442,-6687 446.257,-6692.0963 451.3985,-6696.2305 457.0681,-6699.5759"/>
+<polygon fill="#191970" stroke="#191970" points="373.0179,-6165.8107 362.5255,-6167.2801 371.6441,-6172.6746 373.0179,-6165.8107"/>
 </g>
 <!-- Node94 -->
 <g id="node103" class="node">
 <title>Node94</title>
 <g id="a_node103"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BinaryDense\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="457.5,-6499 457.5,-6529 621.5,-6529 621.5,-6499 457.5,-6499"/>
-<text text-anchor="start" x="465.5" y="-6517" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BinaryDense</text>
-<text text-anchor="middle" x="539.5" y="-6506" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="457.5,-6648 457.5,-6678 621.5,-6678 621.5,-6648 457.5,-6648"/>
+<text text-anchor="start" x="465.5" y="-6666" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BinaryDense</text>
+<text text-anchor="middle" x="539.5" y="-6655" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node94 -->
 <g id="edge98" class="edge">
 <title>Node55&#45;&gt;Node94</title>
-<path fill="none" stroke="#191970" d="M372.3319,-6135.5405C385.0465,-6138.7303 397.1226,-6144.393 406,-6154 507.6283,-6263.9799 344.0023,-6375.773 442,-6489 446.3456,-6494.021 451.5494,-6498.1022 457.2609,-6501.412"/>
-<polygon fill="#191970" stroke="#191970" points="373.0222,-6132.1093 362.527,-6133.559 371.6355,-6138.9706 373.0222,-6132.1093"/>
+<path fill="none" stroke="#191970" d="M372.533,-6169.3573C385.2343,-6172.5591 397.2541,-6178.2731 406,-6188 473.0748,-6262.5987 377.3869,-6561.2593 442,-6638 446.2769,-6643.0796 451.4324,-6647.2021 457.1114,-6650.5396"/>
+<polygon fill="#191970" stroke="#191970" points="373.2258,-6165.9266 362.7303,-6167.3737 371.8374,-6172.7876 373.2258,-6165.9266"/>
 </g>
 <!-- Node96 -->
 <g id="node105" class="node">
 <title>Node96</title>
 <g id="a_node105"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; BitPackAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="453,-6460.5 453,-6479.5 626,-6479.5 626,-6460.5 453,-6460.5"/>
-<text text-anchor="middle" x="539.5" y="-6467.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BitPackAttrs &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="453,-6609.5 453,-6628.5 626,-6628.5 626,-6609.5 453,-6609.5"/>
+<text text-anchor="middle" x="539.5" y="-6616.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; BitPackAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node96 -->
 <g id="edge100" class="edge">
 <title>Node55&#45;&gt;Node96</title>
-<path fill="none" stroke="#191970" d="M372.8088,-6135.7824C385.3179,-6138.9912 397.1915,-6144.6002 406,-6154 496.6187,-6250.7011 352.1761,-6352.5601 442,-6450 445.8649,-6454.1926 450.3536,-6457.6367 455.2409,-6460.4555"/>
-<polygon fill="#191970" stroke="#191970" points="373.1875,-6132.287 362.6869,-6133.697 371.7749,-6139.143 373.1875,-6132.287"/>
+<path fill="none" stroke="#191970" d="M372.4771,-6169.4078C385.1821,-6172.6062 397.2175,-6178.3061 406,-6188 467.5569,-6255.945 381.0015,-6530.5532 442,-6599 445.6789,-6603.1281 449.9614,-6606.5366 454.6393,-6609.341"/>
+<polygon fill="#191970" stroke="#191970" points="373.1692,-6165.9769 362.6737,-6167.4247 371.7813,-6172.838 373.1692,-6165.9769"/>
 </g>
 <!-- Node98 -->
 <g id="node107" class="node">
 <title>Node98</title>
-<g id="a_node107"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CallLowered\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="458.5,-6411 458.5,-6441 620.5,-6441 620.5,-6411 458.5,-6411"/>
-<text text-anchor="start" x="466.5" y="-6429" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CallLowered</text>
-<text text-anchor="middle" x="539.5" y="-6418" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node107"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Broadcast\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="464,-6560 464,-6590 615,-6590 615,-6560 464,-6560"/>
+<text text-anchor="start" x="472" y="-6578" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Broadcast</text>
+<text text-anchor="middle" x="539.5" y="-6567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node98 -->
 <g id="edge102" class="edge">
 <title>Node55&#45;&gt;Node98</title>
-<path fill="none" stroke="#191970" d="M372.6375,-6135.9448C385.1588,-6139.1421 397.0807,-6144.7053 406,-6154 482.8116,-6234.0446 367.8323,-6318.4996 442,-6401 446.6731,-6406.1981 452.2662,-6410.3822 458.3778,-6413.7422"/>
-<polygon fill="#191970" stroke="#191970" points="373.0132,-6132.4489 362.513,-6133.8619 371.6026,-6139.3053 373.0132,-6132.4489"/>
+<path fill="none" stroke="#191970" d="M372.3903,-6169.4869C385.101,-6172.6801 397.1607,-6178.3579 406,-6188 460.6287,-6247.5903 389.3382,-6488.6645 442,-6550 447.9194,-6556.8943 455.4568,-6562.0193 463.7108,-6565.8093"/>
+<polygon fill="#191970" stroke="#191970" points="373.0812,-6166.0558 362.5859,-6167.5047 371.694,-6172.917 373.0812,-6166.0558"/>
 </g>
 <!-- Node100 -->
 <g id="node109" class="node">
 <title>Node100</title>
-<g id="a_node109"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CastAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="460.5,-6372.5 460.5,-6391.5 618.5,-6391.5 618.5,-6372.5 460.5,-6372.5"/>
-<text text-anchor="middle" x="539.5" y="-6379.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CastAttrs &gt;</text>
+<g id="a_node109"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CallLowered\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="458.5,-6511 458.5,-6541 620.5,-6541 620.5,-6511 458.5,-6511"/>
+<text text-anchor="start" x="466.5" y="-6529" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CallLowered</text>
+<text text-anchor="middle" x="539.5" y="-6518" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node100 -->
 <g id="edge104" class="edge">
 <title>Node55&#45;&gt;Node100</title>
-<path fill="none" stroke="#191970" d="M372.6526,-6136.1823C385.1129,-6139.3742 397.0071,-6144.8751 406,-6154 471.855,-6220.8213 376.6943,-6294.6417 442,-6362 447.172,-6367.3346 453.3574,-6371.4414 460.0698,-6374.5823"/>
-<polygon fill="#191970" stroke="#191970" points="373.0856,-6132.6976 362.583,-6134.0923 371.663,-6139.5516 373.0856,-6132.6976"/>
+<path fill="none" stroke="#191970" d="M372.8562,-6169.7381C385.3619,-6172.9501 397.2221,-6178.5716 406,-6188 501.416,-6290.4875 349.9676,-6395.4636 442,-6501 446.594,-6506.2681 452.1328,-6510.5003 458.2089,-6513.8917"/>
+<polygon fill="#191970" stroke="#191970" points="373.2358,-6166.2428 362.7351,-6167.652 371.8226,-6173.0987 373.2358,-6166.2428"/>
 </g>
 <!-- Node102 -->
 <g id="node111" class="node">
 <title>Node102</title>
-<g id="a_node111"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CastHint\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="467.5,-6323 467.5,-6353 611.5,-6353 611.5,-6323 467.5,-6323"/>
-<text text-anchor="start" x="475.5" y="-6341" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CastHint</text>
-<text text-anchor="middle" x="539.5" y="-6330" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node111"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CastAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="460.5,-6472.5 460.5,-6491.5 618.5,-6491.5 618.5,-6472.5 460.5,-6472.5"/>
+<text text-anchor="middle" x="539.5" y="-6479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CastAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node102 -->
 <g id="edge106" class="edge">
 <title>Node55&#45;&gt;Node102</title>
-<path fill="none" stroke="#191970" d="M372.7054,-6136.6502C385.0438,-6139.8294 396.8774,-6145.2064 406,-6154 458.1655,-6204.2846 391.4975,-6261.0455 442,-6313 449.0645,-6320.2676 457.9326,-6325.5253 467.4244,-6329.3108"/>
-<polygon fill="#191970" stroke="#191970" points="373.2512,-6133.1884 362.7441,-6134.5485 371.806,-6140.0376 373.2512,-6133.1884"/>
+<path fill="none" stroke="#191970" d="M372.7391,-6169.848C385.2532,-6173.0522 397.1464,-6178.6427 406,-6188 490.4153,-6277.2181 358.318,-6372.0937 442,-6462 447.18,-6467.5653 453.4597,-6471.8084 460.3079,-6475.0193"/>
+<polygon fill="#191970" stroke="#191970" points="373.1166,-6166.3524 362.6162,-6167.7636 371.7048,-6173.2086 373.1166,-6166.3524"/>
 </g>
 <!-- Node104 -->
 <g id="node113" class="node">
 <title>Node104</title>
-<g id="a_node113"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ClipAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="462,-6284.5 462,-6303.5 617,-6303.5 617,-6284.5 462,-6284.5"/>
-<text text-anchor="middle" x="539.5" y="-6291.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ClipAttrs &gt;</text>
+<g id="a_node113"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CastHint\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="467.5,-6423 467.5,-6453 611.5,-6453 611.5,-6423 467.5,-6423"/>
+<text text-anchor="start" x="475.5" y="-6441" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CastHint</text>
+<text text-anchor="middle" x="539.5" y="-6430" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node104 -->
 <g id="edge108" class="edge">
 <title>Node55&#45;&gt;Node104</title>
-<path fill="none" stroke="#191970" d="M372.4463,-6137.2023C384.7475,-6140.3486 396.6327,-6145.5724 406,-6154 447.3943,-6191.2419 400.9121,-6236.4204 442,-6274 447.7378,-6279.2479 454.4711,-6283.2688 461.6726,-6286.3319"/>
-<polygon fill="#191970" stroke="#191970" points="373.0402,-6133.7506 362.532,-6135.103 371.59,-6140.5987 373.0402,-6133.7506"/>
+<path fill="none" stroke="#191970" d="M372.7431,-6170.0937C385.1967,-6173.2922 397.0653,-6178.8181 406,-6188 476.6263,-6260.5805 373.7716,-6338.1609 442,-6413 448.946,-6420.619 457.8692,-6426.0541 467.4892,-6429.9071"/>
+<polygon fill="#191970" stroke="#191970" points="373.1778,-6166.6094 362.6749,-6168.0023 371.754,-6173.4631 373.1778,-6166.6094"/>
 </g>
 <!-- Node106 -->
 <g id="node115" class="node">
 <title>Node106</title>
-<g id="a_node115"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Compiler\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466.5,-6235 466.5,-6265 612.5,-6265 612.5,-6235 466.5,-6235"/>
-<text text-anchor="start" x="474.5" y="-6253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Compiler</text>
-<text text-anchor="middle" x="539.5" y="-6242" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node115"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ClipAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="462,-6384.5 462,-6403.5 617,-6403.5 617,-6384.5 462,-6384.5"/>
+<text text-anchor="middle" x="539.5" y="-6391.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ClipAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node106 -->
 <g id="edge110" class="edge">
 <title>Node55&#45;&gt;Node106</title>
-<path fill="none" stroke="#191970" d="M372.7225,-6138.913C384.6311,-6141.9684 396.3,-6146.7214 406,-6154 434.2991,-6175.2348 414.4065,-6202.8561 442,-6225 449.2232,-6230.7967 457.6346,-6235.2647 466.4326,-6238.7058"/>
-<polygon fill="#191970" stroke="#191970" points="373.217,-6135.4387 362.7009,-6136.7276 371.7255,-6142.278 373.217,-6135.4387"/>
+<path fill="none" stroke="#191970" d="M372.7185,-6170.374C385.1146,-6173.5632 396.967,-6179.0142 406,-6188 465.6947,-6247.3828 382.7935,-6314.1304 442,-6374 447.5891,-6379.6517 454.3177,-6383.9181 461.5958,-6387.1145"/>
+<polygon fill="#191970" stroke="#191970" points="373.2091,-6166.9009 362.704,-6168.2769 371.7744,-6173.7523 373.2091,-6166.9009"/>
 </g>
 <!-- Node108 -->
 <g id="node117" class="node">
 <title>Node108</title>
-<g id="a_node117"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Concatenate\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="457.5,-6186 457.5,-6216 621.5,-6216 621.5,-6186 457.5,-6186"/>
-<text text-anchor="start" x="465.5" y="-6204" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Concatenate</text>
-<text text-anchor="middle" x="539.5" y="-6193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node117"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Compiler\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="466.5,-6335 466.5,-6365 612.5,-6365 612.5,-6335 466.5,-6335"/>
+<text text-anchor="start" x="474.5" y="-6353" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Compiler</text>
+<text text-anchor="middle" x="539.5" y="-6342" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node108 -->
 <g id="edge112" class="edge">
 <title>Node55&#45;&gt;Node108</title>
-<path fill="none" stroke="#191970" d="M372.5448,-6144.1818C383.9113,-6146.7211 395.4386,-6149.937 406,-6154 423.5008,-6160.7326 424.7274,-6168.7018 442,-6176 450.9337,-6179.7748 460.5764,-6183.0878 470.2008,-6185.962"/>
-<polygon fill="#191970" stroke="#191970" points="373.1288,-6140.7284 362.6258,-6142.1202 371.7043,-6147.582 373.1288,-6140.7284"/>
+<path fill="none" stroke="#191970" d="M372.4712,-6170.8973C384.8278,-6174.0574 396.7279,-6179.3641 406,-6188 452.069,-6230.9081 397.3509,-6280.6163 442,-6325 448.8163,-6331.7758 457.2041,-6336.794 466.1735,-6340.4972"/>
+<polygon fill="#191970" stroke="#191970" points="373.0115,-6167.4344 362.5051,-6168.8007 371.5703,-6174.2845 373.0115,-6167.4344"/>
 </g>
 <!-- Node110 -->
 <g id="node119" class="node">
 <title>Node110</title>
-<g id="a_node119"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv1DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="452,-6147.5 452,-6166.5 627,-6166.5 627,-6147.5 452,-6147.5"/>
-<text text-anchor="middle" x="539.5" y="-6154.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv1DAttrs &gt;</text>
+<g id="a_node119"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Concatenate\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="457.5,-6286 457.5,-6316 621.5,-6316 621.5,-6286 457.5,-6286"/>
+<text text-anchor="start" x="465.5" y="-6304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Concatenate</text>
+<text text-anchor="middle" x="539.5" y="-6293" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node110 -->
 <g id="edge114" class="edge">
 <title>Node55&#45;&gt;Node110</title>
-<path fill="none" stroke="#191970" d="M372.6549,-6141.3472C397.3548,-6143.6644 425.6545,-6146.3194 451.8461,-6148.7766"/>
-<polygon fill="#191970" stroke="#191970" points="372.9487,-6137.8594 362.6655,-6140.41 372.2948,-6144.8288 372.9487,-6137.8594"/>
+<path fill="none" stroke="#191970" d="M372.8028,-6172.1808C384.8101,-6175.2875 396.4944,-6180.2468 406,-6188 438.7459,-6214.7092 410.1401,-6248.2399 442,-6276 446.6113,-6280.0179 451.7841,-6283.4044 457.2788,-6286.2571"/>
+<polygon fill="#191970" stroke="#191970" points="373.196,-6168.6848 362.6814,-6169.9862 371.7127,-6175.5259 373.196,-6168.6848"/>
 </g>
 <!-- Node112 -->
 <g id="node121" class="node">
 <title>Node112</title>
-<g id="a_node121"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv1DTranspose\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="445,-6098 445,-6128 634,-6128 634,-6098 445,-6098"/>
-<text text-anchor="start" x="453" y="-6116" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv1DTranspose</text>
-<text text-anchor="middle" x="539.5" y="-6105" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node121"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv1DAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="452,-6247.5 452,-6266.5 627,-6266.5 627,-6247.5 452,-6247.5"/>
+<text text-anchor="middle" x="539.5" y="-6254.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv1DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node112 -->
 <g id="edge116" class="edge">
 <title>Node55&#45;&gt;Node112</title>
-<path fill="none" stroke="#191970" d="M372.738,-6128.645C395.1466,-6126.5427 420.5109,-6124.1632 444.5728,-6121.9058"/>
-<polygon fill="#191970" stroke="#191970" points="372.2948,-6125.1712 362.6655,-6129.59 372.9487,-6132.1406 372.2948,-6125.1712"/>
+<path fill="none" stroke="#191970" d="M372.4287,-6174.3945C384.2124,-6177.3255 395.9122,-6181.6536 406,-6188 428.8735,-6202.3901 419.2451,-6222.4231 442,-6237 448.7658,-6241.3342 456.2905,-6244.7537 464.0753,-6247.4479"/>
+<polygon fill="#191970" stroke="#191970" points="373.0593,-6170.95 362.5442,-6172.2475 371.5734,-6177.7904 373.0593,-6170.95"/>
 </g>
 <!-- Node114 -->
 <g id="node123" class="node">
 <title>Node114</title>
-<g id="a_node123"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="452,-6059.5 452,-6078.5 627,-6078.5 627,-6059.5 452,-6059.5"/>
-<text text-anchor="middle" x="539.5" y="-6066.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DAttrs &gt;</text>
+<g id="a_node123"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv1DTranspose\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="445,-6198 445,-6228 634,-6228 634,-6198 445,-6198"/>
+<text text-anchor="start" x="453" y="-6216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv1DTranspose</text>
+<text text-anchor="middle" x="539.5" y="-6205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node114 -->
 <g id="edge118" class="edge">
 <title>Node55&#45;&gt;Node114</title>
-<path fill="none" stroke="#191970" d="M338.9662,-6121.881C366.4457,-6111.6251 406.3039,-6097.5522 442,-6088 455.3275,-6084.4336 469.8467,-6081.2407 483.5114,-6078.5362"/>
-<polygon fill="#191970" stroke="#191970" points="337.5576,-6118.6714 329.4329,-6125.4713 340.0248,-6125.2222 337.5576,-6118.6714"/>
+<path fill="none" stroke="#191970" d="M366.08,-6180.4606C394.5138,-6185.7958 428.7182,-6192.2137 459.2085,-6197.9346"/>
+<polygon fill="#191970" stroke="#191970" points="366.357,-6176.9516 355.883,-6178.5473 365.066,-6183.8315 366.357,-6176.9516"/>
 </g>
 <!-- Node116 -->
 <g id="node125" class="node">
 <title>Node116</title>
-<g id="a_node125"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DTranspose\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="445,-6010 445,-6040 634,-6040 634,-6010 445,-6010"/>
-<text text-anchor="start" x="453" y="-6028" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DTranspose</text>
-<text text-anchor="middle" x="539.5" y="-6017" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node125"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="452,-6159.5 452,-6178.5 627,-6178.5 627,-6159.5 452,-6159.5"/>
+<text text-anchor="middle" x="539.5" y="-6166.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node116 -->
 <g id="edge120" class="edge">
 <title>Node55&#45;&gt;Node116</title>
-<path fill="none" stroke="#191970" d="M325.7855,-6119.273C351.7149,-6100.342 398.0105,-6068.7624 442,-6050 450.8405,-6046.2293 460.3828,-6042.9249 469.9172,-6040.0605"/>
-<polygon fill="#191970" stroke="#191970" points="323.4597,-6116.6398 317.5005,-6125.3999 327.6219,-6122.268 323.4597,-6116.6398"/>
+<path fill="none" stroke="#191970" d="M372.9844,-6169C397.6063,-6169 425.771,-6169 451.8461,-6169"/>
+<polygon fill="#191970" stroke="#191970" points="372.6655,-6165.5001 362.6655,-6169 372.6655,-6172.5001 372.6655,-6165.5001"/>
 </g>
 <!-- Node118 -->
 <g id="node127" class="node">
 <title>Node118</title>
-<g id="a_node127"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DWinograd\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="446,-5961 446,-5991 633,-5991 633,-5961 446,-5961"/>
-<text text-anchor="start" x="454" y="-5979" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DWinograd</text>
-<text text-anchor="middle" x="539.5" y="-5968" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node127"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DTranspose\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="445,-6110 445,-6140 634,-6140 634,-6110 445,-6110"/>
+<text text-anchor="start" x="453" y="-6128" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DTranspose</text>
+<text text-anchor="middle" x="539.5" y="-6117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node118 -->
 <g id="edge122" class="edge">
 <title>Node55&#45;&gt;Node118</title>
-<path fill="none" stroke="#191970" d="M317.7238,-6117.3589C339.6771,-6088.2638 387.585,-6030.4161 442,-6000 448.1627,-5996.5553 454.8157,-5993.5998 461.6497,-5991.065"/>
-<polygon fill="#191970" stroke="#191970" points="314.905,-6115.2841 311.7654,-6125.4031 320.53,-6119.4505 314.905,-6115.2841"/>
+<path fill="none" stroke="#191970" d="M366.08,-6157.5394C394.5138,-6152.2042 428.7182,-6145.7863 459.2085,-6140.0654"/>
+<polygon fill="#191970" stroke="#191970" points="365.066,-6154.1685 355.883,-6159.4527 366.357,-6161.0484 365.066,-6154.1685"/>
 </g>
 <!-- Node120 -->
 <g id="node129" class="node">
 <title>Node120</title>
-<g id="a_node129"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DWinograd\lNNPACKWeightTransformAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="446,-5912 446,-5942 633,-5942 633,-5912 446,-5912"/>
-<text text-anchor="start" x="454" y="-5930" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DWinograd</text>
-<text text-anchor="middle" x="539.5" y="-5919" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NNPACKWeightTransformAttrs &gt;</text>
+<g id="a_node129"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DWinograd\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="446,-6061 446,-6091 633,-6091 633,-6061 446,-6061"/>
+<text text-anchor="start" x="454" y="-6079" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DWinograd</text>
+<text text-anchor="middle" x="539.5" y="-6068" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node120 -->
 <g id="edge124" class="edge">
 <title>Node55&#45;&gt;Node120</title>
-<path fill="none" stroke="#191970" d="M313.6927,-6115.7766C331.8186,-6077.9667 377.3993,-5993.8869 442,-5951 447.2284,-5947.529 452.9144,-5944.5596 458.8259,-5942.0194"/>
-<polygon fill="#191970" stroke="#191970" points="310.3793,-6114.6001 309.3154,-6125.1413 316.7207,-6117.5643 310.3793,-6114.6001"/>
+<path fill="none" stroke="#191970" d="M329.6385,-6154.4518C356.4938,-6139.1101 401.1077,-6115.1106 442,-6100 450.9934,-6096.6767 460.6229,-6093.6736 470.2,-6091.0065"/>
+<polygon fill="#191970" stroke="#191970" points="327.8253,-6151.4572 320.9153,-6159.4885 331.3255,-6157.5192 327.8253,-6151.4572"/>
 </g>
 <!-- Node122 -->
 <g id="node131" class="node">
 <title>Node122</title>
-<g id="a_node131"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="452,-5873.5 452,-5892.5 627,-5892.5 627,-5873.5 452,-5873.5"/>
-<text text-anchor="middle" x="539.5" y="-5880.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv3DAttrs &gt;</text>
+<g id="a_node131"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv2DWinograd\lNNPACKWeightTransformAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="446,-6012 446,-6042 633,-6042 633,-6012 446,-6012"/>
+<text text-anchor="start" x="454" y="-6030" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv2DWinograd</text>
+<text text-anchor="middle" x="539.5" y="-6019" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NNPACKWeightTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node122 -->
 <g id="edge126" class="edge">
 <title>Node55&#45;&gt;Node122</title>
-<path fill="none" stroke="#191970" d="M310.511,-6115.1709C324.3021,-6069.4914 364.857,-5956.5924 442,-5902 447.3493,-5898.2144 453.2588,-5895.1341 459.4444,-5892.6329"/>
-<polygon fill="#191970" stroke="#191970" points="307.0759,-6114.4489 307.64,-6125.0287 313.7967,-6116.4063 307.0759,-6114.4489"/>
+<path fill="none" stroke="#191970" d="M319.8907,-6151.8024C343.2575,-6125.9275 391.1482,-6077.2283 442,-6051 448.662,-6047.5639 455.8368,-6044.605 463.1641,-6042.0599"/>
+<polygon fill="#191970" stroke="#191970" points="317.2165,-6149.5427 313.1931,-6159.3439 322.4504,-6154.1909 317.2165,-6149.5427"/>
 </g>
 <!-- Node124 -->
 <g id="node133" class="node">
 <title>Node124</title>
-<g id="a_node133"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DTranspose\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="445,-5824 445,-5854 634,-5854 634,-5824 445,-5824"/>
-<text text-anchor="start" x="453" y="-5842" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv3DTranspose</text>
-<text text-anchor="middle" x="539.5" y="-5831" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node133"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="452,-5973.5 452,-5992.5 627,-5992.5 627,-5973.5 452,-5973.5"/>
+<text text-anchor="middle" x="539.5" y="-5980.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node124 -->
 <g id="edge128" class="edge">
 <title>Node55&#45;&gt;Node124</title>
-<path fill="none" stroke="#191970" d="M309.0375,-6115.4169C320.4143,-6065.3488 357.5628,-5931.8446 442,-5864 446.7678,-5860.1691 452.0543,-5856.9185 457.6287,-5854.161"/>
-<polygon fill="#191970" stroke="#191970" points="305.5976,-6114.7649 306.8892,-6125.2807 312.4372,-6116.2546 305.5976,-6114.7649"/>
+<path fill="none" stroke="#191970" d="M314.801,-6149.8491C334.0038,-6114.4222 380.16,-6038.9102 442,-6002 448.5157,-5998.111 455.6718,-5994.9976 463.0558,-5992.508"/>
+<polygon fill="#191970" stroke="#191970" points="311.4935,-6148.6166 309.913,-6159.0929 317.6817,-6151.8888 311.4935,-6148.6166"/>
 </g>
 <!-- Node126 -->
 <g id="node135" class="node">
 <title>Node126</title>
-<g id="a_node135"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DWinograd\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="446,-5775 446,-5805 633,-5805 633,-5775 446,-5775"/>
-<text text-anchor="start" x="454" y="-5793" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv3DWinograd</text>
-<text text-anchor="middle" x="539.5" y="-5782" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node135"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DTranspose\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="445,-5924 445,-5954 634,-5954 634,-5924 445,-5924"/>
+<text text-anchor="start" x="453" y="-5942" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv3DTranspose</text>
+<text text-anchor="middle" x="539.5" y="-5931" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node126 -->
 <g id="edge130" class="edge">
 <title>Node55&#45;&gt;Node126</title>
-<path fill="none" stroke="#191970" d="M307.3368,-6115.2617C315.091,-6058.9373 345.2404,-5896.2271 442,-5814 445.9851,-5810.6134 450.3751,-5807.691 455.0205,-5805.1704"/>
-<polygon fill="#191970" stroke="#191970" points="303.8467,-6114.9614 306.0386,-6125.327 310.7892,-6115.8569 303.8467,-6114.9614"/>
+<path fill="none" stroke="#191970" d="M312.1901,-6149.9184C328.5817,-6109.1046 372.7403,-6013.063 442,-5964 447.4186,-5960.1615 453.3768,-5956.9118 459.595,-5954.1605"/>
+<polygon fill="#191970" stroke="#191970" points="308.8399,-6148.8758 308.4629,-6159.464 315.3605,-6151.422 308.8399,-6148.8758"/>
 </g>
 <!-- Node128 -->
 <g id="node137" class="node">
 <title>Node128</title>
-<g id="a_node137"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ConvGemm\lWeightTransformAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="459.5,-5726 459.5,-5756 619.5,-5756 619.5,-5726 459.5,-5726"/>
-<text text-anchor="start" x="467.5" y="-5744" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ConvGemm</text>
-<text text-anchor="middle" x="539.5" y="-5733" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">WeightTransformAttrs &gt;</text>
+<g id="a_node137"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Conv3DWinograd\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="446,-5875 446,-5905 633,-5905 633,-5875 446,-5875"/>
+<text text-anchor="start" x="454" y="-5893" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Conv3DWinograd</text>
+<text text-anchor="middle" x="539.5" y="-5882" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node128 -->
 <g id="edge132" class="edge">
 <title>Node55&#45;&gt;Node128</title>
-<path fill="none" stroke="#191970" d="M306.1003,-6115.203C310.6457,-6053.3471 333.2822,-5862.0523 442,-5765 447.0717,-5760.4725 452.861,-5756.7674 459.0315,-5753.7393"/>
-<polygon fill="#191970" stroke="#191970" points="302.607,-6114.9871 305.4455,-6125.1947 309.5921,-6115.445 302.607,-6114.9871"/>
+<path fill="none" stroke="#191970" d="M309.6145,-6149.5584C322.0514,-6101.5734 360.9418,-5976.8542 442,-5914 446.4083,-5910.5817 451.238,-5907.643 456.3148,-5905.1173"/>
+<polygon fill="#191970" stroke="#191970" points="306.2065,-6148.7596 307.1823,-6159.3095 312.9985,-6150.4538 306.2065,-6148.7596"/>
 </g>
 <!-- Node130 -->
 <g id="node139" class="node">
 <title>Node130</title>
-<g id="a_node139"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ConvWinograd\lWeightTransformAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="453,-5677 453,-5707 626,-5707 626,-5677 453,-5677"/>
-<text text-anchor="start" x="461" y="-5695" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ConvWinograd</text>
-<text text-anchor="middle" x="539.5" y="-5684" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">WeightTransformAttrs &gt;</text>
+<g id="a_node139"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ConvGemm\lWeightTransformAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="459.5,-5826 459.5,-5856 619.5,-5856 619.5,-5826 459.5,-5826"/>
+<text text-anchor="start" x="467.5" y="-5844" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ConvGemm</text>
+<text text-anchor="middle" x="539.5" y="-5833" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">WeightTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node130 -->
 <g id="edge134" class="edge">
 <title>Node55&#45;&gt;Node130</title>
-<path fill="none" stroke="#191970" d="M308.8582,-6115.0982C323.8565,-6039.7094 380.5031,-5773.069 442,-5716 445.7056,-5712.5612 449.8229,-5709.5935 454.2109,-5707.0343"/>
-<polygon fill="#191970" stroke="#191970" points="305.3785,-6114.6546 306.8827,-6125.1422 312.2469,-6116.0057 305.3785,-6114.6546"/>
+<path fill="none" stroke="#191970" d="M307.8593,-6149.222C316.8,-6094.8625 349.3851,-5942.1222 442,-5865 447.2244,-5860.6495 453.1199,-5857.0676 459.3606,-5854.121"/>
+<polygon fill="#191970" stroke="#191970" points="304.3757,-6148.8467 306.2973,-6159.2658 311.2926,-6149.9225 304.3757,-6148.8467"/>
 </g>
 <!-- Node132 -->
 <g id="node141" class="node">
 <title>Node132</title>
-<g id="a_node141"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Correlation\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="461.5,-5628 461.5,-5658 617.5,-5658 617.5,-5628 461.5,-5628"/>
-<text text-anchor="start" x="469.5" y="-5646" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Correlation</text>
-<text text-anchor="middle" x="539.5" y="-5635" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node141"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ConvWinograd\lWeightTransformAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="453,-5777 453,-5807 626,-5807 626,-5777 453,-5777"/>
+<text text-anchor="start" x="461" y="-5795" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ConvWinograd</text>
+<text text-anchor="middle" x="539.5" y="-5784" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">WeightTransformAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node132 -->
 <g id="edge136" class="edge">
 <title>Node55&#45;&gt;Node132</title>
-<path fill="none" stroke="#191970" d="M308.1707,-6114.9141C321.3641,-6033.8113 374.3921,-5731.7341 442,-5667 447.5401,-5661.6953 454.0561,-5657.5052 461.0488,-5654.2031"/>
-<polygon fill="#191970" stroke="#191970" points="304.6453,-6114.7939 306.5162,-6125.2222 311.5569,-6115.9033 304.6453,-6114.7939"/>
+<path fill="none" stroke="#191970" d="M306.4847,-6149.3239C312.0973,-6089.4455 337.3895,-5907.9306 442,-5816 445.9284,-5812.5478 450.275,-5809.5751 454.8879,-5807.017"/>
+<polygon fill="#191970" stroke="#191970" points="302.994,-6149.067 305.6288,-6159.329 309.9685,-6149.6638 302.994,-6149.067"/>
 </g>
 <!-- Node134 -->
 <g id="node143" class="node">
 <title>Node134</title>
-<g id="a_node143"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CropAndResize\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="452,-5579 452,-5609 627,-5609 627,-5579 452,-5579"/>
-<text text-anchor="start" x="460" y="-5597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CropAndResize</text>
-<text text-anchor="middle" x="539.5" y="-5586" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node143"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Correlation\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="461.5,-5728 461.5,-5758 617.5,-5758 617.5,-5728 461.5,-5728"/>
+<text text-anchor="start" x="469.5" y="-5746" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Correlation</text>
+<text text-anchor="middle" x="539.5" y="-5735" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node134 -->
 <g id="edge138" class="edge">
 <title>Node55&#45;&gt;Node134</title>
-<path fill="none" stroke="#191970" d="M307.5244,-6115.3348C318.8983,-6029.7335 368.0676,-5690.6366 442,-5618 445.4818,-5614.5792 449.3684,-5611.6196 453.5294,-5609.0612"/>
-<polygon fill="#191970" stroke="#191970" points="304.0238,-6115.112 306.1968,-6125.4816 310.9646,-6116.0202 304.0238,-6115.112"/>
+<path fill="none" stroke="#191970" d="M309.1738,-6148.9714C324.894,-6075.3795 382.6632,-5821.3815 442,-5767 447.6547,-5761.8176 454.2458,-5757.7076 461.2844,-5754.4546"/>
+<polygon fill="#191970" stroke="#191970" points="305.6607,-6148.6678 307.018,-6159.1753 312.5095,-6150.1148 305.6607,-6148.6678"/>
 </g>
 <!-- Node136 -->
 <g id="node145" class="node">
 <title>Node136</title>
-<g id="a_node145"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DebugAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="455.5,-5540.5 455.5,-5559.5 623.5,-5559.5 623.5,-5540.5 455.5,-5540.5"/>
-<text text-anchor="middle" x="539.5" y="-5547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DebugAttrs &gt;</text>
+<g id="a_node145"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; CropAndResize\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="452,-5679 452,-5709 627,-5709 627,-5679 452,-5679"/>
+<text text-anchor="start" x="460" y="-5697" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; CropAndResize</text>
+<text text-anchor="middle" x="539.5" y="-5686" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node136 -->
 <g id="edge140" class="edge">
 <title>Node55&#45;&gt;Node136</title>
-<path fill="none" stroke="#191970" d="M306.9382,-6115.4261C316.3049,-6024.8597 359.8275,-5647.5537 442,-5569 445.9891,-5565.1866 450.5043,-5562.0297 455.3518,-5559.4247"/>
-<polygon fill="#191970" stroke="#191970" points="303.4509,-6115.125 305.9235,-6125.4272 310.4151,-6115.8316 303.4509,-6115.125"/>
+<path fill="none" stroke="#191970" d="M308.3675,-6149.1273C322.1281,-6070.1938 376.4761,-5780.1054 442,-5718 445.5426,-5714.6422 449.4766,-5711.7318 453.6741,-5709.2112"/>
+<polygon fill="#191970" stroke="#191970" points="304.8828,-6148.7399 306.6352,-6159.1888 311.7813,-6149.9277 304.8828,-6148.7399"/>
 </g>
 <!-- Node138 -->
 <g id="node147" class="node">
 <title>Node138</title>
-<g id="a_node147"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Deformable\lConv2DAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="459.5,-5491 459.5,-5521 619.5,-5521 619.5,-5491 459.5,-5491"/>
-<text text-anchor="start" x="467.5" y="-5509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Deformable</text>
-<text text-anchor="middle" x="539.5" y="-5498" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Conv2DAttrs &gt;</text>
+<g id="a_node147"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DebugAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="455.5,-5640.5 455.5,-5659.5 623.5,-5659.5 623.5,-5640.5 455.5,-5640.5"/>
+<text text-anchor="middle" x="539.5" y="-5647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DebugAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node138 -->
 <g id="edge142" class="edge">
 <title>Node55&#45;&gt;Node138</title>
-<path fill="none" stroke="#191970" d="M306.7609,-6115.1379C315.5269,-6020.6861 357.4471,-5617.9503 442,-5531 446.9948,-5525.8635 452.8907,-5521.7311 459.2707,-5518.4128"/>
-<polygon fill="#191970" stroke="#191970" points="303.2566,-6115.0262 305.8363,-6125.3021 310.2279,-6115.6603 303.2566,-6115.0262"/>
+<path fill="none" stroke="#191970" d="M307.6122,-6149.3492C319.182,-6065.2934 368.507,-5737.1795 442,-5669 446.0457,-5665.2468 450.6034,-5662.135 455.482,-5659.5629"/>
+<polygon fill="#191970" stroke="#191970" points="304.1323,-6148.9647 306.2574,-6159.3443 311.0689,-6149.905 304.1323,-6148.9647"/>
 </g>
 <!-- Node140 -->
 <g id="node149" class="node">
 <title>Node140</title>
-<g id="a_node149"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DenseAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="456,-5452.5 456,-5471.5 623,-5471.5 623,-5452.5 456,-5452.5"/>
-<text text-anchor="middle" x="539.5" y="-5459.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DenseAttrs &gt;</text>
+<g id="a_node149"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Deformable\lConv2DAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="459.5,-5591 459.5,-5621 619.5,-5621 619.5,-5591 459.5,-5591"/>
+<text text-anchor="start" x="467.5" y="-5609" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Deformable</text>
+<text text-anchor="middle" x="539.5" y="-5598" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Conv2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node140 -->
 <g id="edge144" class="edge">
 <title>Node55&#45;&gt;Node140</title>
-<path fill="none" stroke="#191970" d="M306.2655,-6115.2982C313.0363,-6016.2114 348.2415,-5573.4518 442,-5481 446.0523,-5477.0042 450.68,-5473.7228 455.6674,-5471.0381"/>
-<polygon fill="#191970" stroke="#191970" points="302.7645,-6115.1982 305.5931,-6125.4085 309.7491,-6115.6628 302.7645,-6115.1982"/>
+<path fill="none" stroke="#191970" d="M307.3557,-6149.1049C318.1722,-6061.0393 365.8352,-5707.291 442,-5631 447.062,-5625.9297 453.0034,-5621.8422 459.4127,-5618.5527"/>
+<polygon fill="#191970" stroke="#191970" points="303.8719,-6148.7605 306.1464,-6159.1083 310.8213,-6149.6006 303.8719,-6148.7605"/>
 </g>
 <!-- Node142 -->
 <g id="node151" class="node">
 <title>Node142</title>
-<g id="a_node151"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DensePack\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="462,-5403 462,-5433 617,-5433 617,-5403 462,-5403"/>
-<text text-anchor="start" x="470" y="-5421" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DensePack</text>
-<text text-anchor="middle" x="539.5" y="-5410" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node151"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DenseAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="456,-5552.5 456,-5571.5 623,-5571.5 623,-5552.5 456,-5552.5"/>
+<text text-anchor="middle" x="539.5" y="-5559.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DenseAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node142 -->
 <g id="edge146" class="edge">
 <title>Node55&#45;&gt;Node142</title>
-<path fill="none" stroke="#191970" d="M306.1377,-6115.2452C312.4239,-6012.9526 346.1724,-5544.3047 442,-5443 447.644,-5437.0334 454.502,-5432.415 461.938,-5428.8509"/>
-<polygon fill="#191970" stroke="#191970" points="302.6339,-6115.2068 305.5313,-6125.3977 309.6214,-6115.6242 302.6339,-6115.2068"/>
+<path fill="none" stroke="#191970" d="M306.793,-6148.9604C315.5712,-6055.4252 357.0706,-5662.8888 442,-5581 446.0968,-5577.0499 450.7576,-5573.8024 455.7688,-5571.1421"/>
+<polygon fill="#191970" stroke="#191970" points="303.2948,-6148.7811 305.8646,-6159.0595 310.2654,-6149.4219 303.2948,-6148.7811"/>
 </g>
 <!-- Node144 -->
 <g id="node153" class="node">
 <title>Node144</title>
-<g id="a_node153"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dequantize\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="460.5,-5354 460.5,-5384 618.5,-5384 618.5,-5354 460.5,-5354"/>
-<text text-anchor="start" x="468.5" y="-5372" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Dequantize</text>
-<text text-anchor="middle" x="539.5" y="-5361" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node153"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DensePack\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="462,-5503 462,-5533 617,-5533 617,-5503 462,-5503"/>
+<text text-anchor="start" x="470" y="-5521" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DensePack</text>
+<text text-anchor="middle" x="539.5" y="-5510" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node144 -->
 <g id="edge148" class="edge">
 <title>Node55&#45;&gt;Node144</title>
-<path fill="none" stroke="#191970" d="M305.8378,-6115.1585C310.7521,-6008.2866 339.2515,-5501.9723 442,-5393 447.262,-5387.4193 453.5954,-5383.048 460.4765,-5379.6352"/>
-<polygon fill="#191970" stroke="#191970" points="302.3386,-6115.0661 305.3921,-6125.2114 309.3317,-6115.3762 302.3386,-6115.0661"/>
+<path fill="none" stroke="#191970" d="M306.5742,-6149.3364C314.6607,-6053.1945 354.5835,-5633.5807 442,-5543 447.582,-5537.2159 454.3061,-5532.7033 461.5815,-5529.1919"/>
+<polygon fill="#191970" stroke="#191970" points="303.077,-6149.1602 305.7448,-6159.4136 310.0534,-6149.7344 303.077,-6149.1602"/>
 </g>
 <!-- Node146 -->
 <g id="node155" class="node">
 <title>Node146</title>
-<g id="a_node155"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DeviceCopy\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="459,-5305 459,-5335 620,-5335 620,-5305 459,-5305"/>
-<text text-anchor="start" x="467" y="-5323" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DeviceCopy</text>
-<text text-anchor="middle" x="539.5" y="-5312" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node155"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dequantize\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="460.5,-5454 460.5,-5484 618.5,-5484 618.5,-5454 460.5,-5454"/>
+<text text-anchor="start" x="468.5" y="-5472" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Dequantize</text>
+<text text-anchor="middle" x="539.5" y="-5461" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node146 -->
 <g id="edge150" class="edge">
 <title>Node55&#45;&gt;Node146</title>
-<path fill="none" stroke="#191970" d="M305.588,-6115.2665C309.2893,-6004.5158 332.8731,-5461.0296 442,-5344 446.7554,-5338.9002 452.4051,-5334.8082 458.5536,-5331.5334"/>
-<polygon fill="#191970" stroke="#191970" points="302.0867,-6115.2544 305.2668,-6125.3607 309.0832,-6115.4771 302.0867,-6115.2544"/>
+<path fill="none" stroke="#191970" d="M306.2321,-6149.0416C312.8881,-6047.7111 347.8046,-5591.1782 442,-5493 447.1896,-5487.591 453.3866,-5483.322 460.1062,-5479.9626"/>
+<polygon fill="#191970" stroke="#191970" points="302.7321,-6148.9307 305.5867,-6159.1337 309.7178,-6149.3775 302.7321,-6148.9307"/>
 </g>
 <!-- Node148 -->
 <g id="node157" class="node">
 <title>Node148</title>
-<g id="a_node157"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DilateAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="456.5,-5266.5 456.5,-5285.5 622.5,-5285.5 622.5,-5266.5 456.5,-5266.5"/>
-<text text-anchor="middle" x="539.5" y="-5273.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DilateAttrs &gt;</text>
+<g id="a_node157"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DeviceCopy\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="459,-5405 459,-5435 620,-5435 620,-5405 459,-5405"/>
+<text text-anchor="start" x="467" y="-5423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DeviceCopy</text>
+<text text-anchor="middle" x="539.5" y="-5412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node148 -->
 <g id="edge152" class="edge">
 <title>Node55&#45;&gt;Node148</title>
-<path fill="none" stroke="#191970" d="M305.2827,-6115.0549C307.3392,-5999.5337 323.5347,-5417.1699 442,-5295 446.2018,-5290.6668 451.0772,-5287.1632 456.3634,-5284.3436"/>
-<polygon fill="#191970" stroke="#191970" points="301.7798,-6115.2123 305.1173,-6125.2677 308.7789,-6115.3257 301.7798,-6115.2123"/>
+<path fill="none" stroke="#191970" d="M305.9241,-6149.2904C311.2515,-6044.1614 341.4064,-5550.2408 442,-5444 446.7942,-5438.9367 452.4706,-5434.8697 458.6364,-5431.6113"/>
+<polygon fill="#191970" stroke="#191970" points="302.4208,-6149.2742 305.4273,-6159.4335 309.4125,-6149.6167 302.4208,-6149.2742"/>
 </g>
 <!-- Node150 -->
 <g id="node159" class="node">
 <title>Node150</title>
-<g id="a_node159"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dilation2\lDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="466.5,-5217 466.5,-5247 612.5,-5247 612.5,-5217 466.5,-5217"/>
-<text text-anchor="start" x="474.5" y="-5235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Dilation2</text>
-<text text-anchor="middle" x="539.5" y="-5224" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
+<g id="a_node159"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DilateAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="456.5,-5366.5 456.5,-5385.5 622.5,-5385.5 622.5,-5366.5 456.5,-5366.5"/>
+<text text-anchor="middle" x="539.5" y="-5373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DilateAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node150 -->
 <g id="edge154" class="edge">
 <title>Node55&#45;&gt;Node150</title>
-<path fill="none" stroke="#191970" d="M305.2358,-6115.375C307.0469,-5997.9474 322.1781,-5388.9429 442,-5257 448.6963,-5249.6263 457.2444,-5244.2968 466.4875,-5240.4667"/>
-<polygon fill="#191970" stroke="#191970" points="301.7354,-6115.387 305.0958,-6125.4348 308.7347,-6115.4845 301.7354,-6115.387"/>
+<path fill="none" stroke="#191970" d="M305.5771,-6149.2574C309.1937,-6039.6257 332.2893,-5506.6222 442,-5395 446.231,-5390.6953 451.1276,-5387.2124 456.4287,-5384.4073"/>
+<polygon fill="#191970" stroke="#191970" points="302.0784,-6149.1639 305.2633,-6159.2686 309.0749,-6149.3832 302.0784,-6149.1639"/>
 </g>
 <!-- Node152 -->
 <g id="node161" class="node">
 <title>Node152</title>
-<g id="a_node161"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DropoutAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="451.5,-5178.5 451.5,-5197.5 627.5,-5197.5 627.5,-5178.5 451.5,-5178.5"/>
-<text text-anchor="middle" x="539.5" y="-5185.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DropoutAttrs &gt;</text>
+<g id="a_node161"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Dilation2\lDAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="466.5,-5317 466.5,-5347 612.5,-5347 612.5,-5317 466.5,-5317"/>
+<text text-anchor="start" x="474.5" y="-5335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Dilation2</text>
+<text text-anchor="middle" x="539.5" y="-5324" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node152 -->
 <g id="edge156" class="edge">
 <title>Node55&#45;&gt;Node152</title>
-<path fill="none" stroke="#191970" d="M306.5673,-6115.0968C316.874,-5986.4438 376.5521,-5275.5224 442,-5207 445.5734,-5203.2587 449.6483,-5200.1334 454.058,-5197.531"/>
-<polygon fill="#191970" stroke="#191970" points="303.0513,-6115.1602 305.7477,-6125.4062 310.0292,-6115.715 303.0513,-6115.1602"/>
+<path fill="none" stroke="#191970" d="M305.5147,-6149.1214C308.837,-6036.3667 330.7854,-5477.9548 442,-5357 448.6235,-5349.7964 457.0147,-5344.5481 466.0834,-5340.7444"/>
+<polygon fill="#191970" stroke="#191970" points="302.0089,-6149.2851 305.2288,-6159.3787 309.0061,-6149.4802 302.0089,-6149.2851"/>
 </g>
 <!-- Node154 -->
 <g id="node163" class="node">
 <title>Node154</title>
-<g id="a_node163"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DynExpand\lDimsAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="460.5,-5129 460.5,-5159 618.5,-5159 618.5,-5129 460.5,-5129"/>
-<text text-anchor="start" x="468.5" y="-5147" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DynExpand</text>
-<text text-anchor="middle" x="539.5" y="-5136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DimsAttrs &gt;</text>
+<g id="a_node163"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DropoutAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="451.5,-5278.5 451.5,-5297.5 627.5,-5297.5 627.5,-5278.5 451.5,-5278.5"/>
+<text text-anchor="middle" x="539.5" y="-5285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DropoutAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node154 -->
 <g id="edge158" class="edge">
 <title>Node55&#45;&gt;Node154</title>
-<path fill="none" stroke="#191970" d="M306.4974,-6115.1475C316.5757,-5983.7702 376.117,-5242.5691 442,-5169 447.1294,-5163.2722 453.3758,-5158.7748 460.2038,-5155.2541"/>
-<polygon fill="#191970" stroke="#191970" points="302.9906,-6115.1043 305.7212,-6125.3412 309.9704,-6115.6358 302.9906,-6115.1043"/>
+<path fill="none" stroke="#191970" d="M305.1896,-6149.264C306.727,-6032.483 320.5161,-5432.7926 442,-5307 445.594,-5303.2785 449.6847,-5300.1683 454.1062,-5297.5772"/>
+<polygon fill="#191970" stroke="#191970" points="301.6897,-6149.2486 305.0733,-6159.2885 308.6892,-6149.3299 301.6897,-6149.2486"/>
 </g>
 <!-- Node156 -->
 <g id="node165" class="node">
 <title>Node156</title>
-<g id="a_node165"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; EinsumAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="453,-5090.5 453,-5109.5 626,-5109.5 626,-5090.5 453,-5090.5"/>
-<text text-anchor="middle" x="539.5" y="-5097.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; EinsumAttrs &gt;</text>
+<g id="a_node165"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; DynExpand\lDimsAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="460.5,-5229 460.5,-5259 618.5,-5259 618.5,-5229 460.5,-5229"/>
+<text text-anchor="start" x="468.5" y="-5247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; DynExpand</text>
+<text text-anchor="middle" x="539.5" y="-5236" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DimsAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node156 -->
 <g id="edge160" class="edge">
 <title>Node55&#45;&gt;Node156</title>
-<path fill="none" stroke="#191970" d="M306.2864,-6115.3399C315.288,-5980.4393 370.5778,-5194.722 442,-5119 445.4316,-5115.3618 449.3369,-5112.3041 453.5645,-5109.742"/>
-<polygon fill="#191970" stroke="#191970" points="302.7859,-6115.2337 305.618,-6125.443 309.7706,-6115.6958 302.7859,-6115.2337"/>
+<path fill="none" stroke="#191970" d="M305.1552,-6149.2639C306.4976,-6029.8504 319.37,-5404.5416 442,-5269 447.1585,-5263.2984 453.424,-5258.8182 460.2636,-5255.3079"/>
+<polygon fill="#191970" stroke="#191970" points="301.6534,-6149.4399 305.0558,-6159.4735 308.6531,-6149.5081 301.6534,-6149.4399"/>
 </g>
 <!-- Node158 -->
 <g id="node167" class="node">
 <title>Node158</title>
-<g id="a_node167"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ExpandDims\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="457.5,-5041 457.5,-5071 621.5,-5071 621.5,-5041 457.5,-5041"/>
-<text text-anchor="start" x="465.5" y="-5059" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ExpandDims</text>
-<text text-anchor="middle" x="539.5" y="-5048" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node167"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; EinsumAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="453,-5190.5 453,-5209.5 626,-5209.5 626,-5190.5 453,-5190.5"/>
+<text text-anchor="middle" x="539.5" y="-5197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; EinsumAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node158 -->
 <g id="edge162" class="edge">
 <title>Node55&#45;&gt;Node158</title>
-<path fill="none" stroke="#191970" d="M306.2563,-6115.0876C315.1558,-5976.737 370.4012,-5161.8929 442,-5081 446.4011,-5076.0276 451.6439,-5071.9805 457.3816,-5068.6936"/>
-<polygon fill="#191970" stroke="#191970" points="302.7406,-6115.2231 305.597,-6125.4256 309.7264,-6115.6687 302.7406,-6115.2231"/>
+<path fill="none" stroke="#191970" d="M306.4711,-6149.4292C316.3793,-6019.9221 375.0136,-5289.3685 442,-5219 445.5672,-5215.2527 449.6372,-5212.1228 454.0433,-5209.517"/>
+<polygon fill="#191970" stroke="#191970" points="302.9754,-6149.2417 305.7083,-6159.478 309.9553,-6149.7717 302.9754,-6149.2417"/>
 </g>
 <!-- Node160 -->
 <g id="node169" class="node">
 <title>Node160</title>
-<g id="a_node169"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FIFOBuffer\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="463.5,-4992 463.5,-5022 615.5,-5022 615.5,-4992 463.5,-4992"/>
-<text text-anchor="start" x="471.5" y="-5010" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; FIFOBuffer</text>
-<text text-anchor="middle" x="539.5" y="-4999" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node169"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; ExpandDims\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="457.5,-5141 457.5,-5171 621.5,-5171 621.5,-5141 457.5,-5141"/>
+<text text-anchor="start" x="465.5" y="-5159" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; ExpandDims</text>
+<text text-anchor="middle" x="539.5" y="-5148" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node160 -->
 <g id="edge164" class="edge">
 <title>Node55&#45;&gt;Node160</title>
-<path fill="none" stroke="#191970" d="M306.1291,-6115.0181C314.3444,-5972.686 366.7434,-5115.6962 442,-5031 447.9053,-5024.354 455.3272,-5019.4035 463.4272,-5015.7368"/>
-<polygon fill="#191970" stroke="#191970" points="302.6181,-6115.111 305.5414,-6125.2946 309.6067,-6115.5107 302.6181,-6115.111"/>
+<path fill="none" stroke="#191970" d="M306.4345,-6149.1144C316.213,-6015.917 374.6924,-5256.3945 442,-5181 446.4223,-5176.0464 451.68,-5172.0126 457.4276,-5168.7346"/>
+<polygon fill="#191970" stroke="#191970" points="302.9191,-6149.1991 305.6833,-6159.427 309.9006,-6149.7077 302.9191,-6149.1991"/>
 </g>
 <!-- Node162 -->
 <g id="node171" class="node">
 <title>Node162</title>
-<g id="a_node171"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FixedPoint\lMultiplyAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="463.5,-4943 463.5,-4973 615.5,-4973 615.5,-4943 463.5,-4943"/>
-<text text-anchor="start" x="471.5" y="-4961" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; FixedPoint</text>
-<text text-anchor="middle" x="539.5" y="-4950" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">MultiplyAttrs &gt;</text>
+<g id="a_node171"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FIFOBuffer\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="463.5,-5092 463.5,-5122 615.5,-5122 615.5,-5092 463.5,-5092"/>
+<text text-anchor="start" x="471.5" y="-5110" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; FIFOBuffer</text>
+<text text-anchor="middle" x="539.5" y="-5099" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node162 -->
 <g id="edge166" class="edge">
 <title>Node55&#45;&gt;Node162</title>
-<path fill="none" stroke="#191970" d="M306.0182,-6115.0352C313.6306,-5969.1635 363.5229,-5070.7842 442,-4982 447.888,-4975.3387 455.2996,-4970.379 463.394,-4966.7073"/>
-<polygon fill="#191970" stroke="#191970" points="302.5137,-6115.0323 305.493,-6125.1996 309.5044,-6115.3936 302.5137,-6115.0323"/>
+<path fill="none" stroke="#191970" d="M306.2977,-6148.955C315.3749,-6011.4081 371.0819,-5210.1923 442,-5131 447.931,-5124.377 455.3685,-5119.4403 463.4768,-5115.781"/>
+<polygon fill="#191970" stroke="#191970" points="302.7841,-6149.0488 305.6236,-6159.2561 309.7692,-6149.506 302.7841,-6149.0488"/>
 </g>
 <!-- Node164 -->
 <g id="node173" class="node">
 <title>Node164</title>
-<g id="a_node173"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GatherAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="454.5,-4904.5 454.5,-4923.5 624.5,-4923.5 624.5,-4904.5 454.5,-4904.5"/>
-<text text-anchor="middle" x="539.5" y="-4911.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GatherAttrs &gt;</text>
+<g id="a_node173"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; FixedPoint\lMultiplyAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="463.5,-5043 463.5,-5073 615.5,-5073 615.5,-5043 463.5,-5043"/>
+<text text-anchor="start" x="471.5" y="-5061" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; FixedPoint</text>
+<text text-anchor="middle" x="539.5" y="-5050" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">MultiplyAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node164 -->
 <g id="edge168" class="edge">
 <title>Node55&#45;&gt;Node164</title>
-<path fill="none" stroke="#191970" d="M305.8703,-6115.0854C312.5769,-5965.6979 358.0393,-5023.8676 442,-4933 445.6281,-4929.0735 449.8072,-4925.8193 454.3507,-4923.1321"/>
-<polygon fill="#191970" stroke="#191970" points="302.3574,-6115.3007 305.4107,-6125.446 309.3505,-6115.611 302.3574,-6115.3007"/>
+<path fill="none" stroke="#191970" d="M306.1512,-6149.3247C314.5214,-6009.1769 367.8049,-5165.341 442,-5082 447.9116,-5075.3597 455.3374,-5070.4126 463.4395,-5066.7476"/>
+<polygon fill="#191970" stroke="#191970" points="302.6494,-6149.2541 305.5523,-6159.4435 309.6371,-6149.6678 302.6494,-6149.2541"/>
 </g>
 <!-- Node166 -->
 <g id="node175" class="node">
 <title>Node166</title>
-<g id="a_node175"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GatherNDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="447,-4866.5 447,-4885.5 632,-4885.5 632,-4866.5 447,-4866.5"/>
-<text text-anchor="middle" x="539.5" y="-4873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GatherNDAttrs &gt;</text>
+<g id="a_node175"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GatherAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="454.5,-5004.5 454.5,-5023.5 624.5,-5023.5 624.5,-5004.5 454.5,-5004.5"/>
+<text text-anchor="middle" x="539.5" y="-5011.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GatherAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node166 -->
 <g id="edge170" class="edge">
 <title>Node55&#45;&gt;Node166</title>
-<path fill="none" stroke="#191970" d="M305.7851,-6115.3895C312.0087,-5964.3254 355.4042,-4989.0444 442,-4895 445.3877,-4891.3209 449.259,-4888.2316 453.461,-4885.6455"/>
-<polygon fill="#191970" stroke="#191970" points="302.2837,-6115.3537 305.3742,-6125.4877 309.278,-6115.6383 302.2837,-6115.3537"/>
+<path fill="none" stroke="#191970" d="M305.9972,-6149.2903C313.4594,-6005.2878 362.4731,-5118.5072 442,-5033 445.6409,-5029.0853 449.8297,-5025.8401 454.3804,-5023.1597"/>
+<polygon fill="#191970" stroke="#191970" points="302.4995,-6149.1585 305.4826,-6159.3247 309.4903,-6149.5171 302.4995,-6149.1585"/>
 </g>
 <!-- Node168 -->
 <g id="node177" class="node">
 <title>Node168</title>
-<g id="a_node177"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GetValid\lCountsAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="468,-4817 468,-4847 611,-4847 611,-4817 468,-4817"/>
-<text text-anchor="start" x="476" y="-4835" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GetValid</text>
-<text text-anchor="middle" x="539.5" y="-4824" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CountsAttrs &gt;</text>
+<g id="a_node177"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GatherNDAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="447,-4966.5 447,-4985.5 632,-4985.5 632,-4966.5 447,-4966.5"/>
+<text text-anchor="middle" x="539.5" y="-4973.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GatherNDAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node168 -->
 <g id="edge172" class="edge">
 <title>Node55&#45;&gt;Node168</title>
-<path fill="none" stroke="#191970" d="M305.7926,-6114.837C312.073,-5959.511 355.8176,-4956.6018 442,-4857 448.8605,-4849.0713 457.861,-4843.4858 467.6214,-4839.5808"/>
-<polygon fill="#191970" stroke="#191970" points="302.2798,-6115.0882 305.3779,-6125.2199 309.2743,-6115.3676 302.2798,-6115.0882"/>
+<path fill="none" stroke="#191970" d="M305.9264,-6149.093C312.9624,-6001.7287 359.9356,-5083.5766 442,-4995 445.3989,-4991.3313 449.279,-4988.25 453.4875,-4985.6701"/>
+<polygon fill="#191970" stroke="#191970" points="302.4183,-6149.1838 305.4427,-6159.3378 309.4105,-6149.514 302.4183,-6149.1838"/>
 </g>
 <!-- Node170 -->
 <g id="node179" class="node">
 <title>Node170</title>
-<g id="a_node179"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GlobalPool2\lDAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="459,-4768 459,-4798 620,-4798 620,-4768 459,-4768"/>
-<text text-anchor="start" x="467" y="-4786" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GlobalPool2</text>
-<text text-anchor="middle" x="539.5" y="-4775" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
+<g id="a_node179"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GetValid\lCountsAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="468,-4917 468,-4947 611,-4947 611,-4917 468,-4917"/>
+<text text-anchor="start" x="476" y="-4935" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GetValid</text>
+<text text-anchor="middle" x="539.5" y="-4924" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CountsAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node170 -->
 <g id="edge174" class="edge">
 <title>Node55&#45;&gt;Node170</title>
-<path fill="none" stroke="#191970" d="M305.692,-6115.0174C311.3438,-5956.8456 352.0085,-4910.4116 442,-4807 446.6919,-4801.6084 452.3818,-4797.3282 458.6297,-4793.9417"/>
-<polygon fill="#191970" stroke="#191970" points="302.1878,-6115.0775 305.3332,-6125.1947 309.1834,-6115.3242 302.1878,-6115.0775"/>
+<path fill="none" stroke="#191970" d="M305.9097,-6148.9666C312.9067,-5998.6822 360.111,-5051.0902 442,-4957 448.8833,-4949.0911 457.8959,-4943.5162 467.6616,-4939.6157"/>
+<polygon fill="#191970" stroke="#191970" points="302.3935,-6149.2388 305.4298,-6159.3892 309.3861,-6149.5608 302.3935,-6149.2388"/>
 </g>
 <!-- Node172 -->
 <g id="node181" class="node">
 <title>Node172</title>
-<g id="a_node181"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GridSample\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="460,-4719 460,-4749 619,-4749 619,-4719 460,-4719"/>
-<text text-anchor="start" x="468" y="-4737" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GridSample</text>
-<text text-anchor="middle" x="539.5" y="-4726" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node181"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GlobalPool2\lDAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="459,-4868 459,-4898 620,-4898 620,-4868 459,-4868"/>
+<text text-anchor="start" x="467" y="-4886" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GlobalPool2</text>
+<text text-anchor="middle" x="539.5" y="-4875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node172 -->
 <g id="edge176" class="edge">
 <title>Node55&#45;&gt;Node172</title>
-<path fill="none" stroke="#191970" d="M305.6225,-6114.7866C310.7964,-5952.5298 348.8213,-4865.4678 442,-4758 447.0247,-4752.2048 453.2024,-4747.6926 459.9884,-4744.1938"/>
-<polygon fill="#191970" stroke="#191970" points="302.1112,-6115.0958 305.2954,-6125.2007 309.1077,-6115.3155 302.1112,-6115.0958"/>
+<path fill="none" stroke="#191970" d="M305.8021,-6149.0812C312.155,-5995.6373 356.3449,-5004.8999 442,-4907 446.7063,-4901.6209 452.406,-4897.3492 458.6601,-4893.9682"/>
+<polygon fill="#191970" stroke="#191970" points="302.2943,-6149.2036 305.3826,-6159.3383 309.2884,-6149.4898 302.2943,-6149.2036"/>
 </g>
 <!-- Node174 -->
 <g id="node183" class="node">
 <title>Node174</title>
-<g id="a_node183"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GroupNorm\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="460.5,-4670 460.5,-4700 618.5,-4700 618.5,-4670 460.5,-4670"/>
-<text text-anchor="start" x="468.5" y="-4688" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GroupNorm</text>
-<text text-anchor="middle" x="539.5" y="-4677" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node183"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GridSample\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="460,-4819 460,-4849 619,-4849 619,-4819 460,-4819"/>
+<text text-anchor="start" x="468" y="-4837" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GridSample</text>
+<text text-anchor="middle" x="539.5" y="-4826" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node174 -->
 <g id="edge178" class="edge">
 <title>Node55&#45;&gt;Node174</title>
-<path fill="none" stroke="#191970" d="M305.5418,-6115.0817C310.1891,-5950.6341 345.5304,-4820.6447 442,-4709 447.1289,-4703.0643 453.4673,-4698.4739 460.4315,-4694.9391"/>
-<polygon fill="#191970" stroke="#191970" points="302.0391,-6115.1327 305.2598,-6125.2261 309.0364,-6115.3272 302.0391,-6115.1327"/>
+<path fill="none" stroke="#191970" d="M305.7105,-6149.2725C311.5065,-5993.1193 353.0807,-4960.0431 442,-4858 446.9245,-4852.3486 452.9455,-4847.9187 459.5557,-4844.4592"/>
+<polygon fill="#191970" stroke="#191970" points="302.2109,-6149.1983 305.3424,-6159.3198 309.2062,-6149.4547 302.2109,-6149.1983"/>
 </g>
 <!-- Node176 -->
 <g id="node185" class="node">
 <title>Node176</title>
-<g id="a_node185"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; InitOpAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="456.5,-4631.5 456.5,-4650.5 622.5,-4650.5 622.5,-4631.5 456.5,-4631.5"/>
-<text text-anchor="middle" x="539.5" y="-4638.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; InitOpAttrs &gt;</text>
+<g id="a_node185"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; GroupNorm\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="460.5,-4770 460.5,-4800 618.5,-4800 618.5,-4770 460.5,-4770"/>
+<text text-anchor="start" x="468.5" y="-4788" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; GroupNorm</text>
+<text text-anchor="middle" x="539.5" y="-4777" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node176 -->
 <g id="edge180" class="edge">
 <title>Node55&#45;&gt;Node176</title>
-<path fill="none" stroke="#191970" d="M305.4355,-6114.8825C309.2653,-5946.3666 339.5265,-4773.2519 442,-4660 446.1655,-4655.3964 451.0875,-4651.7119 456.4709,-4648.7789"/>
-<polygon fill="#191970" stroke="#191970" points="301.9282,-6115.1758 305.2048,-6125.2512 308.9265,-6115.3316 301.9282,-6115.1758"/>
+<path fill="none" stroke="#191970" d="M305.6406,-6149.0354C310.9573,-5988.776 349.8949,-4915.0974 442,-4809 447.1426,-4803.0762 453.4898,-4798.4934 460.4594,-4794.9632"/>
+<polygon fill="#191970" stroke="#191970" points="302.133,-6149.2123 305.3043,-6159.3213 309.1293,-6149.4411 302.133,-6149.2123"/>
 </g>
 <!-- Node178 -->
 <g id="node187" class="node">
 <title>Node178</title>
-<g id="a_node187"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Instance\lNormAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="468,-4582 468,-4612 611,-4612 611,-4582 468,-4582"/>
-<text text-anchor="start" x="476" y="-4600" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Instance</text>
-<text text-anchor="middle" x="539.5" y="-4589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NormAttrs &gt;</text>
+<g id="a_node187"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; InitOpAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="456.5,-4731.5 456.5,-4750.5 622.5,-4750.5 622.5,-4731.5 456.5,-4731.5"/>
+<text text-anchor="middle" x="539.5" y="-4738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; InitOpAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node178 -->
 <g id="edge182" class="edge">
 <title>Node55&#45;&gt;Node178</title>
-<path fill="none" stroke="#191970" d="M305.4326,-6115.1963C309.3095,-5945.6289 340.3358,-4741.4707 442,-4622 448.9081,-4613.8819 458.06,-4608.2131 467.994,-4604.2874"/>
-<polygon fill="#191970" stroke="#191970" points="301.9288,-6115.3291 305.2038,-6125.405 308.9271,-6115.486 301.9288,-6115.3291"/>
+<path fill="none" stroke="#191970" d="M305.5163,-6149.2807C309.9567,-5986.4804 343.9394,-4867.9063 442,-4760 446.1754,-4755.4054 451.1045,-4751.7273 456.4929,-4748.7988"/>
+<polygon fill="#191970" stroke="#191970" points="302.0164,-6149.2333 305.2472,-6159.3235 309.0139,-6149.4209 302.0164,-6149.2333"/>
 </g>
 <!-- Node180 -->
 <g id="node189" class="node">
 <title>Node180</title>
-<g id="a_node189"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; L2Normalize\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="457.5,-4533 457.5,-4563 621.5,-4563 621.5,-4533 457.5,-4533"/>
-<text text-anchor="start" x="465.5" y="-4551" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; L2Normalize</text>
-<text text-anchor="middle" x="539.5" y="-4540" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node189"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; Instance\lNormAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="468,-4682 468,-4712 611,-4712 611,-4682 468,-4682"/>
+<text text-anchor="start" x="476" y="-4700" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; Instance</text>
+<text text-anchor="middle" x="539.5" y="-4689" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">NormAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node180 -->
 <g id="edge184" class="edge">
 <title>Node55&#45;&gt;Node180</title>
-<path fill="none" stroke="#191970" d="M305.361,-6115.3312C308.6948,-5943.1185 336.4248,-4695.2188 442,-4572 446.3101,-4566.9696 451.4889,-4562.9038 457.1835,-4559.6271"/>
-<polygon fill="#191970" stroke="#191970" points="301.859,-6115.4072 305.1692,-6125.4716 308.8578,-6115.5397 301.859,-6115.4072"/>
+<path fill="none" stroke="#191970" d="M305.5153,-6149.3085C310.0037,-5984.355 344.6487,-4835.929 442,-4722 448.8112,-4714.0289 457.7855,-4708.421 467.5348,-4704.5063"/>
+<polygon fill="#191970" stroke="#191970" points="302.0126,-6149.3677 305.2438,-6159.4578 309.0101,-6149.555 302.0126,-6149.3677"/>
 </g>
 <!-- Node182 -->
 <g id="node191" class="node">
 <title>Node182</title>
-<g id="a_node191"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; LayerNorm\lAttrs \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="461.5,-4484 461.5,-4514 617.5,-4514 617.5,-4484 461.5,-4484"/>
-<text text-anchor="start" x="469.5" y="-4502" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; LayerNorm</text>
-<text text-anchor="middle" x="539.5" y="-4491" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
+<g id="a_node191"><a xlink:href="classtvm_1_1AttrsNode.html" target="_top" xlink:title="tvm::AttrsNode\&lt; L2Normalize\lAttrs \&gt;">
+<polygon fill="#ffffff" stroke="#000000" points="457.5,-4633 457.5,-4663 621.5,-4663 621.5,-4633 457.5,-4633"/>
+<text text-anchor="start" x="465.5" y="-4651" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrsNode&lt; L2Normalize</text>
+<text text-anchor="middle" x="539.5" y="-4640" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node182 -->
 <g id="edge186" class="edge">
 <title>Node55&#45;&gt;Node182</title>
-<path fill="none" stroke="#191970" d="M305.3118,-6114.9816C308.2382,-5938.4049 333.2537,-4650.2601 442,-4523 447.3226,-4516.7712 453.9773,-4512.0206 461.2954,-4508.4153"/>
-<polygon fill="#191970" stroke="#191970" points="301.8092,-6115.1185 305.1473,-6125.1737 308.8083,-6115.2316 301.8092,-6115.1185"/>
+<path fill="none" stroke="#191970" d="M305.4514,-6148.8777C309.4363,-5979.1111 340.8805,-4789.5616 442,-4672 446.3197,-4666.9779 451.5053,-4662.9179 457.2045,-4659.6451"/>
+<polygon fill="#191970" stroke="#191970" points="301.9466,-6149.0474 305.2155,-6159.1253 308.9448,-6149.2085 301.9466,-6149.0474"/>
 </g>
... 12310 lines suppressed ...