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/06/07 09:35:54 UTC

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

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 ce9d19c4d deploying docs (apache/tvm@70884e957aa5c8de9c02c25a14d30563d7300cb9)
ce9d19c4d is described below

commit ce9d19c4d1987a699a5aa6869323f96ad80fefc6
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Tue Jun 7 09:35:48 2022 +0000

    deploying docs (apache/tvm@70884e957aa5c8de9c02c25a14d30563d7300cb9)
---
 .../how_to/compile_models/from_mxnet.rst.txt       |    2 +-
 .../how_to/compile_models/from_oneflow.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      |   22 +-
 .../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                 |  712 +--
 .../tune_network_cuda.rst.txt                      |    2 +-
 .../tune_network_x86.rst.txt                       |    4 +-
 .../tune_sparse_x86.rst.txt                        |   42 +-
 .../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 +-
 .../how_to/work_with_microtvm/micro_train.rst.txt  |   12 +-
 .../work_with_microtvm/sg_execution_times.rst.txt  |   16 +-
 .../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   |    2 +-
 .../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     |   13 +-
 docs/_sources/tutorial/autotvm_relay_x86.rst.txt   |   54 +-
 .../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       |   46 +-
 docs/commit_hash                                   |    2 +-
 docs/how_to/compile_models/from_mxnet.html         |    2 +-
 docs/how_to/compile_models/from_oneflow.html       |  109 +-
 docs/how_to/compile_models/from_paddle.html        |    2 +-
 docs/how_to/compile_models/from_pytorch.html       |    7 +-
 docs/how_to/compile_models/from_tensorflow.html    |    2 +-
 docs/how_to/compile_models/sg_execution_times.html |   22 +-
 .../deploy_models/deploy_model_on_android.html     |    2 +-
 .../deploy_object_detection_pytorch.html           |   18 +-
 docs/how_to/deploy_models/deploy_prequantized.html |    6 +-
 .../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  |   37 +-
 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                    |  712 +--
 .../tune_with_autoscheduler/tune_network_cuda.html |    2 +-
 .../tune_with_autoscheduler/tune_network_x86.html  |    4 +-
 .../tune_with_autoscheduler/tune_sparse_x86.html   |   42 +-
 .../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 +-
 docs/how_to/work_with_microtvm/micro_train.html    |   12 +-
 .../work_with_microtvm/sg_execution_times.html     |   14 +-
 .../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     |    2 +-
 docs/reference/api/doxygen/classes.html            |   28 +-
 ...__schedule_1_1PySearchStrategyNode-members.html |    4 +-
 ..._1_1meta__schedule_1_1PySearchStrategyNode.html |   54 +-
 ...hedule_1_1PySearchStrategyNode__coll__graph.svg |  124 +-
 ...a__schedule_1_1PyTaskSchedulerNode-members.html |    2 +-
 ...m_1_1meta__schedule_1_1PyTaskSchedulerNode.html |   14 +-
 ...chedule_1_1PyTaskSchedulerNode__coll__graph.svg |  509 +-
 ...dule_1_1PyTaskSchedulerNode__inherit__graph.svg |    6 +-
 ...asstvm_1_1meta__schedule_1_1SearchStrategy.html |    4 +-
 ...ta__schedule_1_1SearchStrategyNode-members.html |    2 +-
 ...vm_1_1meta__schedule_1_1SearchStrategyNode.html |   34 +-
 ...1_1meta__schedule_1_1TaskScheduler-members.html |    6 +-
 ...lasstvm_1_1meta__schedule_1_1TaskScheduler.html |   72 +-
 ...eta__schedule_1_1TaskSchedulerNode-members.html |    2 +-
 ...tvm_1_1meta__schedule_1_1TaskSchedulerNode.html |   20 +-
 ..._schedule_1_1TaskSchedulerNode__coll__graph.svg |  395 +-
 ...hedule_1_1TaskSchedulerNode__inherit__graph.svg |    6 +-
 ...1meta__schedule_1_1TuneContextNode-members.html |   17 +-
 ...sstvm_1_1meta__schedule_1_1TuneContextNode.html |   23 +-
 ...a__schedule_1_1TuneContextNode__coll__graph.svg | 1018 ++--
 ...schedule_1_1TuneContextNode__inherit__graph.svg |  120 +-
 .../doxygen/classtvm_1_1runtime_1_1ObjectRef.html  |    2 +-
 ...asstvm_1_1runtime_1_1ObjectRef__coll__graph.svg |   12 +-
 .../api/doxygen/feature__extractor_8h_source.html  |    2 +-
 docs/reference/api/doxygen/functions_d.html        |    2 +-
 docs/reference/api/doxygen/functions_f.html        |    2 +-
 docs/reference/api/doxygen/functions_func_g.html   |    2 +-
 docs/reference/api/doxygen/functions_func_p.html   |    6 +-
 docs/reference/api/doxygen/functions_func_r.html   |    2 +-
 docs/reference/api/doxygen/functions_func_s.html   |    6 +-
 docs/reference/api/doxygen/functions_g.html        |    2 +-
 docs/reference/api/doxygen/functions_p.html        |    6 +-
 docs/reference/api/doxygen/functions_r.html        |    2 +-
 docs/reference/api/doxygen/functions_s.html        |    2 +-
 docs/reference/api/doxygen/functions_t.html        |    7 +-
 docs/reference/api/doxygen/functions_type.html     |    2 +-
 docs/reference/api/doxygen/functions_vars_d.html   |    2 +-
 docs/reference/api/doxygen/functions_vars_t.html   |    3 -
 docs/reference/api/doxygen/hierarchy.html          |  637 +--
 docs/reference/api/doxygen/inherit_graph_10.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_107.svg   |   32 +-
 docs/reference/api/doxygen/inherit_graph_116.svg   | 5069 ++++++++++----------
 docs/reference/api/doxygen/inherit_graph_162.svg   |   20 +-
 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           |    4 +-
 .../meta__schedule_2cost__model_8h_source.html     |    2 +-
 docs/reference/api/doxygen/mutator_8h_source.html  |    2 +-
 docs/reference/api/doxygen/postproc_8h_source.html |    2 +-
 .../api/doxygen/schedule__rule_8h_source.html      |    2 +-
 docs/reference/api/doxygen/search/all_10.js        |    3 +-
 docs/reference/api/doxygen/search/all_11.js        |    6 +-
 docs/reference/api/doxygen/search/all_13.js        |    2 +-
 docs/reference/api/doxygen/search/all_14.js        |   18 +-
 docs/reference/api/doxygen/search/all_15.js        |   15 +-
 docs/reference/api/doxygen/search/all_16.js        |    4 +-
 docs/reference/api/doxygen/search/all_17.js        |    2 +-
 docs/reference/api/doxygen/search/all_18.js        |    2 +-
 docs/reference/api/doxygen/search/all_5.js         |    2 +-
 docs/reference/api/doxygen/search/all_7.js         |    2 +-
 docs/reference/api/doxygen/search/all_8.js         |    2 +-
 docs/reference/api/doxygen/search/all_e.js         |    2 +-
 docs/reference/api/doxygen/search/classes_10.js    |    6 +-
 docs/reference/api/doxygen/search/classes_11.js    |    8 +-
 docs/reference/api/doxygen/search/classes_13.js    |    2 +-
 docs/reference/api/doxygen/search/classes_c.js     |    1 +
 docs/reference/api/doxygen/search/functions_10.js  |    6 +-
 docs/reference/api/doxygen/search/functions_12.js  |    2 +-
 docs/reference/api/doxygen/search/functions_13.js  |    8 +-
 docs/reference/api/doxygen/search/functions_15.js  |    2 +-
 docs/reference/api/doxygen/search/functions_7.js   |    2 +-
 docs/reference/api/doxygen/search/functions_d.js   |    2 +-
 docs/reference/api/doxygen/search/functions_f.js   |    2 +-
 docs/reference/api/doxygen/search/typedefs_5.js    |    2 +-
 docs/reference/api/doxygen/search/variables_12.js  |    1 -
 docs/reference/api/doxygen/search/variables_4.js   |    2 +-
 .../api/doxygen/search__strategy_8h_source.html    |   27 +-
 .../api/doxygen/space__generator_8h_source.html    |    2 +-
 .../api/doxygen/task__scheduler_8h_source.html     |    9 +-
 .../api/doxygen/tune__context_8h_source.html       |   18 +-
 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       |    7 +-
 docs/tutorial/autotvm_relay_x86.html               |  276 +-
 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         |   46 +-
 200 files changed, 5283 insertions(+), 6472 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 c35fbe363..fa0eebf7f 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.zip67d7d724-c04c-4721-915c-d096871322ec from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip6d599b92-18c1-40d6-a64d-b9431e592e8c 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_oneflow.rst.txt b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
index 2073194af..8c15264b3 100644
--- a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
@@ -100,7 +100,7 @@ Load a pretrained OneFlow model and save model
  .. code-block:: none
 
     Downloading: "https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip" to /workspace/.oneflow/flowvision_cache/resnet18.zip
-
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
      0%|          | 16.0k/41.5M [00:00<07:51, 92.2kB/s]
      0%|          | 48.0k/41.5M [00:00<05:14, 138kB/s] 
      0%|          | 96.0k/41.5M [00:00<03:52, 187kB/s]
      0%|          | 168k/41.5M [00:00<02:37, 276kB/s] 
      1%|          | 352k/41.5M [00:00<01:17, 558kB/s]
      1%|1         | 552k/41.5M [00:01<00:58, 738kB/s]
      2%|2         | 984k/41.5M [00:01<00:34, 1.24MB/s]
      3%|3         | 1.40M/41.5M [00:01<00:25, 1.63MB/s]
      4%|4         | 1.84M/41.5M [00:01<00:21, 1.94MB/s]
      5%|5         | 2.27M/41.5M [00:01<00:19, 2.10MB/s]
      7%|6         | 2.71M/41.5M [00:02<00:18, 2.16MB/s]
      8%|7         | 3.15M/41.5M [00:02<00:18, 2.23MB/s]
      9%|8         | 3.59M/41.5M [00:02<00:16, 2.37MB/s]
     10%|9         | 4.03M/41.5M [00:02<00:16, 2.42MB/s]
     11%|#         | 4.47M/41.5M [00:02<00:16, 2.39MB/s]
     12%|#1        | 4.91M/41.5M [00:03<00:16, 2.36MB/s]
     13%|#2        | 5.36M/41.5M [00:03<00:
 15, 2.47MB/s]
     14%|#3        | 5.80M/41.5M [00:03<00:14, 2.51MB/s]
     15%|#5        | 6.24M/41.5M [00:03<00:14, 2.48MB/s]
     16%|#6        | 6.69M/41.5M [00:03<00:15, 2.41MB/s]
     17%|#7        | 7.13M/41.5M [00:03<00:14, 2.45MB/s]
     18%|#8        | 7.58M/41.5M [00:04<00:14, 2.53MB/s]
     19%|#9        | 8.03M/41.5M [00:04<00:13, 2.53MB/s]
     20%|##        | 8.48M/41.5M [00:04<00:14, 2.47MB/s]
     22%|##1       | 8.93M/41.5M [00:04<00:13, 2.46MB/s]
     23%|##2       | 9.39M/41.5M [00:04<00:13, 2.57MB/s]
     24%|##3       | 9.85M/41.5M [00:05<00:12, 2.61MB/s]
     25%|##4       | 10.3M/41.5M [00:05<00:12, 2.57MB/s]
     26%|##6       | 10.8M/41.5M [00:05<00:12, 2.52MB/s]
     27%|##7       | 11.3M/41.5M [00:05<00:12, 2.64MB/s]
     28%|##8       | 11.7M/41.5M [00:05<00:11, 2.70MB/s]
     29%|##9       | 12.2M/41.5M [00:05<00:11, 2.68MB/s]
     31%|###       | 12.7M/41.5M [00:06<00:11, 2.61MB/s]
     32%|###1      | 13.2M/41.5M [00:06<00:10, 2.70MB/s]
     33%|###3 
      | 13.7M/41.5M [00:06<00:10, 2.82MB/s]
     34%|###4      | 14.2M/41.5M [00:06<00:10, 2.84MB/s]
     36%|###5      | 14.8M/41.5M [00:06<00:09, 2.80MB/s]
     37%|###6      | 15.3M/41.5M [00:07<00:09, 2.83MB/s]
     38%|###8      | 15.8M/41.5M [00:07<00:09, 2.98MB/s]
     40%|###9      | 16.4M/41.5M [00:07<00:08, 3.01MB/s]
     41%|####      | 17.0M/41.5M [00:07<00:08, 3.00MB/s]
     42%|####2     | 17.5M/41.5M [00:07<00:08, 3.04MB/s]
     44%|####3     | 18.1M/41.5M [00:08<00:07, 3.20MB/s]
     45%|####5     | 18.7M/41.5M [00:08<00:06, 3.70MB/s]
     47%|####6     | 19.3M/41.5M [00:08<00:05, 3.91MB/s]
     48%|####7     | 19.7M/41.5M [00:08<00:06, 3.74MB/s]
     48%|####8     | 20.1M/41.5M [00:08<00:07, 3.07MB/s]
     50%|####9     | 20.6M/41.5M [00:08<00:06, 3.52MB/s]
     51%|#####1    | 21.3M/41.5M [00:08<00:05, 4.06MB/s]
     52%|#####2    | 21.7M/41.5M [00:08<00:05, 4.02MB/s]
     53%|#####3    | 22.1M/41.5M [00:09<00:06, 3.33MB/s]
     55%|#####4    | 22.7M/41.5M [00:09<00
 :05, 3.66MB/s]
     56%|#####6    | 23.4M/41.5M [00:09<00:05, 3.76MB/s]
     58%|#####8    | 24.2M/41.5M [00:09<00:04, 4.04MB/s]
     60%|######    | 24.9M/41.5M [00:09<00:04, 4.16MB/s]
     62%|######1   | 25.7M/41.5M [00:10<00:03, 4.16MB/s]
     64%|######3   | 26.5M/41.5M [00:10<00:03, 4.90MB/s]
     65%|######5   | 27.0M/41.5M [00:10<00:03, 4.41MB/s]
     66%|######6   | 27.5M/41.5M [00:10<00:03, 3.92MB/s]
     68%|######7   | 28.2M/41.5M [00:10<00:03, 4.09MB/s]
     70%|#######   | 29.1M/41.5M [00:10<00:03, 4.29MB/s]
     72%|#######2  | 30.0M/41.5M [00:11<00:02, 4.43MB/s]
     75%|#######4  | 31.0M/41.5M [00:11<00:02, 4.83MB/s]
     77%|#######6  | 31.9M/41.5M [00:11<00:01, 5.12MB/s]
     79%|#######9  | 32.9M/41.5M [00:11<00:01, 5.19MB/s]
     82%|########1 | 33.9M/41.5M [00:11<00:01, 5.22MB/s]
     84%|########4 | 35.0M/41.5M [00:11<00:01, 5.58MB/s]
     87%|########7 | 36.1M/41.5M [00:12<00:00, 5.92MB/s]
     90%|########9 | 37.3M/41.5M [00:12<00:00, 6.03MB/s]
     93%|####
 #####2| 38.4M/41.5M [00:12<00:00, 6.02MB/s]
     96%|#########5| 39.6M/41.5M [00:12<00:00, 6.26MB/s]
     99%|#########8| 40.9M/41.5M [00:12<00:00, 6.67MB/s]
    100%|##########| 41.5M/41.5M [00:12<00:00, 3.38MB/s]
+
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
      0%|          | 16.0k/41.5M [00:00<07:34, 95.7kB/s]
      0%|          | 40.0k/41.5M [00:00<05:52, 123kB/s] 
      0%|          | 96.0k/41.5M [00:00<03:18, 219kB/s]
      0%|          | 160k/41.5M [00:00<02:33, 283kB/s] 
      1%|          | 224k/41.5M [00:00<02:16, 318kB/s]
      1%|          | 424k/41.5M [00:01<01:10, 615kB/s]
      2%|1         | 832k/41.5M [00:01<00:35, 1.21MB/s]
      4%|3         | 1.60M/41.5M [00:01<00:17, 2.35MB/s]
      7%|7         | 3.08M/41.5M [00:01<00:09, 4.43MB/s]
     11%|#         | 4.55M/41.5M [00:01<00:06, 5.82MB/s]
     14%|#4        | 6.02M/41.5M [00:01<00:05, 6.78MB/s]
     18%|#8        | 7.48M/41.5M [00:02<00:04, 7.44MB/s]
     22%|##1       | 8.95M/41.5M [00:02<00:04, 7.89MB/s]
     25%|##5       | 10.4M/41.5M [00:02<00:03, 8.21MB/s]
     29%|##8       | 11.9M/41.5M [00:02<00:03, 8.43MB/s]
     32%|###2      | 13.4M/41.5M [00:02<00:03, 8.58MB/s]
     36%|###5      | 14.8M/41.5M [00:02<00:
 03, 8.69MB/s]
     39%|###9      | 16.3M/41.5M [00:03<00:03, 8.76MB/s]
     43%|####2     | 17.8M/41.5M [00:03<00:02, 8.82MB/s]
     46%|####6     | 19.2M/41.5M [00:03<00:02, 8.85MB/s]
     50%|####9     | 20.7M/41.5M [00:03<00:02, 8.88MB/s]
     53%|#####3    | 22.2M/41.5M [00:03<00:02, 8.90MB/s]
     57%|#####6    | 23.6M/41.5M [00:03<00:02, 8.93MB/s]
     61%|######    | 25.1M/41.5M [00:04<00:01, 8.93MB/s]
     64%|######4   | 26.6M/41.5M [00:04<00:01, 8.93MB/s]
     68%|######7   | 28.1M/41.5M [00:04<00:01, 8.94MB/s]
     71%|#######1  | 29.5M/41.5M [00:04<00:01, 8.95MB/s]
     75%|#######4  | 31.0M/41.5M [00:04<00:01, 8.94MB/s]
     78%|#######8  | 32.5M/41.5M [00:04<00:01, 8.94MB/s]
     82%|########1 | 33.9M/41.5M [00:05<00:00, 8.95MB/s]
     85%|########5 | 35.4M/41.5M [00:05<00:00, 8.96MB/s]
     89%|########8 | 36.9M/41.5M [00:05<00:00, 8.95MB/s]
     92%|#########2| 38.4M/41.5M [00:05<00:00, 8.95MB/s]
     96%|#########5| 39.8M/41.5M [00:05<00:00, 8.95MB/s]
     99%|#####
 ####9| 41.3M/41.5M [00:06<00:00, 8.93MB/s]
    100%|##########| 41.5M/41.5M [00:06<00:00, 7.21MB/s]
 
 
 
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 0e35de507..d6f4b7682 100644
--- a/docs/_sources/how_to/compile_models/from_paddle.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_paddle.rst.txt
@@ -210,7 +210,7 @@ Look up prediction top 1 index in 1000 class synset.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  5.874 seconds)
+   **Total running time of the script:** ( 1 minutes  7.165 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 3ea9b5b5e..b4737df54 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]
     28%|##8       | 12.7M/44.7M [00:00<00:00, 131MB/s]
     81%|########1 | 36.4M/44.7M [00:00<00:00, 199MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 199MB/s]
+
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     13%|#2        | 5.78M/44.7M [00:00<00:00, 60.6MB/s]
     26%|##5       | 11.6M/44.7M [00:00<00:00, 58.5MB/s]
     74%|#######4  | 33.2M/44.7M [00:00<00:00, 134MB/s] 
    100%|##########| 44.7M/44.7M [00:00<00:00, 132MB/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 c1b658235..c149320e6 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -381,7 +381,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  1.631 seconds)
+   **Total running time of the script:** ( 1 minutes  4.652 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 2131c1a57..d188c761b 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,15 +5,15 @@
 
 Computation times
 =================
-**05:24.515** total execution time for **how_to_compile_models** files:
+**05:30.301** total execution time for **how_to_compile_models** files:
 
-- **01:05.874**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
-- **01:01.631**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:56.444**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
-- **00:37.554**: :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)
-- **00:23.872**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
-- **00:22.405**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
-- **00:21.090**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
-- **00:19.078**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
-- **00:13.722**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
-- **00:02.846**: :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)
+- **01:07.165**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
+- **01:04.652**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:59.961**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
+- **00:31.997**: :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)
+- **00:24.519**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
+- **00:23.147**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
+- **00:22.287**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
+- **00:19.985**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
+- **00:13.820**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
+- **00:02.767**: :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 a14fe9181..aa9f599fd 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
@@ -402,7 +402,7 @@ Execute on TVM
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      15.3281      15.3607      15.5444      15.1472       0.1172   
+      16.3197      16.2442      16.9251      16.1694       0.2110   
                
 
 
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 66f7ee862..3d61a0aaa 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.6M/170M [00:00<00:00, 205MB/s]
     26%|##6       | 44.8M/170M [00:00<00:00, 239MB/s]
     42%|####2     | 71.4M/170M [00:00<00:00, 257MB/s]
     57%|#####7    | 97.4M/170M [00:00<00:00, 263MB/s]
     73%|#######2  | 124M/170M [00:00<00:00, 268MB/s] 
     89%|########8 | 150M/170M [00:00<00:00, 272MB/s]
    100%|##########| 170M/170M [00:00<00:00, 264MB/s]
+
      0%|          | 0.00/170M [00:00<?, ?B/s]
      3%|3         | 5.33M/170M [00:00<00:03, 55.9MB/s]
      6%|6         | 10.7M/170M [00:00<00:03, 54.8MB/s]
     21%|##1       | 36.4M/170M [00:00<00:00, 152MB/s] 
     37%|###7      | 63.0M/170M [00:00<00:00, 202MB/s]
     52%|#####2    | 89.1M/170M [00:00<00:00, 228MB/s]
     68%|######7   | 115M/170M [00:00<00:00, 242MB/s] 
     82%|########2 | 140M/170M [00:00<00:00, 249MB/s]
     98%|#########7| 166M/170M [00:00<00:00, 256MB/s]
    100%|##########| 170M/170M [00:00<00:00, 217MB/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').
@@ -262,7 +262,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  55.302 seconds)
+   **Total running time of the script:** ( 3 minutes  1.783 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 29d5cc456..5feb686c3 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]
    100%|##########| 13.6M/13.6M [00:00<00:00, 162MB/s]
+
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 163MB/s]
 
 
 
@@ -353,7 +353,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)  
-      88.9107      88.8655      89.4770      88.5857       0.1836   
+      90.3297      90.2424      91.1498      90.1341       0.2079   
                
 
 
@@ -393,7 +393,7 @@ TODO
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  4.883 seconds)
+   **Total running time of the script:** ( 1 minutes  7.638 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 033b780ec..9c7a7a3a1 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
@@ -360,7 +360,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)  
-      118.3542     117.7878     141.4023     116.8825      2.5086   
+      121.9273     121.9259     122.8546     121.2343      0.3097   
                
 
 
@@ -394,7 +394,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  57.635 seconds)
+   **Total running time of the script:** ( 1 minutes  59.432 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 66c031cf0..2eebc09e1 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -223,7 +223,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  12.581 seconds)
+   **Total running time of the script:** ( 1 minutes  12.219 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 494417c5a..0f6470d65 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         | 6090/132723 [00:00<00:02, 60896.43KB/s]
     11%|#         | 13952/132723 [00:00<00:01, 71318.85KB/s]
     16%|#6        | 21809/132723 [00:00<00:01, 74626.54KB/s]
     22%|##2       | 29730/132723 [00:00<00:01, 76434.69KB/s]
     28%|##8       | 37584/132723 [00:00<00:01, 77166.01KB/s]
     34%|###4      | 45435/132723 [00:00<00:01, 77607.90KB/s]
     40%|####      | 53313/132723 [00:00<00:01, 77988.02KB/s]
     46%|####6     | 61149/132723 [00:00<00:00, 78102.52KB/s]
     52%|#####2    | 69031/132723 [00:00<00:00, 78324.87KB/s]
     58%|#####7    | 76875/132723 [00:01<00:00, 78357.61KB/s]
     64%|######3   | 84824/132723 [00:01<00:00, 78674.82KB/s]
     70%|######9   | 92733/132723 [00:01<00:00, 78795.10KB/s]
     76%|#######5  | 100613/132723 [00:01<00:00, 76515.08KB/s]
     82%|########1 | 108409/132723 [00:01<00:00, 76939.89KB/s]
     87%|########7 | 116114/132723 [00:01<00:00, 67244.82KB/s]
     94%|########
 #3| 124353/132723 [00:01<00:00, 71339.13KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 74458.39KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 75350.67KB/s]
+
      0%|          | 0/132723 [00:00<?, ?KB/s]
      3%|3         | 4171/132723 [00:00<00:03, 41706.46KB/s]
      9%|9         | 12019/132723 [00:00<00:01, 63333.68KB/s]
     15%|#5        | 20491/132723 [00:00<00:01, 73086.98KB/s]
     22%|##1       | 28942/132723 [00:00<00:01, 77593.86KB/s]
     28%|##8       | 37462/132723 [00:00<00:01, 80333.40KB/s]
     35%|###4      | 46107/132723 [00:00<00:01, 82409.15KB/s]
     41%|####1     | 54694/132723 [00:00<00:00, 83537.32KB/s]
     48%|####7     | 63115/132723 [00:00<00:00, 83749.63KB/s]
     54%|#####3    | 71490/132723 [00:00<00:00, 69041.04KB/s]
     60%|######    | 80068/132723 [00:01<00:00, 73543.56KB/s]
     66%|######6   | 87772/132723 [00:01<00:00, 70612.96KB/s]
     73%|#######2  | 96439/132723 [00:01<00:00, 74994.62KB/s]
     78%|#######8  | 104163/132723 [00:01<00:00, 71315.58KB/s]
     85%|########4 | 112207/132723 [00:01<00:00, 73817.45KB/s]
     90%|######### | 119739/132723 [00:01<00:00, 66023.42KB/s]
     97%|########
 #6| 128357/132723 [00:01<00:00, 71332.13KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 72344.78KB/s]
 
 
 
@@ -211,7 +211,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  14.928 seconds)
+   **Total running time of the script:** ( 2 minutes  23.827 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 4ec3246d7..f5d7b7f78 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:15.614** total execution time for **how_to_deploy_models** files:
+**10:37.779** total execution time for **how_to_deploy_models** files:
 
-- **02:55.302**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
-- **02:14.928**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **01:57.635**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **01:12.581**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
-- **01:04.883**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:28.414**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:21.674**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:00.195**: :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)
+- **03:01.783**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
+- **02:23.827**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **01:59.432**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **01:12.219**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
+- **01:07.638**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:29.918**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:22.755**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:00.207**: :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 52c58137e..11c416e39 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
@@ -425,7 +425,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.zipc7c5c4bd-3b6e-48f6-98a8-bca21dacb4b4 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipa6f0d07b-9158-4cb5-baa5-bef7f9e22e30 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 e8c4d7f67..bcd0689e4 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:39.585** total execution time for **how_to_extend_tvm** files:
+**00:40.986** total execution time for **how_to_extend_tvm** files:
 
-- **00:35.913**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
-- **00:02.360**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
-- **00:01.104**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
-- **00:00.208**: :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)
+- **00:37.152**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
+- **00:02.477**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
+- **00:01.140**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
+- **00:00.217**: :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 b831292e4..11fc80c05 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: 6595us [6595us] (45.61%; 45.61%)
-    FoldScaleAxis: 7866us [6us] (54.39%; 54.39%)
-            FoldConstant: 7860us [1599us] (54.35%; 99.93%)
-                    InferType: 6261us [6261us] (43.30%; 79.66%)
+    InferType: 6878us [6878us] (45.75%; 45.75%)
+    FoldScaleAxis: 8154us [6us] (54.25%; 54.25%)
+            FoldConstant: 8148us [1620us] (54.21%; 99.93%)
+                    InferType: 6528us [6528us] (43.43%; 80.12%)
 
 
 
@@ -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: 6198us [6198us] (44.48%; 44.48%)
-    FoldScaleAxis: 7735us [5us] (55.52%; 55.52%)
-            FoldConstant: 7730us [1582us] (55.48%; 99.94%)
-                    InferType: 6149us [6149us] (44.13%; 79.54%)
+    InferType: 6589us [6589us] (44.80%; 44.80%)
+    FoldScaleAxis: 8118us [5us] (55.20%; 55.20%)
+            FoldConstant: 8112us [1658us] (55.16%; 99.94%)
+                    InferType: 6454us [6454us] (43.89%; 79.56%)
 
 
 
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 59162d87a..f59c8d2e8 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.131989 ms
+    Convolution: 51.575460 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 f1d68e1c5..6cec98369 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
@@ -628,7 +628,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 6.614921 ms
+    conv2d with tensor core: 10.396211 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 96680100a..10fd89416 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.018521
-    Baseline: 3.399815
+    Numpy running time: 0.019390
+    Baseline: 3.448056
 
 
 
@@ -210,7 +210,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.290889
+    Opt1: 0.317239
 
 
 
@@ -309,7 +309,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.331642
+    Opt2: 0.345401
 
 
 
@@ -401,7 +401,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.114744
+    Opt3: 0.120997
 
 
 
@@ -520,7 +520,7 @@ flattening.
 
  .. code-block:: none
 
-    Opt4: 0.109034
+    Opt4: 0.110805
 
 
 
@@ -638,7 +638,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.109441
+    Opt5: 0.111641
 
 
 
@@ -759,7 +759,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
 
  .. code-block:: none
 
-    Opt6: 0.142529
+    Opt6: 0.145231
 
 
 
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 2b5c3e2e4..d470fdd4f 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.606** total execution time for **how_to_optimize_operators** files:
+**00:35.774** total execution time for **how_to_optimize_operators** files:
 
-- **00:31.993**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
-- **00:01.390**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:01.223**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:32.978**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.532**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:01.264**: :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 67885dbfc..a29952ac5 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
 =================
-**05:16.718** total execution time for **how_to_tune_with_autoscheduler** files:
-
-- **02:32.299**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
-- **01:19.117**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
-- **00:42.185**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
-- **00:26.270**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
-- **00:08.595**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
-- **00:08.252**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)
+**05:11.887** total execution time for **how_to_tune_with_autoscheduler** files:
+
+- **02:32.057**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
+- **01:21.484**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
+- **00:43.568**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
+- **00:16.939**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
+- **00:08.956**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
+- **00:08.884**: :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 016405f6b..af07f288c 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
@@ -222,359 +222,78 @@ cooperative fetching, unrolling and operator fusion.
                  compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
       buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute}
       preflattened_buffer_map = {data_1: data_3: Buffer(data_2, float32, [1, 512, 7, 7], []), kernel_1: kernel_3: Buffer(kernel_2, float32, [512, 512, 3, 3], []), bias_1: bias_3: Buffer(bias_2, float32, [1, 512, 1, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [1, 512, 7, 7], [])} {
-      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 16;
-      allocate(conv2d_nchw: Pointer(local float32), float32, [14]), storage_scope = local;
-      allocate(pad_temp.shared: Pointer(shared float32), float32, [4032]), 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" = 112 {
-        conv2d_nchw_1: Buffer(conv2d_nchw, float32, [14], [], scope="local", align=32)[0] = 0f32
-        conv2d_nchw_1[7] = 0f32
+      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 56;
+      allocate(conv2d_nchw: Pointer(local float32), float32, [7]), storage_scope = local;
+      allocate(pad_temp.shared: Pointer(shared float32), float32, [84]), storage_scope = shared;
+      allocate(kernel.shared: Pointer(shared float32), float32, [768]), storage_scope = shared;
+      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64 {
+        conv2d_nchw_1: Buffer(conv2d_nchw, float32, [1], [], scope="local", align=4)[0] = 0f32
         conv2d_nchw_1[1] = 0f32
-        conv2d_nchw_1[8] = 0f32
         conv2d_nchw_1[2] = 0f32
-        conv2d_nchw_1[9] = 0f32
         conv2d_nchw_1[3] = 0f32
-        conv2d_nchw_1[10] = 0f32
         conv2d_nchw_1[4] = 0f32
-        conv2d_nchw_1[11] = 0f32
         conv2d_nchw_1[5] = 0f32
-        conv2d_nchw_1[12] = 0f32
         conv2d_nchw_1[6] = 0f32
-        conv2d_nchw_1[13] = 0f32
-        for (rc.outer.outer: int32, 0, 8) {
-          for (ry.outer.outer: int32, 0, 3) {
-            let cse_var_4: int32 = (rc.outer.outer*3136)
-            let cse_var_3: int32 = (ry.outer.outer*7)
-            let cse_var_2: int32 = (rc.outer.outer*576)
-            let cse_var_1: int32 = (ry.outer.outer*3)
+        for (rc.outer.outer: int32, 0, 128) {
+          for (rx.outer.outer: int32, 0, 3) {
+            let cse_var_1: int32 = (rc.outer.outer*36)
              {
-              attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1: Buffer(pad_temp.shared, float32, [4032], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 112)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 112), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 112), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 112), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 224)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 224), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 224), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 224), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 336)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 336), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 336), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 336), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 448)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 448), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 448), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 448), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 560)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 560), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 560), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 560), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 672)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 672), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 672), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 672), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 784), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 784), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 784), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 896)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 896), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 896), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 896), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1008)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) + 776)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1120)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1120), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1120), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1120), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1232)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1232), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1232), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1232), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1344)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1344), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1344), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1344), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1456)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1456), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1456), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1456), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1568), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1568), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1568), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1680)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1680), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1680), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1680), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1792)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1792), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1792), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1792), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 1904)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 1904), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 1904), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1904), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2016)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) + 1560)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2128)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2128), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2128), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2128), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2240)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2240), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2240), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2240), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2352)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2352), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2352), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2352), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2464)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2464), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2464), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2464), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2576)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2576), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2576), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2576), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2688)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2688), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2688), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2688), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2800)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2800), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2800), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2800), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 2912)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 2912), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 2912), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2912), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3024)] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) + 2344)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3136)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3136), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3136), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3136), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3248)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3248), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3248), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3248), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3360)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3360), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3360), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3360), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3472)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3472), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3472), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3472), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3584)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3584), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3584), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3584), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3696)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3696), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3696), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3696), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3808)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3808), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3808), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3808), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              pad_temp.shared_1[(threadIdx.x_1 + 3920)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 3920), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 3920), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3920), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-              attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1: Buffer(kernel.shared, float32, [6144], [], scope="shared")[threadIdx.x_2] = kernel[(((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 112)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 7), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 112), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 224)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 14), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 224), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 336)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 21), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 448)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 28), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 448), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 560)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 35), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 560), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 672)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 42), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 784)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 49), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 784), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 896)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 56), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 896), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1008)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 63), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1120)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 70), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1120), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1232)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 77), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1232), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1344)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 32256)]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1456)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 91), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1456), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1568)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 98), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1568), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1680)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 105), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1792)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 112), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1792), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 1904)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 119), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1904), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2016)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 126), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2128)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 133), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2128), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2240)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 140), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2240), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2352)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 147), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2464)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 154), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2464), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2576)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 161), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2576), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2688)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 64512)]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2800)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 175), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2800), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 2912)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 182), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2912), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3024)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 189), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3136)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 196), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3136), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3248)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 203), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3248), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3360)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 210), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3472)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 217), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3472), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3584)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 224), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3584), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3696)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 231), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3808)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 238), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3808), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 3920)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 245), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3920), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4032)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 96768)]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4144)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 259), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4144), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4256)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 266), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4256), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4368)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 273), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4480)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 280), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4480), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4592)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 287), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4592), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4704)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 294), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4816)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 301), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4816), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 4928)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 308), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4928), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5040)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 315), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5152)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 322), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5152), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5264)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 329), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5264), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5376)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 129024)]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5488)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 343), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5488), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5600)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 350), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5600), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5712)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 357), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5824)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 364), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5824), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              kernel.shared_1[(threadIdx.x_2 + 5936)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 371), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5936), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 112;
-              if @tir.likely((threadIdx.x_2 < 96), dtype=bool) {
-                kernel.shared_1[(threadIdx.x_2 + 6048)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 378), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+              attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64 {
+                if @tir.likely((threadIdx.x_1 < 42), dtype=bool) {
+                  pad_temp.shared_1: Buffer(pad_temp.shared, float32, [84], [], scope="shared")[(threadIdx.x_1*2)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1*2), 21), 7) + floormod(blockIdx.x, 7))) && ((floordiv(floormod((threadIdx.x_1*2), 21), 7) + floormod(blockIdx.x, 7)) < 8)) && (1 <= (rx.outer.outer + floormod((threadIdx.x_1*2), 7)))) && ((rx.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((((rc.outer.outer*196) + (floordiv((threadIdx.x_1*2), 21)*49) [...]
+                }
+                if @tir.likely((threadIdx.x_1 < 42), dtype=bool) {
+                  pad_temp.shared_1[((threadIdx.x_1*2) + 1)] = @tir.if_then_else(((((1 <= (floordiv(floormod(((threadIdx.x_1*2) + 1), 21), 7) + floormod(blockIdx.x, 7))) && ((floordiv(floormod(((threadIdx.x_1*2) + 1), 21), 7) + floormod(blockIdx.x, 7)) < 8)) && (1 <= (rx.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)))) && ((rx.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((((rc.outer.outer*196) + (floordiv(((threadIdx.x_1*2) + 1), 21)*49)) + (floormod(blockIdx.x [...]
+                }
               }
-              for (rx.outer.inner: int32, 0, 3) {
-                for (xx.outer.inner: int32, 0, 7) {
-                  let cse_var_5: int32 = (xx.outer.inner + 7)
+              attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1: Buffer(kernel.shared, float32, [768], [], scope="shared")[threadIdx.x_2] = kernel[(((((floordiv(blockIdx.x, 7)*294912) + (floordiv(threadIdx.x_2, 12)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 64)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 16), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 4), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 128)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 32), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 8), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 192)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv(floordiv(threadIdx.x_2, 4), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer) + 73728)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 256)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 64), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 16), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 320)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 80), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 20), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 384)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv(floordiv(threadIdx.x_2, 4), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer) + 147456)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 448)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 112), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 28), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 512)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 128), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 32), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 576)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv(floordiv(threadIdx.x_2, 4), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer) + 221184)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 640)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 160), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 40), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 64;
+              kernel.shared_1[(threadIdx.x_2 + 704)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 176), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 44), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+              for (rc.inner: int32, 0, 4) {
+                for (ry.inner: int32, 0, 3) {
+                  let cse_var_2: int32 = ((rc.inner*21) + (ry.inner*7))
                    {
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[(((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*384) + rx.outer.inner)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[(((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 192)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 63)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 3)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 63)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 195)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 126)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 6)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 126)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 198)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 189)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 9)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 189)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 201)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 252)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 12)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 252)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 204)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 315)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 15)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 315)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 207)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 378)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 18)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 378)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 210)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 441)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 21)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 441)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 213)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 504)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 24)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 504)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 216)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 567)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 27)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 567)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 219)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 630)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 30)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 630)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 222)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 693)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 33)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 693)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 225)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 756)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 36)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 756)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 228)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 819)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 39)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 819)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 231)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 882)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 42)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 882)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 234)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 945)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 45)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 945)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 237)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1008)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 48)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1008)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 240)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1071)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 51)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1071)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 243)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1134)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 54)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1134)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 246)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1197)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 57)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1197)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 249)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1260)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 60)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1260)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 252)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1323)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 63)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1323)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 255)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1386)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 66)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1386)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 258)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1449)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 69)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1449)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 261)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1512)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 72)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1512)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 264)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1575)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 75)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1575)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 267)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1638)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 78)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1638)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 270)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1701)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 81)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1701)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 273)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1764)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 84)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1764)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 276)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1827)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 87)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1827)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 279)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1890)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 90)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1890)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 282)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1953)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 93)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1953)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 285)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2016)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 96)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2016)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 288)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2079)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 99)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2079)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 291)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2142)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 102)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2142)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 294)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2205)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 105)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2205)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 297)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2268)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 108)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2268)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 300)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2331)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 111)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2331)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 303)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2394)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 114)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2394)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 306)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2457)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 117)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2457)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 309)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2520)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 120)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2520)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 312)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2583)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 123)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2583)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 315)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2646)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 126)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2646)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 318)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2709)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 129)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2709)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 321)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2772)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 132)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2772)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 324)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2835)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 135)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2835)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 327)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2898)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 138)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2898)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 330)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2961)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 141)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2961)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 333)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3024)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 144)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3024)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 336)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3087)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 147)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3087)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 339)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3150)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 150)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3150)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 342)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3213)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 153)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3213)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 345)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3276)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 156)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3276)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 348)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3339)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 159)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3339)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 351)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3402)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 162)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3402)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 354)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3465)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 165)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3465)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 357)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3528)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 168)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3528)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 360)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3591)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 171)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3591)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 363)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3654)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 174)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3654)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 366)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3717)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 177)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3717)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 369)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3780)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 180)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3780)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 372)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3843)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 183)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3843)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 375)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3906)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 186)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3906)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 378)]))
-                    conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3969)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 189)]))
-                    conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3969)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 381)]))
+                    conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[cse_var_2]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                    conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(cse_var_2 + 1)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                    conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(cse_var_2 + 2)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                    conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(cse_var_2 + 3)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                    conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(cse_var_2 + 4)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                    conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(cse_var_2 + 5)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                    conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(cse_var_2 + 6)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
                   }
                 }
               }
             }
           }
         }
-        for (i1.inner: int32, 0, 2) {
-          for (i3.inner: int32, 0, 7) {
-            compute[(((((blockIdx.x*1568) + (floordiv(threadIdx.x, 7)*98)) + (i1.inner*49)) + (floormod(threadIdx.x, 7)*7)) + i3.inner)] = max((conv2d_nchw_1[((i1.inner*7) + i3.inner)] + bias[(((blockIdx.x*32) + (floordiv(threadIdx.x, 7)*2)) + i1.inner)]), 0f32)
-          }
-        }
+        compute[(((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7))] = max((conv2d_nchw_1[0] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+        compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 1)] = max((conv2d_nchw_1[1] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+        compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 2)] = max((conv2d_nchw_1[2] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+        compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 3)] = max((conv2d_nchw_1[3] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+        compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 4)] = max((conv2d_nchw_1[4] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+        compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 5)] = max((conv2d_nchw_1[5] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+        compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 6)] = max((conv2d_nchw_1[6] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
       }
     }
 
@@ -626,7 +345,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.373 ms
+    Execution time of this operator: 0.383 ms
 
 
 
@@ -670,37 +389,37 @@ 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=2)
+    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=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=16)
+    conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=64)
     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_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=7)
+    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=1)
-    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=64)
+    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=7)
+    conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=4)
     conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=1)
-    conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
+    conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=3)
     conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
     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=3)
+    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=2)
-    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=16)
+    compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
+    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=64)
     compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
     compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
-    compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
+    compute_i2_o_o_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=7)
+    compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
     compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
-    compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
+    compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=7)
     s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
     s[conv2d_nchw].compute_at(s[compute], compute_i3_o_i)
     kernel_shared = s.cache_read(kernel, "shared", [conv2d_nchw])
@@ -719,14 +438,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=112)
+    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=64)
     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)
+    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=2)
     s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=112)
+    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=64)
     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", 512)
+    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, "unroll_explicit", True)
 
     CUDA source code:
@@ -744,260 +463,59 @@ 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__(112) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
-      float conv2d_nchw[14];
-      __shared__ float pad_temp_shared[4032];
-      __shared__ float kernel_shared[6144];
+    extern "C" __global__ void __launch_bounds__(64) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+      float conv2d_nchw[7];
+      __shared__ float pad_temp_shared[84];
+      __shared__ float kernel_shared[768];
       conv2d_nchw[0] = 0.000000e+00f;
-      conv2d_nchw[7] = 0.000000e+00f;
       conv2d_nchw[1] = 0.000000e+00f;
-      conv2d_nchw[8] = 0.000000e+00f;
       conv2d_nchw[2] = 0.000000e+00f;
-      conv2d_nchw[9] = 0.000000e+00f;
       conv2d_nchw[3] = 0.000000e+00f;
-      conv2d_nchw[10] = 0.000000e+00f;
       conv2d_nchw[4] = 0.000000e+00f;
-      conv2d_nchw[11] = 0.000000e+00f;
       conv2d_nchw[5] = 0.000000e+00f;
-      conv2d_nchw[12] = 0.000000e+00f;
       conv2d_nchw[6] = 0.000000e+00f;
-      conv2d_nchw[13] = 0.000000e+00f;
-      for (int rc_outer_outer = 0; rc_outer_outer < 8; ++rc_outer_outer) {
-        for (int ry_outer_outer = 0; ry_outer_outer < 3; ++ry_outer_outer) {
+      for (int rc_outer_outer = 0; rc_outer_outer < 128; ++rc_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) % 63) / 9) + ry_outer_outer)) && ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 112)] = (((((1 <= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 112) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 224)] = (((((1 <= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 224) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 336)] = (((((1 <= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 336) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 448)] = (((((1 <= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 448) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 560)] = (((((1 <= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 560) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 672)] = (((((1 <= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 672) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((1 <= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 784) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 896)] = (((((1 <= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 896) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1008)] = (((((1 <= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) && ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) + 776)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1120)] = (((((1 <= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1120) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1232)] = (((((1 <= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1232) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1344)] = (((((1 <= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1344) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1456)] = (((((1 <= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1456) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((1 <= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1568) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1680)] = (((((1 <= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1680) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1792)] = (((((1 <= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1792) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 1904)] = (((((1 <= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1904) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2016)] = (((((1 <= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) && ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) + 1560)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2128)] = (((((1 <= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2128) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2240)] = (((((1 <= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2240) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2352)] = (((((1 <= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2352) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2464)] = (((((1 <= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2464) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2576)] = (((((1 <= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2576) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2688)] = (((((1 <= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2688) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2800)] = (((((1 <= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2800) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 2912)] = (((((1 <= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2912) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3024)] = (((((1 <= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) && ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) + 2344)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3136)] = (((((1 <= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3136) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3248)] = (((((1 <= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3248) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3360)] = (((((1 <= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3360) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3472)] = (((((1 <= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3472) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3584)] = (((((1 <= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3584) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3696)] = (((((1 <= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3696) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3808)] = (((((1 <= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3808) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-          pad_temp_shared[(((int)threadIdx.x) + 3920)] = (((((1 <= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) && (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3920) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-          kernel_shared[((int)threadIdx.x)] = kernel[(((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 112)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 112) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 224)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 224) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 336)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 336) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 448)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 448) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 560)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 560) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 672)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 672) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 784)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 784) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 896)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 896) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1008)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1008) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1120)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1120) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1232)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1232) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1344)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 32256)];
-          kernel_shared[(((int)threadIdx.x) + 1456)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1456) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1568)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1568) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1680)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1680) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1792)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1792) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 1904)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1904) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2016)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2016) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2128)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2128) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2240)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2240) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2352)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2352) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2464)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2464) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2576)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2576) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2688)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 64512)];
-          kernel_shared[(((int)threadIdx.x) + 2800)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2800) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 2912)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2912) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3024)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3024) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3136)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3136) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3248)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3248) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3360)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3360) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3472)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3472) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3584)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3584) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3696)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3696) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3808)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3808) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 3920)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3920) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4032)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 96768)];
-          kernel_shared[(((int)threadIdx.x) + 4144)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4144) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4256)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4256) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4368)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4368) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4480)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4480) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4592)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4592) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4704)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4704) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4816)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4816) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 4928)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4928) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5040)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5040) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5152)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5152) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5264)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5264) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5376)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 129024)];
-          kernel_shared[(((int)threadIdx.x) + 5488)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5488) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5600)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5600) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5712)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5712) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) & 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5824)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5824) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-          kernel_shared[(((int)threadIdx.x) + 5936)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5936) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-          if (((int)threadIdx.x) < 96) {
-            kernel_shared[(((int)threadIdx.x) + 6048)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 6048) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 32) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
+          if (((int)threadIdx.x) < 42) {
+            pad_temp_shared[(((int)threadIdx.x) * 2)] = (((((1 <= ((((((int)threadIdx.x) * 2) % 21) / 7) + (((int)blockIdx.x) % 7))) && (((((((int)threadIdx.x) * 2) % 21) / 7) + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (rx_outer_outer + ((((int)threadIdx.x) * 2) % 7)))) && ((rx_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((((rc_outer_outer * 196) + (((((int)threadIdx.x) * 2) / 21) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + rx_outer_outer) + ((((int)threadIdx.x) * 2) % 21)) [...]
           }
+          if (((int)threadIdx.x) < 42) {
+            pad_temp_shared[((((int)threadIdx.x) * 2) + 1)] = (((((1 <= (((((((int)threadIdx.x) * 2) + 1) % 21) / 7) + (((int)blockIdx.x) % 7))) && ((((((((int)threadIdx.x) * 2) + 1) % 21) / 7) + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (rx_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)))) && ((rx_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((((rc_outer_outer * 196) + ((((((int)threadIdx.x) * 2) + 1) / 21) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + rx_outer_outer [...]
+          }
+          kernel_shared[((int)threadIdx.x)] = kernel[((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 64)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 64) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 128)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 128) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 192)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer) + 73728)];
+          kernel_shared[(((int)threadIdx.x) + 256)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 256) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 320)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 320) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 384)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer) + 147456)];
+          kernel_shared[(((int)threadIdx.x) + 448)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 448) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 512)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 512) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 576)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer) + 221184)];
+          kernel_shared[(((int)threadIdx.x) + 640)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 640) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+          kernel_shared[(((int)threadIdx.x) + 704)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 704) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
           __syncthreads();
-          for (int rx_outer_inner = 0; rx_outer_inner < 3; ++rx_outer_inner) {
-            for (int xx_outer_inner = 0; xx_outer_inner < 7; ++xx_outer_inner) {
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner)] * kernel_shared[(((((int)threadIdx.x) / 7) * 384) + rx_outer_inner)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 192)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 63)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 3)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 63)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 195)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 126)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 6)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 126)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 198)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 189)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 9)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 189)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 201)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 252)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 12)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 252)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 204)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 315)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 15)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 315)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 207)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 378)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 18)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 378)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 210)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 441)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 21)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 441)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 213)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 504)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 24)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 504)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 216)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 567)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 27)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 567)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 219)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 630)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 30)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 630)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 222)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 693)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 33)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 693)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 225)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 756)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 36)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 756)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 228)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 819)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 39)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 819)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 231)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 882)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 42)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 882)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 234)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 945)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 45)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 945)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 237)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1008)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 48)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1008)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 240)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1071)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 51)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1071)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 243)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1134)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 54)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1134)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 246)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1197)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 57)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1197)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 249)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1260)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 60)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1260)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 252)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1323)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 63)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1323)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 255)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1386)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 66)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1386)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 258)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1449)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 69)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1449)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 261)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1512)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 72)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1512)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 264)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1575)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 75)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1575)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 267)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1638)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 78)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1638)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 270)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1701)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 81)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1701)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 273)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1764)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 84)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1764)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 276)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1827)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 87)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1827)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 279)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1890)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 90)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1890)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 282)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1953)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 93)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1953)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 285)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2016)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 96)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2016)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 288)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2079)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 99)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2079)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 291)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2142)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 102)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2142)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 294)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2205)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 105)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2205)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 297)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2268)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 108)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2268)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 300)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2331)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 111)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2331)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 303)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2394)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 114)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2394)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 306)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2457)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 117)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2457)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 309)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2520)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 120)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2520)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 312)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2583)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 123)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2583)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 315)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2646)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 126)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2646)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 318)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2709)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 129)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2709)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 321)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2772)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 132)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2772)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 324)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2835)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 135)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2835)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 327)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2898)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 138)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2898)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 330)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2961)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 141)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2961)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 333)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3024)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 144)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3024)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 336)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3087)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 147)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3087)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 339)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3150)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 150)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3150)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 342)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3213)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 153)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3213)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 345)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3276)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 156)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3276)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 348)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3339)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 159)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3339)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 351)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3402)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 162)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3402)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 354)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3465)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 165)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3465)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 357)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3528)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 168)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3528)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 360)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3591)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 171)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3591)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 363)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3654)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 174)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3654)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 366)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3717)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 177)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3717)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 369)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3780)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 180)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3780)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 372)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3843)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 183)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3843)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 375)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3906)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 186)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3906)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 378)]));
-              conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3969)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 189)]));
-              conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3969)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 381)]));
+          for (int rc_inner = 0; rc_inner < 4; ++rc_inner) {
+            for (int ry_inner = 0; ry_inner < 3; ++ry_inner) {
+              conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((rc_inner * 21) + (ry_inner * 7))] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+              conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 1)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+              conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 2)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+              conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 3)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+              conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 4)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+              conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 5)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+              conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 6)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
             }
           }
         }
       }
-      for (int i1_inner = 0; i1_inner < 2; ++i1_inner) {
-        for (int i3_inner = 0; i3_inner < 7; ++i3_inner) {
-          compute[(((((((int)blockIdx.x) * 1568) + ((((int)threadIdx.x) / 7) * 98)) + (i1_inner * 49)) + ((((int)threadIdx.x) % 7) * 7)) + i3_inner)] = max((conv2d_nchw[((i1_inner * 7) + i3_inner)] + bias[(((((int)blockIdx.x) * 32) + ((((int)threadIdx.x) / 7) * 2)) + i1_inner)]), 0.000000e+00f);
-        }
-      }
+      compute[((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7))] = max((conv2d_nchw[0] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+      compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 1)] = max((conv2d_nchw[1] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+      compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 2)] = max((conv2d_nchw[2] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+      compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 3)] = max((conv2d_nchw[3] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+      compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 4)] = max((conv2d_nchw[4] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+      compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 5)] = max((conv2d_nchw[5] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+      compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 6)] = max((conv2d_nchw[6] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
     }
 
 
@@ -1055,7 +573,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  32.299 seconds)
+   **Total running time of the script:** ( 2 minutes  32.057 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 3d8a54ef9..6cc0d8590 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
@@ -616,7 +616,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.9812       9.9720      10.0057       9.9658       0.0175   
+      10.0095      10.0044      10.0492       9.9750       0.0305   
                
 
 
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 9cfea0687..593e4f854 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
@@ -635,7 +635,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)  
-      748.7067     748.2991     750.5136     747.3074      1.3403   
+      769.7185     769.6068     770.5845     768.9642      0.6662   
                
 
 
@@ -660,7 +660,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  19.117 seconds)
+   **Total running time of the script:** ( 1 minutes  21.484 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 806b8d170..3f815893f 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,30 +362,32 @@ 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}
-      preflattened_buffer_map = {placeholder_9: placeholder_15: Buffer(placeholder_14, float32, [128, 512], []), placeholder_7: placeholder_16: Buffer(placeholder_12, int32, [4916], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_8: placeholder_18: Buffer(placeholder_13, int32, [33], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_5: placeholder_19: Buffer(placeholder_10, float32, [128, 256], [])} {
-      for (i0.outer.i1.outer.fused: int32, 0, 256) "parallel" {
-        allocate(compute_4: Pointer(global float32), float32, [512]), storage_scope = global {
-          for (i.outer.inner: int32, 0, 4) {
-            for (i.inner.init: int32, 0, 8) {
-              for (j.init: int32, 0, 16) {
-                compute_5: Buffer(compute_4, float32, [512], [])[(((i.outer.inner*128) + (i.inner.init*16)) + j.init)] = 0f32
+      preflattened_buffer_map = {placeholder_9: placeholder_15: Buffer(placeholder_14, float32, [128, 512], []), placeholder_5: placeholder_16: Buffer(placeholder_10, float32, [128, 256], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_7: placeholder_18: Buffer(placeholder_12, int32, [4916], []), placeholder_8: placeholder_19: Buffer(placeholder_13, int32, [33], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], [])} {
+      for (i0.outer.i1.outer.fused: int32, 0, 32) "parallel" {
+        allocate(compute_4: Pointer(global float32), float32, [2048]), storage_scope = global {
+          for (i.outer.inner: int32, 0, 2) {
+            for (nb_j.inner: int32, 0, 2) {
+              for (i.inner.init: int32, 0, 32) {
+                for (j.init: int32, 0, 16) {
+                  compute_5: Buffer(compute_4, float32, [2048], [])[((((i.outer.inner*1024) + (i.inner.init*32)) + (nb_j.inner*16)) + j.init)] = 0f32
+                }
               }
-            }
-            for (elem_idx: int32, 0, let cse_var_1: int32 = floordiv(floormod(i0.outer.i1.outer.fused, 64), 2) 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 = floordiv(floormod(i0.outer.i1.outer.fused, 64), 2)
-                  let cse_var_2: int32 = (((i.outer.inner*128) + (i.inner*16)) + j)
-                  compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[((((floordiv(i0.outer.i1.outer.fused, 64)*8192) + (i.outer.inner*2048)) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
+              for (elem_idx: int32, 0, let cse_var_1: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
+                for (i.inner: int32, 0, 32) {
+                  for (j: int32, 0, 16) {
+                    let cse_var_3: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+                    let cse_var_2: int32 = ((((i.outer.inner*1024) + (i.inner*32)) + (nb_j.inner*16)) + j)
+                    compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[((((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*8192)) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
+                  }
                 }
               }
             }
           }
-          for (i0.inner: int32, 0, 32) {
-            let cse_var_5: int32 = floormod(i0.outer.i1.outer.fused, 64)
-            let cse_var_6: int32 = (cse_var_5*8)
-            let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 64)*16384) + (i0.inner*512)) + cse_var_6)
-            compute[ramp(cse_var_4, 1, 8)] = max((compute_5[ramp((((i0.inner*16) + cse_var_6) - (floordiv(cse_var_5, 2)*16)), 1, 8)] + placeholder_4[ramp(cse_var_4, 1, 8)]), broadcast(0f32, 8))
+          for (i0.inner: int32, 0, 64) {
+            for (i1.inner: int32, 0, 32) {
+              let cse_var_4: int32 = ((((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32)) + i1.inner)
+              compute[cse_var_4] = max((compute_5[((i0.inner*32) + i1.inner)] + placeholder_4[cse_var_4]), 0f32)
+            }
           }
         }
       }
@@ -439,7 +441,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 3.013 ms
+    Execution time of this operator: 1.656 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 b13167e6c..ca42a1ac5 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.633** total execution time for **how_to_tune_with_autotvm** files:
+**00:45.406** total execution time for **how_to_tune_with_autotvm** files:
 
-- **00:43.803**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.216**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.213**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
-- **00:00.201**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.200**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:44.480**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.243**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.229**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:00.227**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:00.226**: :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 3b376e737..e2dbaf1f0 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: 92.34/92.34     result: MeasureResult(costs=(0.0025069530416666668,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.607266902923584, timestamp=1654534569.8616302)       [('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/92.34      result: Traceback (most recent call last):
+    No: 6   GFLOPS: 93.25/93.25     result: MeasureResult(costs=(0.002482552083333333,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6437036991119385, timestamp=1654592794.6007924)       [('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/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 8   GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 9   GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 10  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 11  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 12  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 13  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 14  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 15  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 16  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 17  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 18  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+    No: 19  GFLOPS: 0.00/93.25      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: 0x00007f12b294cfa2
+      12: 0x00007fc885257fa2
       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.88/144.88   result: MeasureResult(costs=(0.00159785495,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4223277568817139, timestamp=1654534596.2005908)      [('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: 143.47/143.47   result: MeasureResult(costs=(0.0016135417399999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3977861404418945, timestamp=1654592821.1712134)      [('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.001968
+    Time cost of this operator: 0.002017
 
 
 
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 f9a921271..7d22275b0 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
@@ -294,10 +294,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  308.6     98.74    (1, 2, 10, 10, 3)  2       1        
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.026     0.968    (1, 6, 10, 10)     1       1        
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.913     0.292    (1, 1, 10, 10, 3)  1       1        
-    Total_time                                    -                                             312.539   -        -                  -       -        
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  314.3     98.745   (1, 2, 10, 10, 3)  2       1        
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.073     0.965    (1, 6, 10, 10)     1       1        
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.921     0.289    (1, 1, 10, 10, 3)  1       1        
+    Total_time                                    -                                             318.294   -        -                  -       -        
 
 
 
@@ -359,10 +359,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  78.65     96.621   (1, 6, 10, 10, 1)  2       1        
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.825     2.242    (1, 6, 10, 10)     1       1        
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.926     1.137    (1, 1, 10, 10, 3)  1       1        
-    Total_time                                    -                                             81.401    -        -                  -       -        
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  190.4     98.416   (1, 1, 10, 10, 6)  2       1        
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       2.1       1.085    (1, 6, 10, 10)     1       1        
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.964     0.499    (1, 3, 10, 10, 1)  1       1        
+    Total_time                                    -                                             193.464   -        -                  -       -        
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
index 03c7893f1..dca87607e 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
@@ -297,8 +297,8 @@ objects to other stuff? We can display some examples from our datasets using ``m
 
  .. code-block:: none
 
-    /tmp/tmp1lta35dh/images/target contains 8144 images
-    /tmp/tmp1lta35dh/images/random contains 5000 images
+    /tmp/tmpy4bdfu_a/images/target contains 8144 images
+    /tmp/tmpy4bdfu_a/images/random contains 5000 images
 
 
 
@@ -459,11 +459,11 @@ the time on our validation set).
  .. code-block:: none
 
     Epoch 1/3
-    328/328 - 53s - loss: 0.2230 - accuracy: 0.9233 - val_loss: 0.1561 - val_accuracy: 0.9566
+    328/328 - 54s - loss: 0.2123 - accuracy: 0.9228 - val_loss: 0.1276 - val_accuracy: 0.9603
     Epoch 2/3
-    328/328 - 51s - loss: 0.1036 - accuracy: 0.9618 - val_loss: 0.1126 - val_accuracy: 0.9637
+    328/328 - 52s - loss: 0.1009 - accuracy: 0.9640 - val_loss: 0.1362 - val_accuracy: 0.9603
     Epoch 3/3
-    328/328 - 51s - loss: 0.0630 - accuracy: 0.9757 - val_loss: 0.1042 - val_accuracy: 0.9664
+    328/328 - 52s - loss: 0.0695 - accuracy: 0.9728 - val_loss: 0.1461 - val_accuracy: 0.9573
 
 
 
@@ -825,7 +825,7 @@ Arduino tutorial for how to do that `on GitHub <https://github.com/guberti/tvm-a
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 4 minutes  29.896 seconds)
+   **Total running time of the script:** ( 4 minutes  36.088 seconds)
 
 
 .. _sphx_glr_download_how_to_work_with_microtvm_micro_train.py:
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 c264ece0d..78eee722c 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,11 +5,11 @@
 
 Computation times
 =================
-**05:15.036** total execution time for **how_to_work_with_microtvm** files:
-
-- **04:29.896**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)
-- **00:40.961**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
-- **00:03.572**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
-- **00:00.206**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tvmc.py` (``micro_tvmc.py``)
-- **00:00.201**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
-- **00:00.201**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)
+**05:23.790** total execution time for **how_to_work_with_microtvm** files:
+
+- **04:36.088**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)
+- **00:43.346**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
+- **00:03.732**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
+- **00:00.210**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tvmc.py` (``micro_tvmc.py``)
+- **00:00.208**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
+- **00:00.206**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.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 f77b2873d..a0eef18b0 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:11.872** total execution time for **how_to_work_with_relay** files:
+**00:12.465** total execution time for **how_to_work_with_relay** files:
 
-- **00:09.955**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
-- **00:01.702**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
-- **00:00.214**: :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)
+- **00:10.112**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
+- **00:02.125**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
+- **00:00.228**: :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 1ca887c3f..63f2cc066 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.641** total execution time for **how_to_work_with_schedules** files:
+**00:05.963** total execution time for **how_to_work_with_schedules** files:
 
-- **00:02.083**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
-- **00:01.173**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
-- **00:00.722**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
-- **00:00.697**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
-- **00:00.310**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
-- **00:00.230**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.215**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
-- **00:00.211**: :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:02.189**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
+- **00:01.207**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
+- **00:00.766**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
+- **00:00.748**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
+- **00:00.319**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
+- **00:00.252**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.248**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
+- **00:00.234**: :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 b62310c5c..d7f356eac 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -318,7 +318,7 @@ The importing needs to happen before the tensorized GEMV being executed.
                  C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C}
       preflattened_buffer_map = {A_1: A_3: Buffer(A_2, float32, [1024, 64], []), B_1: B_3: Buffer(B_2, float32, [512, 64], []), C_1: C_3: Buffer(C_2, float32, [1024, 512], [])} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpx0612196/input0.cc'\nsource_filename = \"/tmp/tmpx0612196/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca floa [...]
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpvvh2m_cg/input0.cc'\nsource_filename = \"/tmp/tmpvvh2m_cg/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca floa [...]
       for (i, 0, 1024) {
         for (j.outer: int32, 0, 32) {
           @tir.call_extern("gemv_update", @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
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 f6d84681a..255a856d1 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:20.191** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:21.532** total execution time for **topic_vta_tutorials_autotvm** files:
 
-- **00:20.004**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
-- **00:00.187**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)
+- **00:21.313**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:00.218**: :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 19268952b..b14be8b49 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -267,7 +267,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.60s!
+    resnet18_v1 inference graph built in 22.94s!
 
 
 
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 25b1040f8..efb6f3e7d 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -303,7 +303,7 @@ The compilation steps are:
       "target_host parameter is going to be deprecated. "
     /workspace/python/tvm/relay/build_module.py:389: 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.91s!
+    yolov3-tiny inference graph built in 16.05s!
 
 
 
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 b4ea7b22e..0fa62961c 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:28.529** total execution time for **topic_vta_tutorials_frontend** files:
+**01:31.860** total execution time for **topic_vta_tutorials_frontend** files:
 
-- **00:46.641**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:41.888**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:48.505**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:43.355**: :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 2fdd28111..cb349e279 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.532** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.613** total execution time for **topic_vta_tutorials_optimize** files:
 
-- **00:02.969**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.564**: :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:02.998**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.615**: :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 dc0c159b1..07f4a3ad4 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:01.056** total execution time for **topic_vta_tutorials** files:
+**00:01.170** total execution time for **topic_vta_tutorials** files:
 
-- **00:00.539**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.517**: :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.598**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.572**: :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 1ff305227..e9a472def 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -184,8 +184,8 @@ trials, we can load the best schedule from the log file and apply it.
 
  .. code-block:: none
 
-
-
+    *E
+    *E
 
 
 
@@ -306,7 +306,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 91.693 ms
+    Execution time of this operator: 93.803 ms
 
 
 
@@ -402,7 +402,7 @@ resume the status and do more 5 trials.
     Resume search:
     /usr/local/lib/python3.7/dist-packages/xgboost/training.py:17: UserWarning: Old style callback is deprecated.  See: https://xgboost.readthedocs.io/en/latest/python/callbacks.html
       warnings.warn(f'Old style callback is deprecated.  See: {link}', UserWarning)
-
+    .T
 
 
 
@@ -415,6 +415,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  17.200 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 72053ca3c..0b5127deb 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -280,7 +280,7 @@ standard deviation.
 
  .. code-block:: none
 
-    {'mean': 485.34359255000254, 'median': 485.3246965500034, 'std': 1.1821005350493337}
+    {'mean': 495.57246422999015, 'median': 495.29582899999696, 'std': 0.6631744310948293}
 
 
 
@@ -494,31 +494,31 @@ the tuning data to.
 
  .. code-block:: none
 
-
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:   17.74/  17.74 GFLOPS | Progress: (4/20) | 5.91 s
    [Task  1/25]  Current/Best:    6.26/  17.74 GFLOPS | Progress: (8/20) | 8.81 s
    [Task  1/25]  Current/Best:   11.30/  23.14 GFLOPS | Progress: (12/20) | 11.22 s
    [Task  1/25]  Current/Best:   17.12/  23.21 GFLOPS | Progress: (16/20) | 12.87 s
    [Task  1/25]  Current/Best:   11.80/  24.24 GFLOPS | Progress: (20/20) | 14.57 s Done.
-
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   12.51/  13.37 GFLOPS | Progress: (4/20) | 3.83 s
    [Task  2/25]  Current/Best:   14.35/  17.01 GFLOPS | Progress: (8/20) | 5.11 s
    [Task  2/25]  Current/Best:   21.47/  21.47 GFLOPS | Progress: (12/20) | 6.43 s
    [Task  2/25]  Current/Best:   13.04/  21.47 GFLOPS | Progress: (16/20) | 7.70 s
    [Task  2/25]  Current/Best:   20.13/  21.47 GFLOPS | Progress: (20/20) | 9.28 s Done.
-
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:    1.65/  10.68 GFLOPS | Progress: (4/20) | 5.71 s
    [Task  3/25]  Current/Best:   15.84/  17.19 GFLOPS | Progress: (8/20) | 7.61 s
    [Task  3/25]  Current/Best:   15.15/  17.19 GFLOPS | Progress: (12/20) | 9.29 s
    [Task  3/25]  Current/Best:    7.33/  24.00 GFLOPS | Progress: (16/20) | 11.20 s
    [Task  3/25]  Current/Best:   12.43/  24.00 GFLOPS | Progress: (20/20) | 15.71 s Done.
-
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:    9.61/  20.60 GFLOPS | Progress: (4/20) | 2.31 s
    [Task  4/25]  Current/Best:    6.97/  20.60 GFLOPS | Progress: (8/20) | 6.92 s
    [Task  4/25]  Current/Best:   22.84/  22.84 GFLOPS | Progress: (12/20) | 11.80 s
    [Task  4/25]  Current/Best:   17.73/  22.84 GFLOPS | Progress: (16/20) | 14.20 s
    [Task  4/25]  Current/Best:   13.68/  22.84 GFLOPS | Progress: (20/20) | 16.20 s Done.
-
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:    9.67/  10.42 GFLOPS | Progress: (4/20) | 2.48 s
    [Task  5/25]  Current/Best:   11.34/  12.95 GFLOPS | Progress: (8/20) | 4.54 s
    [Task  5/25]  Current/Best:   11.88/  18.39 GFLOPS | Progress: (12/20) | 7.71 s
    [Task  5/25]  Current/Best:   11.85/  22.94 GFLOPS | Progress: (16/20) | 9.10 s
    [Task  5/25]  Current/Best:   12.22/  22.94 GFLOPS | Progress: (20/20) | 10.97 s Done.
-
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:   12.31/  21.16 GFLOPS | Progress: (4/20) | 3.99 s
    [Task  6/25]  Current/Best:   19.28/  21.16 GFLOPS | Progress: (8/20) | 5.73 s
    [Task  6/25]  Current/Best:   13.50/  21.16 GFLOPS | Progress: (12/20) | 7.65 s
    [Task  6/25]  Current/Best:   20.41/  21.16 GFLOPS | Progress: (16/20) | 9.87 s
    [Task  6/25]  Current/Best:    3.77/  21.16 GFLOPS | Progress: (20/20) | 12.33 s Done.
-
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:   11.43/  12.38 GFLOPS | Progress: (4/20) | 3.52 s
    [Task  7/25]  Current/Best:   20.53/  21.27 GFLOPS | Progress: (8/20) | 5.02 s
    [Task  7/25]  Current/Best:   15.97/  21.27 GFLOPS | Progress: (12/20) | 6.89 s
    [Task  7/25]  Current/Best:   12.45/  21.27 GFLOPS | Progress: (16/20) | 8.91 s
    [Task  7/25]  Current/Best:    6.35/  21.90 GFLOPS | Progress: (20/20) | 11.32 s Done.
-
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:    9.75/  14.13 GFLOPS | Progress: (4/20) | 2.80 s
    [Task  8/25]  Current/Best:    9.30/  14.13 GFLOPS | Progress: (8/20) | 7.86 s
    [Task  8/25]  Current/Best:   12.74/  14.13 GFLOPS | Progress: (12/20) | 14.26 s
    [Task  8/25]  Current/Best:   19.11/  19.11 GFLOPS | Progress: (16/20) | 16.34 s
    [Task  8/25]  Current/Best:   20.11/  20.11 GFLOPS | Progress: (20/20) | 23.29 s Done.
-
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:   14.52/  15.98 GFLOPS | Progress: (4/20) | 11.88 s
    [Task  9/25]  Current/Best:   23.76/  23.76 GFLOPS | Progress: (8/20) | 13.54 s
    [Task  9/25]  Current/Best:    8.40/  23.76 GFLOPS | Progress: (12/20) | 16.03 s
    [Task  9/25]  Current/Best:   18.07/  23.76 GFLOPS | Progress: (16/20) | 18.81 s
    [Task  9/25]  Current/Best:    9.22/  23.76 GFLOPS | Progress: (20/20) | 27.30 s
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   18.46/  18.46 GFLOPS | Progress: (4/20) | 2.46 s
    [Task 10/25]  Current/Best:   15.74/  18.46 GFLOPS | Progress: (8/20) | 4.07 s
    [Task 10/25]  Current/Best:   12.56/  19.21 GFLOPS | Progress: (12/20) | 5.59 s
    [Task 10/25]  Current/Best:   19.19/  20.58 GFLOPS | Progress: (16/20) | 6.68 s
    [Task 10/25]  Current/Best:    8.93/  20.58 GFLOPS | Progress: (20/20
 ) | 8.21 s Done.
-
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   12.59/  18.47 GFLOPS | Progress: (4/20) | 3.17 s
    [Task 11/25]  Current/Best:   17.25/  18.47 GFLOPS | Progress: (8/20) | 5.95 s
    [Task 11/25]  Current/Best:   18.47/  18.47 GFLOPS | Progress: (12/20) | 7.95 s
    [Task 11/25]  Current/Best:   13.73/  21.54 GFLOPS | Progress: (16/20) | 10.74 s
    [Task 11/25]  Current/Best:   19.73/  21.88 GFLOPS | Progress: (20/20) | 12.82 s Done.
-
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:    7.96/  18.31 GFLOPS | Progress: (4/20) | 5.55 s
    [Task 12/25]  Current/Best:    5.22/  18.31 GFLOPS | Progress: (8/20) | 9.41 s
    [Task 12/25]  Current/Best:   19.18/  19.18 GFLOPS | Progress: (12/20) | 11.38 s
    [Task 12/25]  Current/Best:   15.59/  19.18 GFLOPS | Progress: (16/20) | 14.26 s
    [Task 12/25]  Current/Best:   15.39/  19.18 GFLOPS | Progress: (20/20) | 16.19 s Done.
-
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:    8.46/  17.58 GFLOPS | Progress: (4/20) | 3.64 s
    [Task 13/25]  Current/Best:   16.42/  21.33 GFLOPS | Progress: (8/20) | 6.16 s
    [Task 13/25]  Current/Best:   19.97/  22.01 GFLOPS | Progress: (12/20) | 9.18 s
    [Task 13/25]  Current/Best:   12.44/  22.01 GFLOPS | Progress: (16/20) | 12.59 s
    [Task 13/25]  Current/Best:   18.86/  22.01 GFLOPS | Progress: (20/20) | 14.89 s Done.
-
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
-
    [Task 14/25]  Current/Best:   13.81/  13.81 GFLOPS | Progress: (4/20) | 3.28 s
    [Task 14/25]  Current/Best:    6.22/  13.81 GFLOPS | Progress: (8/20) | 5.50 s
    [Task 14/25]  Current/Best:   20.99/  20.99 GFLOPS | Progress: (12/20) | 8.13 s
    [Task 14/25]  Current/Best:   16.17/  20.99 GFLOPS | Progress: (16/20) | 9.75 s
    [Task 14/25]  Current/Best:   17.23/  20.99 GFLOPS | Progress: (20/20) | 11.45 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   16.38/  17.94 GFLOPS | Progress: (4/20) | 2.53 s
    [Task 15/25]  Current/Best:   13.55/  18.35 GFLOPS | Progress: (8/20) | 3.84 s
    [Task 15/25]  Current/Best:   10.54/  22.65 GFLOPS | Progress: (12/20) | 6.02 s
    [Task 15/25]  Current/Best:   20.80/  22.65 GFLOPS | Progress: (16/20) | 8.99 s
    [Task 15/25]  Current/Best:    9.84/  22.65 GFLOPS | Progress: (20/20) | 9.94 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 
 0.00 s
    [Task 16/25]  Current/Best:   20.81/  20.81 GFLOPS | Progress: (4/20) | 2.76 s Done.
+
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:   17.49/  17.49 GFLOPS | Progress: (4/20) | 6.06 s
    [Task  1/25]  Current/Best:    6.00/  17.49 GFLOPS | Progress: (8/20) | 8.94 s
    [Task  1/25]  Current/Best:   11.55/  22.81 GFLOPS | Progress: (12/20) | 11.45 s
    [Task  1/25]  Current/Best:   16.82/  22.81 GFLOPS | Progress: (16/20) | 13.15 s
    [Task  1/25]  Current/Best:   11.58/  23.91 GFLOPS | Progress: (20/20) | 14.90 s Done.
+
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   12.22/  12.97 GFLOPS | Progress: (4/20) | 3.84 s
    [Task  2/25]  Current/Best:   14.15/  18.54 GFLOPS | Progress: (8/20) | 5.15 s
    [Task  2/25]  Current/Best:   21.26/  21.26 GFLOPS | Progress: (12/20) | 6.46 s
    [Task  2/25]  Current/Best:   12.33/  21.26 GFLOPS | Progress: (16/20) | 7.73 s
    [Task  2/25]  Current/Best:   19.60/  21.26 GFLOPS | Progress: (20/20) | 9.36 s Done.
+
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:    1.63/  10.50 GFLOPS | Progress: (4/20) | 5.83 s
    [Task  3/25]  Current/Best:   15.52/  16.81 GFLOPS | Progress: (8/20) | 7.75 s
    [Task  3/25]  Current/Best:   14.82/  16.81 GFLOPS | Progress: (12/20) | 9.48 s
    [Task  3/25]  Current/Best:    7.17/  23.75 GFLOPS | Progress: (16/20) | 11.39 s
    [Task  3/25]  Current/Best:   12.47/  23.75 GFLOPS | Progress: (20/20) | 16.02 s Done.
+
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:    9.51/  20.11 GFLOPS | Progress: (4/20) | 2.34 s
    [Task  4/25]  Current/Best:    6.68/  20.11 GFLOPS | Progress: (8/20) | 7.05 s
    [Task  4/25]  Current/Best:   21.28/  21.28 GFLOPS | Progress: (12/20) | 12.07 s
    [Task  4/25]  Current/Best:   17.24/  21.28 GFLOPS | Progress: (16/20) | 14.50 s
    [Task  4/25]  Current/Best:   13.19/  21.28 GFLOPS | Progress: (20/20) | 16.60 s Done.
+
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:    9.50/  10.23 GFLOPS | Progress: (4/20) | 2.54 s
    [Task  5/25]  Current/Best:   11.60/  12.52 GFLOPS | Progress: (8/20) | 4.59 s
    [Task  5/25]  Current/Best:   11.33/  18.08 GFLOPS | Progress: (12/20) | 7.77 s
    [Task  5/25]  Current/Best:   11.68/  22.57 GFLOPS | Progress: (16/20) | 9.18 s
    [Task  5/25]  Current/Best:   12.04/  22.57 GFLOPS | Progress: (20/20) | 11.07 s Done.
+
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:   12.16/  19.94 GFLOPS | Progress: (4/20) | 4.05 s
    [Task  6/25]  Current/Best:   19.05/  19.94 GFLOPS | Progress: (8/20) | 5.82 s
    [Task  6/25]  Current/Best:   13.28/  19.94 GFLOPS | Progress: (12/20) | 7.78 s
    [Task  6/25]  Current/Best:   19.93/  19.94 GFLOPS | Progress: (16/20) | 10.02 s
    [Task  6/25]  Current/Best:    3.69/  19.94 GFLOPS | Progress: (20/20) | 12.54 s Done.
+
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:   11.13/  12.10 GFLOPS | Progress: (4/20) | 3.62 s
    [Task  7/25]  Current/Best:   20.01/  20.93 GFLOPS | Progress: (8/20) | 5.13 s
    [Task  7/25]  Current/Best:   16.00/  20.93 GFLOPS | Progress: (12/20) | 7.06 s
    [Task  7/25]  Current/Best:   12.20/  20.93 GFLOPS | Progress: (16/20) | 9.14 s
    [Task  7/25]  Current/Best:    6.25/  21.44 GFLOPS | Progress: (20/20) | 11.61 s Done.
+
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:   10.01/  14.23 GFLOPS | Progress: (4/20) | 2.90 s
    [Task  8/25]  Current/Best:    9.75/  14.23 GFLOPS | Progress: (8/20) | 7.98 s
    [Task  8/25]  Current/Best:   12.93/  14.23 GFLOPS | Progress: (12/20) | 14.54 s
    [Task  8/25]  Current/Best:   18.96/  18.96 GFLOPS | Progress: (16/20) | 16.65 s
    [Task  8/25]  Current/Best:   19.63/  19.63 GFLOPS | Progress: (20/20) | 23.74 s Done.
+
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:   14.29/  14.99 GFLOPS | Progress: (4/20) | 11.93 s
    [Task  9/25]  Current/Best:   23.29/  23.29 GFLOPS | Progress: (8/20) | 13.64 s
    [Task  9/25]  Current/Best:    8.23/  23.29 GFLOPS | Progress: (12/20) | 16.17 s
    [Task  9/25]  Current/Best:   17.82/  23.29 GFLOPS | Progress: (16/20) | 18.93 s
    [Task  9/25]  Current/Best:    8.97/  23.29 GFLOPS | Progress: (20/20) | 27.57 s
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   17.99/  17.99 GFLOPS | Progress: (4/20) | 2.53 s
    [Task 10/25]  Current/Best:   15.50/  17.99 GFLOPS | Progress: (8/20) | 4.21 s
    [Task 10/25]  Current/Best:   12.83/  18.86 GFLOPS | Progress: (12/20) | 5.77 s
    [Task 10/25]  Current/Best:   19.07/  20.50 GFLOPS | Progress: (16/20) | 6.89 s
    [Task 10/25]  Current/Best:    8.84/  20.50 GFLOPS | Progress: (20/20
 ) | 8.42 s Done.
+
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   12.22/  18.12 GFLOPS | Progress: (4/20) | 3.26 s
    [Task 11/25]  Current/Best:   16.83/  18.12 GFLOPS | Progress: (8/20) | 6.08 s
    [Task 11/25]  Current/Best:   16.93/  18.12 GFLOPS | Progress: (12/20) | 8.12 s
    [Task 11/25]  Current/Best:   11.82/  21.10 GFLOPS | Progress: (16/20) | 11.09 s
    [Task 11/25]  Current/Best:   19.49/  21.55 GFLOPS | Progress: (20/20) | 13.21 s Done.
+
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:    7.79/  17.97 GFLOPS | Progress: (4/20) | 5.73 s
    [Task 12/25]  Current/Best:    5.18/  17.97 GFLOPS | Progress: (8/20) | 9.66 s
    [Task 12/25]  Current/Best:   18.51/  18.90 GFLOPS | Progress: (12/20) | 11.67 s
    [Task 12/25]  Current/Best:   14.74/  18.90 GFLOPS | Progress: (16/20) | 14.59 s
    [Task 12/25]  Current/Best:   15.11/  19.07 GFLOPS | Progress: (20/20) | 16.51 s Done.
+
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:    8.70/  17.31 GFLOPS | Progress: (4/20) | 3.71 s
    [Task 13/25]  Current/Best:   16.03/  20.87 GFLOPS | Progress: (8/20) | 6.34 s
    [Task 13/25]  Current/Best:   19.30/  21.17 GFLOPS | Progress: (12/20) | 9.44 s
    [Task 13/25]  Current/Best:   12.21/  21.17 GFLOPS | Progress: (16/20) | 12.87 s
    [Task 13/25]  Current/Best:   18.68/  21.17 GFLOPS | Progress: (20/20) | 15.14 s Done.
+
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:   12.45/  13.11 GFLOPS | Progress: (4/20) | 3.30 s
    [Task 14/25]  Current/Best:    6.09/  13.25 GFLOPS | Progress: (8/20) | 5.54 s
    [Task 14/25]  Current/Best:   20.20/  20.20 GFLOPS | Progress: (12/20) | 8.27 s
    [Task 14/25]  Current/Best:   15.56/  20.20 GFLOPS | Progress: (16/20) | 9.95 s Done.
+
    [Task 14/25]  Current/Best:   16.85/  20.20 GFLOPS | Progress: (20/20) | 11.66 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   16.04/  17.58 GFLOPS | Progress: (4/20) | 2.66 s
    [Task 15/25]  Current/Best:   14.34/  17.95 GFLOPS | Progress: (8/20) | 4.05 s
    [Task 15/25]  Current/Best:   10.39/  22.16 GFLOPS | Progress: (12/20) | 6.55 s
    [Task 15/25]  Current/Best:   20.43/  22.16 GFLOPS | Progress: (16/20) | 9.61 s
    [Task 15/25]  Current/Best:    9.71/  22.16 GFLOPS | Progress: (20/20) | 10.62 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:   20.55/  20.55 GFLOPS | Progress: (4/20) | 2.96 s
    [Task 16/25]  Current/Best:    3.04/  20.55 GFLOPS | Progress: (8/20) | 4.58 s
    [Task 16/25]  Current/Best:   19.38/  20.55 GFLOPS | Progress: (12/20) | 5.80 s
    [Task 16/25]  Current/Best:   17.58/  20.55 GFLOPS | Progress: (16/20) |
  7.18 s
    [Task 16/25]  Current/Best:    9.95/  21.47 GFLOPS | Progress: (20/20) | 9.35 s Done.
+
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   11.67/  18.90 GFLOPS | Progress: (4/20) | 4.77 s
    [Task 17/25]  Current/Best:   14.37/  23.30 GFLOPS | Progress: (8/20) | 7.56 s
    [Task 17/25]  Current/Best:   17.16/  23.30 GFLOPS | Progress: (12/20) | 9.64 s
    [Task 17/25]  Current/Best:   17.51/  23.30 GFLOPS | Progress: (16/20) | 11.85 s
    [Task 17/25]  Current/Best:   10.03/  23.30 GFLOPS | Progress: (20/20) | 14.03 s Done.
+
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:   11.12/  17.75 GFLOPS | Progress: (4/20) | 3.77 s
    [Task 18/25]  Current/Best:   10.37/  17.75 GFLOPS | Progress: (8/20) | 7.49 s
    [Task 18/25]  Current/Best:   19.15/  19.15 GFLOPS | Progress: (12/20) | 9.42 s
    [Task 18/25]  Current/Best:   10.03/  19.15 GFLOPS | Progress: (16/20) | 13.33 s
    [Task 18/25]  Current/Best:   20.54/  20.54 GFLOPS | Progress: (20/20) | 14.89 s Done.
+
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:    6.90/  20.12 GFLOPS | Progress: (4/20) | 6.22 s
    [Task 19/25]  Current/Best:    2.61/  20.12 GFLOPS | Progress: (8/20) | 9.57 s
    [Task 19/25]  Current/Best:   19.42/  20.77 GFLOPS | Progress: (12/20) | 12.52 s
    [Task 19/25]  Current/Best:   14.70/  21.11 GFLOPS | Progress: (16/20) | 15.48 s
    [Task 19/25]  Current/Best:    2.70/  23.23 GFLOPS | Progress: (20/20) | 18.29 s Done.
+
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:    8.80/  15.00 GFLOPS | Progress: (4/20) | 3.31 s Done.
      Done.
-
    [Task 16/25]  Current/Best:    3.09/  20.81 GFLOPS | Progress: (8/20) | 4.36 s
    [Task 16/25]  Current/Best:   20.01/  20.81 GFLOPS | Progress: (12/20) | 5.54 s
    [Task 16/25]  Current/Best:   17.75/  20.81 GFLOPS | Progress: (16/20) | 6.88 s
    [Task 16/25]  Current/Best:   10.21/  22.39 GFLOPS | Progress: (20/20) | 8.97 s Done.
-
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   12.95/  19.23 GFLOPS | Progress: (4/20) | 4.61 s
    [Task 17/25]  Current/Best:   14.58/  23.81 GFLOPS | Progress: (8/20) | 7.38 s
    [Task 17/25]  Current/Best:   17.15/  23.81 GFLOPS | Progress: (12/20) | 9.41 s
    [Task 17/25]  Current/Best:   16.87/  23.81 GFLOPS | Progress: (16/20) | 11.57 s
    [Task 17/25]  Current/Best:   10.22/  23.81 GFLOPS | Progress: (20/20) | 13.67 s Done.
-
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:   11.53/  18.39 GFLOPS | Progress: (4/20) | 3.64 s
    [Task 18/25]  Current/Best:   10.70/  19.70 GFLOPS | Progress: (8/20) | 7.18 s
    [Task 18/25]  Current/Best:   19.81/  19.81 GFLOPS | Progress: (12/20) | 9.08 s
    [Task 18/25]  Current/Best:   10.25/  19.81 GFLOPS | Progress: (16/20) | 12.80 s
    [Task 18/25]  Current/Best:   21.07/  21.07 GFLOPS | Progress: (20/20) | 14.26 s Done.
-
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:    7.25/  20.82 GFLOPS | Progress: (4/20) | 5.89 s
    [Task 19/25]  Current/Best:    2.65/  20.82 GFLOPS | Progress: (8/20) | 9.23 s
    [Task 19/25]  Current/Best:   20.89/  22.23 GFLOPS | Progress: (12/20) | 12.18 s
    [Task 19/25]  Current/Best:   14.48/  22.23 GFLOPS | Progress: (16/20) | 15.15 s
    [Task 19/25]  Current/Best:    2.74/  24.22 GFLOPS | Progress: (20/20) | 17.97 s Done.
-
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:    9.33/  15.50 GFLOPS | Progress: (4/20) | 3.20 s
    [Task 20/25]  Current/Best:    9.90/  15.50 GFLOPS | Progress: (8/20) | 6.52 s
    [Task 20/25]  Current/Best:    2.35/  16.89 GFLOPS | Progress: (12/20) | 10.30 s
    [Task 20/25]  Current/Best:   12.50/  16.89 GFLOPS | Progress: (16/20) | 14.05 s
    [Task 20/25]  Current/Best:   12.72/  22.66 GFLOPS | Progress: (20/20) | 16.09 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:    6.52/  18.09 GFLOPS | Progress: (4/20) | 3.12 s
    [Task 21/25]  Current/Best:   14.82/  18.09 GFLOPS | Progress: (8/20) | 4.70 s
    [Task 21/25]  Current/Best:    1.64/  18.09 GFLOPS | Progress: (12/20) | 6.76 s
    [Task 21/25]  Current/Best:   18.32/  18.32 GFLOPS | Progress: (16/20) | 10.16 s
    [Task 21/25]  Current/Best:    4.54/  18.32 GFLOPS | Progress: (20/20)
  | 17.27 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:    2.75/  17.32 GFLOPS | Progress: (4/20) | 2.53 s
    [Task 22/25]  Current/Best:    8.75/  22.18 GFLOPS | Progress: (8/20) | 4.55 s Done.
+
    [Task 20/25]  Current/Best:    9.95/  15.00 GFLOPS | Progress: (8/20) | 6.83 s
    [Task 20/25]  Current/Best:    2.32/  16.53 GFLOPS | Progress: (12/20) | 10.81 s
    [Task 20/25]  Current/Best:   12.53/  16.53 GFLOPS | Progress: (16/20) | 14.77 s
    [Task 20/25]  Current/Best:   13.38/  21.63 GFLOPS | Progress: (20/20) | 16.87 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:    6.39/  17.48 GFLOPS | Progress: (4/20) | 3.27 s
    [Task 21/25]  Current/Best:   14.35/  17.48 GFLOPS | Progress: (8/20) | 4.90 s
    [Task 21/25]  Current/Best:    1.61/  17.48 GFLOPS | Progress: (12/20) | 7.02 s
    [Task 21/25]  Current/Best:   18.21/  18.21 GFLOPS | Progress: (16/20) | 10.54 s
    [Task 21/25]  Current/Best:    4.45/  18.21 GFLOPS | Progress: (20/20) | 17.96 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:    2.70/  16.93 GFLOPS | Progress: (4/20
 ) | 2.64 s
    [Task 22/25]  Current/Best:    8.94/  21.58 GFLOPS | Progress: (8/20) | 4.66 s
    [Task 22/25]  Current/Best:   19.76/  21.58 GFLOPS | Progress: (12/20) | 7.05 s
    [Task 22/25]  Current/Best:   15.24/  21.58 GFLOPS | Progress: (16/20) | 9.16 s
    [Task 22/25]  Current/Best:   14.82/  21.58 GFLOPS | Progress: (20/20) | 10.91 s Done.
+
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:   17.41/  20.23 GFLOPS | Progress: (4/20) | 3.21 s
    [Task 23/25]  Current/Best:   15.66/  20.23 GFLOPS | Progress: (8/20) | 6.67 s
    [Task 23/25]  Current/Best:   20.70/  21.34 GFLOPS | Progress: (12/20) | 8.55 s
    [Task 23/25]  Current/Best:    6.33/  21.34 GFLOPS | Progress: (16/20) | 15.68 s
    [Task 23/25]  Current/Best:    7.65/  21.34 GFLOPS | Progress: (20/20) | 19.95 s Done.
+
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    8.65/   8.65 GFLOPS | Progress: (4/20) | 11.76 s
    [Task 24/25]  Current/Best:    2.12/   8.65 GFLOPS | Progress: (8/20) | 22.77 s
    [Task 24/25]  Current/Best:    4.44/   8.65 GFLOPS | Progress: (12/20) | 34.29 s Done.
      Done.
-
    [Task 22/25]  Current/Best:   20.34/  22.18 GFLOPS | Progress: (12/20) | 6.95 s
    [Task 22/25]  Current/Best:   15.32/  22.18 GFLOPS | Progress: (16/20) | 9.05 s
    [Task 22/25]  Current/Best:   14.08/  22.18 GFLOPS | Progress: (20/20) | 10.76 s Done.
-
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:   18.01/  21.21 GFLOPS | Progress: (4/20) | 3.12 s
    [Task 23/25]  Current/Best:   14.27/  21.21 GFLOPS | Progress: (8/20) | 6.52 s
    [Task 23/25]  Current/Best:   21.39/  22.23 GFLOPS | Progress: (12/20) | 8.29 s
    [Task 23/25]  Current/Best:    6.54/  22.23 GFLOPS | Progress: (16/20) | 15.25 s
    [Task 23/25]  Current/Best:    8.07/  22.23 GFLOPS | Progress: (20/20) | 19.36 s Done.
-
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    8.58/   8.58 GFLOPS | Progress: (4/20) | 11.67 s
    [Task 24/25]  Current/Best:    2.16/   8.58 GFLOPS | Progress: (8/20) | 22.63 s
    [Task 24/25]  Current/Best:    4.34/   8.58 GFLOPS | Progress: (12/20) | 34.06 s
    [Task 24/25]  Current/Best:    6.30/   9.10 GFLOPS | Progress: (16/20) | 39.59 s
    [Task 24/25]  Current/Best:    3.47/   9.10 GFLOPS | Progress: (20/20) | 45.53 s
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
-
    [Task 25/25]  Current/Best:    1.57/   2.95 GFLOPS | Progress: (4/20) | 11.55 s
    [Task 25/25]  Current/Best:    6.13/   8.06 GFLOPS | Progress: (8/20) | 22.76 s
    [Task 25/25]  Current/Best:    6.06/   8.06 GFLOPS | Progress: (12/20) | 34.15 s
    [Task 25/25]  Current/Best:    5.89/   8.96 GFLOPS | Progress: (16/20) | 35.83 s
    [Task 25/25]  Current/Best:    2.92/   9.22 GFLOPS | Progress: (20/20) | 46.50 s
+
    [Task 24/25]  Current/Best:    6.66/   8.68 GFLOPS | Progress: (16/20) | 40.38 s
    [Task 24/25]  Current/Best:    3.27/   8.98 GFLOPS | Progress: (20/20) | 46.51 s Done.
+
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 25/25]  Current/Best:    1.55/   2.88 GFLOPS | Progress: (4/20) | 11.55 s
    [Task 25/25]  Current/Best:    5.61/   7.67 GFLOPS | Progress: (8/20) | 22.81 s
    [Task 25/25]  Current/Best:    5.86/   7.67 GFLOPS | Progress: (12/20) | 34.09 s
    [Task 25/25]  Current/Best:    5.68/   8.54 GFLOPS | Progress: (16/20) | 35.97 s
    [Task 25/25]  Current/Best:    2.88/   8.54 GFLOPS | Progress: (20/20) | 46.65 s
 
 
 The output from this tuning process will look something like this:
@@ -660,8 +660,8 @@ improvement in comparing the optimized model to the unoptimized model.
 
  .. code-block:: none
 
-    optimized: {'mean': 404.41845570999703, 'median': 404.4244133500001, 'std': 1.1108665845633878}
-    unoptimized: {'mean': 485.34359255000254, 'median': 485.3246965500034, 'std': 1.1821005350493337}
+    optimized: {'mean': 413.06094868999025, 'median': 413.1940400000076, 'std': 0.8286562565105212}
+    unoptimized: {'mean': 495.57246422999015, 'median': 495.29582899999696, 'std': 0.6631744310948293}
 
 
 
@@ -681,7 +681,7 @@ profiling/benchmarking.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 10 minutes  12.309 seconds)
+   **Total running time of the script:** ( 10 minutes  26.240 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 563ac8d46..5d32e6d9a 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.215e-07 secs/op
+    1.264e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index 6444432b6..38bfd6db2 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -233,7 +233,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0xc68d9b0)), stage(b, placeholder(b, 0x216ddfb0)), 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 [...]
+    [stage(a, placeholder(a, 0x20e57850)), stage(b, placeholder(b, 0x23df6aa0)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
 
 
 
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 1bf6202e9..69513ec07 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
 =================
-**13:05.827** total execution time for **tutorial** files:
+**13:40.940** total execution time for **tutorial** files:
 
-- **10:12.309**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
-- **01:00.464**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:59.946**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
-- **00:27.630**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:23.166**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
-- **00:01.302**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
-- **00:00.696**: :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.032**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
-- **00:00.029**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
-- **00:00.029**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
-- **00:00.029**: :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)
+- **10:26.240**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
+- **01:17.200**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
+- **01:01.906**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:28.372**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:25.226**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
+- **00:00.832**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
+- **00:00.744**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
+- **00:00.220**: :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:00.051**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
+- **00:00.050**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
+- **00:00.050**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
+- **00:00.049**: :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index a6ff98ea3..11946a45f 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -252,7 +252,7 @@ helper function to run a profile of the TVM generated code.
 
  .. code-block:: none
 
-    Numpy running time: 0.000009
+    Numpy running time: 0.000008
     naive: 0.000006
 
 
@@ -344,7 +344,7 @@ compile and run this new schedule with the parallel operation applied:
 
  .. code-block:: none
 
-    parallel: 0.000007
+    parallel: 0.000006
 
 
 
@@ -397,7 +397,7 @@ factor to be the number of threads on your CPU.
 
  .. code-block:: none
 
-    vector: 0.000025
+    vector: 0.000024
     @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"),
@@ -447,10 +447,10 @@ We can now compare the different schedules
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                   numpy    8.922829999846727e-06                    1.0
-                   naive    6.465899999999999e-06     0.7246467768758419
-                parallel              6.6949e-06      0.7503112801784863
-                  vector             2.45213e-05      2.7481527722058154
+                   numpy    8.198289997380925e-06                    1.0
+                   naive              5.8254e-06      0.7105628127159466
+                parallel              6.0816e-06      0.7418132320206854
+                  vector    2.4459900000000003e-05    2.9835368116783023
 
 
 
@@ -839,7 +839,7 @@ matrix multiplication.
 
  .. code-block:: none
 
-    Numpy running time: 0.017991
+    Numpy running time: 0.018439
 
 
 
@@ -897,7 +897,7 @@ optimizations.
 
     /workspace/python/tvm/driver/build_module.py:264: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
       "target_host parameter is going to be deprecated. "
-    none: 3.415491
+    none: 3.449056
 
 
 
@@ -996,7 +996,7 @@ schedule.
 
  .. code-block:: none
 
-    blocking: 0.288683
+    blocking: 0.323903
 
 
 
@@ -1088,7 +1088,7 @@ already cache friendly from our previous optimizations.
 
  .. code-block:: none
 
-    vectorization: 0.324753
+    vectorization: 0.350504
     @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], []),
@@ -1160,7 +1160,7 @@ more cache friendly.
 
  .. code-block:: none
 
-    loop permutation: 0.113943
+    loop permutation: 0.118218
     @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], []),
@@ -1257,7 +1257,7 @@ optimized schedule.
 
  .. code-block:: none
 
-    array packing: 0.108356
+    array packing: 0.109189
     @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], []),
@@ -1348,7 +1348,7 @@ to `C` when all the block results are ready.
 
  .. code-block:: none
 
-    block caching: 0.109372
+    block caching: 0.111873
     @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], []),
@@ -1432,7 +1432,7 @@ of thread-level parallelization.
 
  .. code-block:: none
 
-    parallelization: 0.142428
+    parallelization: 0.144885
     @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], []),
@@ -1511,13 +1511,13 @@ working, we can compare the results.
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                    none            3.4154911798                     1.0
-                blocking            0.2886831157     0.08452169849166594
-           vectorization            0.3247531953     0.09508242832558464
-        loop permutation            0.1139430135    0.033360652246413394
-           array packing            0.1083559747     0.03172485859159647
-           block caching     0.10937236170000002    0.032022440094957146
-         parallelization     0.14242816809999997     0.04170063999648217
+                    none            3.4490564284                     1.0
+                blocking     0.32390314130000003      0.0939106529637896
+           vectorization            0.3505040656     0.10162317517159239
+        loop permutation            0.1182177817     0.03427539796872521
+           array packing            0.1091890503       0.031657658425337
+           block caching     0.11187268549999999    0.032435736504287105
+         parallelization     0.14488473600000001    0.042007064542928144
 
 
 
@@ -1554,7 +1554,7 @@ the computation for specific platforms.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  0.464 seconds)
+   **Total running time of the script:** ( 1 minutes  1.906 seconds)
 
 
 .. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
diff --git a/docs/commit_hash b/docs/commit_hash
index c6a0ea553..95a8f0167 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-9d6599c928ec4de1aede59927fcc5f651096e358
+70884e957aa5c8de9c02c25a14d30563d7300cb9
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index 3ee08d73e..a23ad67c1 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -401,7 +401,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.zip67d7d724-c04c-4721-915c-d096871322ec 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.zip6d599b92-18c1-40d6-a64d-b9431e592e8c 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_oneflow.html b/docs/how_to/compile_models/from_oneflow.html
index 2faf1960b..93d055ca5 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -406,79 +406,42 @@ python3 -m pip install -f https://release.oneflow.info <span class="nv">oneflow<
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip&quot; to /workspace/.oneflow/flowvision_cache/resnet18.zip
 
   0%|          | 0.00/41.5M [00:00&lt;?, ?B/s]
-  0%|          | 16.0k/41.5M [00:00&lt;07:51, 92.2kB/s]
-  0%|          | 48.0k/41.5M [00:00&lt;05:14, 138kB/s]
-  0%|          | 96.0k/41.5M [00:00&lt;03:52, 187kB/s]
-  0%|          | 168k/41.5M [00:00&lt;02:37, 276kB/s]
-  1%|          | 352k/41.5M [00:00&lt;01:17, 558kB/s]
-  1%|1         | 552k/41.5M [00:01&lt;00:58, 738kB/s]
-  2%|2         | 984k/41.5M [00:01&lt;00:34, 1.24MB/s]
-  3%|3         | 1.40M/41.5M [00:01&lt;00:25, 1.63MB/s]
-  4%|4         | 1.84M/41.5M [00:01&lt;00:21, 1.94MB/s]
-  5%|5         | 2.27M/41.5M [00:01&lt;00:19, 2.10MB/s]
-  7%|6         | 2.71M/41.5M [00:02&lt;00:18, 2.16MB/s]
-  8%|7         | 3.15M/41.5M [00:02&lt;00:18, 2.23MB/s]
-  9%|8         | 3.59M/41.5M [00:02&lt;00:16, 2.37MB/s]
- 10%|9         | 4.03M/41.5M [00:02&lt;00:16, 2.42MB/s]
- 11%|#         | 4.47M/41.5M [00:02&lt;00:16, 2.39MB/s]
- 12%|#1        | 4.91M/41.5M [00:03&lt;00:16, 2.36MB/s]
- 13%|#2        | 5.36M/41.5M [00:03&lt;00:15, 2.47MB/s]
- 14%|#3        | 5.80M/41.5M [00:03&lt;00:14, 2.51MB/s]
- 15%|#5        | 6.24M/41.5M [00:03&lt;00:14, 2.48MB/s]
- 16%|#6        | 6.69M/41.5M [00:03&lt;00:15, 2.41MB/s]
- 17%|#7        | 7.13M/41.5M [00:03&lt;00:14, 2.45MB/s]
- 18%|#8        | 7.58M/41.5M [00:04&lt;00:14, 2.53MB/s]
- 19%|#9        | 8.03M/41.5M [00:04&lt;00:13, 2.53MB/s]
- 20%|##        | 8.48M/41.5M [00:04&lt;00:14, 2.47MB/s]
- 22%|##1       | 8.93M/41.5M [00:04&lt;00:13, 2.46MB/s]
- 23%|##2       | 9.39M/41.5M [00:04&lt;00:13, 2.57MB/s]
- 24%|##3       | 9.85M/41.5M [00:05&lt;00:12, 2.61MB/s]
- 25%|##4       | 10.3M/41.5M [00:05&lt;00:12, 2.57MB/s]
- 26%|##6       | 10.8M/41.5M [00:05&lt;00:12, 2.52MB/s]
- 27%|##7       | 11.3M/41.5M [00:05&lt;00:12, 2.64MB/s]
- 28%|##8       | 11.7M/41.5M [00:05&lt;00:11, 2.70MB/s]
- 29%|##9       | 12.2M/41.5M [00:05&lt;00:11, 2.68MB/s]
- 31%|###       | 12.7M/41.5M [00:06&lt;00:11, 2.61MB/s]
- 32%|###1      | 13.2M/41.5M [00:06&lt;00:10, 2.70MB/s]
- 33%|###3      | 13.7M/41.5M [00:06&lt;00:10, 2.82MB/s]
- 34%|###4      | 14.2M/41.5M [00:06&lt;00:10, 2.84MB/s]
- 36%|###5      | 14.8M/41.5M [00:06&lt;00:09, 2.80MB/s]
- 37%|###6      | 15.3M/41.5M [00:07&lt;00:09, 2.83MB/s]
- 38%|###8      | 15.8M/41.5M [00:07&lt;00:09, 2.98MB/s]
- 40%|###9      | 16.4M/41.5M [00:07&lt;00:08, 3.01MB/s]
- 41%|####      | 17.0M/41.5M [00:07&lt;00:08, 3.00MB/s]
- 42%|####2     | 17.5M/41.5M [00:07&lt;00:08, 3.04MB/s]
- 44%|####3     | 18.1M/41.5M [00:08&lt;00:07, 3.20MB/s]
- 45%|####5     | 18.7M/41.5M [00:08&lt;00:06, 3.70MB/s]
- 47%|####6     | 19.3M/41.5M [00:08&lt;00:05, 3.91MB/s]
- 48%|####7     | 19.7M/41.5M [00:08&lt;00:06, 3.74MB/s]
- 48%|####8     | 20.1M/41.5M [00:08&lt;00:07, 3.07MB/s]
- 50%|####9     | 20.6M/41.5M [00:08&lt;00:06, 3.52MB/s]
- 51%|#####1    | 21.3M/41.5M [00:08&lt;00:05, 4.06MB/s]
- 52%|#####2    | 21.7M/41.5M [00:08&lt;00:05, 4.02MB/s]
- 53%|#####3    | 22.1M/41.5M [00:09&lt;00:06, 3.33MB/s]
- 55%|#####4    | 22.7M/41.5M [00:09&lt;00:05, 3.66MB/s]
- 56%|#####6    | 23.4M/41.5M [00:09&lt;00:05, 3.76MB/s]
- 58%|#####8    | 24.2M/41.5M [00:09&lt;00:04, 4.04MB/s]
- 60%|######    | 24.9M/41.5M [00:09&lt;00:04, 4.16MB/s]
- 62%|######1   | 25.7M/41.5M [00:10&lt;00:03, 4.16MB/s]
- 64%|######3   | 26.5M/41.5M [00:10&lt;00:03, 4.90MB/s]
- 65%|######5   | 27.0M/41.5M [00:10&lt;00:03, 4.41MB/s]
- 66%|######6   | 27.5M/41.5M [00:10&lt;00:03, 3.92MB/s]
- 68%|######7   | 28.2M/41.5M [00:10&lt;00:03, 4.09MB/s]
- 70%|#######   | 29.1M/41.5M [00:10&lt;00:03, 4.29MB/s]
- 72%|#######2  | 30.0M/41.5M [00:11&lt;00:02, 4.43MB/s]
- 75%|#######4  | 31.0M/41.5M [00:11&lt;00:02, 4.83MB/s]
- 77%|#######6  | 31.9M/41.5M [00:11&lt;00:01, 5.12MB/s]
- 79%|#######9  | 32.9M/41.5M [00:11&lt;00:01, 5.19MB/s]
- 82%|########1 | 33.9M/41.5M [00:11&lt;00:01, 5.22MB/s]
- 84%|########4 | 35.0M/41.5M [00:11&lt;00:01, 5.58MB/s]
- 87%|########7 | 36.1M/41.5M [00:12&lt;00:00, 5.92MB/s]
- 90%|########9 | 37.3M/41.5M [00:12&lt;00:00, 6.03MB/s]
- 93%|#########2| 38.4M/41.5M [00:12&lt;00:00, 6.02MB/s]
- 96%|#########5| 39.6M/41.5M [00:12&lt;00:00, 6.26MB/s]
- 99%|#########8| 40.9M/41.5M [00:12&lt;00:00, 6.67MB/s]
-100%|##########| 41.5M/41.5M [00:12&lt;00:00, 3.38MB/s]
+  0%|          | 16.0k/41.5M [00:00&lt;07:34, 95.7kB/s]
+  0%|          | 40.0k/41.5M [00:00&lt;05:52, 123kB/s]
+  0%|          | 96.0k/41.5M [00:00&lt;03:18, 219kB/s]
+  0%|          | 160k/41.5M [00:00&lt;02:33, 283kB/s]
+  1%|          | 224k/41.5M [00:00&lt;02:16, 318kB/s]
+  1%|          | 424k/41.5M [00:01&lt;01:10, 615kB/s]
+  2%|1         | 832k/41.5M [00:01&lt;00:35, 1.21MB/s]
+  4%|3         | 1.60M/41.5M [00:01&lt;00:17, 2.35MB/s]
+  7%|7         | 3.08M/41.5M [00:01&lt;00:09, 4.43MB/s]
+ 11%|#         | 4.55M/41.5M [00:01&lt;00:06, 5.82MB/s]
+ 14%|#4        | 6.02M/41.5M [00:01&lt;00:05, 6.78MB/s]
+ 18%|#8        | 7.48M/41.5M [00:02&lt;00:04, 7.44MB/s]
+ 22%|##1       | 8.95M/41.5M [00:02&lt;00:04, 7.89MB/s]
+ 25%|##5       | 10.4M/41.5M [00:02&lt;00:03, 8.21MB/s]
+ 29%|##8       | 11.9M/41.5M [00:02&lt;00:03, 8.43MB/s]
+ 32%|###2      | 13.4M/41.5M [00:02&lt;00:03, 8.58MB/s]
+ 36%|###5      | 14.8M/41.5M [00:02&lt;00:03, 8.69MB/s]
+ 39%|###9      | 16.3M/41.5M [00:03&lt;00:03, 8.76MB/s]
+ 43%|####2     | 17.8M/41.5M [00:03&lt;00:02, 8.82MB/s]
+ 46%|####6     | 19.2M/41.5M [00:03&lt;00:02, 8.85MB/s]
+ 50%|####9     | 20.7M/41.5M [00:03&lt;00:02, 8.88MB/s]
+ 53%|#####3    | 22.2M/41.5M [00:03&lt;00:02, 8.90MB/s]
+ 57%|#####6    | 23.6M/41.5M [00:03&lt;00:02, 8.93MB/s]
+ 61%|######    | 25.1M/41.5M [00:04&lt;00:01, 8.93MB/s]
+ 64%|######4   | 26.6M/41.5M [00:04&lt;00:01, 8.93MB/s]
+ 68%|######7   | 28.1M/41.5M [00:04&lt;00:01, 8.94MB/s]
+ 71%|#######1  | 29.5M/41.5M [00:04&lt;00:01, 8.95MB/s]
+ 75%|#######4  | 31.0M/41.5M [00:04&lt;00:01, 8.94MB/s]
+ 78%|#######8  | 32.5M/41.5M [00:04&lt;00:01, 8.94MB/s]
+ 82%|########1 | 33.9M/41.5M [00:05&lt;00:00, 8.95MB/s]
+ 85%|########5 | 35.4M/41.5M [00:05&lt;00:00, 8.96MB/s]
+ 89%|########8 | 36.9M/41.5M [00:05&lt;00:00, 8.95MB/s]
+ 92%|#########2| 38.4M/41.5M [00:05&lt;00:00, 8.95MB/s]
+ 96%|#########5| 39.8M/41.5M [00:05&lt;00:00, 8.95MB/s]
+ 99%|#########9| 41.3M/41.5M [00:06&lt;00:00, 8.93MB/s]
+100%|##########| 41.5M/41.5M [00:06&lt;00:00, 7.21MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_paddle.html b/docs/how_to/compile_models/from_paddle.html
index 5638707ad..db8186301 100644
--- a/docs/how_to/compile_models/from_paddle.html
+++ b/docs/how_to/compile_models/from_paddle.html
@@ -469,7 +469,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  5.874 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  7.165 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 b6b373cc8..3c15e782b 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -387,9 +387,10 @@ 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]
- 28%|##8       | 12.7M/44.7M [00:00&lt;00:00, 131MB/s]
- 81%|########1 | 36.4M/44.7M [00:00&lt;00:00, 199MB/s]
-100%|##########| 44.7M/44.7M [00:00&lt;00:00, 199MB/s]
+ 13%|#2        | 5.78M/44.7M [00:00&lt;00:00, 60.6MB/s]
+ 26%|##5       | 11.6M/44.7M [00:00&lt;00:00, 58.5MB/s]
+ 74%|#######4  | 33.2M/44.7M [00:00&lt;00:00, 134MB/s]
+100%|##########| 44.7M/44.7M [00:00&lt;00:00, 132MB/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 ecb236aed..47e3415a9 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -612,7 +612,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.631 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  4.652 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 faab5dd94..8a7efed7c 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -300,18 +300,18 @@
             
   <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>05:24.515</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>05:30.301</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
 <ul class="simple">
-<li><p><strong>01:05.874</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.631</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:56.444</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:37.554</strong>: <a class="reference internal" href="from_oneflow.html#sphx-glr-how-to-compile-models-from-oneflow-py"><span class="std std-ref">Compile OneFlow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_oneflow.py</span></code>)</p></li>
-<li><p><strong>00:23.872</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.405</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.090</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.078</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.722</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.846</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:07.165</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:04.652</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:59.961</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:31.997</strong>: <a class="reference internal" href="from_oneflow.html#sphx-glr-how-to-compile-models-from-oneflow-py"><span class="std std-ref">Compile OneFlow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_oneflow.py</span></code>)</p></li>
+<li><p><strong>00:24.519</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:23.147</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:22.287</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.985</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.820</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.767</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 e91536c28..437688027 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -627,7 +627,7 @@ to the remote android device.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  15.3281      15.3607      15.5444      15.1472       0.1172
+  16.3197      16.2442      16.9251      16.1694       0.2110
 </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 565247a2e..db0ece84f 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -409,13 +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.6M/170M [00:00&lt;00:00, 205MB/s]
- 26%|##6       | 44.8M/170M [00:00&lt;00:00, 239MB/s]
- 42%|####2     | 71.4M/170M [00:00&lt;00:00, 257MB/s]
- 57%|#####7    | 97.4M/170M [00:00&lt;00:00, 263MB/s]
- 73%|#######2  | 124M/170M [00:00&lt;00:00, 268MB/s]
- 89%|########8 | 150M/170M [00:00&lt;00:00, 272MB/s]
-100%|##########| 170M/170M [00:00&lt;00:00, 264MB/s]
+  3%|3         | 5.33M/170M [00:00&lt;00:03, 55.9MB/s]
+  6%|6         | 10.7M/170M [00:00&lt;00:03, 54.8MB/s]
+ 21%|##1       | 36.4M/170M [00:00&lt;00:00, 152MB/s]
+ 37%|###7      | 63.0M/170M [00:00&lt;00:00, 202MB/s]
+ 52%|#####2    | 89.1M/170M [00:00&lt;00:00, 228MB/s]
+ 68%|######7   | 115M/170M [00:00&lt;00:00, 242MB/s]
+ 82%|########2 | 140M/170M [00:00&lt;00:00, 249MB/s]
+ 98%|#########7| 166M/170M [00:00&lt;00:00, 256MB/s]
+100%|##########| 170M/170M [00:00&lt;00:00, 217MB/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;).
@@ -513,7 +515,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> ( 2 minutes  55.302 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  1.783 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 379b9f970..95bb6ae35 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -450,7 +450,7 @@ 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]
-100%|##########| 13.6M/13.6M [00:00&lt;00:00, 162MB/s]
+100%|##########| 13.6M/13.6M [00:00&lt;00:00, 163MB/s]
 </pre></div>
 </div>
 </div>
@@ -544,7 +544,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)
-  88.9107      88.8655      89.4770      88.5857       0.1836
+  90.3297      90.2424      91.1498      90.1341       0.2079
 </pre></div>
 </div>
 <div class="admonition note">
@@ -583,7 +583,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.883 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  7.638 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 b1575e380..f9d2e21a3 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -545,7 +545,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)
-  118.3542     117.7878     141.4023     116.8825      2.5086
+  121.9273     121.9259     122.8546     121.2343      0.3097
 </pre></div>
 </div>
 <div class="admonition note">
@@ -573,7 +573,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  57.635 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  59.432 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 912f210b6..25fdb269c 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -482,7 +482,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  12.581 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  12.219 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 40b05acff..7ee934e8c 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -415,24 +415,23 @@ 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         | 6090/132723 [00:00&lt;00:02, 60896.43KB/s]
- 11%|#         | 13952/132723 [00:00&lt;00:01, 71318.85KB/s]
- 16%|#6        | 21809/132723 [00:00&lt;00:01, 74626.54KB/s]
- 22%|##2       | 29730/132723 [00:00&lt;00:01, 76434.69KB/s]
- 28%|##8       | 37584/132723 [00:00&lt;00:01, 77166.01KB/s]
- 34%|###4      | 45435/132723 [00:00&lt;00:01, 77607.90KB/s]
- 40%|####      | 53313/132723 [00:00&lt;00:01, 77988.02KB/s]
- 46%|####6     | 61149/132723 [00:00&lt;00:00, 78102.52KB/s]
- 52%|#####2    | 69031/132723 [00:00&lt;00:00, 78324.87KB/s]
- 58%|#####7    | 76875/132723 [00:01&lt;00:00, 78357.61KB/s]
- 64%|######3   | 84824/132723 [00:01&lt;00:00, 78674.82KB/s]
- 70%|######9   | 92733/132723 [00:01&lt;00:00, 78795.10KB/s]
- 76%|#######5  | 100613/132723 [00:01&lt;00:00, 76515.08KB/s]
- 82%|########1 | 108409/132723 [00:01&lt;00:00, 76939.89KB/s]
- 87%|########7 | 116114/132723 [00:01&lt;00:00, 67244.82KB/s]
- 94%|#########3| 124353/132723 [00:01&lt;00:00, 71339.13KB/s]
-100%|##########| 132723/132723 [00:01&lt;00:00, 74458.39KB/s]
-100%|##########| 132723/132723 [00:01&lt;00:00, 75350.67KB/s]
+  3%|3         | 4171/132723 [00:00&lt;00:03, 41706.46KB/s]
+  9%|9         | 12019/132723 [00:00&lt;00:01, 63333.68KB/s]
+ 15%|#5        | 20491/132723 [00:00&lt;00:01, 73086.98KB/s]
+ 22%|##1       | 28942/132723 [00:00&lt;00:01, 77593.86KB/s]
+ 28%|##8       | 37462/132723 [00:00&lt;00:01, 80333.40KB/s]
+ 35%|###4      | 46107/132723 [00:00&lt;00:01, 82409.15KB/s]
+ 41%|####1     | 54694/132723 [00:00&lt;00:00, 83537.32KB/s]
+ 48%|####7     | 63115/132723 [00:00&lt;00:00, 83749.63KB/s]
+ 54%|#####3    | 71490/132723 [00:00&lt;00:00, 69041.04KB/s]
+ 60%|######    | 80068/132723 [00:01&lt;00:00, 73543.56KB/s]
+ 66%|######6   | 87772/132723 [00:01&lt;00:00, 70612.96KB/s]
+ 73%|#######2  | 96439/132723 [00:01&lt;00:00, 74994.62KB/s]
+ 78%|#######8  | 104163/132723 [00:01&lt;00:00, 71315.58KB/s]
+ 85%|########4 | 112207/132723 [00:01&lt;00:00, 73817.45KB/s]
+ 90%|######### | 119739/132723 [00:01&lt;00:00, 66023.42KB/s]
+ 97%|#########6| 128357/132723 [00:01&lt;00:00, 71332.13KB/s]
+100%|##########| 132723/132723 [00:01&lt;00:00, 72344.78KB/s]
 </pre></div>
 </div>
 <p>Create TVM runtime and do inference
@@ -477,7 +476,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  14.928 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  23.827 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 549c7d873..693e2c821 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:15.614</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>10:37.779</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
 <ul class="simple">
-<li><p><strong>02:55.302</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:14.928</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.635</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:12.581</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.883</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:28.414</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.674</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.195</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:01.783</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:23.827</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:59.432</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:12.219</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:07.638</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:29.918</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:22.755</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.207</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 68b71e303..26a06a971 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -590,7 +590,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.zipc7c5c4bd-3b6e-48f6-98a8-bca21dacb4b4 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.zipa6f0d07b-9158-4cb5-baa5-bef7f9e22e30 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 ccf1cec00..cd408ee8e 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:39.585</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:40.986</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:35.913</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.360</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.104</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.208</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:37.152</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.477</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.140</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.217</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 effea8798..899da6157 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: 6595us [6595us] (45.61%; 45.61%)
-FoldScaleAxis: 7866us [6us] (54.39%; 54.39%)
-        FoldConstant: 7860us [1599us] (54.35%; 99.93%)
-                InferType: 6261us [6261us] (43.30%; 79.66%)
+InferType: 6878us [6878us] (45.75%; 45.75%)
+FoldScaleAxis: 8154us [6us] (54.25%; 54.25%)
+        FoldConstant: 8148us [1620us] (54.21%; 99.93%)
+                InferType: 6528us [6528us] (43.43%; 80.12%)
 </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: 6198us [6198us] (44.48%; 44.48%)
-FoldScaleAxis: 7735us [5us] (55.52%; 55.52%)
-        FoldConstant: 7730us [1582us] (55.48%; 99.94%)
-                InferType: 6149us [6149us] (44.13%; 79.54%)
+InferType: 6589us [6589us] (44.80%; 44.80%)
+FoldScaleAxis: 8118us [5us] (55.20%; 55.20%)
+        FoldConstant: 8112us [1658us] (55.16%; 99.94%)
+                InferType: 6454us [6454us] (43.89%; 79.56%)
 </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 13ca2e397..d20063f28 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.131989 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 51.575460 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 7811b8ca5..21343bb88 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -878,7 +878,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.614921 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 10.396211 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 5a04b3f5b..074e89ee9 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.018521
-Baseline: 3.399815
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.019390
+Baseline: 3.448056
 </pre></div>
 </div>
 <p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -494,7 +494,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.290889
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.317239
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -563,7 +563,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.331642
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.345401
 </pre></div>
 </div>
 <p>Here is the generated IR after vectorization.</p>
@@ -626,7 +626,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.114744
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.120997
 </pre></div>
 </div>
 <p>Here is the generated IR after loop permutation.</p>
@@ -711,7 +711,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.109034
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.110805
 </pre></div>
 </div>
 <p>Here is the generated IR after array packing.</p>
@@ -799,7 +799,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.109441
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.111641
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -891,7 +891,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.142529
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.145231
 </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 d30321467..d6549591e 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.606</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:35.774</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:31.993</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.390</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.223</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.978</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.532</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.264</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 55f30c082..19b645634 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>05:16.718</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>05:11.887</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
 <ul class="simple">
-<li><p><strong>02:32.299</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.117</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:42.185</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:26.270</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.595</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.252</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:32.057</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:21.484</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:43.568</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.939</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.956</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.884</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 28428c924..c7bfbda94 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
@@ -470,359 +470,78 @@ cooperative fetching, unrolling and operator fusion.</p>
              compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
   buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute}
   preflattened_buffer_map = {data_1: data_3: Buffer(data_2, float32, [1, 512, 7, 7], []), kernel_1: kernel_3: Buffer(kernel_2, float32, [512, 512, 3, 3], []), bias_1: bias_3: Buffer(bias_2, float32, [1, 512, 1, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [1, 512, 7, 7], [])} {
-  attr [IterVar(blockIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.x&quot;)] &quot;thread_extent&quot; = 16;
-  allocate(conv2d_nchw: Pointer(local float32), float32, [14]), storage_scope = local;
-  allocate(pad_temp.shared: Pointer(shared float32), float32, [4032]), 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; = 112 {
-    conv2d_nchw_1: Buffer(conv2d_nchw, float32, [14], [], scope=&quot;local&quot;, align=32)[0] = 0f32
-    conv2d_nchw_1[7] = 0f32
+  attr [IterVar(blockIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.x&quot;)] &quot;thread_extent&quot; = 56;
+  allocate(conv2d_nchw: Pointer(local float32), float32, [7]), storage_scope = local;
+  allocate(pad_temp.shared: Pointer(shared float32), float32, [84]), storage_scope = shared;
+  allocate(kernel.shared: Pointer(shared float32), float32, [768]), storage_scope = shared;
+  attr [IterVar(threadIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64 {
+    conv2d_nchw_1: Buffer(conv2d_nchw, float32, [1], [], scope=&quot;local&quot;, align=4)[0] = 0f32
     conv2d_nchw_1[1] = 0f32
-    conv2d_nchw_1[8] = 0f32
     conv2d_nchw_1[2] = 0f32
-    conv2d_nchw_1[9] = 0f32
     conv2d_nchw_1[3] = 0f32
-    conv2d_nchw_1[10] = 0f32
     conv2d_nchw_1[4] = 0f32
-    conv2d_nchw_1[11] = 0f32
     conv2d_nchw_1[5] = 0f32
-    conv2d_nchw_1[12] = 0f32
     conv2d_nchw_1[6] = 0f32
-    conv2d_nchw_1[13] = 0f32
-    for (rc.outer.outer: int32, 0, 8) {
-      for (ry.outer.outer: int32, 0, 3) {
-        let cse_var_4: int32 = (rc.outer.outer*3136)
-        let cse_var_3: int32 = (ry.outer.outer*7)
-        let cse_var_2: int32 = (rc.outer.outer*576)
-        let cse_var_1: int32 = (ry.outer.outer*3)
+    for (rc.outer.outer: int32, 0, 128) {
+      for (rx.outer.outer: int32, 0, 3) {
+        let cse_var_1: int32 = (rc.outer.outer*36)
          {
-          attr [IterVar(threadIdx.x_1: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1: Buffer(pad_temp.shared, float32, [4032], [], scope=&quot;shared&quot;)[threadIdx.x_1] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod(threadIdx.x_1, 9))) &amp;&amp; (floormod(threadIdx.x_1, 9) &lt; 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) - 8)], 0f [...]
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 112)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 112), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 112), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 4), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 4), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 112), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 224)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 224), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 224), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 8), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 8), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 224), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 336)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 336), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 336), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 3), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 3), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 336), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 448)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 448), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 448), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 7), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 7), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 448), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 560)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 560), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 560), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 2), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 2), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 560), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 672)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 672), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 672), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 6), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 6), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 672), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 784), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 784), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 1), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 1), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 784), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 896)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 896), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 896), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 5), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 5), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 896), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1008)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod(threadIdx.x_1, 9))) &amp;&amp; (floormod(threadIdx.x_1, 9) &lt; 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) + 776)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1120)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1120), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1120), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 4), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 4), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1120), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1232)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1232), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1232), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 8), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 8), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1232), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1344)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1344), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1344), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 3), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 3), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1344), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1456)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1456), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1456), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 7), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 7), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1456), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1568), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1568), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 2), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 2), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1568), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1680)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1680), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1680), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 6), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 6), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1680), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1792)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1792), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1792), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 1), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 1), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1792), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 1904)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 1904), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 1904), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 5), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 5), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 1904), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2016)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod(threadIdx.x_1, 9))) &amp;&amp; (floormod(threadIdx.x_1, 9) &lt; 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) + 1560)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2128)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2128), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2128), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 4), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 4), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2128), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2240)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2240), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2240), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 8), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 8), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2240), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2352)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2352), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2352), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 3), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 3), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2352), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2464)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2464), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2464), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 7), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 7), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2464), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2576)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2576), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2576), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 2), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 2), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2576), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2688)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2688), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2688), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 6), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 6), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2688), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2800)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2800), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2800), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 1), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 1), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2800), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 2912)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 2912), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 2912), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 5), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 5), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 2912), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3024)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod(threadIdx.x_1, 9))) &amp;&amp; (floormod(threadIdx.x_1, 9) &lt; 8)), data[((((cse_var_4 + (floordiv(threadIdx.x_1, 9)*7)) + cse_var_3) + floormod(threadIdx.x_1, 9)) + 2344)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3136)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3136), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3136), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 4), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 4), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3136), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3248)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3248), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3248), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 8), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 8), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3248), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3360)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3360), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3360), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 3), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 3), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3360), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3472)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3472), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3472), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 7), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 7), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3472), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3584)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3584), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3584), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 2), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 2), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3584), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3696)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3696), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3696), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 6), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 6), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3696), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3808)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3808), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3808), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 1), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 1), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3808), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          pad_temp.shared_1[(threadIdx.x_1 + 3920)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 3920), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 3920), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 5), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 5), 9) &lt; 8)), data[((((cse_var_4 + (floordiv((threadIdx.x_1 + 3920), 9)*7)) + cse_var_3) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
-          attr [IterVar(threadIdx.x_2: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1: Buffer(kernel.shared, float32, [6144], [], scope=&quot;shared&quot;)[threadIdx.x_2] = kernel[(((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 112)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 7), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 112), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 224)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 14), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 224), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 336)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 21), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 448)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 28), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 448), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 560)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 35), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 560), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 672)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 42), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 784)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 49), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 784), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 896)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 56), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 896), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1008)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 63), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1120)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 70), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1120), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1232)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 77), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1232), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1344)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 32256)]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1456)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 91), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1456), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1568)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 98), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1568), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1680)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 105), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1792)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 112), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1792), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 1904)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 119), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 1904), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2016)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 126), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2128)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 133), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2128), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2240)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 140), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2240), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2352)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 147), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2464)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 154), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2464), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2576)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 161), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2576), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2688)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 64512)]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2800)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 175), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2800), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 2912)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 182), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 2912), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3024)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 189), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3136)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 196), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3136), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3248)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 203), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3248), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3360)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 210), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3472)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 217), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3472), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3584)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 224), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3584), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3696)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 231), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3808)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 238), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3808), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 3920)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 245), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 3920), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4032)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 96768)]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4144)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 259), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4144), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4256)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 266), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4256), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4368)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 273), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4480)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 280), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4480), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4592)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 287), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4592), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4704)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 294), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4816)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 301), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4816), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 4928)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 308), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4928), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5040)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 315), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 16), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5152)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 322), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5152), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5264)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 329), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5264), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5376)] = kernel[((((((blockIdx.x*147456) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3)) + 129024)]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5488)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 343), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5488), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5600)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 350), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5600), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5712)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 357), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 48), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5824)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 364), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5824), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          kernel.shared_1[(threadIdx.x_2 + 5936)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 371), 12)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 5936), 192), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
-          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 112;
-          if @tir.likely((threadIdx.x_2 &lt; 96), dtype=bool) {
-            kernel.shared_1[(threadIdx.x_2 + 6048)] = kernel[((((((blockIdx.x*147456) + (floordiv((floordiv(threadIdx.x_2, 16) + 378), 12)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 32), 64)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+          attr [IterVar(threadIdx.x_1: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64 {
+            if @tir.likely((threadIdx.x_1 &lt; 42), dtype=bool) {
+              pad_temp.shared_1: Buffer(pad_temp.shared, float32, [84], [], scope=&quot;shared&quot;)[(threadIdx.x_1*2)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1*2), 21), 7) + floormod(blockIdx.x, 7))) &amp;&amp; ((floordiv(floormod((threadIdx.x_1*2), 21), 7) + floormod(blockIdx.x, 7)) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod((threadIdx.x_1*2), 7)))) &amp;&amp; ((rx.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((((rc.outer.outer*1 [...]
+            }
+            if @tir.likely((threadIdx.x_1 &lt; 42), dtype=bool) {
+              pad_temp.shared_1[((threadIdx.x_1*2) + 1)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(((threadIdx.x_1*2) + 1), 21), 7) + floormod(blockIdx.x, 7))) &amp;&amp; ((floordiv(floormod(((threadIdx.x_1*2) + 1), 21), 7) + floormod(blockIdx.x, 7)) &lt; 8)) &amp;&amp; (1 &lt;= (rx.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)))) &amp;&amp; ((rx.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((((rc.outer.outer*196) + (floordiv(((threadIdx.x_1*2) + 1), [...]
+            }
           }
-          for (rx.outer.inner: int32, 0, 3) {
-            for (xx.outer.inner: int32, 0, 7) {
-              let cse_var_5: int32 = (xx.outer.inner + 7)
+          attr [IterVar(threadIdx.x_2: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1: Buffer(kernel.shared, float32, [768], [], scope=&quot;shared&quot;)[threadIdx.x_2] = kernel[(((((floordiv(blockIdx.x, 7)*294912) + (floordiv(threadIdx.x_2, 12)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 64)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 16), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 4), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 128)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 32), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 8), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 192)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv(floordiv(threadIdx.x_2, 4), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer) + 73728)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 256)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 64), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 16), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 320)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 80), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 20), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 384)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv(floordiv(threadIdx.x_2, 4), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer) + 147456)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 448)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 112), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 28), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 512)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 128), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 32), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 576)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv(floordiv(threadIdx.x_2, 4), 3)*4608)) + cse_var_1) + (floormod(threadIdx.x_2, 12)*3)) + rx.outer.outer) + 221184)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 640)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 160), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 40), 12), 3)*9)) + (floormod((threadIdx.x_2 + 1), 3)*3)) + rx.outer.outer)]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 64;
+          kernel.shared_1[(threadIdx.x_2 + 704)] = kernel[((((((floordiv(blockIdx.x, 7)*294912) + (floordiv((floordiv(threadIdx.x_2, 4) + 176), 3)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 44), 12), 3)*9)) + (floormod((threadIdx.x_2 + 2), 3)*3)) + rx.outer.outer)]
+          for (rc.inner: int32, 0, 4) {
+            for (ry.inner: int32, 0, 3) {
+              let cse_var_2: int32 = ((rc.inner*21) + (ry.inner*7))
                {
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[(((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*384) + rx.outer.inner)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[(((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 192)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 63)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 3)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 63)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 195)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 126)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 6)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 126)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 198)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 189)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 9)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 189)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 201)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 252)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 12)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 252)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 204)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 315)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 15)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 315)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 207)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 378)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 18)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 378)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 210)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 441)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 21)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 441)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 213)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 504)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 24)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 504)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 216)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 567)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 27)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 567)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 219)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 630)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 30)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 630)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 222)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 693)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 33)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 693)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 225)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 756)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 36)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 756)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 228)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 819)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 39)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 819)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 231)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 882)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 42)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 882)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 234)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 945)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 45)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 945)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 237)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1008)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 48)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1008)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 240)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1071)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 51)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1071)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 243)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1134)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 54)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1134)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 246)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1197)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 57)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1197)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 249)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1260)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 60)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1260)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 252)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1323)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 63)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1323)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 255)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1386)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 66)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1386)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 258)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1449)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 69)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1449)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 261)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1512)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 72)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1512)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 264)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1575)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 75)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1575)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 267)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1638)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 78)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1638)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 270)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1701)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 81)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1701)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 273)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1764)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 84)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1764)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 276)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1827)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 87)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1827)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 279)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1890)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 90)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1890)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 282)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1953)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 93)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 1953)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 285)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2016)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 96)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2016)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 288)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2079)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 99)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2079)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 291)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2142)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 102)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2142)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 294)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2205)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 105)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2205)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 297)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2268)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 108)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2268)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 300)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2331)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 111)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2331)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 303)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2394)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 114)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2394)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 306)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2457)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 117)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2457)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 309)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2520)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 120)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2520)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 312)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2583)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 123)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2583)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 315)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2646)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 126)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2646)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 318)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2709)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 129)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2709)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 321)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2772)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 132)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2772)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 324)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2835)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 135)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2835)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 327)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2898)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 138)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2898)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 330)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2961)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 141)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 2961)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 333)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3024)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 144)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3024)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 336)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3087)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 147)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3087)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 339)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3150)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 150)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3150)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 342)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3213)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 153)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3213)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 345)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3276)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 156)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3276)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 348)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3339)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 159)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3339)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 351)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3402)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 162)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3402)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 354)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3465)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 165)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3465)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 357)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3528)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 168)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3528)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 360)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3591)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 171)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3591)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 363)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3654)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 174)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3654)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 366)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3717)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 177)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3717)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 369)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3780)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 180)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3780)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 372)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3843)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 183)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3843)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 375)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3906)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 186)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3906)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 378)]))
-                conv2d_nchw_1[xx.outer.inner] = (conv2d_nchw_1[xx.outer.inner] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3969)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 189)]))
-                conv2d_nchw_1[cse_var_5] = (conv2d_nchw_1[cse_var_5] + (pad_temp.shared_1[((((floormod(threadIdx.x, 7)*9) + xx.outer.inner) + rx.outer.inner) + 3969)]*kernel.shared_1[(((floordiv(threadIdx.x, 7)*384) + rx.outer.inner) + 381)]))
+                conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[cse_var_2]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(cse_var_2 + 1)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(cse_var_2 + 2)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(cse_var_2 + 3)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(cse_var_2 + 4)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(cse_var_2 + 5)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
+                conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(cse_var_2 + 6)]*kernel.shared_1[(((threadIdx.x*12) + (rc.inner*3)) + ry.inner)]))
               }
             }
           }
         }
       }
     }
-    for (i1.inner: int32, 0, 2) {
-      for (i3.inner: int32, 0, 7) {
-        compute[(((((blockIdx.x*1568) + (floordiv(threadIdx.x, 7)*98)) + (i1.inner*49)) + (floormod(threadIdx.x, 7)*7)) + i3.inner)] = max((conv2d_nchw_1[((i1.inner*7) + i3.inner)] + bias[(((blockIdx.x*32) + (floordiv(threadIdx.x, 7)*2)) + i1.inner)]), 0f32)
-      }
-    }
+    compute[(((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7))] = max((conv2d_nchw_1[0] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+    compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 1)] = max((conv2d_nchw_1[1] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+    compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 2)] = max((conv2d_nchw_1[2] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+    compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 3)] = max((conv2d_nchw_1[3] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+    compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 4)] = max((conv2d_nchw_1[4] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+    compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 5)] = max((conv2d_nchw_1[5] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
+    compute[((((floordiv(blockIdx.x, 7)*3136) + (threadIdx.x*49)) + (floormod(blockIdx.x, 7)*7)) + 6)] = max((conv2d_nchw_1[6] + bias[((floordiv(blockIdx.x, 7)*64) + threadIdx.x)]), 0f32)
   }
 }
 </pre></div>
@@ -859,7 +578,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.373 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.383 ms
 </pre></div>
 </div>
 </div>
@@ -889,37 +608,37 @@ 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=2)
+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=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=16)
+conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=64)
 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_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=7)
+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=1)
-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=64)
+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=7)
+conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=4)
 conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=1)
-conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
+conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=3)
 conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
 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=3)
+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=2)
-compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=16)
+compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
+compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=64)
 compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
 compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
-compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
+compute_i2_o_o_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=7)
+compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
 compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
-compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
+compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=7)
 s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
 s[conv2d_nchw].compute_at(s[compute], compute_i3_o_i)
 kernel_shared = s.cache_read(kernel, &quot;shared&quot;, [conv2d_nchw])
@@ -938,14 +657,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=112)
+kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=64)
 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)
+pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=2)
 s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=112)
+pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=64)
 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;, 512)
+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;unroll_explicit&quot;, True)
 
 CUDA source code:
@@ -963,260 +682,59 @@ CUDA source code:
   #define int64_t long long
   #define uint64_t unsigned long long
 #endif
-extern &quot;C&quot; __global__ void __launch_bounds__(112) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
-  float conv2d_nchw[14];
-  __shared__ float pad_temp_shared[4032];
-  __shared__ float kernel_shared[6144];
+extern &quot;C&quot; __global__ void __launch_bounds__(64) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+  float conv2d_nchw[7];
+  __shared__ float pad_temp_shared[84];
+  __shared__ float kernel_shared[768];
   conv2d_nchw[0] = 0.000000e+00f;
-  conv2d_nchw[7] = 0.000000e+00f;
   conv2d_nchw[1] = 0.000000e+00f;
-  conv2d_nchw[8] = 0.000000e+00f;
   conv2d_nchw[2] = 0.000000e+00f;
-  conv2d_nchw[9] = 0.000000e+00f;
   conv2d_nchw[3] = 0.000000e+00f;
-  conv2d_nchw[10] = 0.000000e+00f;
   conv2d_nchw[4] = 0.000000e+00f;
-  conv2d_nchw[11] = 0.000000e+00f;
   conv2d_nchw[5] = 0.000000e+00f;
-  conv2d_nchw[12] = 0.000000e+00f;
   conv2d_nchw[6] = 0.000000e+00f;
-  conv2d_nchw[13] = 0.000000e+00f;
-  for (int rc_outer_outer = 0; rc_outer_outer &lt; 8; ++rc_outer_outer) {
-    for (int ry_outer_outer = 0; ry_outer_outer &lt; 3; ++ry_outer_outer) {
+  for (int rc_outer_outer = 0; rc_outer_outer &lt; 128; ++rc_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) % 63) / 9) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (((int)threadIdx.x) % 9))) &amp;&amp; ((((int)threadIdx.x) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 112)] = (((((1 &lt;= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 4) % 9))) &amp;&amp; (((((int)threadIdx.x) + 4) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 112) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 224)] = (((((1 &lt;= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 8) % 9))) &amp;&amp; (((((int)threadIdx.x) + 8) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 224) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 336)] = (((((1 &lt;= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 3) % 9))) &amp;&amp; (((((int)threadIdx.x) + 3) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 336) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 448)] = (((((1 &lt;= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 7) % 9))) &amp;&amp; (((((int)threadIdx.x) + 7) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 448) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 560)] = (((((1 &lt;= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 2) % 9))) &amp;&amp; (((((int)threadIdx.x) + 2) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 560) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 672)] = (((((1 &lt;= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 6) % 9))) &amp;&amp; (((((int)threadIdx.x) + 6) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 672) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((1 &lt;= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 1) % 9))) &amp;&amp; (((((int)threadIdx.x) + 1) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 784) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 896)] = (((((1 &lt;= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 5) % 9))) &amp;&amp; (((((int)threadIdx.x) + 5) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 896) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1008)] = (((((1 &lt;= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (((int)threadIdx.x) % 9))) &amp;&amp; ((((int)threadIdx.x) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) + 776)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1120)] = (((((1 &lt;= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 4) % 9))) &amp;&amp; (((((int)threadIdx.x) + 4) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1120) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1232)] = (((((1 &lt;= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 8) % 9))) &amp;&amp; (((((int)threadIdx.x) + 8) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1232) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1344)] = (((((1 &lt;= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 3) % 9))) &amp;&amp; (((((int)threadIdx.x) + 3) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1344) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1456)] = (((((1 &lt;= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 7) % 9))) &amp;&amp; (((((int)threadIdx.x) + 7) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1456) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((1 &lt;= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 2) % 9))) &amp;&amp; (((((int)threadIdx.x) + 2) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1568) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1680)] = (((((1 &lt;= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 6) % 9))) &amp;&amp; (((((int)threadIdx.x) + 6) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1680) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1792)] = (((((1 &lt;= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 1) % 9))) &amp;&amp; (((((int)threadIdx.x) + 1) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1792) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 1904)] = (((((1 &lt;= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 5) % 9))) &amp;&amp; (((((int)threadIdx.x) + 5) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1904) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2016)] = (((((1 &lt;= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (((int)threadIdx.x) % 9))) &amp;&amp; ((((int)threadIdx.x) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) + 1560)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2128)] = (((((1 &lt;= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 4) % 9))) &amp;&amp; (((((int)threadIdx.x) + 4) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2128) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2240)] = (((((1 &lt;= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 8) % 9))) &amp;&amp; (((((int)threadIdx.x) + 8) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2240) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2352)] = (((((1 &lt;= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 3) % 9))) &amp;&amp; (((((int)threadIdx.x) + 3) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2352) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2464)] = (((((1 &lt;= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 7) % 9))) &amp;&amp; (((((int)threadIdx.x) + 7) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2464) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2576)] = (((((1 &lt;= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 2) % 9))) &amp;&amp; (((((int)threadIdx.x) + 2) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2576) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2688)] = (((((1 &lt;= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 6) % 9))) &amp;&amp; (((((int)threadIdx.x) + 6) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2688) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2800)] = (((((1 &lt;= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 1) % 9))) &amp;&amp; (((((int)threadIdx.x) + 1) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2800) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 2912)] = (((((1 &lt;= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 5) % 9))) &amp;&amp; (((((int)threadIdx.x) + 5) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2912) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3024)] = (((((1 &lt;= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (((int)threadIdx.x) % 9))) &amp;&amp; ((((int)threadIdx.x) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) + 2344)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3136)] = (((((1 &lt;= ((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 49) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 4) % 9))) &amp;&amp; (((((int)threadIdx.x) + 4) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3136) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3248)] = (((((1 &lt;= ((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 35) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 8) % 9))) &amp;&amp; (((((int)threadIdx.x) + 8) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3248) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3360)] = (((((1 &lt;= ((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 21) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 3) % 9))) &amp;&amp; (((((int)threadIdx.x) + 3) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3360) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3472)] = (((((1 &lt;= ((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 7) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 7) % 9))) &amp;&amp; (((((int)threadIdx.x) + 7) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3472) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3584)] = (((((1 &lt;= ((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 56) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 2) % 9))) &amp;&amp; (((((int)threadIdx.x) + 2) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3584) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3696)] = (((((1 &lt;= ((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 42) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 6) % 9))) &amp;&amp; (((((int)threadIdx.x) + 6) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3696) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3808)] = (((((1 &lt;= ((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 28) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 1) % 9))) &amp;&amp; (((((int)threadIdx.x) + 1) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3808) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
-      pad_temp_shared[(((int)threadIdx.x) + 3920)] = (((((1 &lt;= ((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer)) &amp;&amp; (((((((int)threadIdx.x) + 14) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 5) % 9))) &amp;&amp; (((((int)threadIdx.x) + 5) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3920) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
-      kernel_shared[((int)threadIdx.x)] = kernel[(((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 112)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 112) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 224)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 224) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 336)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 336) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 448)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 448) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 560)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 560) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 672)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 672) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 784)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 784) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 896)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 896) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1008)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1008) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1120)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1120) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1232)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1232) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1344)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 32256)];
-      kernel_shared[(((int)threadIdx.x) + 1456)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1456) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1568)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1568) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1680)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1680) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1792)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1792) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 1904)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 1904) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2016)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2016) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2128)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2128) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2240)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2240) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2352)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2352) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2464)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2464) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2576)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2576) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2688)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 64512)];
-      kernel_shared[(((int)threadIdx.x) + 2800)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2800) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 2912)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 2912) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3024)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3024) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3136)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3136) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3248)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3248) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3360)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3360) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3472)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3472) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3584)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3584) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3696)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3696) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3808)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3808) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 3920)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 3920) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4032)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 96768)];
-      kernel_shared[(((int)threadIdx.x) + 4144)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4144) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4256)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4256) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4368)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4368) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4480)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4480) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4592)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4592) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4704)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4704) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 32) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4816)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4816) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 16) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 4928)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 4928) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 128) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5040)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5040) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 16) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5152)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5152) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 160) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5264)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5264) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 80) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5376)] = kernel[((((((((int)blockIdx.x) * 147456) + (rc_outer_outer * 576)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 129024)];
-      kernel_shared[(((int)threadIdx.x) + 5488)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5488) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 112) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5600)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5600) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 32) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5712)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5712) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) / 3) + 48) &amp; 63) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5824)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5824) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 64) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
-      kernel_shared[(((int)threadIdx.x) + 5936)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 5936) / 192) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 176) % 192) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
-      if (((int)threadIdx.x) &lt; 96) {
-        kernel_shared[(((int)threadIdx.x) + 6048)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 6048) / 192) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) / 3) + 32) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
+      if (((int)threadIdx.x) &lt; 42) {
+        pad_temp_shared[(((int)threadIdx.x) * 2)] = (((((1 &lt;= ((((((int)threadIdx.x) * 2) % 21) / 7) + (((int)blockIdx.x) % 7))) &amp;&amp; (((((((int)threadIdx.x) * 2) % 21) / 7) + (((int)blockIdx.x) % 7)) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + ((((int)threadIdx.x) * 2) % 7)))) &amp;&amp; ((rx_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 196) + (((((int)threadIdx.x) * 2) / 21) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + rx_outer_outer) +  [...]
       }
+      if (((int)threadIdx.x) &lt; 42) {
+        pad_temp_shared[((((int)threadIdx.x) * 2) + 1)] = (((((1 &lt;= (((((((int)threadIdx.x) * 2) + 1) % 21) / 7) + (((int)blockIdx.x) % 7))) &amp;&amp; ((((((((int)threadIdx.x) * 2) + 1) % 21) / 7) + (((int)blockIdx.x) % 7)) &lt; 8)) &amp;&amp; (1 &lt;= (rx_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)))) &amp;&amp; ((rx_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((((rc_outer_outer * 196) + ((((((int)threadIdx.x) * 2) + 1) / 21) * 49)) + ((((int)blockId [...]
+      }
+      kernel_shared[((int)threadIdx.x)] = kernel[((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 64)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 64) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 128)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 128) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 192)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer) + 73728)];
+      kernel_shared[(((int)threadIdx.x) + 256)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 256) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 320)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 320) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 384)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer) + 147456)];
+      kernel_shared[(((int)threadIdx.x) + 448)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 448) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 512)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 512) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 576)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((int)threadIdx.x) % 12) * 3)) + rx_outer_outer) + 221184)];
+      kernel_shared[(((int)threadIdx.x) + 640)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 640) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 1) % 3) * 3)) + rx_outer_outer)];
+      kernel_shared[(((int)threadIdx.x) + 704)] = kernel[(((((((((int)blockIdx.x) / 7) * 294912) + (((((int)threadIdx.x) + 704) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 8) % 12) / 3) * 9)) + (((((int)threadIdx.x) + 2) % 3) * 3)) + rx_outer_outer)];
       __syncthreads();
-      for (int rx_outer_inner = 0; rx_outer_inner &lt; 3; ++rx_outer_inner) {
-        for (int xx_outer_inner = 0; xx_outer_inner &lt; 7; ++xx_outer_inner) {
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner)] * kernel_shared[(((((int)threadIdx.x) / 7) * 384) + rx_outer_inner)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 192)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 63)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 3)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 63)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 195)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 126)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 6)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 126)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 198)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 189)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 9)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 189)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 201)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 252)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 12)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 252)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 204)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 315)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 15)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 315)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 207)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 378)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 18)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 378)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 210)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 441)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 21)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 441)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 213)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 504)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 24)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 504)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 216)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 567)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 27)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 567)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 219)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 630)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 30)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 630)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 222)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 693)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 33)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 693)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 225)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 756)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 36)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 756)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 228)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 819)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 39)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 819)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 231)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 882)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 42)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 882)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 234)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 945)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 45)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 945)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 237)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1008)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 48)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1008)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 240)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1071)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 51)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1071)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 243)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1134)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 54)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1134)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 246)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1197)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 57)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1197)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 249)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1260)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 60)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1260)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 252)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1323)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 63)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1323)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 255)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1386)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 66)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1386)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 258)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1449)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 69)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1449)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 261)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1512)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 72)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1512)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 264)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1575)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 75)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1575)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 267)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1638)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 78)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1638)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 270)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1701)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 81)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1701)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 273)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1764)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 84)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1764)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 276)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1827)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 87)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1827)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 279)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1890)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 90)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1890)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 282)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1953)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 93)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 1953)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 285)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2016)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 96)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2016)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 288)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2079)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 99)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2079)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 291)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2142)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 102)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2142)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 294)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2205)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 105)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2205)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 297)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2268)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 108)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2268)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 300)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2331)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 111)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2331)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 303)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2394)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 114)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2394)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 306)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2457)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 117)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2457)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 309)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2520)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 120)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2520)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 312)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2583)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 123)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2583)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 315)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2646)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 126)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2646)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 318)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2709)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 129)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2709)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 321)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2772)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 132)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2772)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 324)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2835)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 135)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2835)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 327)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2898)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 138)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2898)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 330)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2961)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 141)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 2961)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 333)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3024)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 144)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3024)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 336)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3087)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 147)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3087)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 339)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3150)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 150)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3150)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 342)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3213)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 153)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3213)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 345)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3276)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 156)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3276)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 348)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3339)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 159)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3339)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 351)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3402)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 162)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3402)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 354)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3465)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 165)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3465)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 357)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3528)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 168)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3528)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 360)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3591)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 171)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3591)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 363)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3654)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 174)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3654)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 366)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3717)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 177)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3717)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 369)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3780)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 180)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3780)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 372)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3843)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 183)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3843)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 375)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3906)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 186)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3906)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 378)]));
-          conv2d_nchw[xx_outer_inner] = (conv2d_nchw[xx_outer_inner] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3969)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 189)]));
-          conv2d_nchw[(xx_outer_inner + 7)] = (conv2d_nchw[(xx_outer_inner + 7)] + (pad_temp_shared[(((((((int)threadIdx.x) % 7) * 9) + xx_outer_inner) + rx_outer_inner) + 3969)] * kernel_shared[((((((int)threadIdx.x) / 7) * 384) + rx_outer_inner) + 381)]));
+      for (int rc_inner = 0; rc_inner &lt; 4; ++rc_inner) {
+        for (int ry_inner = 0; ry_inner &lt; 3; ++ry_inner) {
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((rc_inner * 21) + (ry_inner * 7))] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 1)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 2)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 3)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 4)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 5)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((rc_inner * 21) + (ry_inner * 7)) + 6)] * kernel_shared[(((((int)threadIdx.x) * 12) + (rc_inner * 3)) + ry_inner)]));
         }
       }
     }
   }
-  for (int i1_inner = 0; i1_inner &lt; 2; ++i1_inner) {
-    for (int i3_inner = 0; i3_inner &lt; 7; ++i3_inner) {
-      compute[(((((((int)blockIdx.x) * 1568) + ((((int)threadIdx.x) / 7) * 98)) + (i1_inner * 49)) + ((((int)threadIdx.x) % 7) * 7)) + i3_inner)] = max((conv2d_nchw[((i1_inner * 7) + i3_inner)] + bias[(((((int)blockIdx.x) * 32) + ((((int)threadIdx.x) / 7) * 2)) + i1_inner)]), 0.000000e+00f);
-    }
-  }
+  compute[((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7))] = max((conv2d_nchw[0] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+  compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 1)] = max((conv2d_nchw[1] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+  compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 2)] = max((conv2d_nchw[2] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+  compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 3)] = max((conv2d_nchw[3] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+  compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 4)] = max((conv2d_nchw[4] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+  compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 5)] = max((conv2d_nchw[5] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
+  compute[(((((((int)blockIdx.x) / 7) * 3136) + (((int)threadIdx.x) * 49)) + ((((int)blockIdx.x) % 7) * 7)) + 6)] = max((conv2d_nchw[6] + bias[(((((int)blockIdx.x) / 7) * 64) + ((int)threadIdx.x))]), 0.000000e+00f);
 }
 </pre></div>
 </div>
@@ -1253,7 +771,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  32.299 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  32.057 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 c58c275b2..e5142cdce 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -878,7 +878,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.9812       9.9720      10.0057       9.9658       0.0175
+  10.0095      10.0044      10.0492       9.9750       0.0305
 </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 1564e3ab8..74c094060 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -897,7 +897,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)
-  748.7067     748.2991     750.5136     747.3074      1.3403
+  769.7185     769.6068     770.5845     768.9642      0.6662
 </pre></div>
 </div>
 </div>
@@ -919,7 +919,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.117 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  21.484 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 aa6e22cbf..e825fa0b3 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -600,30 +600,32 @@ 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}
-  preflattened_buffer_map = {placeholder_9: placeholder_15: Buffer(placeholder_14, float32, [128, 512], []), placeholder_7: placeholder_16: Buffer(placeholder_12, int32, [4916], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_8: placeholder_18: Buffer(placeholder_13, int32, [33], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_5: placeholder_19: Buffer(placeholder_10, float32, [128, 256], [])} {
-  for (i0.outer.i1.outer.fused: int32, 0, 256) &quot;parallel&quot; {
-    allocate(compute_4: Pointer(global float32), float32, [512]), storage_scope = global {
-      for (i.outer.inner: int32, 0, 4) {
-        for (i.inner.init: int32, 0, 8) {
-          for (j.init: int32, 0, 16) {
-            compute_5: Buffer(compute_4, float32, [512], [])[(((i.outer.inner*128) + (i.inner.init*16)) + j.init)] = 0f32
+  preflattened_buffer_map = {placeholder_9: placeholder_15: Buffer(placeholder_14, float32, [128, 512], []), placeholder_5: placeholder_16: Buffer(placeholder_10, float32, [128, 256], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_7: placeholder_18: Buffer(placeholder_12, int32, [4916], []), placeholder_8: placeholder_19: Buffer(placeholder_13, int32, [33], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], [])} {
+  for (i0.outer.i1.outer.fused: int32, 0, 32) &quot;parallel&quot; {
+    allocate(compute_4: Pointer(global float32), float32, [2048]), storage_scope = global {
+      for (i.outer.inner: int32, 0, 2) {
+        for (nb_j.inner: int32, 0, 2) {
+          for (i.inner.init: int32, 0, 32) {
+            for (j.init: int32, 0, 16) {
+              compute_5: Buffer(compute_4, float32, [2048], [])[((((i.outer.inner*1024) + (i.inner.init*32)) + (nb_j.inner*16)) + j.init)] = 0f32
+            }
           }
-        }
-        for (elem_idx: int32, 0, let cse_var_1: int32 = floordiv(floormod(i0.outer.i1.outer.fused, 64), 2) 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 = floordiv(floormod(i0.outer.i1.outer.fused, 64), 2)
-              let cse_var_2: int32 = (((i.outer.inner*128) + (i.inner*16)) + j)
-              compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[((((floordiv(i0.outer.i1.outer.fused, 64)*8192) + (i.outer.inner*2048)) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
+          for (elem_idx: int32, 0, let cse_var_1: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
+            for (i.inner: int32, 0, 32) {
+              for (j: int32, 0, 16) {
+                let cse_var_3: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+                let cse_var_2: int32 = ((((i.outer.inner*1024) + (i.inner*32)) + (nb_j.inner*16)) + j)
+                compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[((((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*8192)) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
+              }
             }
           }
         }
       }
-      for (i0.inner: int32, 0, 32) {
-        let cse_var_5: int32 = floormod(i0.outer.i1.outer.fused, 64)
-        let cse_var_6: int32 = (cse_var_5*8)
-        let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 64)*16384) + (i0.inner*512)) + cse_var_6)
-        compute[ramp(cse_var_4, 1, 8)] = max((compute_5[ramp((((i0.inner*16) + cse_var_6) - (floordiv(cse_var_5, 2)*16)), 1, 8)] + placeholder_4[ramp(cse_var_4, 1, 8)]), broadcast(0f32, 8))
+      for (i0.inner: int32, 0, 64) {
+        for (i1.inner: int32, 0, 32) {
+          let cse_var_4: int32 = ((((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32)) + i1.inner)
+          compute[cse_var_4] = max((compute_5[((i0.inner*32) + i1.inner)] + placeholder_4[cse_var_4]), 0f32)
+        }
       }
     }
   }
@@ -662,7 +664,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: 3.013 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.656 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 7313cb81c..073be0281 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.633</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:45.406</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:43.803</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.216</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.213</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.201</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.200</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:44.480</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.243</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.229</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.227</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.226</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 4269dafb5..8596f0da4 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: 92.34/92.34     result: MeasureResult(costs=(0.0025069530416666668,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.607266902923584, timestamp=1654534569.8616302)       [(&#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/92.34      result: Traceback (most recent call last):
+No: 6   GFLOPS: 93.25/93.25     result: MeasureResult(costs=(0.002482552083333333,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6437036991119385, timestamp=1654592794.6007924)       [(&#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/93.25      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/92.34      result: Traceback (most recent call last):
+No: 8   GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 9   GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 10  GFLOPS: 0.00/93.25      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/92.34      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/92.34      result: Traceback (most recent call last):
+No: 11  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 12  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 13  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 14  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 15  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 16  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 17  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 18  GFLOPS: 0.00/93.25      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/92.34      result: Traceback (most recent call last):
+No: 19  GFLOPS: 0.00/93.25      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: 0x00007f12b294cfa2
+  12: 0x00007fc885257fa2
   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.88/144.88   result: MeasureResult(costs=(0.00159785495,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4223277568817139, timestamp=1654534596.2005908)      [(&#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: 143.47/143.47   result: MeasureResult(costs=(0.0016135417399999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3977861404418945, timestamp=1654592821.1712134)      [(&#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.001968
+Time cost of this operator: 0.002017
 </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 4b86d6108..ccf975f43 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -556,10 +556,10 @@ the tuned operator.</p>
 ########## 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  308.6     98.74    (1, 2, 10, 10, 3)  2       1
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.026     0.968    (1, 6, 10, 10)     1       1
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.913     0.292    (1, 1, 10, 10, 3)  1       1
-Total_time                                    -                                             312.539   -        -                  -       -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  314.3     98.745   (1, 2, 10, 10, 3)  2       1
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.073     0.965    (1, 6, 10, 10)     1       1
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.921     0.289    (1, 1, 10, 10, 3)  1       1
+Total_time                                    -                                             318.294   -        -                  -       -
 </pre></div>
 </div>
 </div>
@@ -611,10 +611,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  78.65     96.621   (1, 6, 10, 10, 1)  2       1
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.825     2.242    (1, 6, 10, 10)     1       1
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.926     1.137    (1, 1, 10, 10, 3)  1       1
-Total_time                                    -                                             81.401    -        -                  -       -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  190.4     98.416   (1, 1, 10, 10, 6)  2       1
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       2.1       1.085    (1, 6, 10, 10)     1       1
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.964     0.499    (1, 3, 10, 10, 1)  1       1
+Total_time                                    -                                             193.464   -        -                  -       -
 </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/micro_train.html b/docs/how_to/work_with_microtvm/micro_train.html
index 2d25f2a86..05ac46814 100644
--- a/docs/how_to/work_with_microtvm/micro_train.html
+++ b/docs/how_to/work_with_microtvm/micro_train.html
@@ -552,8 +552,8 @@ objects to other stuff? We can display some examples from our datasets using <co
 </div>
 <img alt="../../_images/sphx_glr_micro_train_001.png" class="sphx-glr-single-img" src="../../_images/sphx_glr_micro_train_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>/tmp/tmp1lta35dh/images/target contains 8144 images
-/tmp/tmp1lta35dh/images/random contains 5000 images
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpy4bdfu_a/images/target contains 8144 images
+/tmp/tmpy4bdfu_a/images/random contains 5000 images
 </pre></div>
 </div>
 </div>
@@ -666,11 +666,11 @@ the time on our validation set).</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>Epoch 1/3
-328/328 - 53s - loss: 0.2230 - accuracy: 0.9233 - val_loss: 0.1561 - val_accuracy: 0.9566
+328/328 - 54s - loss: 0.2123 - accuracy: 0.9228 - val_loss: 0.1276 - val_accuracy: 0.9603
 Epoch 2/3
-328/328 - 51s - loss: 0.1036 - accuracy: 0.9618 - val_loss: 0.1126 - val_accuracy: 0.9637
+328/328 - 52s - loss: 0.1009 - accuracy: 0.9640 - val_loss: 0.1362 - val_accuracy: 0.9603
 Epoch 3/3
-328/328 - 51s - loss: 0.0630 - accuracy: 0.9757 - val_loss: 0.1042 - val_accuracy: 0.9664
+328/328 - 52s - loss: 0.0695 - accuracy: 0.9728 - val_loss: 0.1461 - val_accuracy: 0.9573
 </pre></div>
 </div>
 </div>
@@ -959,7 +959,7 @@ as intended.</p>
 <p>From here, we could modify the model to read live images from the camera - we have another
 Arduino tutorial for how to do that <a class="reference external" href="https://github.com/guberti/tvm-arduino-demos/tree/master/examples/person_detection">on GitHub</a>. Alternatively, we could also
 <a class="reference external" href="https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_autotune.html">use TVM’s autotuning capabilities</a> to dramatically improve the model’s performance.</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  29.896 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  36.088 seconds)</p>
 <div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-train-py">
 <div class="sphx-glr-download docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/b52cec46baf4f78d6bcd94cbe269c8a6/micro_train.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">micro_train.py</span></code></a></p>
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 5f7148c61..a2db0411a 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -300,14 +300,14 @@
             
   <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>05:15.036</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>05:23.790</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
 <ul class="simple">
-<li><p><strong>04:29.896</strong>: <a class="reference internal" href="micro_train.html#sphx-glr-how-to-work-with-microtvm-micro-train-py"><span class="std std-ref">Training Vision Models for microTVM on Arduino</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_train.py</span></code>)</p></li>
-<li><p><strong>00:40.961</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.572</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.206</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:00.201</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.201</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 with CMSIS-NN</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></li>
+<li><p><strong>04:36.088</strong>: <a class="reference internal" href="micro_train.html#sphx-glr-how-to-work-with-microtvm-micro-train-py"><span class="std std-ref">Training Vision Models for microTVM on Arduino</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_train.py</span></code>)</p></li>
+<li><p><strong>00:43.346</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.732</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.210</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:00.208</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.206</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 with CMSIS-NN</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.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 729d5089d..25bc6101a 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:11.872</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:12.465</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:09.955</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.702</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.214</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:10.112</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:02.125</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.228</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 76a5e7ec8..0d8f85ea8 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.641</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:05.963</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
 <ul class="simple">
-<li><p><strong>00:02.083</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.173</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.722</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.697</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.310</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.230</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.215</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.211</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:02.189</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.207</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.766</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.748</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.319</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.252</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.248</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.234</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 d5de816d2..b1f039e73 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -552,7 +552,7 @@ The importing needs to happen before the tensorized GEMV being executed.</p>
              C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C}
   preflattened_buffer_map = {A_1: A_3: Buffer(A_2, float32, [1024, 64], []), B_1: B_3: Buffer(B_2, float32, [512, 64], []), C_1: C_3: Buffer(C_2, float32, [1024, 512], [])} {
-  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmpx0612196/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmpx0612196/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = allo [...]
+  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmpvvh2m_cg/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmpvvh2m_cg/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = allo [...]
   for (i, 0, 1024) {
     for (j.outer: int32, 0, 32) {
       @tir.call_extern(&quot;gemv_update&quot;, @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/reference/api/doxygen/classes.html b/docs/reference/api/doxygen/classes.html
index c68da64ed..6c3df74b3 100644
--- a/docs/reference/api/doxygen/classes.html
+++ b/docs/reference/api/doxygen/classes.html
@@ -132,12 +132,12 @@ $(function() {
 <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_1tir_1_1MatchBufferRegion.html">MatchBufferRegion</a> (<a class="el" h [...]
 <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_1MatchBufferRegionNode.html">MatchBufferRegionNode</a> (<a class="el" href="namespace [...]
 <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_1relay_1_1MatchNode.html">MatchNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</ [...]
-<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="structtvm_1_1relay_1_1MatmulAttrs.html">MatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.htm [...]
-<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_1MatrixSetDiagAttrs.html">MatrixSetDiagAttrs</a> (<a class="el" href="namespacetvm_1_1re [...]
-<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="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#16 [...]
-<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_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valig [...]
-<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="structtvm_1_1relay_1_1MaxPool1DAttrs.html">MaxPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay< [...]
-<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_1MaxPool2DAttrs.html">MaxPool2DAttrs</a> (<a class="el" href="namespa [...]
+<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="structtvm_1_1relay_1_1MatmulAttrs.html">MatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.htm [...]
+<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_1MatrixSetDiagAttrs.html">MatrixSetDiagAttrs</a> (<a class="el" href="namespacetvm_1_1re [...]
+<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="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#16 [...]
+<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_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valig [...]
+<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="structtvm_1_1relay_1_1MaxPool1DAttrs.html">MaxPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay< [...]
+<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_1MaxPool2DAttrs.html">MaxPool2DAttrs</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_1MaxPool3DAttrs.html">MaxPool3DAttrs</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="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html [...]
 <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_1auto__scheduler_1_1MeasureCallback.html">MeasureCallback</a> ( [...]
@@ -201,10 +201,10 @@ $(function() {
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html">BufferRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
 </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="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="unionTVMValue.html">TVMValue</a>&#160;&#160;&#160;</td></tr>
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html">BufferRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</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="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
-</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_1Type.html">Type</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_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_1relay_1_1GatherAttrs.html">GatherAttrs</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">tvm: [...]
-<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_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_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" hr [...]
-<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="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_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#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">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Type.html">Type</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_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_1relay_1_1GatherAttrs.html">GatherAttrs</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">tv [...]
+<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_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_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" hr [...]
+<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="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_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&# [...]
 <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_1GenericFunc.html">GenericFunc</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="namespacetvm_1_1runtime.html">tvm::ru [...]
 <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_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_1ObjectHash.html">ObjectHash</a> (<a class="el" href="namespacetvm_1_ [...]
 <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_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="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</a> (<a class="el" href="namespa [...]
@@ -252,8 +252,8 @@ $(function() {
 <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_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="structtvm_1_1relay_1_1PadAttrs.html">PadAttrs</a> (<a class="el" h [...]
 <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_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="classtvm_1_1transform_1_1Pass.html">Pass</a> (<a class="el" href="namespacetvm [...]
 <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_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="classtvm_1_1 [...]
-<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="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_1PassContextNode.html">PassContextNode</a> (<a  [...]
-<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_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_1PassInfo.html">PassInfo</a> (<a class="el" href="nam [...]
+<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="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_1PassContextNode.html">PassContextNode</a> (<a  [...]
+<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_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_1PassInfo.html">PassInfo</a> (<a class="el" href="nam [...]
 <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_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_1PassInfoNode.html">PassInfoNode</a> (<a class [...]
 <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_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_1instrument_1_1PassInstrument.html">PassInstr [...]
 <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="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_1PassInstrumentNod [...]
@@ -272,8 +272,8 @@ $(function() {
 <tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</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_1arith_1_1IntConstraintsTransformNode.html">IntConstraintsTransformNode</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_1PatternVarNode.html">Pattern [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</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_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_1PatternVisitor.html">PatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm: [...]
 <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_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_1PatternWildcard.html">PatternWildcard</a> (<a class="el" href="namespacetvm_1_1rela [...]
-<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_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_1PatternWildcardNode.html">PatternWildcardNode</a> (<a class="el" href [...]
-<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_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_1runtime_1_1profiling_1_1PercentNode.html">PercentNode</a> (<a cla [...]
+<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_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_1PatternWildcardNode.html">PatternWildcardNode</a> (<a class="el" href [...]
+<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_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_1runtime_1_1profiling_1_1PercentNode.html">PercentNode</a> (<a cla [...]
 <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_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_1te_1_1PlaceholderOp.html">PlaceholderOp</a> (<a cl [...]
 <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_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_1PlaceholderOpNode.html">PlaceholderOpNode</a> (<a class="el" href="namespacetvm_1_1te.ht [...]
 <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_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_1PointerType.html">PointerType</a> (<a class="el" href="namespacetvm.html">tvm< [...]
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode-members.html
index b07ae1d43..a21eecaf6 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode-members.html
@@ -90,7 +90,7 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#acf145edd9c5a047166dd8f29f65ab75e">FInitializeWithTuneContext</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a802c0ead40a90b4bf5c0962a8d4bbdee">FNotifyRunnerResults</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#ad4730dca4fcd0cfbd73fc6c9ed11fe4a">FPostTuning</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">FPreTuning</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">FPreTuning</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#ad565f2d8d7b6908f92b34aea6f478fd3">GenerateMeasureCandidates</a>() final</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a726972ff315c446192df94027ddea032">GetOrAllocRuntimeTypeIndex</a>(const std::string &amp;key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4d951e51832081b85875669eac90e940">GetTypeKey</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -105,7 +105,7 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a69c32fbd96181f5c21d2c878ab285e4f">operator=</a>(const Object &amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ae341e561272ff43cdcbc927bc29ac50d">operator=</a>(Object &amp;&amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a1357c198f8d2aca2c8fa9358b92e1e2a">PostTuning</a>() final</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#aedcd9c6cc9d8d2a0da10b345ff5d5a61">PreTuning</a>(const Array&lt; tir::Schedule &gt; &amp;design_spaces) final</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a53127523582ffdb12f40c9433a577adf">PreTuning</a>(const Array&lt; tir::Schedule &gt; &amp;design_spaces, const Optional&lt; Database &gt; &amp;database, const Optional&lt; CostModel &gt; &amp;cost_model) final</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html">tvm::meta_schedule::PySearchStrategyNode</a></td><td class="entry"><spa [...]
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a0d492efee331e2239a093f4b2017c10f">ref_counter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55549a6c23987890246248682560a03d">RefCounterType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ad94d79729ac85aa7c976e23d39066383">RuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html
index 661fac87f..29fc9bcd3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html
@@ -86,7 +86,7 @@ Inheritance diagram for tvm::meta_schedule::PySearchStrategyNode:</div>
 <div class="dynheader">
 Collaboration diagram for tvm::meta_schedule::PySearchStrategyNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1PySearchStrategyNode__coll__graph.svg" width="1531" height="1015"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1PySearchStrategyNode__coll__graph.svg" width="1563" height="1015"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -95,9 +95,9 @@ Public Types</h2></td></tr>
 <tr class="memitem:acf145edd9c5a047166dd8f29f65ab75e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#acf145edd9c5a047166dd8f29f65ab75e">FInitializeWithTuneContext</a> = <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">runtime::TypedPackedFunc</a>&lt; void(const <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContext.html">TuneConte [...]
 <tr class="memdesc:acf145edd9c5a047166dd8f29f65ab75e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function type of <code>InitializeWithTuneContext</code> method.  <a href="#acf145edd9c5a047166dd8f29f65ab75e">More...</a><br /></td></tr>
 <tr class="separator:acf145edd9c5a047166dd8f29f65ab75e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a62a1fce99946955bdb2116cd01a61b9c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">FPreTuning</a> = <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">runtime::TypedPackedFunc</a>&lt; void(const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="clas [...]
-<tr class="memdesc:a62a1fce99946955bdb2116cd01a61b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function type of <code>PreTuning</code> method.  <a href="#a62a1fce99946955bdb2116cd01a61b9c">More...</a><br /></td></tr>
-<tr class="separator:a62a1fce99946955bdb2116cd01a61b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a528df580fe251d7fe9eec1e68f8d2385"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">FPreTuning</a> = <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">runtime::TypedPackedFunc</a>&lt; void(const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="clas [...]
+<tr class="memdesc:a528df580fe251d7fe9eec1e68f8d2385"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function type of <code>PreTuning</code> method.  <a href="#a528df580fe251d7fe9eec1e68f8d2385">More...</a><br /></td></tr>
+<tr class="separator:a528df580fe251d7fe9eec1e68f8d2385"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad4730dca4fcd0cfbd73fc6c9ed11fe4a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#ad4730dca4fcd0cfbd73fc6c9ed11fe4a">FPostTuning</a> = <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">runtime::TypedPackedFunc</a>&lt; void()&gt;</td></tr>
 <tr class="memdesc:ad4730dca4fcd0cfbd73fc6c9ed11fe4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function type of <code>PostTuning</code> method.  <a href="#ad4730dca4fcd0cfbd73fc6c9ed11fe4a">More...</a><br /></td></tr>
 <tr class="separator:ad4730dca4fcd0cfbd73fc6c9ed11fe4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -121,9 +121,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:afcc701ca7cbb2a80ebe59428bd422946"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#afcc701ca7cbb2a80ebe59428bd422946">InitializeWithTuneContext</a> (const <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContext.html">TuneContext</a> &amp;context) final</td></tr>
 <tr class="memdesc:afcc701ca7cbb2a80ebe59428bd422946"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the search strategy with tuning context.  <a href="#afcc701ca7cbb2a80ebe59428bd422946">More...</a><br /></td></tr>
 <tr class="separator:afcc701ca7cbb2a80ebe59428bd422946"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aedcd9c6cc9d8d2a0da10b345ff5d5a61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#aedcd9c6cc9d8d2a0da10b345ff5d5a61">PreTuning</a> (const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a> &gt; &amp;design_spaces) final</td></tr>
-<tr class="memdesc:aedcd9c6cc9d8d2a0da10b345ff5d5a61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-tuning for the search strategy.  <a href="#aedcd9c6cc9d8d2a0da10b345ff5d5a61">More...</a><br /></td></tr>
-<tr class="separator:aedcd9c6cc9d8d2a0da10b345ff5d5a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53127523582ffdb12f40c9433a577adf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a53127523582ffdb12f40c9433a577adf">PreTuning</a> (const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a> &gt; &amp;design_spaces, const <a class="el" href="classtv [...]
+<tr class="memdesc:a53127523582ffdb12f40c9433a577adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-tuning for the search strategy.  <a href="#a53127523582ffdb12f40c9433a577adf">More...</a><br /></td></tr>
+<tr class="separator:a53127523582ffdb12f40c9433a577adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1357c198f8d2aca2c8fa9358b92e1e2a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a1357c198f8d2aca2c8fa9358b92e1e2a">PostTuning</a> () final</td></tr>
 <tr class="memdesc:a1357c198f8d2aca2c8fa9358b92e1e2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post-tuning for the search strategy.  <a href="#a1357c198f8d2aca2c8fa9358b92e1e2a">More...</a><br /></td></tr>
 <tr class="separator:a1357c198f8d2aca2c8fa9358b92e1e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -169,7 +169,7 @@ Public Attributes</h2></td></tr>
 <tr class="memitem:a32818326baaa42c2de89704fcec48915"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#acf145edd9c5a047166dd8f29f65ab75e">FInitializeWithTuneContext</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a32818326baaa42c2de89704fcec48915">f_initialize_with_tune_context</a></td></tr>
 <tr class="memdesc:a32818326baaa42c2de89704fcec48915"><td class="mdescLeft">&#160;</td><td class="mdescRight">The packed function to the <code>InitializeWithTuneContext</code> method.  <a href="#a32818326baaa42c2de89704fcec48915">More...</a><br /></td></tr>
 <tr class="separator:a32818326baaa42c2de89704fcec48915"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:addb53ffefebe51c9f2227349833f51de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">FPreTuning</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#addb53ffefebe51c9f2227349833f51de">f_pre_tuning</a></td></tr>
+<tr class="memitem:addb53ffefebe51c9f2227349833f51de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">FPreTuning</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#addb53ffefebe51c9f2227349833f51de">f_pre_tuning</a></td></tr>
 <tr class="memdesc:addb53ffefebe51c9f2227349833f51de"><td class="mdescLeft">&#160;</td><td class="mdescRight">The packed function to the <code>PreTuning</code> method.  <a href="#addb53ffefebe51c9f2227349833f51de">More...</a><br /></td></tr>
 <tr class="separator:addb53ffefebe51c9f2227349833f51de"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a215e220c292bbafa7a0eeaf46a9a3f38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#ad4730dca4fcd0cfbd73fc6c9ed11fe4a">FPostTuning</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a215e220c292bbafa7a0eeaf46a9a3f38">f_post_tuning</a></td></tr>
@@ -325,14 +325,14 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a62a1fce99946955bdb2116cd01a61b9c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a62a1fce99946955bdb2116cd01a61b9c">&#9670;&nbsp;</a></span>FPreTuning</h2>
+<a id="a528df580fe251d7fe9eec1e68f8d2385"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a528df580fe251d7fe9eec1e68f8d2385">&#9670;&nbsp;</a></span>FPreTuning</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">using <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">tvm::meta_schedule::PySearchStrategyNode::FPreTuning</a> =  <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">runtime::TypedPackedFunc</a>&lt;void(const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt;<a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a>&gt;&amp;)&gt;</td>
+          <td class="memname">using <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">tvm::meta_schedule::PySearchStrategyNode::FPreTuning</a> =  <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">runtime::TypedPackedFunc</a>&lt;void( const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt;<a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a>&gt;&amp;, const <a class="el" href=" [...]
         </tr>
       </table>
 </div><div class="memdoc">
@@ -499,8 +499,8 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="aedcd9c6cc9d8d2a0da10b345ff5d5a61"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aedcd9c6cc9d8d2a0da10b345ff5d5a61">&#9670;&nbsp;</a></span>PreTuning()</h2>
+<a id="a53127523582ffdb12f40c9433a577adf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a53127523582ffdb12f40c9433a577adf">&#9670;&nbsp;</a></span>PreTuning()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -512,13 +512,29 @@ Additional Inherited Members</h2></td></tr>
           <td class="memname">void tvm::meta_schedule::PySearchStrategyNode::PreTuning </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a> &gt; &amp;&#160;</td>
-          <td class="paramname"><em>design_spaces</em></td><td>)</td>
+          <td class="paramname"><em>design_spaces</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>database</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>cost_model</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">final</span><span class="mlabel">virtual</span></span>  </td>
+<span class="mlabels"><span class="mlabel">final</span><span class="mlabel">virtual</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -526,13 +542,15 @@ Additional Inherited Members</h2></td></tr>
 <p>Pre-tuning for the search strategy. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramname">design_spaces</td><td>The design spaces for pre-tuning. </td></tr>
+    <tr><td class="paramname">design_spaces</td><td>The design spaces used during tuning process. </td></tr>
+    <tr><td class="paramname">database</td><td>The database used during tuning process. </td></tr>
+    <tr><td class="paramname">cost_model</td><td>The cost model used during tuning process. </td></tr>
   </table>
   </dd>
 </dl>
 <dl class="section note"><dt>Note</dt><dd>Pre-tuning is supposed to be called before the tuning process and after the initialization. Because the search strategy is stateful, we can always call pretuning and reset the search strategy. </dd></dl>
 
-<p>Implements <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#abd1485c82a7df42a54904de7822f0fbf">tvm::meta_schedule::SearchStrategyNode</a>.</p>
+<p>Implements <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#ad88e1545e88dc1934c25f4b417077aff">tvm::meta_schedule::SearchStrategyNode</a>.</p>
 
 </div>
 </div>
@@ -684,7 +702,7 @@ Additional Inherited Members</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">FPreTuning</a> tvm::meta_schedule::PySearchStrategyNode::f_pre_tuning</td>
+          <td class="memname"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">FPreTuning</a> tvm::meta_schedule::PySearchStrategyNode::f_pre_tuning</td>
         </tr>
       </table>
 </div><div class="memdoc">
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode__coll__graph.svg
index 8ff209c33..77c23f2fb 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PySearchStrategyNode__coll__graph.svg
@@ -4,27 +4,27 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::meta_schedule::PySearchStrategyNode Pages: 1 -->
-<svg width="1148pt" height="761pt"
- viewBox="0.00 0.00 1148.00 761.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1172pt" height="761pt"
+ viewBox="0.00 0.00 1172.00 761.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 757)">
 <title>tvm::meta_schedule::PySearchStrategyNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-757 1144,-757 1144,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-757 1168,-757 1168,4 -4,4"/>
 <!-- Node3 -->
 <g id="node1" class="node">
 <title>Node3</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="445,-.5 445,-134.5 654,-134.5 654,-.5 445,-.5"/>
-<text text-anchor="start" x="453" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="549.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PySearchStrategyNode</text>
-<polyline fill="none" stroke="#000000" points="445,-104.5 654,-104.5 "/>
-<text text-anchor="start" x="453" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="445,-85.5 654,-85.5 "/>
-<text text-anchor="start" x="453" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="453" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeWithTuneContext()</text>
-<text text-anchor="start" x="453" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PreTuning()</text>
-<text text-anchor="start" x="453" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PostTuning()</text>
-<text text-anchor="start" x="453" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GenerateMeasureCandidates()</text>
-<text text-anchor="start" x="453" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NotifyRunnerResults()</text>
-<text text-anchor="start" x="453" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="455,-.5 455,-134.5 664,-134.5 664,-.5 455,-.5"/>
+<text text-anchor="start" x="463" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="559.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PySearchStrategyNode</text>
+<polyline fill="none" stroke="#000000" points="455,-104.5 664,-104.5 "/>
+<text text-anchor="start" x="463" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="455,-85.5 664,-85.5 "/>
+<text text-anchor="start" x="463" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="463" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeWithTuneContext()</text>
+<text text-anchor="start" x="463" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PreTuning()</text>
+<text text-anchor="start" x="463" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PostTuning()</text>
+<text text-anchor="start" x="463" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GenerateMeasureCandidates()</text>
+<text text-anchor="start" x="463" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NotifyRunnerResults()</text>
+<text text-anchor="start" x="463" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
 </g>
 <!-- Node4 -->
 <g id="node2" class="node">
@@ -49,8 +49,8 @@
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge1" class="edge">
 <title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M216.4205,-192.69C296.5591,-154.4864 380.3721,-123.4088 444.761,-101.3242"/>
-<polygon fill="none" stroke="#191970" points="214.6669,-189.6496 207.1726,-197.1387 217.7014,-195.9577 214.6669,-189.6496"/>
+<path fill="none" stroke="#191970" d="M216.267,-192.7741C299.7957,-153.4555 387.8047,-121.9285 454.6358,-99.9115"/>
+<polygon fill="none" stroke="#191970" points="214.6859,-189.6503 207.1554,-197.103 217.6899,-195.973 214.6859,-189.6503"/>
 </g>
 <!-- Node5 -->
 <g id="node3" class="node">
@@ -126,10 +126,10 @@
 <!-- Node6&#45;&gt;Node3 -->
 <g id="edge4" class="edge">
 <title>Node6&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M327.3483,-220.7523C343.9631,-198.9474 366.4647,-172.4704 390.5,-153 403.9555,-142.1 419.0091,-131.9224 434.3441,-122.6632"/>
-<polygon fill="none" stroke="#404040" points="434.6459,-122.4857 437.7898,-115.996 444.9895,-116.402 441.8456,-122.8917 434.6459,-122.4857"/>
-<text text-anchor="start" x="390.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_generate_measure</text>
-<text text-anchor="middle" x="446.5" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_candidates</text>
+<path fill="none" stroke="#404040" d="M328.5593,-220.9424C345.9862,-199.0665 369.5614,-172.4578 394.5,-153 409.6667,-141.1665 426.7193,-130.2071 443.9564,-120.3567"/>
+<polygon fill="none" stroke="#404040" points="444.2163,-120.2119 447.5093,-113.7965 454.6976,-114.3688 451.4047,-120.7841 444.2163,-120.2119"/>
+<text text-anchor="start" x="394.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_generate_measure</text>
+<text text-anchor="middle" x="450.5" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_candidates</text>
 </g>
 <!-- Node7 -->
 <g id="node5" class="node">
@@ -148,76 +148,78 @@
 <!-- Node7&#45;&gt;Node3 -->
 <g id="edge5" class="edge">
 <title>Node7&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M481.1477,-226.4397C490.7615,-204.0847 503.7446,-173.8951 515.8131,-145.8322"/>
-<polygon fill="none" stroke="#404040" points="515.8199,-145.8163 514.5157,-138.7241 520.5608,-134.7925 521.8649,-141.8847 515.8199,-145.8163"/>
-<text text-anchor="middle" x="549.5" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_post_tuning</text>
+<path fill="none" stroke="#404040" d="M482.9125,-226.4397C493.6846,-204.0847 508.2319,-173.8951 521.7544,-145.8322"/>
+<polygon fill="none" stroke="#404040" points="521.8649,-145.6029 520.866,-138.4613 527.0741,-134.7925 528.073,-141.9341 521.8649,-145.6029"/>
+<text text-anchor="middle" x="555.5" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_post_tuning</text>
 </g>
 <!-- Node8 -->
 <g id="node6" class="node">
 <title>Node8</title>
-<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void(const Array\l\&lt; tir::Schedule \&gt; &amp;)\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="559,-221 559,-300 708,-300 708,-221 559,-221"/>
-<text text-anchor="start" x="567" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="start" x="567" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(const Array</text>
-<text text-anchor="middle" x="633.5" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tir::Schedule &gt; &amp;)&gt;</text>
-<polyline fill="none" stroke="#000000" points="559,-259 708,-259 "/>
-<text text-anchor="middle" x="633.5" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="559,-240 708,-240 "/>
-<text text-anchor="middle" x="633.5" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void(const TuneContext &amp;)\&gt;\n||}">
+<polygon fill="#ffffff" stroke="#000000" points="559,-226.5 559,-294.5 746,-294.5 746,-226.5 559,-226.5"/>
+<text text-anchor="start" x="567" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="middle" x="652.5" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(const TuneContext &amp;)&gt;</text>
+<polyline fill="none" stroke="#000000" points="559,-264.5 746,-264.5 "/>
+<text text-anchor="middle" x="652.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="559,-245.5 746,-245.5 "/>
+<text text-anchor="middle" x="652.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node3 -->
 <g id="edge6" class="edge">
 <title>Node8&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M619.4531,-220.7959C611.9413,-200.3413 602.2486,-175.1159 592.5,-153 591.479,-150.6838 590.4273,-148.3405 589.3521,-145.9815"/>
-<polygon fill="none" stroke="#404040" points="589.2433,-145.748 583.0839,-141.9982 584.1762,-134.8703 590.3357,-138.6201 589.2433,-145.748"/>
-<text text-anchor="middle" x="637" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_pre_tuning</text>
+<path fill="none" stroke="#404040" d="M636.0875,-226.4397C625.3154,-204.0847 610.7681,-173.8951 597.2456,-145.8322"/>
+<polygon fill="none" stroke="#404040" points="597.1351,-145.6029 590.927,-141.9341 591.9259,-134.7925 598.134,-138.4613 597.1351,-145.6029"/>
+<text text-anchor="start" x="608.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_initialize_with</text>
+<text text-anchor="middle" x="653" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_tune_context</text>
 </g>
 <!-- Node9 -->
 <g id="node7" class="node">
 <title>Node9</title>
-<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void(const TuneContext &amp;)\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="726,-226.5 726,-294.5 913,-294.5 913,-226.5 726,-226.5"/>
-<text text-anchor="start" x="734" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="middle" x="819.5" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(const TuneContext &amp;)&gt;</text>
-<polyline fill="none" stroke="#000000" points="726,-264.5 913,-264.5 "/>
-<text text-anchor="middle" x="819.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="726,-245.5 913,-245.5 "/>
-<text text-anchor="middle" x="819.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void(const Array\l\&lt; tir::Schedule \&gt; &amp;, const\l Optional\&lt; Database \&gt; &amp;, const\l Optional\&lt; CostModel \&gt; &amp;)\&gt;\n||}">
+<polygon fill="#ffffff" stroke="#000000" points="764,-210 764,-311 937,-311 937,-210 764,-210"/>
+<text text-anchor="start" x="772" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="start" x="772" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(const Array</text>
+<text text-anchor="start" x="772" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tir::Schedule &gt; &amp;, const</text>
+<text text-anchor="start" x="772" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> Optional&lt; Database &gt; &amp;, const</text>
+<text text-anchor="middle" x="850.5" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> Optional&lt; CostModel &gt; &amp;)&gt;</text>
+<polyline fill="none" stroke="#000000" points="764,-248 937,-248 "/>
+<text text-anchor="middle" x="850.5" y="-236" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="764,-229 937,-229 "/>
+<text text-anchor="middle" x="850.5" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node3 -->
 <g id="edge7" class="edge">
 <title>Node9&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M775.8634,-226.41C748.0259,-204.9269 711.0071,-176.8426 677.5,-153 672.1926,-149.2234 666.7354,-145.3909 661.2051,-141.5472"/>
-<polygon fill="none" stroke="#404040" points="661.061,-141.4477 653.8509,-141.328 651.1883,-134.6265 658.3984,-134.7462 661.061,-141.4477"/>
-<text text-anchor="start" x="704.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_initialize_with</text>
-<text text-anchor="middle" x="749" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_tune_context</text>
+<path fill="none" stroke="#404040" d="M782.7189,-209.7872C757.5363,-191.429 728.5196,-170.8372 701.5,-153 692.7756,-147.2405 683.6678,-141.3939 674.4611,-135.6009"/>
+<polygon fill="none" stroke="#404040" points="674.2169,-135.4484 667.0089,-135.6619 664.0395,-129.0906 671.2474,-128.877 674.2169,-135.4484"/>
+<text text-anchor="middle" x="767" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_pre_tuning</text>
 </g>
 <!-- Node10 -->
 <g id="node8" class="node">
 <title>Node10</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void(const TuneContext\l &amp;, const Array\&lt; MeasureCandidate\l \&gt; &amp;, const Array\&lt; RunnerResult \&gt; &amp;)\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="931,-215.5 931,-305.5 1140,-305.5 1140,-215.5 931,-215.5"/>
-<text text-anchor="start" x="939" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="start" x="939" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(const TuneContext</text>
-<text text-anchor="start" x="939" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> &amp;, const Array&lt; MeasureCandidate</text>
-<text text-anchor="middle" x="1035.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> &gt; &amp;, const Array&lt; RunnerResult &gt; &amp;)&gt;</text>
-<polyline fill="none" stroke="#000000" points="931,-253.5 1140,-253.5 "/>
-<text text-anchor="middle" x="1035.5" y="-241.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="931,-234.5 1140,-234.5 "/>
-<text text-anchor="middle" x="1035.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polygon fill="#ffffff" stroke="#000000" points="955,-215.5 955,-305.5 1164,-305.5 1164,-215.5 955,-215.5"/>
+<text text-anchor="start" x="963" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="start" x="963" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(const TuneContext</text>
+<text text-anchor="start" x="963" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> &amp;, const Array&lt; MeasureCandidate</text>
+<text text-anchor="middle" x="1059.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> &gt; &amp;, const Array&lt; RunnerResult &gt; &amp;)&gt;</text>
+<polyline fill="none" stroke="#000000" points="955,-253.5 1164,-253.5 "/>
+<text text-anchor="middle" x="1059.5" y="-241.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="955,-234.5 1164,-234.5 "/>
+<text text-anchor="middle" x="1059.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node10&#45;&gt;Node3 -->
 <g id="edge8" class="edge">
 <title>Node10&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M965.3242,-215.4485C951.4184,-207.4232 936.7185,-199.547 922.5,-193 839.2902,-154.6857 740.9261,-122.0798 666.106,-99.7126"/>
-<polygon fill="none" stroke="#404040" points="665.8102,-99.6249 658.9202,-101.7529 654.3059,-96.2114 661.1959,-94.0834 665.8102,-99.6249"/>
-<text text-anchor="middle" x="934.5" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_notify_runner_results</text>
+<path fill="none" stroke="#404040" d="M989.6861,-215.4983C975.6856,-207.4233 960.8582,-199.5161 946.5,-193 858.5566,-153.0894 754.1564,-120.0105 675.9661,-97.8509"/>
+<polygon fill="none" stroke="#404040" points="675.6896,-97.7732 668.8308,-99.9999 664.1375,-94.5251 670.9963,-92.2985 675.6896,-97.7732"/>
+<text text-anchor="middle" x="957.5" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_notify_runner_results</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode-members.html
index 9ba2740ad..533a3901c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode-members.html
@@ -80,7 +80,7 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html#ad1a54354c9ed7d43da04c587b5484b96">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html">tvm::meta_schedule::PyTaskSchedulerNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#ae4c0d72966283dc88478f853c93afdf9">builder</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a40cb157f85bff6952dbef9e2804bc3ef">cost_model</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">database</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">database</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a70fb5361147634605d6595bb89381f03">DecRef</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af4407d2b59132e803ff791482dbe0145">deleter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html#a15dcbf2ff4c0fc6e57cf15ef02783c75">f_initialize_task</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html">tvm::meta_schedule::PyTaskSchedulerNode</a></td><td class="entry"></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html
index c9ae300d4..26993c57e 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode.html
@@ -86,7 +86,7 @@ Inheritance diagram for tvm::meta_schedule::PyTaskSchedulerNode:</div>
 <div class="dynheader">
 Collaboration diagram for tvm::meta_schedule::PyTaskSchedulerNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__coll__graph.svg" width="2028" height="1720"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__coll__graph.svg" width="2020" height="1720"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -193,18 +193,18 @@ Public Attributes</h2></td></tr>
 <tr class="memitem:a13c74317fb8dccd7fbdb728336b09501 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html">Runner</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a13c74317fb8dccd7fbdb728336b09501">runner</a> {nullptr}</td></tr>
 <tr class="memdesc:a13c74317fb8dccd7fbdb728336b09501 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The runner of the scheduler.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a13c74317fb8dccd7fbdb728336b09501">More...</a><br /></td></tr>
 <tr class="separator:a13c74317fb8dccd7fbdb728336b09501 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9bc942d4fa3918753a1b036bb9373deb inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">database</a> {nullptr}</td></tr>
-<tr class="memdesc:a9bc942d4fa3918753a1b036bb9373deb inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The database of the scheduler.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">More...</a><br /></td></tr>
-<tr class="separator:a9bc942d4fa3918753a1b036bb9373deb inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8285eabc6e268c8e600f1f20f5d70585 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a8285eabc6e268c8e600f1f20f5d70585">max_trials</a></td></tr>
-<tr class="memdesc:a8285eabc6e268c8e600f1f20f5d70585 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of trials allowed.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a8285eabc6e268c8e600f1f20f5d70585">More...</a><br /></td></tr>
-<tr class="separator:a8285eabc6e268c8e600f1f20f5d70585 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb95e507922150ac24d3813326f2cde1 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">da [...]
+<tr class="memdesc:adb95e507922150ac24d3813326f2cde1 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The database of the scheduler.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">More...</a><br /></td></tr>
+<tr class="separator:adb95e507922150ac24d3813326f2cde1 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a40cb157f85bff6952dbef9e2804bc3ef inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a40cb157f85bff6952dbef9e2804bc3ef"> [...]
 <tr class="memdesc:a40cb157f85bff6952dbef9e2804bc3ef inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cost model of the scheduler.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a40cb157f85bff6952dbef9e2804bc3ef">More...</a><br /></td></tr>
 <tr class="separator:a40cb157f85bff6952dbef9e2804bc3ef inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa8e6efd489ccdc6f81495da417da842a inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#aa8e6efd489ccdc6f81495da417da [...]
 <tr class="memdesc:aa8e6efd489ccdc6f81495da417da842a inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of measure callbacks of the scheduler.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#aa8e6efd489ccdc6f81495da417da842a">More...</a><br /></td></tr>
 <tr class="separator:aa8e6efd489ccdc6f81495da417da842a inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8285eabc6e268c8e600f1f20f5d70585 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a8285eabc6e268c8e600f1f20f5d70585">max_trials</a></td></tr>
+<tr class="memdesc:a8285eabc6e268c8e600f1f20f5d70585 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of trials allowed.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a8285eabc6e268c8e600f1f20f5d70585">More...</a><br /></td></tr>
+<tr class="separator:a8285eabc6e268c8e600f1f20f5d70585 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a246e130e3928c57199f98dc3ce674d79 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a246e130e3928c57199f98dc3ce674d79">num_trials_already</a></td></tr>
 <tr class="memdesc:a246e130e3928c57199f98dc3ce674d79 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of trials already conducted.  <a href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a246e130e3928c57199f98dc3ce674d79">More...</a><br /></td></tr>
 <tr class="separator:a246e130e3928c57199f98dc3ce674d79 inherit pub_attribs_classtvm_1_1meta__schedule_1_1TaskSchedulerNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__coll__graph.svg
index c96c04623..08ec9d132 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__coll__graph.svg
@@ -4,56 +4,56 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::meta_schedule::PyTaskSchedulerNode Pages: 1 -->
-<svg width="1521pt" height="1290pt"
- viewBox="0.00 0.00 1521.00 1290.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1515pt" height="1290pt"
+ viewBox="0.00 0.00 1515.00 1290.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 1286)">
 <title>tvm::meta_schedule::PyTaskSchedulerNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1286 1517,-1286 1517,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1286 1511,-1286 1511,4 -4,4"/>
 <!-- Node3 -->
 <g id="node1" class="node">
 <title>Node3</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="999,-.5 999,-134.5 1208,-134.5 1208,-.5 999,-.5"/>
-<text text-anchor="start" x="1007" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1103.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PyTaskSchedulerNode</text>
-<polyline fill="none" stroke="#000000" points="999,-104.5 1208,-104.5 "/>
-<text text-anchor="start" x="1007" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="999,-85.5 1208,-85.5 "/>
-<text text-anchor="start" x="1007" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="1007" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
-<text text-anchor="start" x="1007" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
-<text text-anchor="start" x="1007" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
-<text text-anchor="start" x="1007" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
-<text text-anchor="start" x="1007" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
-<text text-anchor="start" x="1007" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="993,-.5 993,-134.5 1202,-134.5 1202,-.5 993,-.5"/>
+<text text-anchor="start" x="1001" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="1097.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PyTaskSchedulerNode</text>
+<polyline fill="none" stroke="#000000" points="993,-104.5 1202,-104.5 "/>
+<text text-anchor="start" x="1001" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="993,-85.5 1202,-85.5 "/>
+<text text-anchor="start" x="1001" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="1001" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
+<text text-anchor="start" x="1001" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
+<text text-anchor="start" x="1001" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
+<text text-anchor="start" x="1001" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
+<text text-anchor="start" x="1001" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
+<text text-anchor="start" x="1001" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
 </g>
 <!-- Node4 -->
 <g id="node2" class="node">
 <title>Node4</title>
 <g id="a_node2"><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="636,-193.5 636,-360.5 843,-360.5 843,-193.5 636,-193.5"/>
-<text text-anchor="start" x="644" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="739.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
-<polyline fill="none" stroke="#000000" points="636,-330.5 843,-330.5 "/>
-<text text-anchor="start" x="644" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
-<text text-anchor="start" x="644" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
-<text text-anchor="start" x="644" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="636,-289.5 843,-289.5 "/>
-<text text-anchor="start" x="644" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~TaskSchedulerNode()</text>
-<text text-anchor="start" x="644" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="644" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
-<text text-anchor="start" x="644" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
-<text text-anchor="start" x="644" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
-<text text-anchor="start" x="644" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
-<text text-anchor="start" x="644" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
-<text text-anchor="start" x="644" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<polygon fill="#ffffff" stroke="#000000" points="630,-193.5 630,-360.5 837,-360.5 837,-193.5 630,-193.5"/>
+<text text-anchor="start" x="638" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="733.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
+<polyline fill="none" stroke="#000000" points="630,-330.5 837,-330.5 "/>
+<text text-anchor="start" x="638" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
+<text text-anchor="start" x="638" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
+<text text-anchor="start" x="638" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="630,-289.5 837,-289.5 "/>
+<text text-anchor="start" x="638" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~TaskSchedulerNode()</text>
+<text text-anchor="start" x="638" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="638" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
+<text text-anchor="start" x="638" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
+<text text-anchor="start" x="638" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
+<text text-anchor="start" x="638" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
+<text text-anchor="start" x="638" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
+<text text-anchor="start" x="638" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge1" class="edge">
 <title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M851.8078,-192.9596C904.0035,-161.221 955.0651,-135.2364 998.8365,-114.3783"/>
-<polygon fill="none" stroke="#191970" points="849.7742,-190.101 843.081,-198.3139 853.435,-196.0675 849.7742,-190.101"/>
+<path fill="none" stroke="#191970" d="M845.8078,-192.9596C898.0035,-161.221 949.0651,-135.2364 992.8365,-114.3783"/>
+<polygon fill="none" stroke="#191970" points="843.7742,-190.101 837.081,-198.3139 847.435,-196.0675 843.7742,-190.101"/>
 </g>
 <!-- Node5 -->
 <g id="node3" class="node">
@@ -101,8 +101,8 @@
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge2" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M190.052,-468.7526C211.828,-445.9409 236.2978,-424.361 262.5,-408 378.3223,-335.6791 534.2779,-302.6601 635.8344,-288.021"/>
-<polygon fill="none" stroke="#191970" points="187.3603,-466.5065 183.0778,-476.1973 192.4688,-471.2923 187.3603,-466.5065"/>
+<path fill="none" stroke="#191970" d="M190.0947,-468.8209C211.8669,-446.0032 236.3244,-424.4035 262.5,-408 376.3125,-336.6767 529.3972,-303.4738 629.7099,-288.5165"/>
+<polygon fill="none" stroke="#191970" points="187.4023,-466.5756 183.1214,-476.267 192.5117,-471.3605 187.4023,-466.5756"/>
 </g>
 <!-- Node5&#45;&gt;Node5 -->
 <g id="edge3" class="edge">
@@ -114,385 +114,392 @@
 <!-- Node6 -->
 <g id="node4" class="node">
 <title>Node6</title>
-<g id="a_node4"><a xlink:href="classtvm_1_1meta__schedule_1_1Database.html" target="_top" xlink:title="Managed reference to DatabaseNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="271.5,-546 271.5,-658 411.5,-658 411.5,-546 271.5,-546"/>
-<text text-anchor="start" x="279.5" y="-646" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="341.5" y="-635" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Database</text>
-<polyline fill="none" stroke="#000000" points="271.5,-628 411.5,-628 "/>
-<text text-anchor="middle" x="341.5" y="-616" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="271.5,-609 411.5,-609 "/>
-<text text-anchor="start" x="279.5" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="279.5" y="-586" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="279.5" y="-575" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="279.5" y="-564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JSONDatabase()</text>
-<text text-anchor="start" x="279.5" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyDatabase()</text>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1PackedFunc.html" target="_top" xlink:title="Packed function is a type&#45;erased function. The arguments are passed by packed format. ">
+<polygon fill="#ffffff" stroke="#000000" points="271.5,-535 271.5,-669 425.5,-669 425.5,-535 271.5,-535"/>
+<text text-anchor="middle" x="348.5" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFunc</text>
+<polyline fill="none" stroke="#000000" points="271.5,-650 425.5,-650 "/>
+<text text-anchor="middle" x="348.5" y="-638" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="271.5,-631 425.5,-631 "/>
+<text text-anchor="start" x="279.5" y="-619" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
+<text text-anchor="start" x="279.5" y="-608" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
+<text text-anchor="start" x="279.5" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator()()</text>
+<text text-anchor="start" x="279.5" y="-586" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallPacked()</text>
+<text text-anchor="start" x="279.5" y="-575" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="279.5" y="-564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="279.5" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="279.5" y="-542" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node6&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M352.0681,-545.7121C362.7286,-503.0154 383.1404,-445.47 420.5,-408 475.5312,-352.8063 557.0865,-319.871 623.9582,-300.8291"/>
-<polygon fill="none" stroke="#404040" points="624.269,-300.7433 628.9872,-295.29 635.8357,-297.5477 631.1176,-303.0011 624.269,-300.7433"/>
-<text text-anchor="middle" x="477" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +database</text>
+<path fill="none" stroke="#404040" d="M364.9345,-534.624C377.9212,-493.5852 399.7773,-442.5726 434.5,-408 484.6798,-358.0371 557.1036,-325.639 618.1042,-305.5619"/>
+<polygon fill="none" stroke="#404040" points="618.3191,-305.4931 622.8128,-299.8533 629.7471,-301.8321 625.2534,-307.4719 618.3191,-305.4931"/>
+<text text-anchor="middle" x="505.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
 </g>
 <!-- Node7 -->
 <g id="node5" class="node">
 <title>Node7</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="747.5,-833.5 747.5,-1055.5 881.5,-1055.5 881.5,-833.5 747.5,-833.5"/>
-<text text-anchor="middle" x="814.5" y="-1043.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="747.5,-1036.5 881.5,-1036.5 "/>
-<text text-anchor="start" x="755.5" y="-1024.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="747.5,-1017.5 881.5,-1017.5 "/>
-<text text-anchor="start" x="755.5" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="755.5" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="755.5" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="755.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="755.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="755.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="755.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="755.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="755.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="755.5" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="755.5" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="755.5" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="755.5" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="755.5" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="755.5" y="-851.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="755.5" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="744.5,-833.5 744.5,-1055.5 878.5,-1055.5 878.5,-833.5 744.5,-833.5"/>
+<text text-anchor="middle" x="811.5" y="-1043.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="744.5,-1036.5 878.5,-1036.5 "/>
+<text text-anchor="start" x="752.5" y="-1024.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="744.5,-1017.5 878.5,-1017.5 "/>
+<text text-anchor="start" x="752.5" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="752.5" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="752.5" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="752.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="752.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="752.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="752.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="752.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="752.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="752.5" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="752.5" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="752.5" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="752.5" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="752.5" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="752.5" y="-851.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="752.5" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge5" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M737.3088,-934.1718C649.8889,-918.663 508.2323,-881.457 420.5,-796 382.4666,-758.953 362.1198,-701.063 351.6564,-658.1538"/>
-<polygon fill="none" stroke="#191970" points="736.7194,-937.6217 747.1683,-935.8697 737.9075,-930.7233 736.7194,-937.6217"/>
+<path fill="none" stroke="#191970" d="M734.2775,-932.0121C650.7425,-914.8199 518.3019,-876.3516 434.5,-796 398.9989,-761.9605 377.137,-710.6656 364.3434,-669.3691"/>
+<polygon fill="none" stroke="#191970" points="733.7228,-935.4705 744.2157,-934.0046 735.0989,-928.6071 733.7228,-935.4705"/>
 </g>
 <!-- Node9 -->
 <g id="node7" class="node">
 <title>Node9</title>
-<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1PackedFunc.html" target="_top" xlink:title="Packed function is a type&#45;erased function. The arguments are passed by packed format. ">
-<polygon fill="#ffffff" stroke="#000000" points="429.5,-535 429.5,-669 583.5,-669 583.5,-535 429.5,-535"/>
-<text text-anchor="middle" x="506.5" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFunc</text>
-<polyline fill="none" stroke="#000000" points="429.5,-650 583.5,-650 "/>
-<text text-anchor="middle" x="506.5" y="-638" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="429.5,-631 583.5,-631 "/>
-<text text-anchor="start" x="437.5" y="-619" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
-<text text-anchor="start" x="437.5" y="-608" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
-<text text-anchor="start" x="437.5" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator()()</text>
-<text text-anchor="start" x="437.5" y="-586" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallPacked()</text>
-<text text-anchor="start" x="437.5" y="-575" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="437.5" y="-564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="437.5" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="437.5" y="-542" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::TuneContext \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="443.5,-507.5 443.5,-696.5 571.5,-696.5 571.5,-507.5 443.5,-507.5"/>
+<text text-anchor="start" x="451.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="451.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="507.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
+<polyline fill="none" stroke="#000000" points="443.5,-655.5 571.5,-655.5 "/>
+<text text-anchor="middle" x="507.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="443.5,-636.5 571.5,-636.5 "/>
+<text text-anchor="start" x="451.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="451.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="451.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node9 -->
 <g id="edge8" class="edge">
 <title>Node7&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M738.4127,-907.7927C691.3309,-881.9381 632.4548,-843.5081 592.5,-796 561.4361,-759.0636 539.6445,-709.1292 525.7699,-669.1715"/>
-<polygon fill="none" stroke="#191970" points="736.8999,-910.9536 747.3606,-912.634 740.231,-904.797 736.8999,-910.9536"/>
+<path fill="none" stroke="#191970" d="M735.2612,-911.2453C685.2357,-886.0118 621.6876,-846.9665 580.5,-796 557.3157,-767.3112 540.9941,-730.4952 529.7565,-696.6593"/>
+<polygon fill="none" stroke="#191970" points="733.9224,-914.4881 744.4362,-915.796 737.0328,-908.2171 733.9224,-914.4881"/>
 </g>
 <!-- Node10 -->
 <g id="node8" class="node">
 <title>Node10</title>
-<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::TuneContext \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="601.5,-507.5 601.5,-696.5 729.5,-696.5 729.5,-507.5 601.5,-507.5"/>
-<text text-anchor="start" x="609.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="609.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="665.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
-<polyline fill="none" stroke="#000000" points="601.5,-655.5 729.5,-655.5 "/>
-<text text-anchor="middle" x="665.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="601.5,-636.5 729.5,-636.5 "/>
-<text text-anchor="start" x="609.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="609.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="609.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lCostModel \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="589.5,-507.5 589.5,-696.5 723.5,-696.5 723.5,-507.5 589.5,-507.5"/>
+<text text-anchor="start" x="597.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="597.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
+<text text-anchor="middle" x="656.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel &gt;</text>
+<polyline fill="none" stroke="#000000" points="589.5,-655.5 723.5,-655.5 "/>
+<text text-anchor="start" x="597.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="589.5,-636.5 723.5,-636.5 "/>
+<text text-anchor="start" x="597.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="597.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="597.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node7&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M751.4864,-824.1794C746.9651,-814.7047 742.5841,-805.2328 738.5,-796 724.3792,-764.0771 710.4788,-728.4932 698.659,-696.6059"/>
-<polygon fill="none" stroke="#191970" points="748.3659,-825.7663 755.8592,-833.2564 754.6723,-822.7283 748.3659,-825.7663"/>
+<path fill="none" stroke="#191970" d="M746.0191,-824.2138C741.3147,-814.7313 736.7542,-805.2482 732.5,-796 717.8366,-764.1233 703.3739,-728.5506 691.0652,-696.6593"/>
+<polygon fill="none" stroke="#191970" points="742.9608,-825.9233 750.5683,-833.2974 749.2198,-822.7887 742.9608,-825.9233"/>
 </g>
 <!-- Node11 -->
 <g id="node9" class="node">
 <title>Node11</title>
-<g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lCostModel \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="747.5,-507.5 747.5,-696.5 881.5,-696.5 881.5,-507.5 747.5,-507.5"/>
-<text text-anchor="start" x="755.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="755.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
-<text text-anchor="middle" x="814.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel &gt;</text>
-<polyline fill="none" stroke="#000000" points="747.5,-655.5 881.5,-655.5 "/>
-<text text-anchor="start" x="755.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="747.5,-636.5 881.5,-636.5 "/>
-<text text-anchor="start" x="755.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="755.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="755.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<g id="a_node9"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="741.5,-551.5 741.5,-652.5 881.5,-652.5 881.5,-551.5 741.5,-551.5"/>
+<text text-anchor="start" x="749.5" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="811.5" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
+<polyline fill="none" stroke="#000000" points="741.5,-622.5 881.5,-622.5 "/>
+<text text-anchor="middle" x="811.5" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="741.5,-603.5 881.5,-603.5 "/>
+<text text-anchor="start" x="749.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="749.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="749.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="749.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyBuilder()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node11 -->
 <g id="edge12" class="edge">
 <title>Node7&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M814.5,-823.1125C814.5,-781.5481 814.5,-735.6904 814.5,-696.5637"/>
-<polygon fill="none" stroke="#191970" points="811.0001,-823.3 814.5,-833.3001 818.0001,-823.3001 811.0001,-823.3"/>
+<path fill="none" stroke="#191970" d="M811.5,-823.2362C811.5,-764.7209 811.5,-697.6715 811.5,-652.8669"/>
+<polygon fill="none" stroke="#191970" points="808.0001,-823.3 811.5,-833.3001 815.0001,-823.3001 808.0001,-823.3"/>
 </g>
 <!-- Node12 -->
 <g id="node10" class="node">
 <title>Node12</title>
-<g id="a_node10"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
+<g id="a_node10"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
 <polygon fill="#ffffff" stroke="#000000" points="899.5,-551.5 899.5,-652.5 1039.5,-652.5 1039.5,-551.5 899.5,-551.5"/>
 <text text-anchor="start" x="907.5" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="969.5" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
+<text text-anchor="middle" x="969.5" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
 <polyline fill="none" stroke="#000000" points="899.5,-622.5 1039.5,-622.5 "/>
 <text text-anchor="middle" x="969.5" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 <polyline fill="none" stroke="#000000" points="899.5,-603.5 1039.5,-603.5 "/>
 <text text-anchor="start" x="907.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
 <text text-anchor="start" x="907.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
 <text text-anchor="start" x="907.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="907.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyBuilder()</text>
+<text text-anchor="start" x="907.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyRunner()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node12 -->
 <g id="edge14" class="edge">
 <title>Node7&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M877.2373,-824.0549C881.8217,-814.6087 886.2925,-805.1773 890.5,-796 912.4757,-748.0667 934.9016,-692.1945 950.2174,-652.7545"/>
-<polygon fill="none" stroke="#191970" points="874.0591,-822.5872 872.812,-833.1084 880.348,-825.6612 874.0591,-822.5872"/>
+<path fill="none" stroke="#191970" d="M876.8431,-824.1498C881.5789,-814.6819 886.1842,-805.2196 890.5,-796 912.8556,-748.2427 935.2309,-692.3471 950.4317,-652.8538"/>
+<polygon fill="none" stroke="#191970" points="873.6461,-822.7165 872.2677,-833.2213 879.8961,-825.8689 873.6461,-822.7165"/>
 </g>
 <!-- Node13 -->
 <g id="node11" class="node">
 <title>Node13</title>
-<g id="a_node11"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1057.5,-551.5 1057.5,-652.5 1197.5,-652.5 1197.5,-551.5 1057.5,-551.5"/>
-<text text-anchor="start" x="1065.5" y="-640.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1127.5" y="-629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
-<polyline fill="none" stroke="#000000" points="1057.5,-622.5 1197.5,-622.5 "/>
-<text text-anchor="middle" x="1127.5" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1057.5,-603.5 1197.5,-603.5 "/>
-<text text-anchor="start" x="1065.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="1065.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="1065.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="1065.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyRunner()</text>
+<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::MeasureCallback \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1057.5,-507.5 1057.5,-696.5 1185.5,-696.5 1185.5,-507.5 1057.5,-507.5"/>
+<text text-anchor="start" x="1065.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="1065.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="1121.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
+<polyline fill="none" stroke="#000000" points="1057.5,-655.5 1185.5,-655.5 "/>
+<text text-anchor="middle" x="1121.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1057.5,-636.5 1185.5,-636.5 "/>
+<text text-anchor="start" x="1065.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1065.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1065.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node13 -->
 <g id="edge16" class="edge">
 <title>Node7&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M890.774,-911.3654C941.3345,-886.0787 1005.9535,-846.9238 1048.5,-796 1083.4748,-754.1388 1104.586,-694.7291 1116.0724,-652.7074"/>
-<polygon fill="none" stroke="#191970" points="888.9332,-908.3703 881.5054,-915.9253 892.0234,-914.6514 888.9332,-908.3703"/>
+<path fill="none" stroke="#191970" d="M887.8269,-912.6158C939.4363,-887.6192 1005.7296,-848.3016 1048.5,-796 1071.8503,-767.4462 1088.205,-730.6571 1099.4226,-696.8049"/>
+<polygon fill="none" stroke="#191970" points="886.2216,-909.5036 878.6979,-916.9631 889.2313,-915.8236 886.2216,-909.5036"/>
 </g>
 <!-- Node14 -->
 <g id="node12" class="node">
 <title>Node14</title>
-<g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::MeasureCallback \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="1215.5,-507.5 1215.5,-696.5 1343.5,-696.5 1343.5,-507.5 1215.5,-507.5"/>
-<text text-anchor="start" x="1223.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="1223.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="1279.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
-<polyline fill="none" stroke="#000000" points="1215.5,-655.5 1343.5,-655.5 "/>
-<text text-anchor="middle" x="1279.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1215.5,-636.5 1343.5,-636.5 "/>
-<text text-anchor="start" x="1223.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1223.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1223.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lDatabase \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1203.5,-507.5 1203.5,-696.5 1337.5,-696.5 1337.5,-507.5 1203.5,-507.5"/>
+<text text-anchor="start" x="1211.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="1211.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
+<text text-anchor="middle" x="1270.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Database &gt;</text>
+<polyline fill="none" stroke="#000000" points="1203.5,-655.5 1337.5,-655.5 "/>
+<text text-anchor="start" x="1211.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="1203.5,-636.5 1337.5,-636.5 "/>
+<text text-anchor="start" x="1211.5" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1211.5" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1211.5" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node14 -->
 <g id="edge18" class="edge">
 <title>Node7&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M891.9827,-934.432C979.3674,-919.1796 1120.4658,-882.2255 1206.5,-796 1233.1886,-769.252 1250.2649,-731.8095 1261.1242,-696.945"/>
-<polygon fill="none" stroke="#191970" points="891.1388,-931.0249 881.8624,-936.1434 892.306,-937.9269 891.1388,-931.0249"/>
+<path fill="none" stroke="#191970" d="M888.5015,-933.4473C973.823,-917.3823 1110.4355,-879.7714 1194.5,-796 1221.4038,-769.19 1239.0234,-731.7363 1250.4488,-696.8803"/>
+<polygon fill="none" stroke="#191970" points="887.8216,-930.0135 878.6145,-935.2557 889.0811,-936.8992 887.8216,-930.0135"/>
 </g>
 <!-- Node8 -->
 <g id="node6" class="node">
 <title>Node8</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="744.5,-1103.5 744.5,-1281.5 884.5,-1281.5 884.5,-1103.5 744.5,-1103.5"/>
-<text text-anchor="start" x="752.5" y="-1269.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="814.5" y="-1258.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="744.5,-1251.5 884.5,-1251.5 "/>
-<text text-anchor="middle" x="814.5" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="744.5,-1232.5 884.5,-1232.5 "/>
-<text text-anchor="start" x="752.5" y="-1220.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1198.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1176.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1165.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1154.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1143.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="752.5" y="-1132.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="752.5" y="-1121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="752.5" y="-1110.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="741.5,-1103.5 741.5,-1281.5 881.5,-1281.5 881.5,-1103.5 741.5,-1103.5"/>
+<text text-anchor="start" x="749.5" y="-1269.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="811.5" y="-1258.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="741.5,-1251.5 881.5,-1251.5 "/>
+<text text-anchor="middle" x="811.5" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="741.5,-1232.5 881.5,-1232.5 "/>
+<text text-anchor="start" x="749.5" y="-1220.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1198.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1176.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1165.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1154.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1143.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="749.5" y="-1132.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="749.5" y="-1121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="749.5" y="-1110.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node8&#45;&gt;Node7 -->
 <g id="edge6" class="edge">
 <title>Node8&#45;&gt;Node7</title>
-<path fill="none" stroke="#404040" d="M814.5,-1103.3167C814.5,-1091.8765 814.5,-1080.0062 814.5,-1068.1402"/>
-<polygon fill="none" stroke="#404040" points="814.5001,-1067.7944 810.5,-1061.7944 814.5,-1055.7944 818.5,-1061.7943 814.5001,-1067.7944"/>
-<text text-anchor="middle" x="834" y="-1077" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M811.5,-1103.3167C811.5,-1091.8765 811.5,-1080.0062 811.5,-1068.1402"/>
+<polygon fill="none" stroke="#404040" points="811.5001,-1067.7944 807.5,-1061.7944 811.5,-1055.7944 815.5,-1061.7943 811.5001,-1067.7944"/>
+<text text-anchor="middle" x="831" y="-1077" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 <!-- Node9&#45;&gt;Node4 -->
 <g id="edge7" class="edge">
 <title>Node9&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M528.1522,-534.9429C542.7116,-495.7403 564.389,-446.5487 592.5,-408 602.6463,-394.0863 614.4916,-380.5759 626.9742,-367.8489"/>
-<polygon fill="none" stroke="#404040" points="627.1955,-367.6289 628.6297,-360.5618 635.7048,-359.1677 634.2705,-366.2347 627.1955,-367.6289"/>
-<text text-anchor="middle" x="653.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
+<path fill="none" stroke="#404040" d="M532.4359,-507.4973C543.8767,-474.2391 559.6397,-437.7637 580.5,-408 591.9923,-391.6026 605.9984,-375.9865 620.8187,-361.6225"/>
+<polygon fill="none" stroke="#404040" points="620.8973,-361.5484 622.5166,-354.5214 629.6259,-353.3135 628.0065,-360.3405 620.8973,-361.5484"/>
+<text text-anchor="middle" x="620.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +tasks</text>
 </g>
 <!-- Node10&#45;&gt;Node4 -->
 <g id="edge9" class="edge">
 <title>Node10&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M687.1028,-507.1229C696.7539,-464.7364 708.106,-414.8789 717.7718,-372.428"/>
-<polygon fill="none" stroke="#404040" points="717.7863,-372.3639 715.2182,-365.6256 720.4505,-360.6634 723.0186,-367.4017 717.7863,-372.3639"/>
-<text text-anchor="middle" x="735.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +tasks</text>
+<path fill="none" stroke="#404040" d="M676.1686,-507.3487C684.7208,-467.6003 695.1415,-420.9463 705.5,-379 706.03,-376.8537 706.5721,-374.6837 707.124,-372.4969"/>
+<polygon fill="none" stroke="#404040" points="707.1729,-372.306 704.7896,-365.5002 710.1553,-360.6825 712.5386,-367.4884 707.1729,-372.306"/>
+<text text-anchor="middle" x="739.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +cost_model</text>
 </g>
 <!-- Node11&#45;&gt;Node4 -->
 <g id="edge11" class="edge">
 <title>Node11&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M792.6053,-507.1229C782.8238,-464.7364 771.3182,-414.8789 761.5218,-372.428"/>
-<polygon fill="none" stroke="#404040" points="761.5053,-372.3561 756.2586,-367.4092 758.8069,-360.6634 764.0537,-365.6103 761.5053,-372.3561"/>
-<text text-anchor="middle" x="798.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +cost_model</text>
+<path fill="none" stroke="#404040" d="M805.8711,-551.3116C800.097,-505.6851 789.6527,-437.0803 773.5,-379 772.8693,-376.7322 772.2061,-374.4453 771.515,-372.1464"/>
+<polygon fill="none" stroke="#404040" points="771.4763,-372.0242 765.8497,-367.5141 767.8487,-360.5856 773.4754,-365.0957 771.4763,-372.0242"/>
+<text text-anchor="middle" x="798.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder</text>
 </g>
 <!-- Node12&#45;&gt;Node4 -->
 <g id="edge13" class="edge">
 <title>Node12&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M956.041,-551.3302C943.4891,-510.1538 921.942,-451.9066 890.5,-408 879.3723,-392.4609 866.0445,-377.5451 851.978,-363.7036"/>
-<polygon fill="none" stroke="#404040" points="851.7997,-363.5327 844.7003,-362.2679 843.1373,-355.2282 850.2367,-356.493 851.7997,-363.5327"/>
-<text text-anchor="middle" x="897.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder</text>
+<path fill="none" stroke="#404040" d="M956.2636,-551.1692C943.8424,-509.8982 922.3627,-451.6022 890.5,-408 882.6899,-397.3123 866.106,-381.734 846.5232,-365.0216"/>
+<polygon fill="none" stroke="#404040" points="846.5104,-365.0109 839.3448,-364.2021 837.3353,-357.2766 844.501,-358.0854 846.5104,-365.0109"/>
+<text text-anchor="middle" x="896" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner</text>
 </g>
 <!-- Node13&#45;&gt;Node4 -->
 <g id="edge15" class="edge">
 <title>Node13&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M1120.0222,-551.0851C1110.8276,-506.8577 1090.8644,-444.3503 1048.5,-408 983.056,-351.8465 936.9849,-395.2501 854.343,-361.7749"/>
-<polygon fill="none" stroke="#404040" points="854.25,-361.7341 847.1487,-362.9878 843.2602,-356.9149 850.3615,-355.6613 854.25,-361.7341"/>
-<text text-anchor="middle" x="1043" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner</text>
+<path fill="none" stroke="#404040" d="M1105.6122,-507.373C1095.0558,-471.5978 1077.5362,-433.426 1048.5,-408 981.6854,-349.4927 933.5478,-395.9069 848.3835,-361.7758"/>
+<polygon fill="none" stroke="#404040" points="848.2553,-361.7202 841.1585,-362.999 837.2485,-356.9399 844.3453,-355.6611 848.2553,-361.7202"/>
+<text text-anchor="middle" x="1073.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_callbacks</text>
 </g>
 <!-- Node14&#45;&gt;Node4 -->
 <g id="edge17" class="edge">
 <title>Node14&#45;&gt;Node4</title>
-<path fill="none" stroke="#404040" d="M1263.9467,-507.3224C1253.4371,-471.4301 1235.8621,-433.1873 1206.5,-408 1167.764,-374.7717 916.1097,-367.1407 855.117,-359.7091"/>
-<polygon fill="none" stroke="#404040" points="854.8196,-359.6546 848.1964,-362.5065 843.0165,-357.4897 849.6397,-354.6378 854.8196,-359.6546"/>
-<text text-anchor="middle" x="1206.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_callbacks</text>
+<path fill="none" stroke="#404040" d="M1249.4955,-507.3923C1237.9659,-472.7754 1220.5241,-435.4159 1194.5,-408 1126.6375,-336.5084 976.0248,-401.6927 848.7811,-361.6346"/>
+<polygon fill="none" stroke="#404040" points="848.68,-361.6001 841.7078,-363.4411 837.3268,-357.7134 844.2989,-355.8723 848.68,-361.6001"/>
+<text text-anchor="middle" x="1199" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +database</text>
 </g>
 <!-- Node15 -->
 <g id="node13" class="node">
 <title>Node15</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void()\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="861,-243 861,-311 1010,-311 1010,-243 861,-243"/>
-<text text-anchor="start" x="869" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="middle" x="935.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void()&gt;</text>
-<polyline fill="none" stroke="#000000" points="861,-281 1010,-281 "/>
-<text text-anchor="middle" x="935.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="861,-262 1010,-262 "/>
-<text text-anchor="middle" x="935.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polygon fill="#ffffff" stroke="#000000" points="855,-243 855,-311 1004,-311 1004,-243 855,-243"/>
+<text text-anchor="start" x="863" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="middle" x="929.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void()&gt;</text>
+<polyline fill="none" stroke="#000000" points="855,-281 1004,-281 "/>
+<text text-anchor="middle" x="929.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="855,-262 1004,-262 "/>
+<text text-anchor="middle" x="929.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node15&#45;&gt;Node3 -->
 <g id="edge19" class="edge">
 <title>Node15&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M962.866,-242.8739C984.2829,-216.1665 1014.8938,-177.994 1042.0913,-144.0781"/>
-<polygon fill="none" stroke="#404040" points="1042.1541,-143.9998 1042.7872,-136.8165 1049.6614,-134.638 1049.0283,-141.8213 1042.1541,-143.9998"/>
-<text text-anchor="middle" x="1057" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_tune</text>
+<path fill="none" stroke="#404040" d="M956.866,-242.8739C978.2829,-216.1665 1008.8938,-177.994 1036.0913,-144.0781"/>
+<polygon fill="none" stroke="#404040" points="1036.1541,-143.9998 1036.7872,-136.8165 1043.6614,-134.638 1043.0283,-141.8213 1036.1541,-143.9998"/>
+<text text-anchor="middle" x="1051" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_tune</text>
 </g>
 <!-- Node16 -->
 <g id="node14" class="node">
 <title>Node16</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; Array\&lt; RunnerResult\l \&gt;(int)\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="1028,-237.5 1028,-316.5 1179,-316.5 1179,-237.5 1028,-237.5"/>
-<text text-anchor="start" x="1036" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="start" x="1036" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; Array&lt; RunnerResult</text>
-<text text-anchor="middle" x="1103.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> &gt;(int)&gt;</text>
-<polyline fill="none" stroke="#000000" points="1028,-275.5 1179,-275.5 "/>
-<text text-anchor="middle" x="1103.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1028,-256.5 1179,-256.5 "/>
-<text text-anchor="middle" x="1103.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polygon fill="#ffffff" stroke="#000000" points="1022,-237.5 1022,-316.5 1173,-316.5 1173,-237.5 1022,-237.5"/>
+<text text-anchor="start" x="1030" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="start" x="1030" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; Array&lt; RunnerResult</text>
+<text text-anchor="middle" x="1097.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> &gt;(int)&gt;</text>
+<polyline fill="none" stroke="#000000" points="1022,-275.5 1173,-275.5 "/>
+<text text-anchor="middle" x="1097.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1022,-256.5 1173,-256.5 "/>
+<text text-anchor="middle" x="1097.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node16&#45;&gt;Node3 -->
 <g id="edge20" class="edge">
 <title>Node16&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M1103.5,-237.1015C1103.5,-211.6334 1103.5,-177.7329 1103.5,-146.9373"/>
-<polygon fill="none" stroke="#404040" points="1103.5001,-146.8647 1099.5,-140.8647 1103.5,-134.8647 1107.5,-140.8647 1103.5001,-146.8647"/>
-<text text-anchor="middle" x="1157" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_join_running_task</text>
+<path fill="none" stroke="#404040" d="M1097.5,-237.1015C1097.5,-211.6334 1097.5,-177.7329 1097.5,-146.9373"/>
+<polygon fill="none" stroke="#404040" points="1097.5001,-146.8647 1093.5,-140.8647 1097.5,-134.8647 1101.5,-140.8647 1097.5001,-146.8647"/>
+<text text-anchor="middle" x="1151" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_join_running_task</text>
 </g>
 <!-- Node17 -->
 <g id="node15" class="node">
 <title>Node17</title>
 <g id="a_node15"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; int()\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="1197,-243 1197,-311 1346,-311 1346,-243 1197,-243"/>
-<text text-anchor="start" x="1205" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="middle" x="1271.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; int()&gt;</text>
-<polyline fill="none" stroke="#000000" points="1197,-281 1346,-281 "/>
-<text text-anchor="middle" x="1271.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1197,-262 1346,-262 "/>
-<text text-anchor="middle" x="1271.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polygon fill="#ffffff" stroke="#000000" points="1191,-243 1191,-311 1340,-311 1340,-243 1191,-243"/>
+<text text-anchor="start" x="1199" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="middle" x="1265.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; int()&gt;</text>
+<polyline fill="none" stroke="#000000" points="1191,-281 1340,-281 "/>
+<text text-anchor="middle" x="1265.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1191,-262 1340,-262 "/>
+<text text-anchor="middle" x="1265.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node17&#45;&gt;Node3 -->
 <g id="edge21" class="edge">
 <title>Node17&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M1260.9104,-242.9786C1251.562,-216.5838 1236.0533,-180.0569 1214.5,-153 1211.882,-149.7135 1209.112,-146.4813 1206.2223,-143.311"/>
-<polygon fill="none" stroke="#404040" points="1206.1093,-143.1935 1199.0668,-141.6435 1197.7889,-134.5465 1204.8314,-136.0965 1206.1093,-143.1935"/>
-<text text-anchor="middle" x="1270" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_next_task_id</text>
+<path fill="none" stroke="#404040" d="M1254.9104,-242.9786C1245.562,-216.5838 1230.0533,-180.0569 1208.5,-153 1205.882,-149.7135 1203.112,-146.4813 1200.2223,-143.311"/>
+<polygon fill="none" stroke="#404040" points="1200.1093,-143.1935 1193.0668,-141.6435 1191.7889,-134.5465 1198.8314,-136.0965 1200.1093,-143.1935"/>
+<text text-anchor="middle" x="1264" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_next_task_id</text>
 </g>
 <!-- Node18 -->
 <g id="node16" class="node">
 <title>Node18</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1runtime_1_1TypedPackedFunc.html" target="_top" xlink:title="{tvm::runtime::TypedPacked\lFunc\&lt; void(int)\&gt;\n||}">
-<polygon fill="#ffffff" stroke="#000000" points="1364,-243 1364,-311 1513,-311 1513,-243 1364,-243"/>
-<text text-anchor="start" x="1372" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
-<text text-anchor="middle" x="1438.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(int)&gt;</text>
-<polyline fill="none" stroke="#000000" points="1364,-281 1513,-281 "/>
-<text text-anchor="middle" x="1438.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1364,-262 1513,-262 "/>
-<text text-anchor="middle" x="1438.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polygon fill="#ffffff" stroke="#000000" points="1358,-243 1358,-311 1507,-311 1507,-243 1358,-243"/>
+<text text-anchor="start" x="1366" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::TypedPacked</text>
+<text text-anchor="middle" x="1432.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Func&lt; void(int)&gt;</text>
+<polyline fill="none" stroke="#000000" points="1358,-281 1507,-281 "/>
+<text text-anchor="middle" x="1432.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1358,-262 1507,-262 "/>
+<text text-anchor="middle" x="1432.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 </a>
 </g>
 </g>
 <!-- Node18&#45;&gt;Node3 -->
 <g id="edge22" class="edge">
 <title>Node18&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M1404.625,-242.624C1389.5979,-227.3987 1371.6877,-209.2849 1355.5,-193 1337.7755,-175.1691 1336.4695,-166.87 1315.5,-153 1286.2607,-133.66 1251.9581,-117.4868 1219.5678,-104.5976"/>
-<polygon fill="none" stroke="#404040" points="1219.3856,-104.5268 1212.3435,-106.0791 1208.2022,-100.1757 1215.2443,-98.6235 1219.3856,-104.5268"/>
-<text text-anchor="middle" x="1383" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_initialize_task</text>
-<text text-anchor="middle" x="1383" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+f_touch_task</text>
+<path fill="none" stroke="#404040" d="M1398.625,-242.624C1383.5979,-227.3987 1365.6877,-209.2849 1349.5,-193 1331.7755,-175.1691 1330.4695,-166.87 1309.5,-153 1280.2607,-133.66 1245.9581,-117.4868 1213.5678,-104.5976"/>
+<polygon fill="none" stroke="#404040" points="1213.3856,-104.5268 1206.3435,-106.0791 1202.2022,-100.1757 1209.2443,-98.6235 1213.3856,-104.5268"/>
+<text text-anchor="middle" x="1377" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +f_initialize_task</text>
+<text text-anchor="middle" x="1377" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+f_touch_task</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__inherit__graph.svg
index 167a6e2cb..f02c305a0 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1PyTaskSchedulerNode__inherit__graph.svg
@@ -43,9 +43,9 @@
 <text text-anchor="start" x="9" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ builder</text>
 <text text-anchor="start" x="9" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ runner</text>
 <text text-anchor="start" x="9" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ database</text>
-<text text-anchor="start" x="9" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
-<text text-anchor="start" x="9" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ cost_model</text>
-<text text-anchor="start" x="9" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ measure_callbacks</text>
+<text text-anchor="start" x="9" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ cost_model</text>
+<text text-anchor="start" x="9" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ measure_callbacks</text>
+<text text-anchor="start" x="9" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
 <text text-anchor="start" x="9" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
 <text text-anchor="start" x="9" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ logging_func</text>
 <text text-anchor="start" x="9" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategy.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategy.html
index 7d812d443..bd279985c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategy.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategy.html
@@ -128,7 +128,7 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a95eb75dce8960913ed0d390ba38c612f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html">SearchStrategy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html#a95eb75dce8960913ed0d390ba38c612f">PySearchStrategy</a> (<a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#acf145edd9c5a047166dd8f29f65ab75e">P [...]
+<tr class="memitem:a95eb75dce8960913ed0d390ba38c612f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html">SearchStrategy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html#a95eb75dce8960913ed0d390ba38c612f">PySearchStrategy</a> (<a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#acf145edd9c5a047166dd8f29f65ab75e">P [...]
 <tr class="memdesc:a95eb75dce8960913ed0d390ba38c612f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a search strategy with customized methods on the python-side.  <a href="#a95eb75dce8960913ed0d390ba38c612f">More...</a><br /></td></tr>
 <tr class="separator:a95eb75dce8960913ed0d390ba38c612f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac69d0943d9844df9388378c269e80465"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html">SearchStrategy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategy.html#ac69d0943d9844df9388378c269e80465">ReplayTrace</a> (int num_trials_per_iter, int max_trials_per_task)</td></tr>
@@ -286,7 +286,7 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">PySearchStrategyNode::FPreTuning</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">PySearchStrategyNode::FPreTuning</a>&#160;</td>
           <td class="paramname"><em>f_pre_tuning</em>, </td>
         </tr>
         <tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode-members.html
index 576f23d09..c8b8f2b61 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode-members.html
@@ -95,7 +95,7 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a69c32fbd96181f5c21d2c878ab285e4f">operator=</a>(const Object &amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ae341e561272ff43cdcbc927bc29ac50d">operator=</a>(Object &amp;&amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#a82e813659dd7cab4b03e43d0710619e7">PostTuning</a>()=0</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html">tvm::meta_schedule::SearchStrategyNode</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#abd1485c82a7df42a54904de7822f0fbf">PreTuning</a>(const Array&lt; tir::Schedule &gt; &amp;design_spaces)=0</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html">tvm::meta_schedule::SearchStrategyNode</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#ad88e1545e88dc1934c25f4b417077aff">PreTuning</a>(const Array&lt; tir::Schedule &gt; &amp;design_spaces, const Optional&lt; Database &gt; &amp;database, const Optional&lt; CostModel &gt; &amp;cost_model)=0</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html">tvm::meta_schedule::SearchStrategyNode</a></td><td class="entry"><span class="m [...]
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a0d492efee331e2239a093f4b2017c10f">ref_counter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55549a6c23987890246248682560a03d">RefCounterType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ad94d79729ac85aa7c976e23d39066383">RuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode.html
index b326248da..a6cddb4c0 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1SearchStrategyNode.html
@@ -96,9 +96,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a76f812f41229a0a8a3e43b5fa052b26f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#a76f812f41229a0a8a3e43b5fa052b26f">InitializeWithTuneContext</a> (const <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContext.html">TuneContext</a> &amp;context)=0</td></tr>
 <tr class="memdesc:a76f812f41229a0a8a3e43b5fa052b26f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the search strategy with tuning context.  <a href="#a76f812f41229a0a8a3e43b5fa052b26f">More...</a><br /></td></tr>
 <tr class="separator:a76f812f41229a0a8a3e43b5fa052b26f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abd1485c82a7df42a54904de7822f0fbf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#abd1485c82a7df42a54904de7822f0fbf">PreTuning</a> (const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a> &gt; &amp;design_spaces)=0</td></tr>
-<tr class="memdesc:abd1485c82a7df42a54904de7822f0fbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-tuning for the search strategy.  <a href="#abd1485c82a7df42a54904de7822f0fbf">More...</a><br /></td></tr>
-<tr class="separator:abd1485c82a7df42a54904de7822f0fbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad88e1545e88dc1934c25f4b417077aff"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#ad88e1545e88dc1934c25f4b417077aff">PreTuning</a> (const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a> &gt; &amp;design_spaces, const <a class="el" href="c [...]
+<tr class="memdesc:ad88e1545e88dc1934c25f4b417077aff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-tuning for the search strategy.  <a href="#ad88e1545e88dc1934c25f4b417077aff">More...</a><br /></td></tr>
+<tr class="separator:ad88e1545e88dc1934c25f4b417077aff"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a82e813659dd7cab4b03e43d0710619e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#a82e813659dd7cab4b03e43d0710619e7">PostTuning</a> ()=0</td></tr>
 <tr class="memdesc:a82e813659dd7cab4b03e43d0710619e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Post-tuning for the search strategy.  <a href="#a82e813659dd7cab4b03e43d0710619e7">More...</a><br /></td></tr>
 <tr class="separator:a82e813659dd7cab4b03e43d0710619e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -382,8 +382,8 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="abd1485c82a7df42a54904de7822f0fbf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abd1485c82a7df42a54904de7822f0fbf">&#9670;&nbsp;</a></span>PreTuning()</h2>
+<a id="ad88e1545e88dc1934c25f4b417077aff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad88e1545e88dc1934c25f4b417077aff">&#9670;&nbsp;</a></span>PreTuning()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -395,8 +395,24 @@ Additional Inherited Members</h2></td></tr>
           <td class="memname">virtual void tvm::meta_schedule::SearchStrategyNode::PreTuning </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Schedule.html">tir::Schedule</a> &gt; &amp;&#160;</td>
-          <td class="paramname"><em>design_spaces</em></td><td>)</td>
+          <td class="paramname"><em>design_spaces</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>database</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>cost_model</em>&#160;</td>
+        </tr>
+        <tr>
           <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -409,13 +425,15 @@ Additional Inherited Members</h2></td></tr>
 <p>Pre-tuning for the search strategy. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramname">design_spaces</td><td>The design spaces for pre-tuning. </td></tr>
+    <tr><td class="paramname">design_spaces</td><td>The design spaces used during tuning process. </td></tr>
+    <tr><td class="paramname">database</td><td>The database used during tuning process. </td></tr>
+    <tr><td class="paramname">cost_model</td><td>The cost model used during tuning process. </td></tr>
   </table>
   </dd>
 </dl>
 <dl class="section note"><dt>Note</dt><dd>Pre-tuning is supposed to be called before the tuning process and after the initialization. Because the search strategy is stateful, we can always call pretuning and reset the search strategy. </dd></dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#aedcd9c6cc9d8d2a0da10b345ff5d5a61">tvm::meta_schedule::PySearchStrategyNode</a>.</p>
+<p>Implemented in <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a53127523582ffdb12f40c9433a577adf">tvm::meta_schedule::PySearchStrategyNode</a>.</p>
 
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler-members.html
index 858281993..4313de37d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler-members.html
@@ -79,15 +79,15 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aadbc0886ffa80162ff31eefd0431ba09">get</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aed593996e4076632450de8fde776707c">GetDataPtr</a>(const ObjectRef &amp;ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a2d889bee3692995fd5a2876bfdb946a4">GradientBased</a>(Array&lt; TuneContext &gt; tasks, Array&lt; FloatImm &gt; task_weights, Builder builder, Runner runner, Database database, int max_trials, Optional&lt; CostModel &gt; cost_model, Optional&lt; Array&lt; MeasureCallback &gt;&gt; measure_callbacks, PackedFunc logging_func, double alpha, int window_size, support::LinearCongruentialEngi [...]
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#aa21e7e5400949a2fae93b542185a9600">GradientBased</a>(Array&lt; TuneContext &gt; tasks, Array&lt; FloatImm &gt; task_weights, Builder builder, Runner runner, Optional&lt; Database &gt; database, Optional&lt; CostModel &gt; cost_model, Optional&lt; Array&lt; MeasureCallback &gt;&gt; measure_callbacks, int max_trials, PackedFunc logging_func, double alpha, int window_size, support::Line [...]
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa07c1f6d66a438ea950637d13ed09471">ObjectRef</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a6a7dd7404edf1c26f8dbd9bd92d03a02">ObjectRef</a>(ObjectPtr&lt; Object &gt; data)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa1bd13a7185cb4b2b6bdde49416e8aa4">operator!=</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3deeeac5827a88f375b8c6ae1039c219">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a06366c04bd5cda14ac92ceb8b007cdcf">PyTaskScheduler</a>(Array&lt; TuneContext &gt; tasks, Builder builder, Runner runner, Database database, int max_trials, Optional&lt; CostModel &gt; cost_model, Optional&lt; Array&lt; MeasureCallback &gt;&gt; measure_callbacks, PackedFunc logging_func, PyTaskSchedulerNode::FTune f_tune, PyTaskSchedulerNode::FInitializeTask f_initialize_task, PyTaskSchedulerNode: [...]
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#adc37ee4209d129b8329292bd3c4da1af">RoundRobin</a>(Array&lt; TuneContext &gt; tasks, Builder builder, Runner runner, Database database, int max_trials, Optional&lt; CostModel &gt; cost_model, Optional&lt; Array&lt; MeasureCallback &gt;&gt; measure_callbacks, PackedFunc logging_func)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">tvm::meta_s [...]
+  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a81ba808d521f750ab3703873fbc801b5">PyTaskScheduler</a>(Array&lt; TuneContext &gt; tasks, Builder builder, Runner runner, Optional&lt; Database &gt; database, Optional&lt; CostModel &gt; cost_model, Optional&lt; Array&lt; MeasureCallback &gt;&gt; measure_callbacks, int max_trials, PackedFunc logging_func, PyTaskSchedulerNode::FTune f_tune, PyTaskSchedulerNode::FInitializeTask f_initialize_task, Py [...]
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a084b8b6743f0d63938c1bb8de37df6a1">RoundRobin</a>(Array&lt; TuneContext &gt; tasks, Builder builder, Runner runner, Optional&lt; Database &gt; database, Optional&lt; CostModel &gt; cost_model, Optional&lt; Array&lt; MeasureCallback &gt;&gt; measure_callbacks, int max_trials, PackedFunc logging_func)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler [...]
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a4d644a4e1e4d21f1d62d661c354d7738">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(TaskScheduler, ObjectRef, TaskSchedulerNode)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">tvm::meta_schedule::TaskScheduler</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler.html
index 7fe7b827c..5220f6ad0 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskScheduler.html
@@ -128,15 +128,15 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:adc37ee4209d129b8329292bd3c4da1af"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">TaskScheduler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#adc37ee4209d129b8329292bd3c4da1af">RoundRobin</a> (<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Tu [...]
-<tr class="memdesc:adc37ee4209d129b8329292bd3c4da1af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a task scheduler that fetches tasks in a round-robin fashion.  <a href="#adc37ee4209d129b8329292bd3c4da1af">More...</a><br /></td></tr>
-<tr class="separator:adc37ee4209d129b8329292bd3c4da1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d889bee3692995fd5a2876bfdb946a4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">TaskScheduler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a2d889bee3692995fd5a2876bfdb946a4">GradientBased</a> (<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_ [...]
-<tr class="memdesc:a2d889bee3692995fd5a2876bfdb946a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a task scheduler that fetches tasks in a gradient based fashion.  <a href="#a2d889bee3692995fd5a2876bfdb946a4">More...</a><br /></td></tr>
-<tr class="separator:a2d889bee3692995fd5a2876bfdb946a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06366c04bd5cda14ac92ceb8b007cdcf"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">TaskScheduler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a06366c04bd5cda14ac92ceb8b007cdcf">PyTaskScheduler</a> (<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_ [...]
-<tr class="memdesc:a06366c04bd5cda14ac92ceb8b007cdcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a task scheduler with customized methods on the python-side.  <a href="#a06366c04bd5cda14ac92ceb8b007cdcf">More...</a><br /></td></tr>
-<tr class="separator:a06366c04bd5cda14ac92ceb8b007cdcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a084b8b6743f0d63938c1bb8de37df6a1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">TaskScheduler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a084b8b6743f0d63938c1bb8de37df6a1">RoundRobin</a> (<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Tu [...]
+<tr class="memdesc:a084b8b6743f0d63938c1bb8de37df6a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a task scheduler that fetches tasks in a round-robin fashion.  <a href="#a084b8b6743f0d63938c1bb8de37df6a1">More...</a><br /></td></tr>
+<tr class="separator:a084b8b6743f0d63938c1bb8de37df6a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa21e7e5400949a2fae93b542185a9600"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">TaskScheduler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#aa21e7e5400949a2fae93b542185a9600">GradientBased</a> (<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_ [...]
+<tr class="memdesc:aa21e7e5400949a2fae93b542185a9600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a task scheduler that fetches tasks in a gradient based fashion.  <a href="#aa21e7e5400949a2fae93b542185a9600">More...</a><br /></td></tr>
+<tr class="separator:aa21e7e5400949a2fae93b542185a9600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a81ba808d521f750ab3703873fbc801b5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html">TaskScheduler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a81ba808d521f750ab3703873fbc801b5">PyTaskScheduler</a> (<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_ [...]
+<tr class="memdesc:a81ba808d521f750ab3703873fbc801b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a task scheduler with customized methods on the python-side.  <a href="#a81ba808d521f750ab3703873fbc801b5">More...</a><br /></td></tr>
+<tr class="separator:a81ba808d521f750ab3703873fbc801b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -171,8 +171,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" title="The abstract interface of task schedulers. ">TaskSchedulerNode</a>. </p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" title="The abstract interface of task schedulers. ">TaskSchedulerNode</a> </dd></dl>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="a2d889bee3692995fd5a2876bfdb946a4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2d889bee3692995fd5a2876bfdb946a4">&#9670;&nbsp;</a></span>GradientBased()</h2>
+<a id="aa21e7e5400949a2fae93b542185a9600"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa21e7e5400949a2fae93b542185a9600">&#9670;&nbsp;</a></span>GradientBased()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -207,15 +207,9 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt;&#160;</td>
           <td class="paramname"><em>database</em>, </td>
         </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>max_trials</em>, </td>
-        </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
@@ -228,6 +222,12 @@ Additional Inherited Members</h2></td></tr>
           <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>measure_callbacks</em>, </td>
         </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>max_trials</em>, </td>
+        </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
@@ -287,8 +287,8 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a06366c04bd5cda14ac92ceb8b007cdcf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a06366c04bd5cda14ac92ceb8b007cdcf">&#9670;&nbsp;</a></span>PyTaskScheduler()</h2>
+<a id="a81ba808d521f750ab3703873fbc801b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a81ba808d521f750ab3703873fbc801b5">&#9670;&nbsp;</a></span>PyTaskScheduler()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -317,15 +317,9 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt;&#160;</td>
           <td class="paramname"><em>database</em>, </td>
         </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>max_trials</em>, </td>
-        </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
@@ -338,6 +332,12 @@ Additional Inherited Members</h2></td></tr>
           <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>measure_callbacks</em>, </td>
         </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>max_trials</em>, </td>
+        </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
@@ -410,8 +410,8 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="adc37ee4209d129b8329292bd3c4da1af"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adc37ee4209d129b8329292bd3c4da1af">&#9670;&nbsp;</a></span>RoundRobin()</h2>
+<a id="a084b8b6743f0d63938c1bb8de37df6a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a084b8b6743f0d63938c1bb8de37df6a1">&#9670;&nbsp;</a></span>RoundRobin()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -440,15 +440,9 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt;&#160;</td>
           <td class="paramname"><em>database</em>, </td>
         </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>max_trials</em>, </td>
-        </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
@@ -461,6 +455,12 @@ Additional Inherited Members</h2></td></tr>
           <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>measure_callbacks</em>, </td>
         </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>max_trials</em>, </td>
+        </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode-members.html
index 4323f2de2..3b336bc2a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode-members.html
@@ -80,7 +80,7 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a16a711126d33a3e3d260bd9ee6104345">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#ae4c0d72966283dc88478f853c93afdf9">builder</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a40cb157f85bff6952dbef9e2804bc3ef">cost_model</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">database</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">database</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">tvm::meta_schedule::TaskSchedulerNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a70fb5361147634605d6595bb89381f03">DecRef</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af4407d2b59132e803ff791482dbe0145">deleter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a9e84841ca982bff376a978ade0132631">FDeleter</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html
index d0b10f1b4..fd8b31764 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html
@@ -85,7 +85,7 @@ Inheritance diagram for tvm::meta_schedule::TaskSchedulerNode:</div>
 <div class="dynheader">
 Collaboration diagram for tvm::meta_schedule::TaskSchedulerNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TaskSchedulerNode__coll__graph.svg" width="1803" height="1463"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TaskSchedulerNode__coll__graph.svg" width="1795" height="1463"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -147,18 +147,18 @@ Public Attributes</h2></td></tr>
 <tr class="memitem:a13c74317fb8dccd7fbdb728336b09501"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Runner.html">Runner</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a13c74317fb8dccd7fbdb728336b09501">runner</a> {nullptr}</td></tr>
 <tr class="memdesc:a13c74317fb8dccd7fbdb728336b09501"><td class="mdescLeft">&#160;</td><td class="mdescRight">The runner of the scheduler.  <a href="#a13c74317fb8dccd7fbdb728336b09501">More...</a><br /></td></tr>
 <tr class="separator:a13c74317fb8dccd7fbdb728336b09501"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9bc942d4fa3918753a1b036bb9373deb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">database</a> {nullptr}</td></tr>
-<tr class="memdesc:a9bc942d4fa3918753a1b036bb9373deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The database of the scheduler.  <a href="#a9bc942d4fa3918753a1b036bb9373deb">More...</a><br /></td></tr>
-<tr class="separator:a9bc942d4fa3918753a1b036bb9373deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8285eabc6e268c8e600f1f20f5d70585"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a8285eabc6e268c8e600f1f20f5d70585">max_trials</a></td></tr>
-<tr class="memdesc:a8285eabc6e268c8e600f1f20f5d70585"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of trials allowed.  <a href="#a8285eabc6e268c8e600f1f20f5d70585">More...</a><br /></td></tr>
-<tr class="separator:a8285eabc6e268c8e600f1f20f5d70585"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb95e507922150ac24d3813326f2cde1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">database</a></td></tr>
+<tr class="memdesc:adb95e507922150ac24d3813326f2cde1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The database of the scheduler.  <a href="#adb95e507922150ac24d3813326f2cde1">More...</a><br /></td></tr>
+<tr class="separator:adb95e507922150ac24d3813326f2cde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a40cb157f85bff6952dbef9e2804bc3ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a40cb157f85bff6952dbef9e2804bc3ef">cost_model</a></td></tr>
 <tr class="memdesc:a40cb157f85bff6952dbef9e2804bc3ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cost model of the scheduler.  <a href="#a40cb157f85bff6952dbef9e2804bc3ef">More...</a><br /></td></tr>
 <tr class="separator:a40cb157f85bff6952dbef9e2804bc3ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa8e6efd489ccdc6f81495da417da842a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#aa8e6efd489ccdc6f81495da417da842a">measure_callbacks</a></td></tr>
 <tr class="memdesc:aa8e6efd489ccdc6f81495da417da842a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of measure callbacks of the scheduler.  <a href="#aa8e6efd489ccdc6f81495da417da842a">More...</a><br /></td></tr>
 <tr class="separator:aa8e6efd489ccdc6f81495da417da842a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8285eabc6e268c8e600f1f20f5d70585"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a8285eabc6e268c8e600f1f20f5d70585">max_trials</a></td></tr>
+<tr class="memdesc:a8285eabc6e268c8e600f1f20f5d70585"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of trials allowed.  <a href="#a8285eabc6e268c8e600f1f20f5d70585">More...</a><br /></td></tr>
+<tr class="separator:a8285eabc6e268c8e600f1f20f5d70585"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a246e130e3928c57199f98dc3ce674d79"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a246e130e3928c57199f98dc3ce674d79">num_trials_already</a></td></tr>
 <tr class="memdesc:a246e130e3928c57199f98dc3ce674d79"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of trials already conducted.  <a href="#a246e130e3928c57199f98dc3ce674d79">More...</a><br /></td></tr>
 <tr class="separator:a246e130e3928c57199f98dc3ce674d79"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -540,14 +540,14 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a9bc942d4fa3918753a1b036bb9373deb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9bc942d4fa3918753a1b036bb9373deb">&#9670;&nbsp;</a></span>database</h2>
+<a id="adb95e507922150ac24d3813326f2cde1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb95e507922150ac24d3813326f2cde1">&#9670;&nbsp;</a></span>database</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> tvm::meta_schedule::TaskSchedulerNode::database {nullptr}</td>
+          <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>&lt;<a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a>&gt; tvm::meta_schedule::TaskSchedulerNode::database</td>
         </tr>
       </table>
 </div><div class="memdoc">
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__coll__graph.svg
index 9b68cad57..9131a5fbb 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__coll__graph.svg
@@ -4,30 +4,30 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::meta_schedule::TaskSchedulerNode Pages: 1 -->
-<svg width="1352pt" height="1097pt"
- viewBox="0.00 0.00 1351.50 1097.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1346pt" height="1097pt"
+ viewBox="0.00 0.00 1345.50 1097.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 1093)">
 <title>tvm::meta_schedule::TaskSchedulerNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1093 1347.5,-1093 1347.5,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1093 1341.5,-1093 1341.5,4 -4,4"/>
 <!-- Node3 -->
 <g id="node1" class="node">
 <title>Node3</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="636,-.5 636,-167.5 843,-167.5 843,-.5 636,-.5"/>
-<text text-anchor="start" x="644" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="739.5" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
-<polyline fill="none" stroke="#000000" points="636,-137.5 843,-137.5 "/>
-<text text-anchor="start" x="644" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
-<text text-anchor="start" x="644" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
-<text text-anchor="start" x="644" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="636,-96.5 843,-96.5 "/>
-<text text-anchor="start" x="644" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~TaskSchedulerNode()</text>
-<text text-anchor="start" x="644" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="644" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
-<text text-anchor="start" x="644" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
-<text text-anchor="start" x="644" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
-<text text-anchor="start" x="644" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
-<text text-anchor="start" x="644" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
-<text text-anchor="start" x="644" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="630,-.5 630,-167.5 837,-167.5 837,-.5 630,-.5"/>
+<text text-anchor="start" x="638" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="733.5" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
+<polyline fill="none" stroke="#000000" points="630,-137.5 837,-137.5 "/>
+<text text-anchor="start" x="638" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
+<text text-anchor="start" x="638" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
+<text text-anchor="start" x="638" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="630,-96.5 837,-96.5 "/>
+<text text-anchor="start" x="638" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~TaskSchedulerNode()</text>
+<text text-anchor="start" x="638" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="638" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
+<text text-anchor="start" x="638" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
+<text text-anchor="start" x="638" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
+<text text-anchor="start" x="638" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
+<text text-anchor="start" x="638" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
+<text text-anchor="start" x="638" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
 </g>
 <!-- Node4 -->
 <g id="node2" class="node">
@@ -75,8 +75,8 @@
 <!-- Node4&#45;&gt;Node3 -->
 <g id="edge1" class="edge">
 <title>Node4&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M190.052,-275.7526C211.828,-252.9409 236.2978,-231.361 262.5,-215 378.3223,-142.6791 534.2779,-109.6601 635.8344,-95.021"/>
-<polygon fill="none" stroke="#191970" points="187.3603,-273.5065 183.0778,-283.1973 192.4688,-278.2923 187.3603,-273.5065"/>
+<path fill="none" stroke="#191970" d="M190.0947,-275.8209C211.8669,-253.0032 236.3244,-231.4035 262.5,-215 376.3125,-143.6767 529.3972,-110.4738 629.7099,-95.5165"/>
+<polygon fill="none" stroke="#191970" points="187.4023,-273.5756 183.1214,-283.267 192.5117,-278.3605 187.4023,-273.5756"/>
 </g>
 <!-- Node4&#45;&gt;Node4 -->
 <g id="edge2" class="edge">
@@ -88,299 +88,306 @@
 <!-- Node5 -->
 <g id="node3" class="node">
 <title>Node5</title>
-<g id="a_node3"><a xlink:href="classtvm_1_1meta__schedule_1_1Database.html" target="_top" xlink:title="Managed reference to DatabaseNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="271.5,-353 271.5,-465 411.5,-465 411.5,-353 271.5,-353"/>
-<text text-anchor="start" x="279.5" y="-453" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="341.5" y="-442" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Database</text>
-<polyline fill="none" stroke="#000000" points="271.5,-435 411.5,-435 "/>
-<text text-anchor="middle" x="341.5" y="-423" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="271.5,-416 411.5,-416 "/>
-<text text-anchor="start" x="279.5" y="-404" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="279.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="279.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="279.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JSONDatabase()</text>
-<text text-anchor="start" x="279.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyDatabase()</text>
+<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1PackedFunc.html" target="_top" xlink:title="Packed function is a type&#45;erased function. The arguments are passed by packed format. ">
+<polygon fill="#ffffff" stroke="#000000" points="271.5,-342 271.5,-476 425.5,-476 425.5,-342 271.5,-342"/>
+<text text-anchor="middle" x="348.5" y="-464" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFunc</text>
+<polyline fill="none" stroke="#000000" points="271.5,-457 425.5,-457 "/>
+<text text-anchor="middle" x="348.5" y="-445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="271.5,-438 425.5,-438 "/>
+<text text-anchor="start" x="279.5" y="-426" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
+<text text-anchor="start" x="279.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
+<text text-anchor="start" x="279.5" y="-404" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator()()</text>
+<text text-anchor="start" x="279.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallPacked()</text>
+<text text-anchor="start" x="279.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="279.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="279.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="279.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node5&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M352.0681,-352.7121C362.7286,-310.0154 383.1404,-252.47 420.5,-215 475.5312,-159.8063 557.0865,-126.871 623.9582,-107.8291"/>
-<polygon fill="none" stroke="#404040" points="624.269,-107.7433 628.9872,-102.29 635.8357,-104.5477 631.1176,-110.0011 624.269,-107.7433"/>
-<text text-anchor="middle" x="477" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +database</text>
+<path fill="none" stroke="#404040" d="M364.9345,-341.624C377.9212,-300.5852 399.7773,-249.5726 434.5,-215 484.6798,-165.0371 557.1036,-132.639 618.1042,-112.5619"/>
+<polygon fill="none" stroke="#404040" points="618.3191,-112.4931 622.8128,-106.8533 629.7471,-108.8321 625.2534,-114.4719 618.3191,-112.4931"/>
+<text text-anchor="middle" x="505.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
 </g>
 <!-- Node6 -->
 <g id="node4" class="node">
 <title>Node6</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="747.5,-640.5 747.5,-862.5 881.5,-862.5 881.5,-640.5 747.5,-640.5"/>
-<text text-anchor="middle" x="814.5" y="-850.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="747.5,-843.5 881.5,-843.5 "/>
-<text text-anchor="start" x="755.5" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="747.5,-824.5 881.5,-824.5 "/>
-<text text-anchor="start" x="755.5" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="755.5" y="-801.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="755.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="755.5" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="755.5" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="755.5" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="755.5" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="755.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="755.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="755.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="755.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="755.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="755.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="755.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="755.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="755.5" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="744.5,-640.5 744.5,-862.5 878.5,-862.5 878.5,-640.5 744.5,-640.5"/>
+<text text-anchor="middle" x="811.5" y="-850.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="744.5,-843.5 878.5,-843.5 "/>
+<text text-anchor="start" x="752.5" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="744.5,-824.5 878.5,-824.5 "/>
+<text text-anchor="start" x="752.5" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="752.5" y="-801.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="752.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="752.5" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="752.5" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="752.5" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="752.5" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="752.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="752.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="752.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="752.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="752.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="752.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="752.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="752.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="752.5" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge4" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M737.3088,-741.1718C649.8889,-725.663 508.2323,-688.457 420.5,-603 382.4666,-565.953 362.1198,-508.063 351.6564,-465.1538"/>
-<polygon fill="none" stroke="#191970" points="736.7194,-744.6217 747.1683,-742.8697 737.9075,-737.7233 736.7194,-744.6217"/>
+<path fill="none" stroke="#191970" d="M734.2775,-739.0121C650.7425,-721.8199 518.3019,-683.3516 434.5,-603 398.9989,-568.9605 377.137,-517.6656 364.3434,-476.3691"/>
+<polygon fill="none" stroke="#191970" points="733.7228,-742.4705 744.2157,-741.0046 735.0989,-735.6071 733.7228,-742.4705"/>
 </g>
 <!-- Node8 -->
 <g id="node6" class="node">
 <title>Node8</title>
-<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1PackedFunc.html" target="_top" xlink:title="Packed function is a type&#45;erased function. The arguments are passed by packed format. ">
-<polygon fill="#ffffff" stroke="#000000" points="429.5,-342 429.5,-476 583.5,-476 583.5,-342 429.5,-342"/>
-<text text-anchor="middle" x="506.5" y="-464" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFunc</text>
-<polyline fill="none" stroke="#000000" points="429.5,-457 583.5,-457 "/>
-<text text-anchor="middle" x="506.5" y="-445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="429.5,-438 583.5,-438 "/>
-<text text-anchor="start" x="437.5" y="-426" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
-<text text-anchor="start" x="437.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
-<text text-anchor="start" x="437.5" y="-404" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator()()</text>
-<text text-anchor="start" x="437.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallPacked()</text>
-<text text-anchor="start" x="437.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="437.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="437.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="437.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::TuneContext \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="443.5,-314.5 443.5,-503.5 571.5,-503.5 571.5,-314.5 443.5,-314.5"/>
+<text text-anchor="start" x="451.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="451.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="507.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
+<polyline fill="none" stroke="#000000" points="443.5,-462.5 571.5,-462.5 "/>
+<text text-anchor="middle" x="507.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="443.5,-443.5 571.5,-443.5 "/>
+<text text-anchor="start" x="451.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="451.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="451.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="451.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node8 -->
 <g id="edge7" class="edge">
 <title>Node6&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M738.4127,-714.7927C691.3309,-688.9381 632.4548,-650.5081 592.5,-603 561.4361,-566.0636 539.6445,-516.1292 525.7699,-476.1715"/>
-<polygon fill="none" stroke="#191970" points="736.8999,-717.9536 747.3606,-719.634 740.231,-711.797 736.8999,-717.9536"/>
+<path fill="none" stroke="#191970" d="M735.2612,-718.2453C685.2357,-693.0118 621.6876,-653.9665 580.5,-603 557.3157,-574.3112 540.9941,-537.4952 529.7565,-503.6593"/>
+<polygon fill="none" stroke="#191970" points="733.9224,-721.4881 744.4362,-722.796 737.0328,-715.2171 733.9224,-721.4881"/>
 </g>
 <!-- Node9 -->
 <g id="node7" class="node">
 <title>Node9</title>
-<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::TuneContext \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="601.5,-314.5 601.5,-503.5 729.5,-503.5 729.5,-314.5 601.5,-314.5"/>
-<text text-anchor="start" x="609.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="609.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="665.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
-<polyline fill="none" stroke="#000000" points="601.5,-462.5 729.5,-462.5 "/>
-<text text-anchor="middle" x="665.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="601.5,-443.5 729.5,-443.5 "/>
-<text text-anchor="start" x="609.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="609.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="609.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="609.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lCostModel \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="589.5,-314.5 589.5,-503.5 723.5,-503.5 723.5,-314.5 589.5,-314.5"/>
+<text text-anchor="start" x="597.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="597.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
+<text text-anchor="middle" x="656.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel &gt;</text>
+<polyline fill="none" stroke="#000000" points="589.5,-462.5 723.5,-462.5 "/>
+<text text-anchor="start" x="597.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="589.5,-443.5 723.5,-443.5 "/>
+<text text-anchor="start" x="597.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="597.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="597.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="597.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node6&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M751.4864,-631.1794C746.9651,-621.7047 742.5841,-612.2328 738.5,-603 724.3792,-571.0771 710.4788,-535.4932 698.659,-503.6059"/>
-<polygon fill="none" stroke="#191970" points="748.3659,-632.7663 755.8592,-640.2564 754.6723,-629.7283 748.3659,-632.7663"/>
+<path fill="none" stroke="#191970" d="M746.0191,-631.2138C741.3147,-621.7313 736.7542,-612.2482 732.5,-603 717.8366,-571.1233 703.3739,-535.5506 691.0652,-503.6593"/>
+<polygon fill="none" stroke="#191970" points="742.9608,-632.9233 750.5683,-640.2974 749.2198,-629.7887 742.9608,-632.9233"/>
 </g>
 <!-- Node10 -->
 <g id="node8" class="node">
 <title>Node10</title>
-<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lCostModel \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="747.5,-314.5 747.5,-503.5 881.5,-503.5 881.5,-314.5 747.5,-314.5"/>
-<text text-anchor="start" x="755.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="755.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
-<text text-anchor="middle" x="814.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel &gt;</text>
-<polyline fill="none" stroke="#000000" points="747.5,-462.5 881.5,-462.5 "/>
-<text text-anchor="start" x="755.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="747.5,-443.5 881.5,-443.5 "/>
-<text text-anchor="start" x="755.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="755.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="755.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="755.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<g id="a_node8"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="741.5,-358.5 741.5,-459.5 881.5,-459.5 881.5,-358.5 741.5,-358.5"/>
+<text text-anchor="start" x="749.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="811.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
+<polyline fill="none" stroke="#000000" points="741.5,-429.5 881.5,-429.5 "/>
+<text text-anchor="middle" x="811.5" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="741.5,-410.5 881.5,-410.5 "/>
+<text text-anchor="start" x="749.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="749.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="749.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="749.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyBuilder()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node10 -->
 <g id="edge11" class="edge">
 <title>Node6&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M814.5,-630.1125C814.5,-588.5481 814.5,-542.6904 814.5,-503.5637"/>
-<polygon fill="none" stroke="#191970" points="811.0001,-630.3 814.5,-640.3001 818.0001,-630.3001 811.0001,-630.3"/>
+<path fill="none" stroke="#191970" d="M811.5,-630.2362C811.5,-571.7209 811.5,-504.6715 811.5,-459.8669"/>
+<polygon fill="none" stroke="#191970" points="808.0001,-630.3 811.5,-640.3001 815.0001,-630.3001 808.0001,-630.3"/>
 </g>
 <!-- Node11 -->
 <g id="node9" class="node">
 <title>Node11</title>
-<g id="a_node9"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
+<g id="a_node9"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
 <polygon fill="#ffffff" stroke="#000000" points="899.5,-358.5 899.5,-459.5 1039.5,-459.5 1039.5,-358.5 899.5,-358.5"/>
 <text text-anchor="start" x="907.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="969.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
+<text text-anchor="middle" x="969.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
 <polyline fill="none" stroke="#000000" points="899.5,-429.5 1039.5,-429.5 "/>
 <text text-anchor="middle" x="969.5" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 <polyline fill="none" stroke="#000000" points="899.5,-410.5 1039.5,-410.5 "/>
 <text text-anchor="start" x="907.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
 <text text-anchor="start" x="907.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
 <text text-anchor="start" x="907.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="907.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyBuilder()</text>
+<text text-anchor="start" x="907.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyRunner()</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node11 -->
 <g id="edge13" class="edge">
 <title>Node6&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M877.2373,-631.0549C881.8217,-621.6087 886.2925,-612.1773 890.5,-603 912.4757,-555.0667 934.9016,-499.1945 950.2174,-459.7545"/>
-<polygon fill="none" stroke="#191970" points="874.0591,-629.5872 872.812,-640.1084 880.348,-632.6612 874.0591,-629.5872"/>
+<path fill="none" stroke="#191970" d="M876.8431,-631.1498C881.5789,-621.6819 886.1842,-612.2196 890.5,-603 912.8556,-555.2427 935.2309,-499.3471 950.4317,-459.8538"/>
+<polygon fill="none" stroke="#191970" points="873.6461,-629.7165 872.2677,-640.2213 879.8961,-632.8689 873.6461,-629.7165"/>
 </g>
 <!-- Node12 -->
 <g id="node10" class="node">
 <title>Node12</title>
-<g id="a_node10"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1057.5,-358.5 1057.5,-459.5 1197.5,-459.5 1197.5,-358.5 1057.5,-358.5"/>
-<text text-anchor="start" x="1065.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1127.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
-<polyline fill="none" stroke="#000000" points="1057.5,-429.5 1197.5,-429.5 "/>
-<text text-anchor="middle" x="1127.5" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1057.5,-410.5 1197.5,-410.5 "/>
-<text text-anchor="start" x="1065.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="1065.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="1065.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="1065.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyRunner()</text>
+<g id="a_node10"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::MeasureCallback \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1057.5,-314.5 1057.5,-503.5 1185.5,-503.5 1185.5,-314.5 1057.5,-314.5"/>
+<text text-anchor="start" x="1065.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="1065.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="1121.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
+<polyline fill="none" stroke="#000000" points="1057.5,-462.5 1185.5,-462.5 "/>
+<text text-anchor="middle" x="1121.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1057.5,-443.5 1185.5,-443.5 "/>
+<text text-anchor="start" x="1065.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1065.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1065.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1065.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node12 -->
 <g id="edge15" class="edge">
 <title>Node6&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M890.774,-718.3654C941.3345,-693.0787 1005.9535,-653.9238 1048.5,-603 1083.4748,-561.1388 1104.586,-501.7291 1116.0724,-459.7074"/>
-<polygon fill="none" stroke="#191970" points="888.9332,-715.3703 881.5054,-722.9253 892.0234,-721.6514 888.9332,-715.3703"/>
+<path fill="none" stroke="#191970" d="M887.8269,-719.6158C939.4363,-694.6192 1005.7296,-655.3016 1048.5,-603 1071.8503,-574.4462 1088.205,-537.6571 1099.4226,-503.8049"/>
+<polygon fill="none" stroke="#191970" points="886.2216,-716.5036 878.6979,-723.9631 889.2313,-722.8236 886.2216,-716.5036"/>
 </g>
 <!-- Node13 -->
 <g id="node11" class="node">
 <title>Node13</title>
-<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::MeasureCallback \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="1215.5,-314.5 1215.5,-503.5 1343.5,-503.5 1343.5,-314.5 1215.5,-314.5"/>
-<text text-anchor="start" x="1223.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="1223.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="1279.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
-<polyline fill="none" stroke="#000000" points="1215.5,-462.5 1343.5,-462.5 "/>
-<text text-anchor="middle" x="1279.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1215.5,-443.5 1343.5,-443.5 "/>
-<text text-anchor="start" x="1223.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1223.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1223.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1223.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lDatabase \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1203.5,-314.5 1203.5,-503.5 1337.5,-503.5 1337.5,-314.5 1203.5,-314.5"/>
+<text text-anchor="start" x="1211.5" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="1211.5" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
+<text text-anchor="middle" x="1270.5" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Database &gt;</text>
+<polyline fill="none" stroke="#000000" points="1203.5,-462.5 1337.5,-462.5 "/>
+<text text-anchor="start" x="1211.5" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="1203.5,-443.5 1337.5,-443.5 "/>
+<text text-anchor="start" x="1211.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1211.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1211.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1211.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node13 -->
 <g id="edge17" class="edge">
 <title>Node6&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M891.9827,-741.432C979.3674,-726.1796 1120.4658,-689.2255 1206.5,-603 1233.1886,-576.252 1250.2649,-538.8095 1261.1242,-503.945"/>
-<polygon fill="none" stroke="#191970" points="891.1388,-738.0249 881.8624,-743.1434 892.306,-744.9269 891.1388,-738.0249"/>
+<path fill="none" stroke="#191970" d="M888.5015,-740.4473C973.823,-724.3823 1110.4355,-686.7714 1194.5,-603 1221.4038,-576.19 1239.0234,-538.7363 1250.4488,-503.8803"/>
+<polygon fill="none" stroke="#191970" points="887.8216,-737.0135 878.6145,-742.2557 889.0811,-743.8992 887.8216,-737.0135"/>
 </g>
 <!-- Node7 -->
 <g id="node5" class="node">
 <title>Node7</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="744.5,-910.5 744.5,-1088.5 884.5,-1088.5 884.5,-910.5 744.5,-910.5"/>
-<text text-anchor="start" x="752.5" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="814.5" y="-1065.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="744.5,-1058.5 884.5,-1058.5 "/>
-<text text-anchor="middle" x="814.5" y="-1046.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="744.5,-1039.5 884.5,-1039.5 "/>
-<text text-anchor="start" x="752.5" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="752.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="752.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="752.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="752.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="741.5,-910.5 741.5,-1088.5 881.5,-1088.5 881.5,-910.5 741.5,-910.5"/>
+<text text-anchor="start" x="749.5" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="811.5" y="-1065.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="741.5,-1058.5 881.5,-1058.5 "/>
+<text text-anchor="middle" x="811.5" y="-1046.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="741.5,-1039.5 881.5,-1039.5 "/>
+<text text-anchor="start" x="749.5" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="749.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="749.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="749.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="749.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node6 -->
 <g id="edge5" class="edge">
 <title>Node7&#45;&gt;Node6</title>
-<path fill="none" stroke="#404040" d="M814.5,-910.3167C814.5,-898.8765 814.5,-887.0062 814.5,-875.1402"/>
-<polygon fill="none" stroke="#404040" points="814.5001,-874.7944 810.5,-868.7944 814.5,-862.7944 818.5,-868.7943 814.5001,-874.7944"/>
-<text text-anchor="middle" x="834" y="-884" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M811.5,-910.3167C811.5,-898.8765 811.5,-887.0062 811.5,-875.1402"/>
+<polygon fill="none" stroke="#404040" points="811.5001,-874.7944 807.5,-868.7944 811.5,-862.7944 815.5,-868.7943 811.5001,-874.7944"/>
+<text text-anchor="middle" x="831" y="-884" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 <!-- Node8&#45;&gt;Node3 -->
 <g id="edge6" class="edge">
 <title>Node8&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M528.1522,-341.9429C542.7116,-302.7403 564.389,-253.5487 592.5,-215 602.6463,-201.0863 614.4916,-187.5759 626.9742,-174.8489"/>
-<polygon fill="none" stroke="#404040" points="627.1955,-174.6289 628.6297,-167.5618 635.7048,-166.1677 634.2705,-173.2347 627.1955,-174.6289"/>
-<text text-anchor="middle" x="652.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
+<path fill="none" stroke="#404040" d="M532.4359,-314.4973C543.8767,-281.2391 559.6397,-244.7637 580.5,-215 591.9923,-198.6026 605.9984,-182.9865 620.8187,-168.6225"/>
+<polygon fill="none" stroke="#404040" points="620.8973,-168.5484 622.5166,-161.5214 629.6259,-160.3135 628.0065,-167.3405 620.8973,-168.5484"/>
+<text text-anchor="middle" x="619.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +tasks</text>
 </g>
 <!-- Node9&#45;&gt;Node3 -->
 <g id="edge8" class="edge">
 <title>Node9&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M687.1028,-314.1229C696.7539,-271.7364 708.106,-221.8789 717.7718,-179.428"/>
-<polygon fill="none" stroke="#404040" points="717.7863,-179.3639 715.2182,-172.6256 720.4505,-167.6634 723.0186,-174.4017 717.7863,-179.3639"/>
-<text text-anchor="middle" x="734.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +tasks</text>
+<path fill="none" stroke="#404040" d="M676.1686,-314.3487C684.7208,-274.6003 695.1415,-227.9463 705.5,-186 706.03,-183.8537 706.5721,-181.6837 707.124,-179.4969"/>
+<polygon fill="none" stroke="#404040" points="707.1729,-179.306 704.7896,-172.5002 710.1553,-167.6825 712.5386,-174.4884 707.1729,-179.306"/>
+<text text-anchor="middle" x="739.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +cost_model</text>
 </g>
 <!-- Node10&#45;&gt;Node3 -->
 <g id="edge10" class="edge">
 <title>Node10&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M792.6053,-314.1229C782.8238,-271.7364 771.3182,-221.8789 761.5218,-179.428"/>
-<polygon fill="none" stroke="#404040" points="761.5053,-179.3561 756.2586,-174.4092 758.8069,-167.6634 764.0537,-172.6103 761.5053,-179.3561"/>
-<text text-anchor="middle" x="797.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +cost_model</text>
+<path fill="none" stroke="#404040" d="M805.8711,-358.3116C800.097,-312.6851 789.6527,-244.0803 773.5,-186 772.8693,-183.7322 772.2061,-181.4453 771.515,-179.1464"/>
+<polygon fill="none" stroke="#404040" points="771.4763,-179.0242 765.8497,-174.5141 767.8487,-167.5856 773.4754,-172.0957 771.4763,-179.0242"/>
+<text text-anchor="middle" x="797.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder</text>
 </g>
 <!-- Node11&#45;&gt;Node3 -->
 <g id="edge12" class="edge">
 <title>Node11&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M956.041,-358.3302C943.4891,-317.1538 921.942,-258.9066 890.5,-215 879.3723,-199.4609 866.0445,-184.5451 851.978,-170.7036"/>
-<polygon fill="none" stroke="#404040" points="851.7997,-170.5327 844.7003,-169.2679 843.1373,-162.2282 850.2367,-163.493 851.7997,-170.5327"/>
-<text text-anchor="middle" x="896.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder</text>
+<path fill="none" stroke="#404040" d="M956.2636,-358.1692C943.8424,-316.8982 922.3627,-258.6022 890.5,-215 877.8644,-197.7089 862.4652,-181.2923 846.3067,-166.2984"/>
+<polygon fill="none" stroke="#404040" points="846.1634,-166.1687 839.0304,-165.1098 837.2644,-158.1182 844.3974,-159.1771 846.1634,-166.1687"/>
+<text text-anchor="middle" x="894" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner</text>
 </g>
 <!-- Node12&#45;&gt;Node3 -->
 <g id="edge14" class="edge">
 <title>Node12&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M1118.1929,-358.4514C1107.8808,-315.3759 1087.3065,-254.3641 1048.5,-215 996.2232,-161.9719 919.136,-129.2417 855.0368,-109.7587"/>
-<polygon fill="none" stroke="#404040" points="854.7372,-109.6703 847.8502,-111.808 843.2281,-106.273 850.1151,-104.1353 854.7372,-109.6703"/>
-<text text-anchor="middle" x="1050" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner</text>
+<path fill="none" stroke="#404040" d="M1102.674,-314.497C1091.7561,-279.6901 1074.7574,-242.1715 1048.5,-215 995.1131,-159.7545 914.9566,-126.8615 848.8642,-107.8528"/>
+<polygon fill="none" stroke="#404040" points="848.6791,-107.8013 841.825,-110.0422 837.1203,-104.5772 843.9744,-102.3363 848.6791,-107.8013"/>
+<text text-anchor="middle" x="1080.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_callbacks</text>
 </g>
 <!-- Node13&#45;&gt;Node3 -->
 <g id="edge16" class="edge">
 <title>Node13&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M1262.7883,-314.2933C1252.1236,-278.8306 1234.7453,-240.9042 1206.5,-215 1155.2623,-168.0091 975.8251,-127.1353 854.89,-104.0382"/>
-<polygon fill="none" stroke="#404040" points="854.801,-104.0214 848.1619,-106.8361 843.0102,-101.7904 849.6493,-98.9756 854.801,-104.0214"/>
-<text text-anchor="middle" x="1226.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_callbacks</text>
+<path fill="none" stroke="#404040" d="M1248.5028,-314.0103C1236.8925,-279.7469 1219.655,-242.7289 1194.5,-215 1148.3438,-164.1211 969.9292,-124.375 849.0796,-102.5684"/>
+<polygon fill="none" stroke="#404040" points="849.0188,-102.5577 842.4095,-105.4416 837.2053,-100.4499 843.8146,-97.566 849.0188,-102.5577"/>
+<text text-anchor="middle" x="1200" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +database</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__inherit__graph.svg
index 5d4ddf990..38fd8ddb3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TaskSchedulerNode__inherit__graph.svg
@@ -20,9 +20,9 @@
 <text text-anchor="start" x="9" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ builder</text>
 <text text-anchor="start" x="9" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ runner</text>
 <text text-anchor="start" x="9" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ database</text>
-<text text-anchor="start" x="9" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
-<text text-anchor="start" x="9" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ cost_model</text>
-<text text-anchor="start" x="9" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ measure_callbacks</text>
+<text text-anchor="start" x="9" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ cost_model</text>
+<text text-anchor="start" x="9" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ measure_callbacks</text>
+<text text-anchor="start" x="9" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
 <text text-anchor="start" x="9" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
 <text text-anchor="start" x="9" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ logging_func</text>
 <text text-anchor="start" x="9" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode-members.html
index 86f3c94f7..ab011c16d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode-members.html
@@ -110,15 +110,14 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a7bdfdd48530bfe380c5f6c143158a07f">space_generator</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#ae2a4edfbc9e6246748fd0e10202cdb66">target</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a5cd36a027a0a4b1840bf3884948c6298">task_name</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a4107f4a73646a16829baea2a7eeddbd4">task_scheduler</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a89500f25fff207d09a8f3841453d2153">TVM_DECLARE_FINAL_OBJECT_INFO</a>(TuneContextNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a481f01923b14e1851ebd38506e9c66ea">type_index</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4bfc2586cb55f2af47728187b3256255">type_index_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">TypeIndex2Key</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6ee32a02dd44257da105fbbe5d9c8622">TypeIndex2KeyHash</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6841f97e06e6614dd7e82c6dd41b818a">TypeKey2Index</a>(const std::string &amp;key)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a0feacb165880521b85b82f6b4e6f4a8f">VisitAttrs</a>(tvm::AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a89500f25fff207d09a8f3841453d2153">TVM_DECLARE_FINAL_OBJECT_INFO</a>(TuneContextNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a481f01923b14e1851ebd38506e9c66ea">type_index</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4bfc2586cb55f2af47728187b3256255">type_index_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">TypeIndex2Key</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6ee32a02dd44257da105fbbe5d9c8622">TypeIndex2KeyHash</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6841f97e06e6614dd7e82c6dd41b818a">TypeKey2Index</a>(const std::string &amp;key)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a0feacb165880521b85b82f6b4e6f4a8f">VisitAttrs</a>(tvm::AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html">tvm::meta_schedule::TuneContextNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode.html
index 1f428a16b..099631589 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode.html
@@ -79,13 +79,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::meta_schedule::TuneContextNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TuneContextNode__inherit__graph.svg" width="290" height="874"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TuneContextNode__inherit__graph.svg" width="290" height="932"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::meta_schedule::TuneContextNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TuneContextNode__coll__graph.svg" width="3156" height="1959"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TuneContextNode__coll__graph.svg" width="3186" height="1404"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -156,9 +156,6 @@ Public Attributes</h2></td></tr>
 <tr class="memitem:aa7136d896f4145357ebb1b7639a25d65"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#aa7136d896f4145357ebb1b7639a25d65">num_threads</a></td></tr>
 <tr class="memdesc:aa7136d896f4145357ebb1b7639a25d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of threads to be used.  <a href="#aa7136d896f4145357ebb1b7639a25d65">More...</a><br /></td></tr>
 <tr class="separator:aa7136d896f4145357ebb1b7639a25d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4107f4a73646a16829baea2a7eeddbd4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">TaskSchedulerNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a4107f4a73646a16829baea2a7eeddbd4">task_scheduler</a></td></tr>
-<tr class="memdesc:a4107f4a73646a16829baea2a7eeddbd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The task scheduler that owns the tune context.  <a href="#a4107f4a73646a16829baea2a7eeddbd4">More...</a><br /></td></tr>
-<tr class="separator:a4107f4a73646a16829baea2a7eeddbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:abc52e43954ee5c00fc3e8197b5e697b4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#abc52e43954ee5c00fc3e8197b5e697b4">is_terminated</a></td></tr>
 <tr class="memdesc:abc52e43954ee5c00fc3e8197b5e697b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the tuning task has been stopped or finished.  <a href="#abc52e43954ee5c00fc3e8197b5e697b4">More...</a><br /></td></tr>
 <tr class="separator:abc52e43954ee5c00fc3e8197b5e697b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -575,22 +572,6 @@ Additional Inherited Members</h2></td></tr>
 
 <p>The name of the tuning task. </p>
 
-</div>
-</div>
-<a id="a4107f4a73646a16829baea2a7eeddbd4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4107f4a73646a16829baea2a7eeddbd4">&#9670;&nbsp;</a></span>task_scheduler</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html">TaskSchedulerNode</a>* tvm::meta_schedule::TuneContextNode::task_scheduler</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>The task scheduler that owns the tune context. </p>
-
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__coll__graph.svg
index 61347ca61..18915e17f 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__coll__graph.svg
@@ -4,837 +4,589 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::meta_schedule::TuneContextNode Pages: 1 -->
-<svg width="2367pt" height="1469pt"
- viewBox="0.00 0.00 2366.50 1469.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 1465)">
+<svg width="2389pt" height="1053pt"
+ viewBox="0.00 0.00 2389.00 1053.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 1049)">
 <title>tvm::meta_schedule::TuneContextNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1465 2362.5,-1465 2362.5,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1049 2385,-1049 2385,4 -4,4"/>
 <!-- Node2 -->
 <g id="node1" class="node">
 <title>Node2</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="939.5,-.5 939.5,-123.5 1148.5,-123.5 1148.5,-.5 939.5,-.5"/>
-<text text-anchor="start" x="947.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1044" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContextNode</text>
-<polyline fill="none" stroke="#000000" points="939.5,-93.5 1148.5,-93.5 "/>
-<text text-anchor="start" x="947.5" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ rand_state</text>
-<text text-anchor="start" x="947.5" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_threads</text>
-<text text-anchor="start" x="947.5" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_terminated</text>
-<text text-anchor="start" x="947.5" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="939.5,-41.5 1148.5,-41.5 "/>
-<text text-anchor="start" x="947.5" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="947.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Initialize()</text>
-<text text-anchor="start" x="947.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="1216,-.5 1216,-123.5 1425,-123.5 1425,-.5 1216,-.5"/>
+<text text-anchor="start" x="1224" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="1320.5" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContextNode</text>
+<polyline fill="none" stroke="#000000" points="1216,-93.5 1425,-93.5 "/>
+<text text-anchor="start" x="1224" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ rand_state</text>
+<text text-anchor="start" x="1224" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_threads</text>
+<text text-anchor="start" x="1224" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_terminated</text>
+<text text-anchor="start" x="1224" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1216,-41.5 1425,-41.5 "/>
+<text text-anchor="start" x="1224" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="1224" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Initialize()</text>
+<text text-anchor="start" x="1224" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
 </g>
 <!-- Node3 -->
 <g id="node2" class="node">
 <title>Node3</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="805.5,-587.5 805.5,-974.5 988.5,-974.5 988.5,-587.5 805.5,-587.5"/>
-<text text-anchor="middle" x="897" y="-962.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
-<polyline fill="none" stroke="#000000" points="805.5,-955.5 988.5,-955.5 "/>
-<text text-anchor="start" x="813.5" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<text text-anchor="start" x="813.5" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
-<text text-anchor="start" x="813.5" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
-<text text-anchor="start" x="813.5" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
-<text text-anchor="start" x="813.5" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
-<text text-anchor="start" x="813.5" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
-<text text-anchor="start" x="813.5" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
-<text text-anchor="start" x="813.5" y="-866.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="813.5" y="-855.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="813.5" y="-844.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
-<text text-anchor="start" x="813.5" y="-833.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="813.5" y="-822.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
-<text text-anchor="start" x="813.5" y="-811.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
-<text text-anchor="start" x="813.5" y="-800.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
-<polyline fill="none" stroke="#000000" points="805.5,-793.5 988.5,-793.5 "/>
-<text text-anchor="start" x="813.5" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
-<text text-anchor="start" x="813.5" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
-<text text-anchor="start" x="813.5" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="813.5" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
-<text text-anchor="start" x="813.5" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="813.5" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="813.5" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="813.5" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="813.5" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="813.5" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="813.5" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="813.5" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="813.5" y="-649.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
-<text text-anchor="start" x="813.5" y="-638.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="813.5" y="-627.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="813.5" y="-616.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
-<text text-anchor="start" x="813.5" y="-605.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
-<text text-anchor="start" x="813.5" y="-594.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-171.5 0,-558.5 183,-558.5 183,-171.5 0,-171.5"/>
+<text text-anchor="middle" x="91.5" y="-546.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="0,-539.5 183,-539.5 "/>
+<text text-anchor="start" x="8" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="8" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="8" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="8" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="8" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="8" y="-428.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="8" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="8" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="8" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<polyline fill="none" stroke="#000000" points="0,-377.5 183,-377.5 "/>
+<text text-anchor="start" x="8" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="8" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="8" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="8" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="8" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="8" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="8" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="8" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="8" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="8" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge1" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M994.8893,-667.7607C1018.3405,-637.0576 1041.8234,-602.8973 1060,-569 1106.1616,-482.9138 1115.0064,-457.3635 1131,-361 1144.8262,-277.6951 1158.9071,-250.6998 1131,-171 1125.1188,-154.2038 1115.4431,-138.0672 1104.6366,-123.5961"/>
-<polygon fill="none" stroke="#191970" points="991.9427,-665.8503 988.607,-675.9063 997.4857,-670.1253 991.9427,-665.8503"/>
+<path fill="none" stroke="#191970" d="M190.5277,-227.6767C211.9807,-205.769 236.212,-185.5604 262.5,-171 344.6786,-125.483 964.7571,-83.4537 1215.63,-68.1295"/>
+<polygon fill="none" stroke="#191970" points="187.7459,-225.5214 183.36,-235.1658 192.8029,-230.3615 187.7459,-225.5214"/>
 </g>
 <!-- Node3&#45;&gt;Node3 -->
 <g id="edge2" class="edge">
 <title>Node3&#45;&gt;Node3</title>
-<path fill="none" stroke="#404040" d="M988.8625,-814.9248C999.5482,-808.6637 1006.5,-797.3555 1006.5,-781 1006.5,-770.0112 1003.3618,-761.3007 998.0615,-754.8687"/>
-<polygon fill="none" stroke="#404040" points="998.0184,-754.8322 990.8548,-754.0056 988.8625,-747.0752 996.0261,-747.9017 998.0184,-754.8322"/>
-<text text-anchor="middle" x="1032.5" y="-778.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
-</g>
-<!-- Node15 -->
-<g id="node14" class="node">
-<title>Node15</title>
-<g id="a_node14"><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="1373.5,-182.5 1373.5,-349.5 1580.5,-349.5 1580.5,-182.5 1373.5,-182.5"/>
-<text text-anchor="start" x="1381.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1477" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskSchedulerNode</text>
-<polyline fill="none" stroke="#000000" points="1373.5,-319.5 1580.5,-319.5 "/>
-<text text-anchor="start" x="1381.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ max_trials</text>
-<text text-anchor="start" x="1381.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_trials_already</text>
-<text text-anchor="start" x="1381.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="1373.5,-278.5 1580.5,-278.5 "/>
-<text text-anchor="start" x="1381.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~TaskSchedulerNode()</text>
-<text text-anchor="start" x="1381.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="1381.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Tune()</text>
-<text text-anchor="start" x="1381.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ InitializeTask()</text>
-<text text-anchor="start" x="1381.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TouchTask()</text>
-<text text-anchor="start" x="1381.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JoinRunningTask()</text>
-<text text-anchor="start" x="1381.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ NextTaskId()</text>
-<text text-anchor="start" x="1381.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
-</a>
-</g>
-</g>
-<!-- Node3&#45;&gt;Node15 -->
-<g id="edge23" class="edge">
-<title>Node3&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M995.5362,-644.8009C1017.1439,-622.5756 1041.5566,-601.965 1068,-587 1106.5404,-565.1889 1133.231,-598.7872 1166,-569 1230.9612,-509.9499 1157.9672,-441.1192 1220,-379 1240.5769,-358.3944 1255.817,-371.4444 1283,-361 1312.9309,-349.4998 1344.5088,-335.0846 1373.2948,-320.9842"/>
-<polygon fill="none" stroke="#191970" points="992.9784,-642.4116 988.6202,-652.0685 998.0493,-647.2371 992.9784,-642.4116"/>
+<path fill="none" stroke="#404040" d="M183.3625,-398.9248C194.0482,-392.6637 201,-381.3555 201,-365 201,-354.0112 197.8618,-345.3007 192.5615,-338.8687"/>
+<polygon fill="none" stroke="#404040" points="192.5184,-338.8322 185.3548,-338.0056 183.3625,-331.0752 190.5261,-331.9017 192.5184,-338.8322"/>
+<text text-anchor="middle" x="227" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
 </g>
 <!-- Node4 -->
 <g id="node3" class="node">
 <title>Node4</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lSearchStrategy \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="0,-379.5 0,-568.5 134,-568.5 134,-379.5 0,-379.5"/>
-<text text-anchor="start" x="8" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="8" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
-<text text-anchor="middle" x="67" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SearchStrategy &gt;</text>
-<polyline fill="none" stroke="#000000" points="0,-527.5 134,-527.5 "/>
-<text text-anchor="start" x="8" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="0,-508.5 134,-508.5 "/>
-<text text-anchor="start" x="8" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-452.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-441.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-430.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-419.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="8" y="-408.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="8" y="-397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="8" y="-386.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="271.5,-270.5 271.5,-459.5 405.5,-459.5 405.5,-270.5 271.5,-270.5"/>
+<text text-anchor="start" x="279.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="279.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
+<text text-anchor="middle" x="338.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SearchStrategy &gt;</text>
+<polyline fill="none" stroke="#000000" points="271.5,-418.5 405.5,-418.5 "/>
+<text text-anchor="start" x="279.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="271.5,-399.5 405.5,-399.5 "/>
+<text text-anchor="start" x="279.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="279.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="279.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node4&#45;&gt;Node2 -->
 <g id="edge3" class="edge">
 <title>Node4&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M27.3964,-379.4651C6.7842,-313.7529 -5.3723,-228.0576 42,-171 97.7444,-103.8588 675.028,-75.1697 927.2042,-65.7748"/>
-<polygon fill="none" stroke="#404040" points="927.3368,-65.77 933.1857,-61.552 939.3287,-65.3286 933.4799,-69.5466 927.3368,-65.77"/>
-<text text-anchor="middle" x="87" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +search_strategy</text>
+<path fill="none" stroke="#404040" d="M357.5637,-270.4336C368.8878,-235.203 386.6965,-197.4039 414.5,-171 444.0547,-142.933 461.6334,-150.479 501.5,-142 748.0051,-89.5725 1043.673,-71.412 1203.7016,-65.1873"/>
+<polygon fill="none" stroke="#404040" points="1203.938,-65.1784 1209.7824,-60.9544 1215.9294,-64.7247 1210.0849,-68.9487 1203.938,-65.1784"/>
+<text text-anchor="middle" x="546.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +search_strategy</text>
 </g>
 <!-- Node5 -->
 <g id="node4" class="node">
 <title>Node5</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="1158,-1012.5 1158,-1234.5 1292,-1234.5 1292,-1012.5 1158,-1012.5"/>
-<text text-anchor="middle" x="1225" y="-1222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="1158,-1215.5 1292,-1215.5 "/>
-<text text-anchor="start" x="1166" y="-1203.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="1158,-1196.5 1292,-1196.5 "/>
-<text text-anchor="start" x="1166" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="1166" y="-1173.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="1166" y="-1162.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="1166" y="-1151.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="1166" y="-1140.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="1166" y="-1129.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="1166" y="-1118.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="1166" y="-1107.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="1166" y="-1096.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="1166" y="-1085.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="1166" y="-1074.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="1166" y="-1063.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="1166" y="-1052.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="1166" y="-1041.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="1166" y="-1030.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="1166" y="-1019.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1328.5,-596.5 1328.5,-818.5 1462.5,-818.5 1462.5,-596.5 1328.5,-596.5"/>
+<text text-anchor="middle" x="1395.5" y="-806.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="1328.5,-799.5 1462.5,-799.5 "/>
+<text text-anchor="start" x="1336.5" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="1328.5,-780.5 1462.5,-780.5 "/>
+<text text-anchor="start" x="1336.5" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="1336.5" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="1336.5" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="1336.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="1336.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="1336.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="1336.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="1336.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="1336.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="1336.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="1336.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="1336.5" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="1336.5" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="1336.5" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="1336.5" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="1336.5" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node5&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M1147.6991,-1121.7216C941.9763,-1115.4721 387.481,-1088.2644 251,-975 128.7141,-873.516 87.6939,-683.1582 73.9373,-568.5492"/>
-<polygon fill="none" stroke="#191970" points="1147.7171,-1125.2235 1157.8162,-1122.0205 1147.9239,-1118.2266 1147.7171,-1125.2235"/>
+<path fill="none" stroke="#191970" d="M1318.2386,-705.5367C1111.903,-698.8147 554.1507,-670.5116 414.5,-559 383.8305,-534.5103 365.5063,-495.9311 354.5719,-459.6047"/>
+<polygon fill="none" stroke="#191970" points="1318.2783,-709.0396 1328.3844,-705.8589 1318.5006,-702.0431 1318.2783,-709.0396"/>
 </g>
 <!-- Node7 -->
 <g id="node6" class="node">
 <title>Node7</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lSpaceGenerator \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="202,-379.5 202,-568.5 336,-568.5 336,-379.5 202,-379.5"/>
-<text text-anchor="start" x="210" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="210" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
-<text text-anchor="middle" x="269" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SpaceGenerator &gt;</text>
-<polyline fill="none" stroke="#000000" points="202,-527.5 336,-527.5 "/>
-<text text-anchor="start" x="210" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="202,-508.5 336,-508.5 "/>
-<text text-anchor="start" x="210" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-452.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-441.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-430.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-419.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="210" y="-408.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="210" y="-397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="210" y="-386.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="423.5,-270.5 423.5,-459.5 557.5,-459.5 557.5,-270.5 423.5,-270.5"/>
+<text text-anchor="start" x="431.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="431.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
+<text text-anchor="middle" x="490.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SpaceGenerator &gt;</text>
+<polyline fill="none" stroke="#000000" points="423.5,-418.5 557.5,-418.5 "/>
+<text text-anchor="start" x="431.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="423.5,-399.5 557.5,-399.5 "/>
+<text text-anchor="start" x="431.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="431.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="431.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="431.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node5&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M1147.6433,-1116.8984C947.4394,-1099.1117 423.9767,-1047.8804 368,-994 253.704,-883.9843 248.5358,-685.894 257.2927,-568.5339"/>
-<polygon fill="none" stroke="#191970" points="1147.5193,-1120.401 1157.7887,-1117.7957 1148.136,-1113.4282 1147.5193,-1120.401"/>
+<path fill="none" stroke="#191970" d="M1318.1318,-703.1334C1134.8864,-691.3331 681.1614,-653.1218 566.5,-559 536.3039,-534.213 518.0593,-495.8122 507.0565,-459.6958"/>
+<polygon fill="none" stroke="#191970" points="1318.029,-706.6338 1328.2307,-703.7745 1318.4726,-699.6479 1318.029,-706.6338"/>
 </g>
 <!-- Node8 -->
 <g id="node7" class="node">
 <title>Node8</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::runtime::Array\l\&lt; tvm::meta_schedule::RunnerFuture \&gt; \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="270,-171.5 270,-360.5 490,-360.5 490,-171.5 270,-171.5"/>
-<text text-anchor="start" x="278" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="278" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Array</text>
-<text text-anchor="middle" x="380" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::RunnerFuture &gt; &gt;</text>
-<polyline fill="none" stroke="#000000" points="270,-319.5 490,-319.5 "/>
-<text text-anchor="start" x="278" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="270,-300.5 490,-300.5 "/>
-<text text-anchor="start" x="278" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="278" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="278" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="278" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="575.5,-270.5 575.5,-459.5 795.5,-459.5 795.5,-270.5 575.5,-270.5"/>
+<text text-anchor="start" x="583.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="583.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Array</text>
+<text text-anchor="middle" x="685.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::RunnerFuture &gt; &gt;</text>
+<polyline fill="none" stroke="#000000" points="575.5,-418.5 795.5,-418.5 "/>
+<text text-anchor="start" x="583.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="575.5,-399.5 795.5,-399.5 "/>
+<text text-anchor="start" x="583.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="583.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="583.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="583.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node8 -->
 <g id="edge9" class="edge">
 <title>Node5&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M1147.7554,-1117.2486C983.4599,-1102.4263 606.8399,-1059.8622 515,-975 343.8266,-816.8316 350.124,-514.2255 366.3662,-360.5637"/>
-<polygon fill="none" stroke="#191970" points="1147.5199,-1120.7414 1157.7912,-1118.1433 1148.1415,-1113.7691 1147.5199,-1120.7414"/>
+<path fill="none" stroke="#191970" d="M1318.1196,-695.5047C1177.3362,-672.4892 886.2875,-619.0565 804.5,-559 770.2633,-533.86 743.7963,-495.6249 724.6108,-459.7254"/>
+<polygon fill="none" stroke="#191970" points="1317.9691,-699.0261 1328.401,-697.1751 1319.0917,-692.1167 1317.9691,-699.0261"/>
 </g>
 <!-- Node9 -->
 <g id="node8" class="node">
 <title>Node9</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::runtime::Array\l\&lt; tvm::meta_schedule::MeasureCandidate \&gt; \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="400.5,-379.5 400.5,-568.5 647.5,-568.5 647.5,-379.5 400.5,-379.5"/>
-<text text-anchor="start" x="408.5" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="408.5" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Array</text>
-<text text-anchor="middle" x="524" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::MeasureCandidate &gt; &gt;</text>
-<polyline fill="none" stroke="#000000" points="400.5,-527.5 647.5,-527.5 "/>
-<text text-anchor="start" x="408.5" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="400.5,-508.5 647.5,-508.5 "/>
-<text text-anchor="start" x="408.5" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-452.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-441.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-430.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-419.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="408.5" y="-408.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="408.5" y="-397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="408.5" y="-386.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="814,-270.5 814,-459.5 1061,-459.5 1061,-270.5 814,-270.5"/>
+<text text-anchor="start" x="822" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="822" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Array</text>
+<text text-anchor="middle" x="937.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::MeasureCandidate &gt; &gt;</text>
+<polyline fill="none" stroke="#000000" points="814,-418.5 1061,-418.5 "/>
+<text text-anchor="start" x="822" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="814,-399.5 1061,-399.5 "/>
+<text text-anchor="start" x="822" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="822" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="822" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="822" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node9 -->
 <g id="edge11" class="edge">
 <title>Node5&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M1147.4895,-1116.1455C1007.1496,-1101.2557 718.9797,-1062.9544 649,-994 535.0786,-881.7478 517.8705,-685.1345 518.8038,-568.505"/>
-<polygon fill="none" stroke="#191970" points="1147.4319,-1119.6585 1157.7421,-1117.2195 1148.1612,-1112.6966 1147.4319,-1119.6585"/>
+<path fill="none" stroke="#191970" d="M1318.6145,-685.4883C1248.2979,-662.5049 1144.2998,-621.061 1070.5,-559 1037.8401,-531.535 1009.6821,-494.1664 987.7929,-459.5561"/>
+<polygon fill="none" stroke="#191970" points="1317.7148,-688.8756 1328.3063,-688.6091 1319.8604,-682.2125 1317.7148,-688.8756"/>
 </g>
 <!-- Node10 -->
 <g id="node9" class="node">
 <title>Node10</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1PackedFunc.html" target="_top" xlink:title="Packed function is a type&#45;erased function. The arguments are passed by packed format. ">
-<polygon fill="#ffffff" stroke="#000000" points="1077,-714 1077,-848 1231,-848 1231,-714 1077,-714"/>
-<text text-anchor="middle" x="1154" y="-836" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFunc</text>
-<polyline fill="none" stroke="#000000" points="1077,-829 1231,-829 "/>
-<text text-anchor="middle" x="1154" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1077,-810 1231,-810 "/>
-<text text-anchor="start" x="1085" y="-798" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
-<text text-anchor="start" x="1085" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
-<text text-anchor="start" x="1085" y="-776" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator()()</text>
-<text text-anchor="start" x="1085" y="-765" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallPacked()</text>
-<text text-anchor="start" x="1085" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="1085" y="-743" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="1085" y="-732" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1085" y="-721" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="1079.5,-298 1079.5,-432 1233.5,-432 1233.5,-298 1079.5,-298"/>
+<text text-anchor="middle" x="1156.5" y="-420" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::PackedFunc</text>
+<polyline fill="none" stroke="#000000" points="1079.5,-413 1233.5,-413 "/>
+<text text-anchor="middle" x="1156.5" y="-401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1079.5,-394 1233.5,-394 "/>
+<text text-anchor="start" x="1087.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
+<text text-anchor="start" x="1087.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PackedFunc()</text>
+<text text-anchor="start" x="1087.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator()()</text>
+<text text-anchor="start" x="1087.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CallPacked()</text>
+<text text-anchor="start" x="1087.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="1087.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="1087.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1087.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node10 -->
 <g id="edge13" class="edge">
 <title>Node5&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M1199.8876,-1002.3592C1189.1333,-950.4813 1176.9845,-891.8757 1167.8899,-848.0041"/>
-<polygon fill="none" stroke="#191970" points="1196.4913,-1003.2187 1201.9483,-1012.3001 1203.3456,-1001.7978 1196.4913,-1003.2187"/>
+<path fill="none" stroke="#191970" d="M1320.6902,-645.0434C1294.006,-620.1881 1265.2114,-590.1102 1243.5,-559 1216.249,-519.952 1194.3707,-470.9963 1179.3701,-432.0331"/>
+<polygon fill="none" stroke="#191970" points="1318.4247,-647.7151 1328.1529,-651.9119 1323.1652,-642.5645 1318.4247,-647.7151"/>
 </g>
 <!-- Node11 -->
 <g id="node10" class="node">
 <title>Node11</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::runtime::String \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="657.5,-177 657.5,-355 794.5,-355 794.5,-177 657.5,-177"/>
-<text text-anchor="start" x="665.5" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="726" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::String &gt;</text>
-<polyline fill="none" stroke="#000000" points="657.5,-325 794.5,-325 "/>
-<text text-anchor="start" x="665.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="657.5,-306 794.5,-306 "/>
-<text text-anchor="start" x="665.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="665.5" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="665.5" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="665.5" y="-184" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="1252,-276 1252,-454 1389,-454 1389,-276 1252,-276"/>
+<text text-anchor="start" x="1260" y="-442" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="1320.5" y="-431" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::String &gt;</text>
+<polyline fill="none" stroke="#000000" points="1252,-424 1389,-424 "/>
+<text text-anchor="start" x="1260" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="1252,-405 1389,-405 "/>
+<text text-anchor="start" x="1260" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1260" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1260" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1260" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node11 -->
 <g id="edge15" class="edge">
 <title>Node5&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M1147.8342,-1115.1196C1011.3959,-1098.3411 737.7704,-1055.1749 694,-975 630.5097,-858.7039 650.0824,-508.7353 677,-379 678.629,-371.1486 680.8322,-363.1726 683.4064,-355.2772"/>
-<polygon fill="none" stroke="#191970" points="1147.4652,-1118.6004 1157.8138,-1116.3299 1148.3079,-1111.6514 1147.4652,-1118.6004"/>
+<path fill="none" stroke="#191970" d="M1369.0046,-586.5043C1359.4664,-542.9464 1348.886,-494.6293 1340.0472,-454.2656"/>
+<polygon fill="none" stroke="#191970" points="1365.5915,-587.2802 1371.1496,-596.3001 1372.4295,-585.7828 1365.5915,-587.2802"/>
 </g>
 <!-- Node12 -->
 <g id="node11" class="node">
 <title>Node12</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::Postproc \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="678,-379.5 678,-568.5 806,-568.5 806,-379.5 678,-379.5"/>
-<text text-anchor="start" x="686" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="686" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="742" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Postproc &gt;</text>
-<polyline fill="none" stroke="#000000" points="678,-527.5 806,-527.5 "/>
-<text text-anchor="middle" x="742" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="678,-508.5 806,-508.5 "/>
-<text text-anchor="start" x="686" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-452.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-441.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-430.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-419.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="686" y="-408.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="686" y="-397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="686" y="-386.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="1407.5,-270.5 1407.5,-459.5 1535.5,-459.5 1535.5,-270.5 1407.5,-270.5"/>
+<text text-anchor="start" x="1415.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="1415.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="1471.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Postproc &gt;</text>
+<polyline fill="none" stroke="#000000" points="1407.5,-418.5 1535.5,-418.5 "/>
+<text text-anchor="middle" x="1471.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1407.5,-399.5 1535.5,-399.5 "/>
+<text text-anchor="start" x="1415.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1415.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1415.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1415.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node12 -->
 <g id="edge17" class="edge">
 <title>Node5&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M1147.6592,-1114.9061C1020.5599,-1099.0147 776.4336,-1060.4521 725,-994 675.4151,-929.9365 703.6631,-700.3516 725.0156,-568.654"/>
-<polygon fill="none" stroke="#191970" points="1147.3683,-1118.3967 1157.7216,-1116.1474 1148.2254,-1111.4494 1147.3683,-1118.3967"/>
+<path fill="none" stroke="#191970" d="M1422.3771,-586.3761C1431.6156,-544.742 1441.816,-498.7731 1450.5165,-459.5637"/>
+<polygon fill="none" stroke="#191970" points="1418.9245,-585.7793 1420.175,-596.3001 1425.7583,-587.2957 1418.9245,-585.7793"/>
 </g>
 <!-- Node13 -->
 <g id="node12" class="node">
 <title>Node13</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="{tvm::runtime::Map\&lt;\l tvm::meta_schedule\l::Mutator, tvm::FloatImm \&gt;\n||+ Map()\l+ Map()\l+ Map()\l+ Map()\l+ Map()\l+ Map()\l+ Map()\l+ operator=()\l+ operator=()\l+ at()\land 12 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="908.5,-171.5 908.5,-360.5 1057.5,-360.5 1057.5,-171.5 908.5,-171.5"/>
-<text text-anchor="start" x="916.5" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map&lt;</text>
-<text text-anchor="start" x="916.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::meta_schedule</text>
-<text text-anchor="middle" x="983" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Mutator, tvm::FloatImm &gt;</text>
-<polyline fill="none" stroke="#000000" points="908.5,-319.5 1057.5,-319.5 "/>
-<text text-anchor="middle" x="983" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="908.5,-300.5 1057.5,-300.5 "/>
-<text text-anchor="start" x="916.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
-<text text-anchor="start" x="916.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="916.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="916.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ at()</text>
-<text text-anchor="start" x="916.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 12 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="1554,-270.5 1554,-459.5 1703,-459.5 1703,-270.5 1554,-270.5"/>
+<text text-anchor="start" x="1562" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map&lt;</text>
+<text text-anchor="start" x="1562" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::meta_schedule</text>
+<text text-anchor="middle" x="1628.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Mutator, tvm::FloatImm &gt;</text>
+<polyline fill="none" stroke="#000000" points="1554,-418.5 1703,-418.5 "/>
+<text text-anchor="middle" x="1628.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1554,-399.5 1703,-399.5 "/>
+<text text-anchor="start" x="1562" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Map()</text>
+<text text-anchor="start" x="1562" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1562" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1562" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ at()</text>
+<text text-anchor="start" x="1562" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 12 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node13 -->
 <g id="edge19" class="edge">
 <title>Node5&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M1147.934,-1110.5197C1027.0629,-1088.3938 801.9165,-1039.4412 756,-975 730.9829,-939.89 731.1002,-622.1933 756,-587 769.8831,-567.3776 788.5938,-584.4593 807,-569 881.2115,-506.6699 864.9614,-462.5919 914,-379 917.4893,-373.0521 921.1084,-366.9464 924.7789,-360.8016"/>
-<polygon fill="none" stroke="#191970" points="1147.4104,-1113.9818 1157.8744,-1112.3219 1148.6592,-1107.0941 1147.4104,-1113.9818"/>
+<path fill="none" stroke="#191970" d="M1470.3678,-643.6561C1496.1506,-619.0507 1523.732,-589.497 1544.5,-559 1565.1584,-528.6638 1582.4948,-492.4257 1595.9523,-459.5255"/>
+<polygon fill="none" stroke="#191970" points="1467.6706,-641.3886 1462.7934,-650.7942 1472.4714,-646.483 1467.6706,-641.3886"/>
 </g>
 <!-- Node14 -->
 <g id="node13" class="node">
 <title>Node14</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::IRModule \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="923,-385 923,-563 1051,-563 1051,-385 923,-385"/>
-<text text-anchor="start" x="931" y="-551" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="987" y="-540" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::IRModule &gt;</text>
-<polyline fill="none" stroke="#000000" points="923,-533 1051,-533 "/>
-<text text-anchor="start" x="931" y="-521" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="923,-514 1051,-514 "/>
-<text text-anchor="start" x="931" y="-502" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-491" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-480" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-469" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-458" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-425" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="931" y="-414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="931" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="931" y="-392" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="1721.5,-276 1721.5,-454 1849.5,-454 1849.5,-276 1721.5,-276"/>
+<text text-anchor="start" x="1729.5" y="-442" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="1785.5" y="-431" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::IRModule &gt;</text>
+<polyline fill="none" stroke="#000000" points="1721.5,-424 1849.5,-424 "/>
+<text text-anchor="start" x="1729.5" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="1721.5,-405 1849.5,-405 "/>
+<text text-anchor="start" x="1729.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="1729.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1729.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1729.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node14 -->
 <g id="edge21" class="edge">
 <title>Node5&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M1147.7306,-1107.9021C1035.8344,-1083.5678 837.492,-1033.2701 796,-975 745.9878,-904.7643 749.5302,-659.628 796,-587 806.2889,-570.9195 818.2056,-578.077 835,-569 864.5664,-553.02 896.2389,-533.6151 922.9783,-516.5193"/>
-<polygon fill="none" stroke="#191970" points="1147.1061,-1111.3478 1157.6191,-1110.0339 1148.5814,-1104.505 1147.1061,-1111.3478"/>
+<path fill="none" stroke="#191970" d="M1472.4925,-689.3381C1543.6573,-668.8485 1647.8714,-628.8906 1712.5,-559 1739.253,-530.0688 1756.4755,-490.3937 1767.4259,-454.459"/>
+<polygon fill="none" stroke="#191970" points="1471.3551,-686.0222 1462.6777,-692.1012 1473.252,-692.7603 1471.3551,-686.0222"/>
+</g>
+<!-- Node15 -->
+<g id="node14" class="node">
+<title>Node15</title>
+<g id="a_node14"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::ScheduleRule \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1867.5,-270.5 1867.5,-459.5 1995.5,-459.5 1995.5,-270.5 1867.5,-270.5"/>
+<text text-anchor="start" x="1875.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="1875.5" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="1931.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRule &gt;</text>
+<polyline fill="none" stroke="#000000" points="1867.5,-418.5 1995.5,-418.5 "/>
+<text text-anchor="middle" x="1931.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1867.5,-399.5 1995.5,-399.5 "/>
+<text text-anchor="start" x="1875.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="1875.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1875.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="1875.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node15 -->
+<g id="edge23" class="edge">
+<title>Node5&#45;&gt;Node15</title>
+<path fill="none" stroke="#191970" d="M1472.5524,-691.3219C1589.0553,-665.4859 1802.4237,-612.3654 1858.5,-559 1886.1324,-532.7034 1903.3975,-494.9228 1914.143,-459.6769"/>
+<polygon fill="none" stroke="#191970" points="1471.6314,-687.9408 1462.6188,-693.5107 1473.1377,-694.7768 1471.6314,-687.9408"/>
 </g>
 <!-- Node16 -->
 <g id="node15" class="node">
 <title>Node16</title>
-<g id="a_node15"><a xlink:href="classtvm_1_1meta__schedule_1_1Database.html" target="_top" xlink:title="Managed reference to DatabaseNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1711,-725 1711,-837 1851,-837 1851,-725 1711,-725"/>
-<text text-anchor="start" x="1719" y="-825" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1781" y="-814" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Database</text>
-<polyline fill="none" stroke="#000000" points="1711,-807 1851,-807 "/>
-<text text-anchor="middle" x="1781" y="-795" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1711,-788 1851,-788 "/>
-<text text-anchor="start" x="1719" y="-776" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="1719" y="-765" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="1719" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="1719" y="-743" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ JSONDatabase()</text>
-<text text-anchor="start" x="1719" y="-732" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyDatabase()</text>
+<g id="a_node15"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::Target \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="2013.5,-276 2013.5,-454 2141.5,-454 2141.5,-276 2013.5,-276"/>
+<text text-anchor="start" x="2021.5" y="-442" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="2077.5" y="-431" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Target &gt;</text>
+<polyline fill="none" stroke="#000000" points="2013.5,-424 2141.5,-424 "/>
+<text text-anchor="start" x="2021.5" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="2013.5,-405 2141.5,-405 "/>
+<text text-anchor="start" x="2021.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2021.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="2021.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="2021.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node16 -->
 <g id="edge25" class="edge">
 <title>Node5&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M1301.9336,-1107.9105C1421.1762,-1082.4019 1643.054,-1029.1424 1702,-975 1741.2368,-938.9607 1761.4374,-880.6368 1771.5397,-837.3362"/>
-<polygon fill="none" stroke="#191970" points="1301.1798,-1104.4924 1292.1262,-1109.9954 1302.6354,-1111.3394 1301.1798,-1104.4924"/>
+<path fill="none" stroke="#191970" d="M1472.8991,-697.7104C1618.531,-677.8641 1925.7501,-628.7737 2004.5,-559 2034.8016,-532.1523 2052.5686,-491.4361 2062.966,-454.2253"/>
+<polygon fill="none" stroke="#191970" points="1472.1395,-694.2811 1462.6982,-699.0887 1473.0769,-701.2181 1472.1395,-694.2811"/>
 </g>
 <!-- Node17 -->
 <g id="node16" class="node">
 <title>Node17</title>
-<g id="a_node16"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::TuneContext \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="1869,-686.5 1869,-875.5 1997,-875.5 1997,-686.5 1869,-686.5"/>
-<text text-anchor="start" x="1877" y="-863.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="1877" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="1933" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
-<polyline fill="none" stroke="#000000" points="1869,-834.5 1997,-834.5 "/>
-<text text-anchor="middle" x="1933" y="-822.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1869,-815.5 1997,-815.5 "/>
-<text text-anchor="start" x="1877" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1877" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1877" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1877" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<g id="a_node16"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::runtime::Array\l\&lt; tvm::meta_schedule::BuilderResult \&gt; \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="2160,-270.5 2160,-459.5 2381,-459.5 2381,-270.5 2160,-270.5"/>
+<text text-anchor="start" x="2168" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="2168" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Array</text>
+<text text-anchor="middle" x="2270.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::BuilderResult &gt; &gt;</text>
+<polyline fill="none" stroke="#000000" points="2160,-418.5 2381,-418.5 "/>
+<text text-anchor="start" x="2168" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="2160,-399.5 2381,-399.5 "/>
+<text text-anchor="start" x="2168" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="2168" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="2168" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="2168" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node17 -->
-<g id="edge28" class="edge">
+<g id="edge27" class="edge">
 <title>Node5&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M1302.0864,-1114.5964C1452.3681,-1095.8113 1777.077,-1047.775 1860,-975 1889.0081,-949.5419 1906.5231,-911.365 1917.0838,-875.5945"/>
-<polygon fill="none" stroke="#191970" points="1301.5025,-1111.1419 1292.0087,-1115.8449 1302.3631,-1118.0888 1301.5025,-1111.1419"/>
-</g>
-<!-- Node18 -->
-<g id="node17" class="node">
-<title>Node18</title>
-<g id="a_node17"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::meta_schedule::\lCostModel \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="2015,-686.5 2015,-875.5 2149,-875.5 2149,-686.5 2015,-686.5"/>
-<text text-anchor="start" x="2023" y="-863.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="2023" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::</text>
-<text text-anchor="middle" x="2082" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel &gt;</text>
-<polyline fill="none" stroke="#000000" points="2015,-834.5 2149,-834.5 "/>
-<text text-anchor="start" x="2023" y="-822.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="2015,-815.5 2149,-815.5 "/>
-<text text-anchor="start" x="2023" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2023" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="2023" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="2023" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node18 -->
-<g id="edge30" class="edge">
-<title>Node5&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M1302.2448,-1118.1963C1477.6601,-1104.7051 1899.1278,-1063.6843 2006,-975 2036.0638,-950.0526 2054.2876,-911.6267 2065.3107,-875.535"/>
-<polygon fill="none" stroke="#191970" points="1301.7654,-1114.7225 1292.0592,-1118.9699 1302.2956,-1121.7024 1301.7654,-1114.7225"/>
-</g>
-<!-- Node19 -->
-<g id="node18" class="node">
-<title>Node19</title>
-<g id="a_node18"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1249,-730.5 1249,-831.5 1389,-831.5 1389,-730.5 1249,-730.5"/>
-<text text-anchor="start" x="1257" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1319" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
-<polyline fill="none" stroke="#000000" points="1249,-801.5 1389,-801.5 "/>
-<text text-anchor="middle" x="1319" y="-789.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1249,-782.5 1389,-782.5 "/>
-<text text-anchor="start" x="1257" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="1257" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="1257" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="1257" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyBuilder()</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node19 -->
-<g id="edge32" class="edge">
-<title>Node5&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M1258.1817,-1002.5988C1274.2648,-943.9981 1292.7173,-876.764 1305.0394,-831.8669"/>
-<polygon fill="none" stroke="#191970" points="1254.7906,-1001.7303 1255.5191,-1012.3001 1261.541,-1003.583 1254.7906,-1001.7303"/>
-</g>
-<!-- Node20 -->
-<g id="node19" class="node">
-<title>Node20</title>
-<g id="a_node19"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="1407,-730.5 1407,-831.5 1547,-831.5 1547,-730.5 1407,-730.5"/>
-<text text-anchor="start" x="1415" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="1477" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
-<polyline fill="none" stroke="#000000" points="1407,-801.5 1547,-801.5 "/>
-<text text-anchor="middle" x="1477" y="-789.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1407,-782.5 1547,-782.5 "/>
-<text text-anchor="start" x="1415" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="1415" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="1415" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="1415" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PyRunner()</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node20 -->
-<g id="edge34" class="edge">
-<title>Node5&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M1300.1986,-1071.7706C1333.6179,-1045.81 1371.3403,-1012.0226 1398,-975 1429.5572,-931.1762 1451.0859,-872.9157 1463.602,-831.7136"/>
-<polygon fill="none" stroke="#191970" points="1298.06,-1068.9999 1292.252,-1077.861 1302.3181,-1074.5559 1298.06,-1068.9999"/>
-</g>
-<!-- Node21 -->
-<g id="node20" class="node">
-<title>Node21</title>
-<g id="a_node20"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::MeasureCallback \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="1565,-686.5 1565,-875.5 1693,-875.5 1693,-686.5 1565,-686.5"/>
-<text text-anchor="start" x="1573" y="-863.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="1573" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="1629" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
-<polyline fill="none" stroke="#000000" points="1565,-834.5 1693,-834.5 "/>
-<text text-anchor="middle" x="1629" y="-822.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1565,-815.5 1693,-815.5 "/>
-<text text-anchor="start" x="1573" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1573" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1573" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1573" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node21 -->
-<g id="edge36" class="edge">
-<title>Node5&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M1301.8608,-1107.1632C1376.1872,-1087.6334 1487.3641,-1048.016 1556,-975 1581.7566,-947.5998 1598.6493,-910.2431 1609.6228,-875.6241"/>
-<polygon fill="none" stroke="#191970" points="1300.8956,-1103.7974 1292.0796,-1109.6734 1302.6357,-1110.5776 1300.8956,-1103.7974"/>
-</g>
-<!-- Node22 -->
-<g id="node21" class="node">
-<title>Node22</title>
-<g id="a_node21"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::ScheduleRule \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="1779,-171.5 1779,-360.5 1907,-360.5 1907,-171.5 1779,-171.5"/>
-<text text-anchor="start" x="1787" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="1787" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="1843" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRule &gt;</text>
-<polyline fill="none" stroke="#000000" points="1779,-319.5 1907,-319.5 "/>
-<text text-anchor="middle" x="1843" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1779,-300.5 1907,-300.5 "/>
-<text text-anchor="start" x="1787" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="1787" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1787" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="1787" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node22 -->
-<g id="edge38" class="edge">
-<title>Node5&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M1302.3163,-1116.9005C1515.9742,-1097.8881 2102.38,-1040.1728 2158,-975 2213.9719,-909.4148 2175.899,-671.3439 2158,-587 2156.1826,-578.4362 2152.6735,-577.3363 2150,-569 2123.6747,-486.9129 2175.2794,-436.441 2111,-379 2077.8908,-349.4131 1950.6124,-382.9246 1912,-361 1910.316,-360.0438 1908.662,-359.0278 1907.038,-357.9576"/>
-<polygon fill="none" stroke="#191970" points="1301.775,-1113.4347 1292.1228,-1117.8034 1302.3926,-1120.4074 1301.775,-1113.4347"/>
-</g>
-<!-- Node23 -->
-<g id="node22" class="node">
-<title>Node23</title>
-<g id="a_node22"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::Target \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="2151,-385 2151,-563 2279,-563 2279,-385 2151,-385"/>
-<text text-anchor="start" x="2159" y="-551" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="2215" y="-540" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Target &gt;</text>
-<polyline fill="none" stroke="#000000" points="2151,-533 2279,-533 "/>
-<text text-anchor="start" x="2159" y="-521" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="2151,-514 2279,-514 "/>
-<text text-anchor="start" x="2159" y="-502" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-491" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-480" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-469" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-458" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-425" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2159" y="-414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="2159" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="2159" y="-392" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node23 -->
-<g id="edge40" class="edge">
-<title>Node5&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M1302.1863,-1118.7612C1520.5908,-1104.5901 2131.0388,-1059.428 2191,-994 2297.5494,-877.7362 2269.9932,-678.363 2241.6486,-563.202"/>
-<polygon fill="none" stroke="#191970" points="1301.8402,-1115.2761 1292.0862,-1119.4125 1302.2907,-1122.2616 1301.8402,-1115.2761"/>
-</g>
-<!-- Node24 -->
-<g id="node23" class="node">
-<title>Node24</title>
-<g id="a_node23"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\&lt; tvm::runtime::Array\l\&lt; tvm::meta_schedule::BuilderResult \&gt; \&gt;\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="2137.5,-171.5 2137.5,-360.5 2358.5,-360.5 2358.5,-171.5 2137.5,-171.5"/>
-<text text-anchor="start" x="2145.5" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="2145.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Array</text>
-<text text-anchor="middle" x="2248" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule::BuilderResult &gt; &gt;</text>
-<polyline fill="none" stroke="#000000" points="2137.5,-319.5 2358.5,-319.5 "/>
-<text text-anchor="start" x="2145.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="2137.5,-300.5 2358.5,-300.5 "/>
-<text text-anchor="start" x="2145.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="2145.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="2145.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="2145.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
-</a>
-</g>
-</g>
-<!-- Node5&#45;&gt;Node24 -->
-<g id="edge42" class="edge">
-<title>Node5&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M1302.6392,-1118.5602C1532.3383,-1103.1033 2196.0872,-1052.0508 2252,-975 2384.5698,-792.3119 2325.1654,-507.5594 2280.7911,-360.6987"/>
-<polygon fill="none" stroke="#191970" points="1302.1037,-1115.0881 1292.3596,-1119.2476 1302.5708,-1122.0725 1302.1037,-1115.0881"/>
+<path fill="none" stroke="#191970" d="M1472.8355,-700.1528C1642.4549,-682.8048 2040.7772,-634.959 2150.5,-559 2185.8295,-534.542 2212.7674,-495.9677 2232.0806,-459.6363"/>
+<polygon fill="none" stroke="#191970" points="1472.3267,-696.6864 1462.731,-701.1778 1473.0332,-703.6507 1472.3267,-696.6864"/>
 </g>
 <!-- Node6 -->
 <g id="node5" class="node">
 <title>Node6</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="1155,-1282.5 1155,-1460.5 1295,-1460.5 1295,-1282.5 1155,-1282.5"/>
-<text text-anchor="start" x="1163" y="-1448.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="1225" y="-1437.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
-<polyline fill="none" stroke="#000000" points="1155,-1430.5 1295,-1430.5 "/>
-<text text-anchor="middle" x="1225" y="-1418.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="1155,-1411.5 1295,-1411.5 "/>
-<text text-anchor="start" x="1163" y="-1399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1377.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1366.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1355.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1344.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1333.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="1163" y="-1322.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="1163" y="-1311.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="1163" y="-1300.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="1163" y="-1289.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="1325.5,-866.5 1325.5,-1044.5 1465.5,-1044.5 1465.5,-866.5 1325.5,-866.5"/>
+<text text-anchor="start" x="1333.5" y="-1032.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="1395.5" y="-1021.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="1325.5,-1014.5 1465.5,-1014.5 "/>
+<text text-anchor="middle" x="1395.5" y="-1002.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1325.5,-995.5 1465.5,-995.5 "/>
+<text text-anchor="start" x="1333.5" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="1333.5" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="1333.5" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="1333.5" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="1333.5" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
 </a>
 </g>
 </g>
 <!-- Node6&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node6&#45;&gt;Node5</title>
-<path fill="none" stroke="#404040" d="M1225,-1282.3167C1225,-1270.8765 1225,-1259.0062 1225,-1247.1402"/>
-<polygon fill="none" stroke="#404040" points="1225.0001,-1246.7944 1221,-1240.7944 1225,-1234.7944 1229,-1240.7943 1225.0001,-1246.7944"/>
-<text text-anchor="middle" x="1244.5" y="-1256" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M1395.5,-866.3167C1395.5,-854.8765 1395.5,-843.0062 1395.5,-831.1402"/>
+<polygon fill="none" stroke="#404040" points="1395.5001,-830.7944 1391.5,-824.7944 1395.5,-818.7944 1399.5,-824.7943 1395.5001,-830.7944"/>
+<text text-anchor="middle" x="1415" y="-840" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
 </g>
 <!-- Node7&#45;&gt;Node2 -->
 <g id="edge6" class="edge">
 <title>Node7&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M201.8107,-414.7929C188.028,-398.845 175.4607,-380.5425 168,-361 137.882,-282.1091 112.0967,-234.2904 168,-171 217.4698,-114.9932 700.0207,-81.058 927.0431,-68.0717"/>
-<polygon fill="none" stroke="#404040" points="927.3293,-68.0555 933.0933,-63.7222 939.3101,-67.3761 933.5462,-71.7094 927.3293,-68.0555"/>
-<text text-anchor="middle" x="214.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +space_generator</text>
+<path fill="none" stroke="#404040" d="M506.7748,-270.3026C517.7376,-234.0741 536.0284,-195.5918 566.5,-171 662.242,-93.7325 1017.0326,-71.2034 1203.7968,-64.6604"/>
+<polygon fill="none" stroke="#404040" points="1203.858,-64.6584 1209.7191,-60.4575 1215.8511,-64.2521 1209.99,-68.4529 1203.858,-64.6584"/>
+<text text-anchor="middle" x="667" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +space_generator</text>
 </g>
 <!-- Node8&#45;&gt;Node2 -->
 <g id="edge8" class="edge">
 <title>Node8&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M404.4408,-171.4878C410.8231,-160.1966 418.8661,-149.8961 429,-142 467.4968,-112.0043 759.9387,-84.3694 927.3155,-70.7966"/>
-<polygon fill="none" stroke="#404040" points="927.4315,-70.7874 933.091,-66.3186 939.3928,-69.8241 933.7333,-74.2928 927.4315,-70.7874"/>
-<text text-anchor="middle" x="470.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner_futures</text>
+<path fill="none" stroke="#404040" d="M723.736,-270.3666C742.8795,-234.1481 769.5498,-195.6559 804.5,-171 867.6654,-126.4394 1071.9916,-93.2412 1203.7835,-75.8025"/>
+<polygon fill="none" stroke="#404040" points="1204.0095,-75.773 1209.4396,-71.0281 1215.908,-74.2155 1210.4779,-78.9604 1204.0095,-75.773"/>
+<text text-anchor="middle" x="904" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner_futures</text>
 </g>
 <!-- Node9&#45;&gt;Node2 -->
 <g id="edge10" class="edge">
 <title>Node9&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M515.2157,-379.4038C510.2273,-302.3884 509.3294,-201.5974 535,-171 584.441,-112.0702 793.2114,-83.3148 927.5434,-70.6619"/>
-<polygon fill="none" stroke="#404040" points="927.5471,-70.6617 933.1545,-66.1277 939.4964,-69.5599 933.889,-74.0939 927.5471,-70.6617"/>
-<text text-anchor="middle" x="591.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_candidates</text>
+<path fill="none" stroke="#404040" d="M990.7817,-270.3895C1012.6796,-236.559 1040.0645,-199.734 1070.5,-171 1107.8731,-135.7162 1158.5015,-110.7569 1204.4243,-93.7103"/>
+<polygon fill="none" stroke="#404040" points="1204.6973,-93.6121 1208.9867,-87.8155 1215.9873,-89.5455 1211.6978,-95.3421 1204.6973,-93.6121"/>
+<text text-anchor="middle" x="1162" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_candidates</text>
 </g>
 <!-- Node10&#45;&gt;Node2 -->
 <g id="edge12" class="edge">
 <title>Node10&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M1163.8579,-713.9349C1183.6371,-570.4213 1221.9402,-238.7358 1169,-142 1165.5926,-135.7738 1161.4712,-129.9613 1156.8289,-124.5455"/>
-<polygon fill="none" stroke="#404040" points="1156.8049,-124.5202 1149.7758,-122.9102 1148.5584,-115.8026 1155.5875,-117.4125 1156.8049,-124.5202"/>
-<text text-anchor="middle" x="1233" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
-</g>
-<!-- Node10&#45;&gt;Node15 -->
-<g id="edge26" class="edge">
-<title>Node10&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M1174.5391,-713.7057C1207.6953,-606.3946 1271.4736,-405.8125 1293,-379 1311.9577,-355.387 1337.2713,-335.4249 1363.0424,-319.1607"/>
-<polygon fill="none" stroke="#404040" points="1363.0776,-319.1392 1366.11,-312.5966 1373.3156,-312.8794 1370.2832,-319.422 1363.0776,-319.1392"/>
-<text text-anchor="middle" x="1330" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
+<path fill="none" stroke="#404040" d="M1174.6084,-297.7596C1188.8413,-251.675 1211.4677,-190.3713 1242.5,-142 1244.3657,-139.0918 1246.3495,-136.201 1248.4258,-133.3392"/>
+<polygon fill="none" stroke="#404040" points="1248.4922,-133.2528 1248.9768,-126.058 1255.8046,-123.7381 1255.3199,-130.933 1248.4922,-133.2528"/>
+<text text-anchor="middle" x="1279.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +logging_func</text>
 </g>
 <!-- Node11&#45;&gt;Node2 -->
 <g id="edge14" class="edge">
 <title>Node11&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M731.4964,-176.8022C735.6456,-163.9507 741.853,-151.7872 751,-142 775.4631,-115.8248 856.5125,-94.8968 927.1816,-81.0207"/>
-<polygon fill="none" stroke="#404040" points="927.5454,-80.9508 932.6816,-75.8892 939.3293,-78.6836 934.1931,-83.7452 927.5454,-80.9508"/>
-<text text-anchor="middle" x="784" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +task_name</text>
+<path fill="none" stroke="#404040" d="M1320.5,-275.7288C1320.5,-231.2419 1320.5,-178.0904 1320.5,-135.9211"/>
+<polygon fill="none" stroke="#404040" points="1320.5001,-135.7732 1316.5,-129.7732 1320.5,-123.7732 1324.5,-129.7732 1320.5001,-135.7732"/>
+<text text-anchor="middle" x="1353.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +task_name</text>
 </g>
 <!-- Node12&#45;&gt;Node2 -->
 <g id="edge16" class="edge">
 <title>Node12&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M795.6906,-379.3803C798.354,-373.2454 800.8216,-367.0872 803,-361 831.987,-279.9998 788.8852,-240.1995 840,-171 862.1852,-140.9656 895.1693,-118.3688 928.18,-101.7692"/>
-<polygon fill="none" stroke="#404040" points="928.5554,-101.5879 932.2178,-95.3761 939.3604,-96.3676 935.698,-102.5795 928.5554,-101.5879"/>
-<text text-anchor="middle" x="869.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +postprocs</text>
+<path fill="none" stroke="#404040" d="M1445.7199,-270.4048C1432.4028,-229.3676 1413.9657,-181.7191 1390.5,-142 1388.8411,-139.1921 1387.0777,-136.3906 1385.232,-133.608"/>
+<polygon fill="none" stroke="#404040" points="1385.1266,-133.4579 1378.4048,-130.847 1378.2296,-123.638 1384.9514,-126.2489 1385.1266,-133.4579"/>
+<text text-anchor="middle" x="1423" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +postprocs</text>
 </g>
 <!-- Node13&#45;&gt;Node2 -->
 <g id="edge18" class="edge">
 <title>Node13&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M988.5837,-171.3064C990.4569,-161.2791 992.8791,-151.3413 996,-142 996.802,-139.5996 997.6848,-137.1942 998.6358,-134.7934"/>
-<polygon fill="none" stroke="#404040" points="998.7135,-134.6161 997.4607,-127.5147 1003.5341,-123.6269 1004.7869,-130.7284 998.7135,-134.6161"/>
-<text text-anchor="middle" x="1037.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +mutator_probs</text>
+<path fill="none" stroke="#404040" d="M1602.7329,-270.2087C1589.6974,-235.7701 1570.8867,-198.5811 1544.5,-171 1514.8398,-139.9972 1474.5281,-116.6539 1436.2747,-99.6895"/>
+<polygon fill="none" stroke="#404040" points="1436.0434,-99.5901 1428.9514,-100.8954 1425.0189,-94.851 1432.1109,-93.5457 1436.0434,-99.5901"/>
+<text text-anchor="middle" x="1566" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +mutator_probs</text>
 </g>
 <!-- Node14&#45;&gt;Node2 -->
 <g id="edge20" class="edge">
 <title>Node14&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M1051.0175,-393.2308C1056.9544,-382.8217 1062.1692,-371.9592 1066,-361 1098.1739,-268.9565 1098.9638,-237.439 1079,-142 1078.5228,-139.7185 1077.9766,-137.4226 1077.3715,-135.122"/>
-<polygon fill="none" stroke="#404040" points="1077.3697,-135.1156 1071.8062,-130.5277 1073.9014,-123.6277 1079.4648,-128.2155 1077.3697,-135.1156"/>
-<text text-anchor="middle" x="1110" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +mod</text>
+<path fill="none" stroke="#404040" d="M1770.3082,-275.852C1759.7956,-238.8821 1742.1204,-198.3327 1712.5,-171 1672.3427,-133.9442 1537.5539,-101.8673 1437.1793,-82.2851"/>
+<polygon fill="none" stroke="#404040" points="1436.9008,-82.2315 1430.2519,-85.0232 1425.1178,-79.9595 1431.7666,-77.1679 1436.9008,-82.2315"/>
+<text text-anchor="middle" x="1694.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +mod</text>
 </g>
 <!-- Node15&#45;&gt;Node2 -->
 <g id="edge22" class="edge">
 <title>Node15&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M1373.3009,-214.5669C1344.1673,-200.295 1312.4117,-184.905 1283,-171 1242.9586,-152.0696 1198.9008,-131.815 1159.6369,-113.9653"/>
-<polygon fill="none" stroke="#404040" points="1159.6232,-113.9592 1152.5062,-115.1205 1148.6969,-108.9977 1155.8138,-107.8363 1159.6232,-113.9592"/>
-<text text-anchor="middle" x="1287.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +task_scheduler</text>
+<path fill="none" stroke="#404040" d="M1916.1092,-270.4682C1905.6216,-234.4877 1888.0192,-196.142 1858.5,-171 1796.3049,-118.0274 1576.1051,-87.1189 1437.4377,-72.4807"/>
+<polygon fill="none" stroke="#404040" points="1437.0475,-72.4402 1430.6661,-75.7985 1425.1117,-71.1996 1431.4931,-67.8413 1437.0475,-72.4402"/>
+<text text-anchor="middle" x="1858.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +sch_rules</text>
 </g>
-<!-- Node16&#45;&gt;Node15 -->
+<!-- Node16&#45;&gt;Node2 -->
 <g id="edge24" class="edge">
-<title>Node16&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M1782.2206,-724.9017C1781.1991,-641.14 1767.9554,-482.2095 1689,-379 1664.3119,-346.728 1627.712,-322.6537 1591.8418,-305.2114"/>
-<polygon fill="none" stroke="#404040" points="1591.6121,-305.1038 1584.4815,-306.1783 1580.7471,-300.0095 1587.8777,-298.9349 1591.6121,-305.1038"/>
-<text text-anchor="middle" x="1794.5" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +database</text>
+<title>Node16&#45;&gt;Node2</title>
+<path fill="none" stroke="#404040" d="M2062.8131,-275.9462C2052.3868,-238.7679 2034.6394,-198.0296 2004.5,-171 1922.8687,-97.7913 1610.4105,-73.5714 1437.4336,-65.6955"/>
+<polygon fill="none" stroke="#404040" points="1437.2137,-65.6858 1431.043,-69.4171 1425.2254,-65.1562 1431.3961,-61.4249 1437.2137,-65.6858"/>
+<text text-anchor="middle" x="1989" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +target</text>
 </g>
-<!-- Node17&#45;&gt;Node15 -->
-<g id="edge27" class="edge">
-<title>Node17&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M1932.9059,-686.0918C1927.6842,-595.758 1905.8018,-461.6835 1827,-379 1808.6715,-359.7687 1795.3025,-369.0969 1770,-361 1711.4002,-342.2477 1646.2891,-321.1617 1592.3568,-303.6276"/>
-<polygon fill="none" stroke="#404040" points="1592.0841,-303.539 1585.1411,-305.4872 1580.6724,-299.8276 1587.6154,-297.8794 1592.0841,-303.539"/>
-<text text-anchor="middle" x="1937" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +tasks</text>
-</g>
-<!-- Node18&#45;&gt;Node15 -->
-<g id="edge29" class="edge">
-<title>Node18&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M2065.7489,-686.3151C2045.488,-580.2249 2007.6451,-417.9483 1960,-379 1927.164,-352.1576 1811.5319,-369.5919 1770,-361 1710.2365,-348.6365 1645.5274,-328.416 1592.1597,-309.8009"/>
-<polygon fill="none" stroke="#404040" points="1591.9211,-309.717 1584.9334,-311.4981 1580.6017,-305.7329 1587.5894,-303.9518 1591.9211,-309.717"/>
-<text text-anchor="middle" x="2073" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +cost_model</text>
-</g>
-<!-- Node19&#45;&gt;Node15 -->
-<g id="edge31" class="edge">
-<title>Node19&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M1329.9465,-730.4196C1347.1893,-653.4665 1383.2578,-502.8464 1427,-379 1429.068,-373.1449 1431.3076,-367.1692 1433.6535,-361.1751"/>
-<polygon fill="none" stroke="#404040" points="1433.8086,-360.7885 1432.3315,-353.7302 1438.2787,-349.6521 1439.7558,-356.7103 1433.8086,-360.7885"/>
-<text text-anchor="middle" x="1450" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder</text>
-</g>
-<!-- Node20&#45;&gt;Node15 -->
-<g id="edge33" class="edge">
-<title>Node20&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M1477,-730.2104C1477,-644.8114 1477,-471.1253 1477,-362.1061"/>
-<polygon fill="none" stroke="#404040" points="1477.0001,-361.7984 1473,-355.7984 1477,-349.7984 1481,-355.7984 1477.0001,-361.7984"/>
-<text text-anchor="middle" x="1498.5" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +runner</text>
-</g>
-<!-- Node21&#45;&gt;Node15 -->
-<g id="edge35" class="edge">
-<title>Node21&#45;&gt;Node15</title>
-<path fill="none" stroke="#404040" d="M1608.1358,-686.0965C1589.1465,-603.9407 1558.8188,-482.396 1524,-379 1522.0372,-373.1715 1519.9175,-367.2164 1517.7013,-361.2379"/>
-<polygon fill="none" stroke="#404040" points="1517.5951,-360.9579 1511.7261,-356.7679 1513.3365,-349.7389 1519.2054,-353.9289 1517.5951,-360.9579"/>
-<text text-anchor="middle" x="1632" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +measure_callbacks</text>
-</g>
-<!-- Node22&#45;&gt;Node2 -->
-<g id="edge37" class="edge">
-<title>Node22&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M1778.9666,-238.7824C1728.1732,-217.994 1654.992,-189.8086 1589,-171 1443.5072,-129.5326 1271.8019,-97.9733 1160.5653,-79.7398"/>
-<polygon fill="none" stroke="#404040" points="1160.4949,-79.7285 1153.9301,-82.7122 1148.6509,-77.8 1155.2157,-74.8162 1160.4949,-79.7285"/>
-<text text-anchor="middle" x="1546" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +sch_rules</text>
-</g>
-<!-- Node23&#45;&gt;Node2 -->
-<g id="edge39" class="edge">
-<title>Node23&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M2154.2431,-384.6589C2151.8862,-382.6677 2149.4711,-380.7748 2147,-379 2124.7324,-363.0075 2111.146,-375.6925 2088,-361 1991.8326,-299.9553 2017.049,-223.571 1916,-171 1787.1126,-103.946 1367.3585,-76.3338 1160.8672,-66.5902"/>
-<polygon fill="none" stroke="#404040" points="1160.772,-66.5858 1154.5929,-70.3031 1148.785,-66.029 1154.9641,-62.3117 1160.772,-66.5858"/>
-<text text-anchor="middle" x="2108.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +target</text>
-</g>
-<!-- Node24&#45;&gt;Node2 -->
-<g id="edge41" class="edge">
-<title>Node24&#45;&gt;Node2</title>
-<path fill="none" stroke="#404040" d="M2137.2932,-184.9017C2109.1039,-167.9344 2077.9808,-152.1355 2047,-142 1885.2981,-89.0987 1388.9653,-70.385 1160.8656,-64.4605"/>
-<polygon fill="none" stroke="#404040" points="1160.5476,-64.4525 1154.4475,-68.2981 1148.5515,-64.1464 1154.6516,-60.3007 1160.5476,-64.4525"/>
-<text text-anchor="middle" x="2112" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder_results</text>
+<!-- Node17&#45;&gt;Node2 -->
+<g id="edge26" class="edge">
+<title>Node17&#45;&gt;Node2</title>
+<path fill="none" stroke="#404040" d="M2231.7706,-270.3653C2212.4395,-234.1466 2185.5717,-195.6546 2150.5,-171 2037.9894,-91.9075 1638.1966,-70.1857 1437.3853,-64.2354"/>
+<polygon fill="none" stroke="#404040" points="1437.3268,-64.2338 1431.2147,-68.0603 1425.3317,-63.8901 1431.4439,-60.0636 1437.3268,-64.2338"/>
+<text text-anchor="middle" x="2159.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +builder_results</text>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__inherit__graph.svg
index f12690575..5e0e97423 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuneContextNode__inherit__graph.svg
@@ -4,29 +4,33 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::meta_schedule::TuneContextNode Pages: 1 -->
-<svg width="217pt" height="655pt"
- viewBox="0.00 0.00 217.00 655.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 651)">
+<svg width="217pt" height="699pt"
+ viewBox="0.00 0.00 217.00 699.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 695)">
 <title>tvm::meta_schedule::TuneContextNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-651 213,-651 213,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-695 213,-695 213,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-211.5 209,-211.5 209,-.5 0,-.5"/>
-<text text-anchor="start" x="8" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="104.5" y="-188.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContextNode</text>
-<polyline fill="none" stroke="#000000" points="0,-181.5 209,-181.5 "/>
-<text text-anchor="start" x="8" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ mod</text>
-<text text-anchor="start" x="8" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ target</text>
-<text text-anchor="start" x="8" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ space_generator</text>
-<text text-anchor="start" x="8" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ search_strategy</text>
-<text text-anchor="start" x="8" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ sch_rules</text>
-<text text-anchor="start" x="8" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ postprocs</text>
-<text text-anchor="start" x="8" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ mutator_probs</text>
-<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ task_name</text>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ logging_func</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ rand_state</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 6 more...</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-255.5 209,-255.5 209,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-243.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="104.5" y="-232.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContextNode</text>
+<polyline fill="none" stroke="#000000" points="0,-225.5 209,-225.5 "/>
+<text text-anchor="start" x="8" y="-213.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ mod</text>
+<text text-anchor="start" x="8" y="-202.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ target</text>
+<text text-anchor="start" x="8" y="-191.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ space_generator</text>
+<text text-anchor="start" x="8" y="-180.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ search_strategy</text>
+<text text-anchor="start" x="8" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ sch_rules</text>
+<text text-anchor="start" x="8" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ postprocs</text>
+<text text-anchor="start" x="8" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ mutator_probs</text>
+<text text-anchor="start" x="8" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ task_name</text>
+<text text-anchor="start" x="8" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ logging_func</text>
+<text text-anchor="start" x="8" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ rand_state</text>
+<text text-anchor="start" x="8" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_threads</text>
+<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_terminated</text>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ measure_candidates</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ builder_results</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ runner_futures</text>
 <text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
 <polyline fill="none" stroke="#000000" points="0,-41.5 209,-41.5 "/>
 <text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
@@ -37,51 +41,51 @@
 <g id="node2" class="node">
 <title>Node1</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="13,-248.5 13,-646.5 196,-646.5 196,-248.5 13,-248.5"/>
-<text text-anchor="middle" x="104.5" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
-<polyline fill="none" stroke="#000000" points="13,-627.5 196,-627.5 "/>
-<text text-anchor="start" x="21" y="-615.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<text text-anchor="start" x="21" y="-604.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
-<text text-anchor="start" x="21" y="-593.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
-<text text-anchor="start" x="21" y="-582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
-<text text-anchor="start" x="21" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
-<text text-anchor="start" x="21" y="-560.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
-<text text-anchor="start" x="21" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
-<text text-anchor="start" x="21" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="21" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="21" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
-<text text-anchor="start" x="21" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="21" y="-494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
-<text text-anchor="start" x="21" y="-483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
-<text text-anchor="start" x="21" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
-<text text-anchor="start" x="21" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
-<polyline fill="none" stroke="#000000" points="13,-454.5 196,-454.5 "/>
-<text text-anchor="start" x="21" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
-<text text-anchor="start" x="21" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
-<text text-anchor="start" x="21" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="21" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
-<text text-anchor="start" x="21" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="21" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="21" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="21" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="21" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="21" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="21" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="21" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="21" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
-<text text-anchor="start" x="21" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="21" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="21" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
-<text text-anchor="start" x="21" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
-<text text-anchor="start" x="21" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+<polygon fill="#ffffff" stroke="#000000" points="13,-292.5 13,-690.5 196,-690.5 196,-292.5 13,-292.5"/>
+<text text-anchor="middle" x="104.5" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="13,-671.5 196,-671.5 "/>
+<text text-anchor="start" x="21" y="-659.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="21" y="-648.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="21" y="-637.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="21" y="-626.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="21" y="-615.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="21" y="-604.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="21" y="-593.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="21" y="-582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="21" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-560.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="21" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="21" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="21" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<text text-anchor="start" x="21" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
+<polyline fill="none" stroke="#000000" points="13,-498.5 196,-498.5 "/>
+<text text-anchor="start" x="21" y="-486.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="21" y="-475.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="21" y="-464.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="21" y="-453.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="21" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="21" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="21" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="21" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="21" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="21" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="21" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="21" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="21" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M104.5,-238.0828C104.5,-229.0379 104.5,-220.1459 104.5,-211.5154"/>
-<polygon fill="none" stroke="#191970" points="101.0001,-238.3538 104.5,-248.3539 108.0001,-238.3539 101.0001,-238.3538"/>
+<path fill="none" stroke="#191970" d="M104.5,-282.3116C104.5,-273.3461 104.5,-264.4718 104.5,-255.7786"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-282.4679 104.5,-292.4679 108.0001,-282.468 101.0001,-282.4679"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef.html b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef.html
index fe3dba137..4d7054192 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef.html
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef.html
@@ -81,7 +81,7 @@ $(function() {
 
 <p><code>#include &lt;<a class="el" href="object_8h_source.html">object.h</a>&gt;</code></p>
 
-<p>Inherited by <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; Range &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; Region &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; tvm::arith::IterSplitExpr &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; tvm::arith::IterSumExpr &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tv [...]
+<p>Inherited by <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; Range &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; Region &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; tvm::arith::IterSplitExpr &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array&lt; tvm::arith::IterSumExpr &gt;</a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tv [...]
 <div class="dynheader">
 Collaboration diagram for tvm::runtime::ObjectRef:</div>
 <div class="dyncontent">
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg
index b17f0bdac..6b99e0433 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 453)">
 <title>tvm::runtime::ObjectRef</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-453 144,-453 144,4 -4,4"/>
-<!-- Node395 -->
+<!-- Node396 -->
 <g id="node1" class="node">
-<title>Node395</title>
+<title>Node396</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="3,-.5 3,-222.5 137,-222.5 137,-.5 3,-.5"/>
 <text text-anchor="middle" x="70" y="-210.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
 <polyline fill="none" stroke="#000000" points="3,-203.5 137,-203.5 "/>
@@ -34,9 +34,9 @@
 <text text-anchor="start" x="11" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
 <text text-anchor="start" x="11" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </g>
-<!-- Node396 -->
+<!-- Node397 -->
 <g id="node2" class="node">
-<title>Node396</title>
+<title>Node397</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
 <polygon fill="#ffffff" stroke="#000000" points="0,-270.5 0,-448.5 140,-448.5 140,-270.5 0,-270.5"/>
 <text text-anchor="start" x="8" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
@@ -58,9 +58,9 @@
 </a>
 </g>
 </g>
-<!-- Node396&#45;&gt;Node395 -->
+<!-- Node397&#45;&gt;Node396 -->
 <g id="edge1" class="edge">
-<title>Node396&#45;&gt;Node395</title>
+<title>Node397&#45;&gt;Node396</title>
 <path fill="none" stroke="#404040" d="M70,-270.3167C70,-258.8765 70,-247.0062 70,-235.1402"/>
 <polygon fill="none" stroke="#404040" points="70.0001,-234.7944 66,-228.7944 70,-222.7944 74,-228.7943 70.0001,-234.7944"/>
 <text text-anchor="middle" x="89.5" y="-244" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
diff --git a/docs/reference/api/doxygen/feature__extractor_8h_source.html b/docs/reference/api/doxygen/feature__extractor_8h_source.html
index ff2836ef3..accb988e3 100644
--- a/docs/reference/api/doxygen/feature__extractor_8h_source.html
+++ b/docs/reference/api/doxygen/feature__extractor_8h_source.html
@@ -74,7 +74,7 @@ $(function() {
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1PyFeatureExtractorNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyFeatureExtractorNode.html">tvm::meta_schedule::PyFeatureExtractorNode</a></div><div class="ttdoc">The feature extractor with customized methods on the python-side. </div><div class="ttdef"><b>Definition:</b> feature_extractor.h:52</div></div>
 <div class="ttc" id="classtvm_1_1runtime_1_1Object_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></div><div class="ttdoc">base class of all object containers. </div><div class="ttdef"><b>Definition:</b> object.h:167</div></div>
 <div class="ttc" id="object_8h_html_aaaa3dc5b6dc33f84b2d28f9a81267212"><div class="ttname"><a href="object_8h.html#aaaa3dc5b6dc33f84b2d28f9a81267212">TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:744</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuneContext_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuneContext.html">tvm::meta_schedule::TuneContext</a></div><div class="ttdoc">Managed reference to TuneContextNode. </div><div class="ttdef"><b>Definition:</b> tune_context.h:104</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuneContext_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuneContext.html">tvm::meta_schedule::TuneContext</a></div><div class="ttdoc">Managed reference to TuneContextNode. </div><div class="ttdef"><b>Definition:</b> tune_context.h:102</div></div>
 <div class="ttc" id="classtvm_1_1AttrVisitor_html"><div class="ttname"><a href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a></div><div class="ttdoc">Visitor class to get the attributes of an AST/IR node. The content is going to be called for each fie...</div><div class="ttdef"><b>Definition:</b> reflection.h:52</div></div>
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1FeatureExtractorNode_html_ad4e9fdab79326a5bd98745007bb29635"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html#ad4e9fdab79326a5bd98745007bb29635">tvm::meta_schedule::FeatureExtractorNode::ExtractFrom</a></div><div class="ttdeci">virtual Array&lt; tvm::runtime::NDArray &gt; ExtractFrom(const TuneContext &amp;context, const Array&lt; MeasureCandidate &gt; &amp;candidates)=0</div><div class="ttdoc">Extract [...]
 <div class="ttc" id="classtvm_1_1meta__schedule_1_1PyFeatureExtractorNode_html_ab994b701cd02fef4ebb9fecca29f23be"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyFeatureExtractorNode.html#ab994b701cd02fef4ebb9fecca29f23be">tvm::meta_schedule::PyFeatureExtractorNode::f_extract_from</a></div><div class="ttdeci">FExtractFrom f_extract_from</div><div class="ttdoc">The packed function to the ExtractFrom function. </div><div class="ttdef"><b>Definition:</b> feature_extractor.h:69< [...]
diff --git a/docs/reference/api/doxygen/functions_d.html b/docs/reference/api/doxygen/functions_d.html
index c1b9681d5..561e17b20 100644
--- a/docs/reference/api/doxygen/functions_d.html
+++ b/docs/reference/api/doxygen/functions_d.html
@@ -101,7 +101,7 @@ $(function() {
 </li>
 <li>database
 : <a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html#ae4c80b6dfe62636442a96bafb6887aa4">tvm::meta_schedule::ApplyHistoryBestNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">tvm::meta_schedule::TaskSchedulerNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">tvm::meta_schedule::TaskSchedulerNode</a>
 </li>
 <li>DataType()
 : <a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa27f63a2395ce1ac52e4d7740a31383b">tvm::runtime::DataType</a>
diff --git a/docs/reference/api/doxygen/functions_f.html b/docs/reference/api/doxygen/functions_f.html
index c834e6dff..c9c7923ef 100644
--- a/docs/reference/api/doxygen/functions_f.html
+++ b/docs/reference/api/doxygen/functions_f.html
@@ -417,7 +417,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1meta__schedule_1_1PyCostModelNode.html#ac5640a7bb280e0f29c342577709bafda">tvm::meta_schedule::PyCostModelNode</a>
 </li>
 <li>FPreTuning
-: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">tvm::meta_schedule::PySearchStrategyNode</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">tvm::meta_schedule::PySearchStrategyNode</a>
 </li>
 <li>FrameBuffer()
 : <a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html#ab9a2ef141c8447bacedd6183bca25fa7">tvm::runtime::micro_rpc::FrameBuffer</a>
diff --git a/docs/reference/api/doxygen/functions_func_g.html b/docs/reference/api/doxygen/functions_func_g.html
index 734d99c7d..cbe766c40 100644
--- a/docs/reference/api/doxygen/functions_func_g.html
+++ b/docs/reference/api/doxygen/functions_func_g.html
@@ -355,7 +355,7 @@ $(function() {
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a40b49fe5c05c5fe5f7a5c5c01bf651c8">tvm::runtime::vm::Instruction</a>
 </li>
 <li>GradientBased()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a2d889bee3692995fd5a2876bfdb946a4">tvm::meta_schedule::TaskScheduler</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#aa21e7e5400949a2fae93b542185a9600">tvm::meta_schedule::TaskScheduler</a>
 </li>
 <li>GreedyBase()
 : <a class="el" href="classtvm_1_1tir_1_1usmp_1_1algo_1_1GreedyBase.html#a95d49572c346fb536671fc1923f39c2a">tvm::tir::usmp::algo::GreedyBase</a>
diff --git a/docs/reference/api/doxygen/functions_func_p.html b/docs/reference/api/doxygen/functions_func_p.html
index 7b17eaf1a..7a5233e1c 100644
--- a/docs/reference/api/doxygen/functions_func_p.html
+++ b/docs/reference/api/doxygen/functions_func_p.html
@@ -197,8 +197,8 @@ $(function() {
 , <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html#abc2529d0b1cd485876e48037dd19dde1">tvm::auto_scheduler::SearchPolicyNode</a>
 </li>
 <li>PreTuning()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#aedcd9c6cc9d8d2a0da10b345ff5d5a61">tvm::meta_schedule::PySearchStrategyNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#abd1485c82a7df42a54904de7822f0fbf">tvm::meta_schedule::SearchStrategyNode</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a53127523582ffdb12f40c9433a577adf">tvm::meta_schedule::PySearchStrategyNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#ad88e1545e88dc1934c25f4b417077aff">tvm::meta_schedule::SearchStrategyNode</a>
 </li>
 <li>PrimExpr()
 : <a class="el" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">tvm::PrimExpr</a>
@@ -307,7 +307,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGenerator.html#af77ab4f9cb68cdb712b5b61995ffbc83">tvm::meta_schedule::SpaceGenerator</a>
 </li>
 <li>PyTaskScheduler()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a06366c04bd5cda14ac92ceb8b007cdcf">tvm::meta_schedule::TaskScheduler</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a81ba808d521f750ab3703873fbc801b5">tvm::meta_schedule::TaskScheduler</a>
 </li>
 <li>PythonBasedMeasureCallback()
 : <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedMeasureCallback.html#a38db53470ab1e264f708e39429555f6f">tvm::auto_scheduler::PythonBasedMeasureCallback</a>
diff --git a/docs/reference/api/doxygen/functions_func_r.html b/docs/reference/api/doxygen/functions_func_r.html
index b5c641e38..7813efb9c 100644
--- a/docs/reference/api/doxygen/functions_func_r.html
+++ b/docs/reference/api/doxygen/functions_func_r.html
@@ -330,7 +330,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1tir_1_1usmp_1_1algo_1_1GreedyBase.html#a3581ab0723c1ab1e74cf479c7c81a803">tvm::tir::usmp::algo::GreedyBase</a>
 </li>
 <li>RoundRobin()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#adc37ee4209d129b8329292bd3c4da1af">tvm::meta_schedule::TaskScheduler</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a084b8b6743f0d63938c1bb8de37df6a1">tvm::meta_schedule::TaskScheduler</a>
 </li>
 <li>RPCRunner()
 : <a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunner.html#a58f9c976e0b95dba69cf50b6fc284dca">tvm::auto_scheduler::RPCRunner</a>
diff --git a/docs/reference/api/doxygen/functions_func_s.html b/docs/reference/api/doxygen/functions_func_s.html
index 5056719e7..43e480d38 100644
--- a/docs/reference/api/doxygen/functions_func_s.html
+++ b/docs/reference/api/doxygen/functions_func_s.html
@@ -592,7 +592,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1tir_1_1SeqStmtNode.html#a0b17eae7cf993b7e3c3e5b50b4fa5982">tvm::tir::SeqStmtNode</a>
 </li>
 <li>SizeVar()
-: <a class="el" href="classtvm_1_1tir_1_1SizeVar.html#a0f8cb8a92feb96343939d223db90f7cd">tvm::tir::SizeVar</a>
+: <a class="el" href="classtvm_1_1tir_1_1SizeVar.html#ac470249315d9e395ad581d35dd5dcb05">tvm::tir::SizeVar</a>
 </li>
 <li>Slice()
 : <a class="el" href="classtvm_1_1te_1_1Tensor_1_1Slice.html#ab314819e8bcca6421e9a4f33e48578c3">tvm::te::Tensor::Slice</a>
@@ -611,7 +611,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>SpecializedCondition()
 : <a class="el" href="classtvm_1_1te_1_1SpecializedCondition.html#a48d119ee1c6033929a5592cfc2592e60">tvm::te::SpecializedCondition</a>
@@ -706,7 +706,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#ac5d930b522e9fef9c07e51819d96d2f3">tvm::runtime::String</a>
+: <a class="el" href="classtvm_1_1runtime_1_1String.html#acf549b3c43142639879e0fc31ea5cd77">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_g.html b/docs/reference/api/doxygen/functions_g.html
index 692abf40a..349447684 100644
--- a/docs/reference/api/doxygen/functions_g.html
+++ b/docs/reference/api/doxygen/functions_g.html
@@ -370,7 +370,7 @@ $(function() {
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a40b49fe5c05c5fe5f7a5c5c01bf651c8">tvm::runtime::vm::Instruction</a>
 </li>
 <li>GradientBased()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a2d889bee3692995fd5a2876bfdb946a4">tvm::meta_schedule::TaskScheduler</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#aa21e7e5400949a2fae93b542185a9600">tvm::meta_schedule::TaskScheduler</a>
 </li>
 <li>GreedyBase()
 : <a class="el" href="classtvm_1_1tir_1_1usmp_1_1algo_1_1GreedyBase.html#a95d49572c346fb536671fc1923f39c2a">tvm::tir::usmp::algo::GreedyBase</a>
diff --git a/docs/reference/api/doxygen/functions_p.html b/docs/reference/api/doxygen/functions_p.html
index 3802cf747..97578fe81 100644
--- a/docs/reference/api/doxygen/functions_p.html
+++ b/docs/reference/api/doxygen/functions_p.html
@@ -382,8 +382,8 @@ $(function() {
 : <a class="el" href="classtvm_1_1TargetKindNode.html#a47f02c66d0f972befdfb29ec592ecba0">tvm::TargetKindNode</a>
 </li>
 <li>PreTuning()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#aedcd9c6cc9d8d2a0da10b345ff5d5a61">tvm::meta_schedule::PySearchStrategyNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#abd1485c82a7df42a54904de7822f0fbf">tvm::meta_schedule::SearchStrategyNode</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a53127523582ffdb12f40c9433a577adf">tvm::meta_schedule::PySearchStrategyNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html#ad88e1545e88dc1934c25f4b417077aff">tvm::meta_schedule::SearchStrategyNode</a>
 </li>
 <li>PrimExpr()
 : <a class="el" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">tvm::PrimExpr</a>
@@ -506,7 +506,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGenerator.html#af77ab4f9cb68cdb712b5b61995ffbc83">tvm::meta_schedule::SpaceGenerator</a>
 </li>
 <li>PyTaskScheduler()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a06366c04bd5cda14ac92ceb8b007cdcf">tvm::meta_schedule::TaskScheduler</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a81ba808d521f750ab3703873fbc801b5">tvm::meta_schedule::TaskScheduler</a>
 </li>
 <li>PythonBasedMeasureCallback()
 : <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedMeasureCallback.html#a38db53470ab1e264f708e39429555f6f">tvm::auto_scheduler::PythonBasedMeasureCallback</a>
diff --git a/docs/reference/api/doxygen/functions_r.html b/docs/reference/api/doxygen/functions_r.html
index 18a241386..856ad158e 100644
--- a/docs/reference/api/doxygen/functions_r.html
+++ b/docs/reference/api/doxygen/functions_r.html
@@ -543,7 +543,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relay_1_1Resize3DAttrs.html#a6e15ec45b5788ebaf2101e14e7a366fb">tvm::relay::Resize3DAttrs</a>
 </li>
 <li>RoundRobin()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#adc37ee4209d129b8329292bd3c4da1af">tvm::meta_schedule::TaskScheduler</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TaskScheduler.html#a084b8b6743f0d63938c1bb8de37df6a1">tvm::meta_schedule::TaskScheduler</a>
 </li>
 <li>RPCRunner()
 : <a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunner.html#a58f9c976e0b95dba69cf50b6fc284dca">tvm::auto_scheduler::RPCRunner</a>
diff --git a/docs/reference/api/doxygen/functions_s.html b/docs/reference/api/doxygen/functions_s.html
index 542dc0855..38859b0c6 100644
--- a/docs/reference/api/doxygen/functions_s.html
+++ b/docs/reference/api/doxygen/functions_s.html
@@ -952,7 +952,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1tir_1_1StmtSRefNode.html#afc61714fbac246f72d02d0729fb9ba2d">tvm::tir::StmtSRefNode</a>
 </li>
 <li>StmtNode()
-: <a class="el" href="classtvm_1_1tir_1_1StmtNode.html#a79e21b14d3ab57209577bf4a8f694a87">tvm::tir::StmtNode</a>
+: <a class="el" href="classtvm_1_1tir_1_1StmtNode.html#a67693c4e97ae49890ea74605fe1b1f74">tvm::tir::StmtNode</a>
 </li>
 <li>StmtSRef()
 : <a class="el" href="classtvm_1_1tir_1_1StmtSRef.html#a31687ace5dc4fe487ffb87d658d86412">tvm::tir::StmtSRef</a>
diff --git a/docs/reference/api/doxygen/functions_t.html b/docs/reference/api/doxygen/functions_t.html
index ddd9e2575..8f019f940 100644
--- a/docs/reference/api/doxygen/functions_t.html
+++ b/docs/reference/api/doxygen/functions_t.html
@@ -78,7 +78,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a46879dbe84105fb621a6167f8d73b223">tvm::runtime::vm::Instruction</a>
 </li>
 <li>Target()
-: <a class="el" href="classtvm_1_1Target.html#ab825b350cf478bf948d807b6fdf636a0">tvm::Target</a>
+: <a class="el" href="classtvm_1_1Target.html#a77f3d7cc97d8cfd7172af58b4e784d89">tvm::Target</a>
 </li>
 <li>target
 : <a class="el" href="classtvm_1_1VirtualDeviceNode.html#a8b2d427d9e21886ccaeaae5e9cc55aaf">tvm::VirtualDeviceNode</a>
@@ -135,9 +135,6 @@ $(function() {
 : <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html#a92f0cdb010a27536d1c96a8a3f0d0237">tvm::meta_schedule::ExtractedTaskNode</a>
 , <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a5cd36a027a0a4b1840bf3884948c6298">tvm::meta_schedule::TuneContextNode</a>
 </li>
-<li>task_scheduler
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a4107f4a73646a16829baea2a7eeddbd4">tvm::meta_schedule::TuneContextNode</a>
-</li>
 <li>tasks
 : <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a70a2be68e991f43d42e53b76a584f547">tvm::meta_schedule::TaskSchedulerNode</a>
 </li>
@@ -1275,7 +1272,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a0d72a6fa7263821c14bcd37837998ed9">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#a4abadc6786dd14a3aed6e2b5b342d1d6">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#a36ca0d1876544463ee848766e70e5e96">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_type.html b/docs/reference/api/doxygen/functions_type.html
index 14bc3d4d0..8e62f51c5 100644
--- a/docs/reference/api/doxygen/functions_type.html
+++ b/docs/reference/api/doxygen/functions_type.html
@@ -194,7 +194,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1meta__schedule_1_1PyCostModelNode.html#ac5640a7bb280e0f29c342577709bafda">tvm::meta_schedule::PyCostModelNode</a>
 </li>
 <li>FPreTuning
-: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a62a1fce99946955bdb2116cd01a61b9c">tvm::meta_schedule::PySearchStrategyNode</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1PySearchStrategyNode.html#a528df580fe251d7fe9eec1e68f8d2385">tvm::meta_schedule::PySearchStrategyNode</a>
 </li>
 <li>FReprBytes
 : <a class="el" href="classtvm_1_1ReflectionVTable.html#aa2daafb800ea82c05b325383b986218b">tvm::ReflectionVTable</a>
diff --git a/docs/reference/api/doxygen/functions_vars_d.html b/docs/reference/api/doxygen/functions_vars_d.html
index dc9d85e8e..6147f0c6e 100644
--- a/docs/reference/api/doxygen/functions_vars_d.html
+++ b/docs/reference/api/doxygen/functions_vars_d.html
@@ -97,7 +97,7 @@ $(function() {
 </li>
 <li>database
 : <a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html#ae4c80b6dfe62636442a96bafb6887aa4">tvm::meta_schedule::ApplyHistoryBestNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a9bc942d4fa3918753a1b036bb9373deb">tvm::meta_schedule::TaskSchedulerNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#adb95e507922150ac24d3813326f2cde1">tvm::meta_schedule::TaskSchedulerNode</a>
 </li>
 <li>datatype_fields
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a25adb383014a74a9c4ac805beefe86b6">tvm::runtime::vm::Instruction</a>
diff --git a/docs/reference/api/doxygen/functions_vars_t.html b/docs/reference/api/doxygen/functions_vars_t.html
index a3606dafc..9bc1762c4 100644
--- a/docs/reference/api/doxygen/functions_vars_t.html
+++ b/docs/reference/api/doxygen/functions_vars_t.html
@@ -105,9 +105,6 @@ $(function() {
 : <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html#a92f0cdb010a27536d1c96a8a3f0d0237">tvm::meta_schedule::ExtractedTaskNode</a>
 , <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a5cd36a027a0a4b1840bf3884948c6298">tvm::meta_schedule::TuneContextNode</a>
 </li>
-<li>task_scheduler
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#a4107f4a73646a16829baea2a7eeddbd4">tvm::meta_schedule::TuneContextNode</a>
-</li>
 <li>tasks
 : <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#a70a2be68e991f43d42e53b76a584f547">tvm::meta_schedule::TaskSchedulerNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/hierarchy.html b/docs/reference/api/doxygen/hierarchy.html
index ac7b2bd41..d8db6e815 100644
--- a/docs/reference/api/doxygen/hierarchy.html
+++ b/docs/reference/api/doxygen/hierarchy.html
@@ -895,323 +895,324 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_107_74_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::Integer &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_107_75_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::IRModule &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_107_76_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::meta_schedule::CostModel &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_77_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::meta_schedule::SearchStrategy &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_78_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::meta_schedule::SpaceGenerator &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_79_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::PrimExpr &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_80_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::auto_scheduler::MeasureCallback &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_81_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::FloatImm &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_82_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::Integer &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_83_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::meta_schedule::BuilderResult &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_84_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::meta_schedule::MeasureCandidate &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_85_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::meta_schedule::RunnerFuture &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_86_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Map&lt; tvm::runtime::String, tvm::runtime::NDArray &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_87_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::NDArray &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_88_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::ObjectRef &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_89_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::String &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_90_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::Target &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_91_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::tir::IterVar &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_92_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::tir::Stmt &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_107_93_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_93_" class="arrow" onclick="toggleFolder('107_93_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AffineType.html" target="_self">tvm::AffineType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1AffineTypeNode.html" title="AffineType representation. ">Affi [...]
-<tr id="row_107_93_0_" 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_1TensorAffineType.html" target="_self">tvm::TensorAffineType</a></td><td class="desc">Managed reference to AffineTypes </td></tr>
-<tr id="row_107_93_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="classtvm_1_1TupleAffineType.html" target="_self">tvm::TupleAffineType</a></td><td class="desc">Managed reference to TupleAffineTypes </td></tr>
-<tr id="row_107_94_" 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="classtvm_1_1arith_1_1ConstIntBound.html" target="_self">tvm::arith::ConstIntBound</a></td><td class="desc">Reference class to <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html" title="Constant integer up and lower bound(inclusive). Useful for value bound analysis. ">Con [...]
-<tr id="row_107_95_" 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="classtvm_1_1arith_1_1IntConstraints.html" target="_self">tvm::arith::IntConstraints</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html" title="Represent integer constrains including (integer) variables, their ranges and the  [...]
-<tr id="row_107_96_" 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="classtvm_1_1arith_1_1IntConstraintsTransform.html" target="_self">tvm::arith::IntConstraintsTransform</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" title="We can have different set of variables to represent th [...]
-<tr id="row_107_97_" 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="classtvm_1_1arith_1_1IntGroupBounds.html" target="_self">tvm::arith::IntGroupBounds</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" title="Represent integer grouped bounds which are classified into lower bounds (inclusiv [...]
-<tr id="row_107_98_" 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="classtvm_1_1arith_1_1IntSet.html" target="_self">tvm::arith::IntSet</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntSetNode.html" title="Base class of all Integer set containers. represent a set of integers in one dimension. ">IntSetNode</a>  [...]
-<tr id="row_107_99_" 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="classtvm_1_1arith_1_1IterMapResult.html" target="_self">tvm::arith::IterMapResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterMapResultNode.html" title="Result of DetectIterMap. ">IterMapResultNode</a> </td></tr>
-<tr id="row_107_100_" 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="classtvm_1_1arith_1_1IterMark.html" target="_self">tvm::arith::IterMark</a></td><td class="desc">Managed reference to IterMarkExprNode </td></tr>
-<tr id="row_107_101_" 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="classtvm_1_1arith_1_1ModularSet.html" target="_self">tvm::arith::ModularSet</a></td><td class="desc">Reference of <a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html" title="Range of a linear integer function. Use to do specify the possible index values. ">ModularSetNode</a [...]
-<tr id="row_107_102_" 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="classtvm_1_1AttrFieldInfo.html" target="_self">tvm::AttrFieldInfo</a></td><td class="desc"><a class="el" href="classtvm_1_1AttrFieldInfo.html" title="AttrFieldInfo. ">AttrFieldInfo</a> </td></tr>
-<tr id="row_107_103_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_103_" class="arrow" onclick="toggleFolder('107_103_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Attrs.html" target="_self">tvm::Attrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseAttrsNode.html" title="Base class of all attribute class. ">Base [...]
-<tr id="row_107_103_0_" 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_1DictAttrs.html" target="_self">tvm::DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">DictAttrsNode< [...]
-<tr id="row_107_104_" 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="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html" target="_self">tvm::auto_scheduler::AccessAnalyzer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html" title="Static analyzer for a ComputeDAG. ">AccessAnalyzerN [...]
-<tr id="row_107_105_" 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="classtvm_1_1auto__scheduler_1_1AttachMap.html" target="_self">tvm::auto_scheduler::AttachMap</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html" title="stores the compute_at relation between stages This stores a bi-dir [...]
-<tr id="row_107_106_" 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="classtvm_1_1auto__scheduler_1_1BuildResult.html" target="_self">tvm::auto_scheduler::BuildResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html" title="Store the result of a build. ">BuildResultNode</a> </td></tr>
-<tr id="row_107_107_" 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="classtvm_1_1auto__scheduler_1_1ComputeDAG.html" target="_self">tvm::auto_scheduler::ComputeDAG</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html" title="The auto-scheduler&#39;s computational graph and related progra [...]
-<tr id="row_107_108_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_108_" class="arrow" onclick="toggleFolder('107_108_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html" target="_self">tvm::auto_scheduler::CostModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CostMo [...]
-<tr id="row_107_108_0_" 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_1auto__scheduler_1_1PythonBasedModel.html" target="_self">tvm::auto_scheduler::PythonBasedModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html" title="A wrapper for cost model defined by python  [...]
-<tr id="row_107_108_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="classtvm_1_1auto__scheduler_1_1RandomModel.html" target="_self">tvm::auto_scheduler::RandomModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RandomModelNode.html" title="The cost model returning random value for all predictions. [...]
-<tr id="row_107_109_" 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="classtvm_1_1auto__scheduler_1_1HardwareParams.html" target="_self">tvm::auto_scheduler::HardwareParams</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html" title="The parameters of target hardware used to guide the [...]
-<tr id="row_107_110_" 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="classtvm_1_1auto__scheduler_1_1Iterator.html" target="_self">tvm::auto_scheduler::Iterator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html" title="An iterator of a for-loop Similar to tvm::IterVar in include/tvm/tir/ [...]
-<tr id="row_107_111_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_111_" class="arrow" onclick="toggleFolder('107_111_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html" target="_self">tvm::auto_scheduler::MeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__schedul [...]
-<tr id="row_107_111_0_" 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_1auto__scheduler_1_1PythonBasedMeasureCallback.html" target="_self">tvm::auto_scheduler::PythonBasedMeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedMeasureCallbackNode.html" title="A wrapper for [...]
-<tr id="row_107_111_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="classtvm_1_1auto__scheduler_1_1RecordToFile.html" target="_self">tvm::auto_scheduler::RecordToFile</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RecordToFileNode.html" title="Callback for logging the input and results of measureme [...]
-<tr id="row_107_112_" 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="classtvm_1_1auto__scheduler_1_1MeasureInput.html" target="_self">tvm::auto_scheduler::MeasureInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html" title="Store the input of a measurement. ">MeasureInputNode</a>  [...]
-<tr id="row_107_113_" 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="classtvm_1_1auto__scheduler_1_1MeasureResult.html" target="_self">tvm::auto_scheduler::MeasureResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html" title="Store the results of a measurement. ">MeasureResultNod [...]
-<tr id="row_107_114_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_114_" class="arrow" onclick="toggleFolder('107_114_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" target="_self">tvm::auto_scheduler::ProgramBuilder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler [...]
-<tr id="row_107_114_0_" 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_1auto__scheduler_1_1LocalBuilder.html" target="_self">tvm::auto_scheduler::LocalBuilder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html" title="LocalBuilder use local CPU cores to build programs in p [...]
-<tr id="row_107_115_" 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="classtvm_1_1auto__scheduler_1_1ProgramMeasurer.html" target="_self">tvm::auto_scheduler::ProgramMeasurer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html" title="Measurer that measures the time costs of tvm pro [...]
-<tr id="row_107_116_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_116_" class="arrow" onclick="toggleFolder('107_116_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html" target="_self">tvm::auto_scheduler::ProgramRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1 [...]
-<tr id="row_107_116_0_" 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_1auto__scheduler_1_1LocalRunner.html" target="_self">tvm::auto_scheduler::LocalRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html" title="LocalRunner that uses local CPU/GPU to measure the time co [...]
-<tr id="row_107_116_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="classtvm_1_1auto__scheduler_1_1RPCRunner.html" target="_self">tvm::auto_scheduler::RPCRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunnerNode.html" title="RPCRunner that uses RPC call to measures the time cost of progra [...]
-<tr id="row_107_117_" 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="classtvm_1_1auto__scheduler_1_1RecordReader.html" target="_self">tvm::auto_scheduler::RecordReader</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RecordReaderNode.html" title="Log reader to load step logs from a file. ">RecordReaderN [...]
-<tr id="row_107_118_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_118_" class="arrow" onclick="toggleFolder('107_118_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallback.html" target="_self">tvm::auto_scheduler::SearchCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler [...]
-<tr id="row_107_118_0_" 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_1auto__scheduler_1_1PreloadMeasuredStates.html" target="_self">tvm::auto_scheduler::PreloadMeasuredStates</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PreloadMeasuredStatesNode.html" title="Preload measured states from [...]
-<tr id="row_107_119_" 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="classtvm_1_1auto__scheduler_1_1SearchPolicy.html" target="_self">tvm::auto_scheduler::SearchPolicy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html" title="The base class of search policies. ">SearchPolicyNode</a> [...]
-<tr id="row_107_120_" 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="classtvm_1_1auto__scheduler_1_1SearchTask.html" target="_self">tvm::auto_scheduler::SearchTask</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchTaskNode.html" title="The computation information and hardware parameters for a speci [...]
-<tr id="row_107_121_" 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="classtvm_1_1auto__scheduler_1_1Stage.html" target="_self">tvm::auto_scheduler::Stage</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StageNode.html" title="A op stage in the compute declaration. Similar to te::Stage in include/tvm/te/ [...]
-<tr id="row_107_122_" 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="classtvm_1_1auto__scheduler_1_1State.html" target="_self">tvm::auto_scheduler::State</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StateNode.html" title="A state in the search process. It consists of the current loop structure and a [...]
-<tr id="row_107_123_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_123_" class="arrow" onclick="toggleFolder('107_123_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1Step.html" target="_self">tvm::auto_scheduler::Step</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StepNode.html" t [...]
-<tr id="row_107_123_0_" 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_1auto__scheduler_1_1AnnotationStep.html" target="_self">tvm::auto_scheduler::AnnotationStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html" title="Annotation step that corresponds to vectorize, pa [...]
-<tr id="row_107_123_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="classtvm_1_1auto__scheduler_1_1CacheReadStep.html" target="_self">tvm::auto_scheduler::CacheReadStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html" title="Cache read step that corresponds to te::Schedule::ca [...]
-<tr id="row_107_123_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="classtvm_1_1auto__scheduler_1_1CacheWriteStep.html" target="_self">tvm::auto_scheduler::CacheWriteStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html" title="Cache write step that corresponds to te::Schedule [...]
-<tr id="row_107_123_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_1auto__scheduler_1_1ComputeAtStep.html" target="_self">tvm::auto_scheduler::ComputeAtStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html" title="Compute at step that corresponds to te::Stage::compu [...]
-<tr id="row_107_123_4_" 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_1auto__scheduler_1_1ComputeInlineStep.html" target="_self">tvm::auto_scheduler::ComputeInlineStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html" title="Compute inline step that corresponds to  [...]
-<tr id="row_107_123_5_" 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_1auto__scheduler_1_1ComputeRootStep.html" target="_self">tvm::auto_scheduler::ComputeRootStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html" title="Compute root step that corresponds to te::Stag [...]
-<tr id="row_107_123_6_" 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_1auto__scheduler_1_1FollowFusedSplitStep.html" target="_self">tvm::auto_scheduler::FollowFusedSplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html" title="Similar to FollowSplitStep, but [...]
-<tr id="row_107_123_7_" 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_1auto__scheduler_1_1FollowSplitStep.html" target="_self">tvm::auto_scheduler::FollowSplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html" title="Similar to SplitStepNode, but uses split facto [...]
-<tr id="row_107_123_8_" 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_1auto__scheduler_1_1FuseStep.html" target="_self">tvm::auto_scheduler::FuseStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html" title="Fuse step that corresponds to te::Stage::fuse. ">FuseStepNode</a> < [...]
-<tr id="row_107_123_9_" 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_1auto__scheduler_1_1PragmaStep.html" target="_self">tvm::auto_scheduler::PragmaStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PragmaStepNode.html" title="Pragma step that corresponds to te::Stage::pragma. ">PragmaSt [...]
-<tr id="row_107_123_10_" 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_1auto__scheduler_1_1ReorderStep.html" target="_self">tvm::auto_scheduler::ReorderStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ReorderStepNode.html" title="Reorder step that corresponds to te::Stage::reorder. ">Re [...]
-<tr id="row_107_123_11_" 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_1auto__scheduler_1_1RfactorStep.html" target="_self">tvm::auto_scheduler::RfactorStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RfactorStepNode.html" title="Reduction factor step that corresponds to te::Schedule::r [...]
-<tr id="row_107_123_12_" 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_1auto__scheduler_1_1SplitStep.html" target="_self">tvm::auto_scheduler::SplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SplitStepNode.html" title="Split step that corresponds to te::Stage::split with additional [...]
-<tr id="row_107_123_13_" 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_1auto__scheduler_1_1StorageAlignStep.html" target="_self">tvm::auto_scheduler::StorageAlignStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StorageAlignStepNode.html" title="Storage align step that corresponds to te: [...]
-<tr id="row_107_124_" 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="classtvm_1_1auto__scheduler_1_1TuningOptions.html" target="_self">tvm::auto_scheduler::TuningOptions</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html" title="Tuning and measurement options. ">TuningOptionsNode</a [...]
-<tr id="row_107_125_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_125_" class="arrow" onclick="toggleFolder('107_125_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExpr.html" target="_self">tvm::BaseExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions. "> [...]
-<tr id="row_107_125_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_107_125_0_" class="arrow" onclick="toggleFolder('107_125_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">tvm::PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions [...]
-<tr id="row_107_125_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_125_0_0_" class="arrow" onclick="toggleFolder('107_125_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html" target="_self">tvm::arith::IterMapExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.htm [...]
-<tr id="row_107_125_0_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html" target="_self">tvm::arith::IterSplitExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterSplitExprNode.html" title="Split of an iterator. ">IterSplitExprNode</a> </td></tr>
-<tr id="row_107_125_0_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html" target="_self">tvm::arith::IterSumExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterSumExprNode.html" title="Fuse multiple iterators by summing them with scaling. ">IterSumExprNode</a> </td></tr>
-<tr id="row_107_125_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="classtvm_1_1FloatImm.html" target="_self">tvm::FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program. ">FloatImmNode</a> </td></tr>
-<tr id="row_107_125_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_125_0_2_" class="arrow" onclick="toggleFolder('107_125_0_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">tvm::IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literal [...]
-<tr id="row_107_125_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">tvm::Bool</a></td><td class="desc">Boolean constant </td></tr>
-<tr id="row_107_125_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">tvm::Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
-<tr id="row_107_125_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="classtvm_1_1tir_1_1Add.html" target="_self">tvm::tir::Add</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AddNode.html" title="a + b ">AddNode</a> </td></tr>
-<tr id="row_107_125_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="classtvm_1_1tir_1_1And.html" target="_self">tvm::tir::And</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AndNode.html" title="a &amp;&amp; b ">AndNode</a> </td></tr>
-<tr id="row_107_125_0_5_" 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="classtvm_1_1tir_1_1Any.html" target="_self">tvm::tir::Any</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AnyNode.html" title="Any shape. ">AnyNode</a> </td></tr>
-<tr id="row_107_125_0_6_" 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="classtvm_1_1tir_1_1Broadcast.html" target="_self">tvm::tir::Broadcast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html" title="Create a vector where all the elements are value. ">BroadcastNode</a> </td></tr>
-<tr id="row_107_125_0_7_" 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="classtvm_1_1tir_1_1BufferLoad.html" target="_self">tvm::tir::BufferLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html" title="Load value from the high dimension buffer. ">BufferLoadNode</a> </td></tr>
-<tr id="row_107_125_0_8_" 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="classtvm_1_1tir_1_1Call.html" target="_self">tvm::tir::Call</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CallNode.html" title="Call node. ">CallNode</a> </td></tr>
-<tr id="row_107_125_0_9_" 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="classtvm_1_1tir_1_1Cast.html" target="_self">tvm::tir::Cast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CastNode.html" title="Cast value from one data type to another. ">CastNode</a> </td></tr>
-<tr id="row_107_125_0_10_" 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="classtvm_1_1tir_1_1Div.html" target="_self">tvm::tir::Div</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DivNode.html" title="a / b in the C semnatics. ">DivNode</a> </td></tr>
-<tr id="row_107_125_0_11_" 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="classtvm_1_1tir_1_1EQ.html" target="_self">tvm::tir::EQ</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EQNode.html" title="a == b ">EQNode</a> </td></tr>
-<tr id="row_107_125_0_12_" 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="classtvm_1_1tir_1_1FloorDiv.html" target="_self">tvm::tir::FloorDiv</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html" title="Floor division, floor(a/b) ">FloorDivNode</a> </td></tr>
-<tr id="row_107_125_0_13_" 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="classtvm_1_1tir_1_1FloorMod.html" target="_self">tvm::tir::FloorMod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorModNode.html" title="The remainder of the floordiv. ">FloorModNode</a> </td></tr>
-<tr id="row_107_125_0_14_" 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="classtvm_1_1tir_1_1GE.html" target="_self">tvm::tir::GE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GENode.html" title="a &gt;= b ">GENode</a> </td></tr>
-<tr id="row_107_125_0_15_" 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="classtvm_1_1tir_1_1GT.html" target="_self">tvm::tir::GT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GTNode.html" title="a &gt; b ">GTNode</a> </td></tr>
-<tr id="row_107_125_0_16_" 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="classtvm_1_1tir_1_1LE.html" target="_self">tvm::tir::LE</a></td><td class="desc">Managed reference to <a class="el" href="structtvm_1_1tir_1_1LENode.html" title="a &lt;= b ">LENode</a> </td></tr>
-<tr id="row_107_125_0_17_" 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="classtvm_1_1tir_1_1Let.html" target="_self">tvm::tir::Let</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetNode.html" title="Let binding. Bind var to value then evaluate body. ">LetNode</a> </td></tr>
-<tr id="row_107_125_0_18_" 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="classtvm_1_1tir_1_1Load.html" target="_self">tvm::tir::Load</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LoadNode.html" title="Load the value from buffer_var. ">LoadNode</a> </td></tr>
-<tr id="row_107_125_0_19_" 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="classtvm_1_1tir_1_1LT.html" target="_self">tvm::tir::LT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LTNode.html" title="a &lt; b ">LTNode</a> </td></tr>
-<tr id="row_107_125_0_20_" 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="classtvm_1_1tir_1_1Max.html" target="_self">tvm::tir::Max</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MaxNode.html" title="max(a, b) ">MaxNode</a> </td></tr>
-<tr id="row_107_125_0_21_" 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="classtvm_1_1tir_1_1Min.html" target="_self">tvm::tir::Min</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MinNode.html" title="min(a, b) ">MinNode</a> </td></tr>
-<tr id="row_107_125_0_22_" 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="classtvm_1_1tir_1_1Mod.html" target="_self">tvm::tir::Mod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ModNode.html" title="a % b in the C semnatics. ">ModNode</a> </td></tr>
-<tr id="row_107_125_0_23_" 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="classtvm_1_1tir_1_1Mul.html" target="_self">tvm::tir::Mul</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MulNode.html" title="a * b ">MulNode</a> </td></tr>
-<tr id="row_107_125_0_24_" 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="classtvm_1_1tir_1_1NE.html" target="_self">tvm::tir::NE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NENode.html" title="a != b ">NENode</a> </td></tr>
-<tr id="row_107_125_0_25_" 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="classtvm_1_1tir_1_1Not.html" target="_self">tvm::tir::Not</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NotNode.html" title="!a ">NotNode</a> </td></tr>
-<tr id="row_107_125_0_26_" 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="classtvm_1_1tir_1_1Or.html" target="_self">tvm::tir::Or</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1OrNode.html" title="a || b ">OrNode</a> </td></tr>
-<tr id="row_107_125_0_27_" 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="classtvm_1_1tir_1_1ProducerLoad.html" target="_self">tvm::tir::ProducerLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerLoadNode.html" title="Load value from the result produced by the producer. ">ProducerLoadNode</a> </td></tr>
-<tr id="row_107_125_0_28_" 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="classtvm_1_1tir_1_1Ramp.html" target="_self">tvm::tir::Ramp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1RampNode.html" title="Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to const [...]
-<tr id="row_107_125_0_29_" 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="classtvm_1_1tir_1_1Reduce.html" target="_self">tvm::tir::Reduce</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ReduceNode.html" title="Reduction operator operator. ">ReduceNode</a> </td></tr>
-<tr id="row_107_125_0_30_" 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="classtvm_1_1tir_1_1Select.html" target="_self">tvm::tir::Select</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SelectNode.html" title="return true_value if condition is true, otherwise return false_value. ">SelectNode</a> </td></tr>
-<tr id="row_107_125_0_31_" 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="classtvm_1_1tir_1_1Shuffle.html" target="_self">tvm::tir::Shuffle</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html" title="Shuffle instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...">ShuffleNode [...]
-<tr id="row_107_125_0_32_" 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="classtvm_1_1tir_1_1StringImm.html" target="_self">tvm::tir::StringImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html" title="String constants, only used in asserts. ">StringImmNode</a> </td></tr>
-<tr id="row_107_125_0_33_" 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="classtvm_1_1tir_1_1Sub.html" target="_self">tvm::tir::Sub</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SubNode.html" title="a - b ">SubNode</a> </td></tr>
-<tr id="row_107_125_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_125_0_34_" class="arrow" onclick="toggleFolder('107_125_0_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Var.html" target="_self">tvm::tir::Var</a></td><td class="desc">Named variable in TIR </td></tr>
-<tr id="row_107_125_0_34_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SizeVar.html" target="_self">tvm::tir::SizeVar</a></td><td class="desc">Named variable represents a tensor index size </td></tr>
-<tr id="row_107_125_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_107_125_1_" class="arrow" onclick="toggleFolder('107_125_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExpr.html" target="_self">tvm::RelayExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayExprNode.html" title="Base node of all non-primit [...]
-<tr id="row_107_125_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_125_1_0_" class="arrow" onclick="toggleFolder('107_125_1_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFunc.html" target="_self">tvm::BaseFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functio [...]
-<tr id="row_107_125_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Function.html" target="_self">tvm::relay::Function</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
-<tr id="row_107_125_1_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrimFunc.html" target="_self">tvm::tir::PrimFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html" title="Primitive functions that contains TIR statements. ">PrimFuncNode</a> </td></tr>
-<tr id="row_107_125_1_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="classtvm_1_1Constructor.html" target="_self">tvm::Constructor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1ConstructorNode.html" title="ADT constructor. Constructors compare by pointer equality. ">ConstructorNode</a> </td></tr>
-<tr id="row_107_125_1_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="classtvm_1_1GlobalVar.html" target="_self">tvm::GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module. ">GlobalVarNode</a> </td></tr>
-<tr id="row_107_125_1_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="classtvm_1_1Op.html" target="_self">tvm::Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics) ">OpNode</a> </td></tr>
-<tr id="row_107_125_1_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="classtvm_1_1relay_1_1Call.html" target="_self">tvm::relay::Call</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_5_" 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="classtvm_1_1relay_1_1Constant.html" target="_self">tvm::relay::Constant</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_6_" 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="classtvm_1_1relay_1_1If.html" target="_self">tvm::relay::If</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_7_" 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="classtvm_1_1relay_1_1Let.html" target="_self">tvm::relay::Let</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_8_" 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="classtvm_1_1relay_1_1Match.html" target="_self">tvm::relay::Match</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_9_" 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="classtvm_1_1relay_1_1RefCreate.html" target="_self">tvm::relay::RefCreate</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_10_" 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="classtvm_1_1relay_1_1RefRead.html" target="_self">tvm::relay::RefRead</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_11_" 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="classtvm_1_1relay_1_1RefWrite.html" target="_self">tvm::relay::RefWrite</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_12_" 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="classtvm_1_1relay_1_1TempExpr.html" target="_self">tvm::relay::TempExpr</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_13_" 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="classtvm_1_1relay_1_1Tuple.html" target="_self">tvm::relay::Tuple</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_14_" 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="classtvm_1_1relay_1_1TupleGetItem.html" target="_self">tvm::relay::TupleGetItem</a></td><td class="desc"></td></tr>
-<tr id="row_107_125_1_15_" 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="classtvm_1_1relay_1_1Var.html" target="_self">tvm::relay::Var</a></td><td class="desc"></td></tr>
-<tr id="row_107_126_" 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="classtvm_1_1CompilationConfig.html" target="_self">tvm::CompilationConfig</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1CompilationConfig.html" title="Managed reference class to CompilationConfig. ">CompilationConfig</a></code> </td></tr>
-<tr id="row_107_127_" 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="classtvm_1_1Diagnostic.html" target="_self">tvm::Diagnostic</a></td><td class="desc"></td></tr>
-<tr id="row_107_128_" 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="classtvm_1_1DiagnosticContext.html" target="_self">tvm::DiagnosticContext</a></td><td class="desc"></td></tr>
-<tr id="row_107_129_" 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="classtvm_1_1DiagnosticRenderer.html" target="_self">tvm::DiagnosticRenderer</a></td><td class="desc"></td></tr>
-<tr id="row_107_130_" 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="classtvm_1_1EnvFunc.html" target="_self">tvm::EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM&#39;s global environment. ">EnvFuncNode</a> </td></tr>
-<tr id="row_107_131_" 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="classtvm_1_1GenericFunc.html" target="_self">tvm::GenericFunc</a></td><td class="desc">Generic function that can be specialized on a per-target basis </td></tr>
-<tr id="row_107_132_" 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="classtvm_1_1instrument_1_1PassInstrument.html" target="_self">tvm::instrument::PassInstrument</a></td><td class="desc">Managed reference class for <a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html" title="PassInstrumentNode forms an instrument implementation. It  [...]
-<tr id="row_107_133_" 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="classtvm_1_1IRModule.html" target="_self">tvm::IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </td></tr>
-<tr id="row_107_134_" 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="classtvm_1_1MemoryInfo.html" target="_self">tvm::MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
-<tr id="row_107_135_" 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="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html" target="_self">tvm::meta_schedule::ApplyHistoryBest</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html" title="An integration context that allows application o [...]
-<tr id="row_107_136_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_136_" class="arrow" onclick="toggleFolder('107_136_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html" target="_self">tvm::meta_schedule::ArgInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.h [...]
-<tr id="row_107_136_0_" 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_1meta__schedule_1_1TensorInfo.html" target="_self">tvm::meta_schedule::TensorInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html" title="The tensor argument information. ">TensorInfoNode</a> </td></tr>
-<tr id="row_107_137_" 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="classtvm_1_1meta__schedule_1_1Builder.html" target="_self">tvm::meta_schedule::Builder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html" title="The abstract builder interface. ">BuilderNode</a> </td></tr>
-<tr id="row_107_138_" 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="classtvm_1_1meta__schedule_1_1BuilderInput.html" target="_self">tvm::meta_schedule::BuilderInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" title="The builder&#39;s input, containing an IRModule and the targ [...]
-<tr id="row_107_139_" 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="classtvm_1_1meta__schedule_1_1BuilderResult.html" target="_self">tvm::meta_schedule::BuilderResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" title="The builder&#39;s output, containing the artifact path or [...]
-<tr id="row_107_140_" 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="classtvm_1_1meta__schedule_1_1CostModel.html" target="_self">tvm::meta_schedule::CostModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html" title="Cost model. ">CostModelNode</a> </td></tr>
-<tr id="row_107_141_" 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="classtvm_1_1meta__schedule_1_1Database.html" target="_self">tvm::meta_schedule::Database</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> </td></tr>
-<tr id="row_107_142_" 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="classtvm_1_1meta__schedule_1_1ExtractedTask.html" target="_self">tvm::meta_schedule::ExtractedTask</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html" title="A tuning task extracted from the high-level IR. ">Extract [...]
-<tr id="row_107_143_" 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="classtvm_1_1meta__schedule_1_1FeatureExtractor.html" target="_self">tvm::meta_schedule::FeatureExtractor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html" title="Extractor for features from measure candidates f [...]
-<tr id="row_107_144_" 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="classtvm_1_1meta__schedule_1_1MeasureCallback.html" target="_self">tvm::meta_schedule::MeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html" title="Rules to apply after measure results is available.  [...]
-<tr id="row_107_145_" 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="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" target="_self">tvm::meta_schedule::MeasureCandidate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" title="The schedule (with input shapes) to be measured. [...]
-<tr id="row_107_146_" 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="classtvm_1_1meta__schedule_1_1Mutator.html" target="_self">tvm::meta_schedule::Mutator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MutatorNode.html" title="Mutator is designed to mutate the trace to explore the design space. ">Muta [...]
-<tr id="row_107_147_" 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="classtvm_1_1meta__schedule_1_1Postproc.html" target="_self">tvm::meta_schedule::Postproc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1PostprocNode.html" title="Rules to apply a postprocessor to a schedule. ">PostprocNode</a> </td></tr>
-<tr id="row_107_148_" 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="classtvm_1_1meta__schedule_1_1Runner.html" target="_self">tvm::meta_schedule::Runner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html" title="The abstract runner interface. ">RunnerNode</a> </td></tr>
-<tr id="row_107_149_" 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="classtvm_1_1meta__schedule_1_1RunnerFuture.html" target="_self">tvm::meta_schedule::RunnerFuture</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" title="A class to asynchronously fetch runner&#39;s output. ">Runne [...]
-<tr id="row_107_150_" 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="classtvm_1_1meta__schedule_1_1RunnerInput.html" target="_self">tvm::meta_schedule::RunnerInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" title="Runner&#39;s input containing path of artifact, type of device  [...]
-<tr id="row_107_151_" 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="classtvm_1_1meta__schedule_1_1RunnerResult.html" target="_self">tvm::meta_schedule::RunnerResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" title="Runner&#39;s output containing measurement result of Measure [...]
-<tr id="row_107_152_" 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="classtvm_1_1meta__schedule_1_1ScheduleRule.html" target="_self">tvm::meta_schedule::ScheduleRule</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ScheduleRuleNode.html" title="Rules to modify a block in a schedule. ">ScheduleRuleNode</a [...]
-<tr id="row_107_153_" 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="classtvm_1_1meta__schedule_1_1SearchStrategy.html" target="_self">tvm::meta_schedule::SearchStrategy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" title="The search strategy for measure candidates generation. [...]
-<tr id="row_107_154_" 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="classtvm_1_1meta__schedule_1_1SpaceGenerator.html" target="_self">tvm::meta_schedule::SpaceGenerator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" title="The abstract class for design space generation. ">Spac [...]
-<tr id="row_107_155_" 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="classtvm_1_1meta__schedule_1_1TaskScheduler.html" target="_self">tvm::meta_schedule::TaskScheduler</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" title="The abstract interface of task schedulers. ">TaskSchedule [...]
-<tr id="row_107_156_" 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="classtvm_1_1meta__schedule_1_1TuneContext.html" target="_self">tvm::meta_schedule::TuneContext</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" title="The auto tuning context. ">TuneContextNode</a> </td></tr>
-<tr id="row_107_157_" 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="classtvm_1_1meta__schedule_1_1TuningRecord.html" target="_self">tvm::meta_schedule::TuningRecord</a></td><td class="desc">The managed reference of <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" title="The class of tuning records. ">TuningRecordNode</a> </td></tr>
-<tr id="row_107_158_" 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="classtvm_1_1meta__schedule_1_1Workload.html" target="_self">tvm::meta_schedule::Workload</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" title="A workload, i.e. an IRModule and its structural hash. ">WorkloadNode</a> [...]
-<tr id="row_107_159_" 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="classtvm_1_1parser_1_1Source.html" target="_self">tvm::parser::Source</a></td><td class="desc"></td></tr>
-<tr id="row_107_160_" 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="classtvm_1_1parser_1_1SourceMap.html" target="_self">tvm::parser::SourceMap</a></td><td class="desc"></td></tr>
-<tr id="row_107_161_" 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="classtvm_1_1PoolInfo.html" target="_self">tvm::PoolInfo</a></td><td class="desc"></td></tr>
-<tr id="row_107_162_" 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="classtvm_1_1Range.html" target="_self">tvm::Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> constainer </td></tr>
-<tr id="row_107_163_" 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="classtvm_1_1relay_1_1Clause.html" target="_self">tvm::relay::Clause</a></td><td class="desc"></td></tr>
-<tr id="row_107_164_" 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="classtvm_1_1relay_1_1ConstructorValue.html" target="_self">tvm::relay::ConstructorValue</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_165_" class="arrow" onclick="toggleFolder('107_165_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPattern.html" target="_self">tvm::relay::DFPattern</a></td><td class="desc">Managed reference to dataflow patterns </td></tr>
-<tr id="row_107_165_0_" 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_1relay_1_1AltPattern.html" target="_self">tvm::relay::AltPattern</a></td><td class="desc">A pattern which matches either of two patterns </td></tr>
-<tr id="row_107_165_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="classtvm_1_1relay_1_1AttrPattern.html" target="_self">tvm::relay::AttrPattern</a></td><td class="desc">A pattern which matches attributes in another pattern </td></tr>
-<tr id="row_107_165_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="classtvm_1_1relay_1_1CallPattern.html" target="_self">tvm::relay::CallPattern</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_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_1relay_1_1ConstantPattern.html" target="_self">tvm::relay::ConstantPattern</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_4_" 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_1relay_1_1DataTypePattern.html" target="_self">tvm::relay::DataTypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_107_165_5_" 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_1relay_1_1DominatorPattern.html" target="_self">tvm::relay::DominatorPattern</a></td><td class="desc">A pattern which matches a variable length dominator path </td></tr>
-<tr id="row_107_165_6_" 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_1relay_1_1ExprPattern.html" target="_self">tvm::relay::ExprPattern</a></td><td class="desc">A pattern which matches a literal expression </td></tr>
-<tr id="row_107_165_7_" 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_1relay_1_1FunctionPattern.html" target="_self">tvm::relay::FunctionPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
-<tr id="row_107_165_8_" 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_1relay_1_1IfPattern.html" target="_self">tvm::relay::IfPattern</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_9_" 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_1relay_1_1LetPattern.html" target="_self">tvm::relay::LetPattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> binding that binds a local var </td></tr>
-<tr id="row_107_165_10_" 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_1relay_1_1ShapePattern.html" target="_self">tvm::relay::ShapePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_107_165_11_" 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_1relay_1_1TupleGetItemPattern.html" target="_self">tvm::relay::TupleGetItemPattern</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_12_" 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_1relay_1_1TuplePattern.html" target="_self">tvm::relay::TuplePattern</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_13_" 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_1relay_1_1TypePattern.html" target="_self">tvm::relay::TypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
-<tr id="row_107_165_14_" 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_1relay_1_1VarPattern.html" target="_self">tvm::relay::VarPattern</a></td><td class="desc"></td></tr>
-<tr id="row_107_165_15_" 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_1relay_1_1WildcardPattern.html" target="_self">tvm::relay::WildcardPattern</a></td><td class="desc">A pattern which matches anything </td></tr>
-<tr id="row_107_166_" 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="classtvm_1_1relay_1_1DFPatternCallback.html" target="_self">tvm::relay::DFPatternCallback</a></td><td class="desc">Managed reference to dataflow pattern callbacks </td></tr>
-<tr id="row_107_167_" 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="classtvm_1_1relay_1_1Executor.html" target="_self">tvm::relay::Executor</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1relay_1_1ExecutorNode.html" title="Executor information. ">ExecutorNode</a> </td></tr>
-<tr id="row_107_168_" 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="classtvm_1_1relay_1_1Id.html" target="_self">tvm::relay::Id</a></td><td class="desc"></td></tr>
-<tr id="row_107_169_" 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="classtvm_1_1relay_1_1OpImplementation.html" target="_self">tvm::relay::OpImplementation</a></td><td class="desc">Operator implementation class </td></tr>
-<tr id="row_107_170_" 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="classtvm_1_1relay_1_1OpSpecialization.html" target="_self">tvm::relay::OpSpecialization</a></td><td class="desc">Operator specialization class </td></tr>
-<tr id="row_107_171_" 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="classtvm_1_1relay_1_1OpStrategy.html" target="_self">tvm::relay::OpStrategy</a></td><td class="desc">Operator strategy class </td></tr>
-<tr id="row_107_172_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_172_" class="arrow" onclick="toggleFolder('107_172_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Pattern.html" target="_self">tvm::relay::Pattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT mat [...]
-<tr id="row_107_172_0_" 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_1relay_1_1PatternConstructor.html" target="_self">tvm::relay::PatternConstructor</a></td><td class="desc"></td></tr>
-<tr id="row_107_172_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="classtvm_1_1relay_1_1PatternTuple.html" target="_self">tvm::relay::PatternTuple</a></td><td class="desc"></td></tr>
-<tr id="row_107_172_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="classtvm_1_1relay_1_1PatternVar.html" target="_self">tvm::relay::PatternVar</a></td><td class="desc"></td></tr>
-<tr id="row_107_172_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_1relay_1_1PatternWildcard.html" target="_self">tvm::relay::PatternWildcard</a></td><td class="desc"></td></tr>
-<tr id="row_107_173_" 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="classtvm_1_1relay_1_1RecClosure.html" target="_self">tvm::relay::RecClosure</a></td><td class="desc"></td></tr>
-<tr id="row_107_174_" 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="classtvm_1_1relay_1_1RefValue.html" target="_self">tvm::relay::RefValue</a></td><td class="desc"></td></tr>
-<tr id="row_107_175_" 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="classtvm_1_1relay_1_1Runtime.html" target="_self">tvm::relay::Runtime</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1relay_1_1RuntimeNode.html" title="Runtime information. ">RuntimeNode</a> </td></tr>
-<tr id="row_107_176_" 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="classtvm_1_1runtime_1_1ADT.html" target="_self">tvm::runtime::ADT</a></td><td class="desc">Reference to algebraic data type objects </td></tr>
-<tr id="row_107_177_" 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="classtvm_1_1runtime_1_1Array.html" target="_self">tvm::runtime::Array&lt; T, typename &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Array.html" title="Array, container representing a contiguous sequence of ObjectRefs. ">Array</a>, container representing a  [...]
-<tr id="row_107_178_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_178_" class="arrow" onclick="toggleFolder('107_178_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Closure.html" target="_self">tvm::runtime::Closure</a></td><td class="desc">Reference to closure </td></tr>
-<tr id="row_107_178_0_" 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_1relay_1_1InterpreterClosure.html" target="_self">tvm::relay::InterpreterClosure</a></td><td class="desc"></td></tr>
-<tr id="row_107_178_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="classtvm_1_1runtime_1_1vm_1_1VMClosure.html" target="_self">tvm::runtime::vm::VMClosure</a></td><td class="desc">Reference to closure </td></tr>
-<tr id="row_107_179_" 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="classtvm_1_1runtime_1_1Map.html" target="_self">tvm::runtime::Map&lt; K, V, typename, typename &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Map.html" title="Map container of NodeRef-&gt;NodeRef in DSL graph. Map implements copy on write semantics, which m [...]
-<tr id="row_107_180_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_180_" class="arrow" onclick="toggleFolder('107_180_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBase.html" target="_self">tvm::runtime::metadata::MetadataBase</a></td><td class="desc">Reference class for the common <a class="el" href="classtvm_1_1ru [...]
-<tr id="row_107_180_0_" 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_1runtime_1_1metadata_1_1Metadata.html" target="_self">tvm::runtime::metadata::Metadata</a></td><td class="desc"></td></tr>
-<tr id="row_107_180_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="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html" target="_self">tvm::runtime::metadata::MetadataArray</a></td><td class="desc">Reference class for <a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html" title="Reference class for MetadataArray. ">MetadataA [...]
-<tr id="row_107_180_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="classtvm_1_1runtime_1_1metadata_1_1TensorInfo.html" target="_self">tvm::runtime::metadata::TensorInfo</a></td><td class="desc"></td></tr>
-<tr id="row_107_181_" 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="classtvm_1_1runtime_1_1Module.html" target="_self">tvm::runtime::Module</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Module.html" title="Module container of TVM. ">Module</a> container of TVM </td></tr>
-<tr id="row_107_182_" 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="classtvm_1_1runtime_1_1NDArray.html" target="_self">tvm::runtime::NDArray</a></td><td class="desc">Managed <a class="el" href="classtvm_1_1runtime_1_1NDArray.html" title="Managed NDArray. The array is backed by reference counted blocks. ">NDArray</a>. The array is backed by referenc [...]
-<tr id="row_107_183_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; T &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Optional.html" title="Optional container that to represent to a Nullable variant of T. ">Optional</a> container that to represen [...]
-<tr id="row_107_184_" 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="classtvm_1_1runtime_1_1PackedFunc.html" target="_self">tvm::runtime::PackedFunc</a></td><td class="desc">Packed function is a type-erased function. The arguments are passed by packed format </td></tr>
-<tr id="row_107_185_" 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="classtvm_1_1runtime_1_1profiling_1_1DeviceWrapper.html" target="_self">tvm::runtime::profiling::DeviceWrapper</a></td><td class="desc">Wrapper for <code>Device</code> </td></tr>
-<tr id="row_107_186_" 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="classtvm_1_1runtime_1_1profiling_1_1MetricCollector.html" target="_self">tvm::runtime::profiling::MetricCollector</a></td><td class="desc">Wrapper for <code><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html" title="Interface for user defined profiling  [...]
-<tr id="row_107_187_" 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="classtvm_1_1runtime_1_1profiling_1_1Report.html" target="_self">tvm::runtime::profiling::Report</a></td><td class="desc"></td></tr>
-<tr id="row_107_188_" 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="classtvm_1_1runtime_1_1ShapeTuple.html" target="_self">tvm::runtime::ShapeTuple</a></td><td class="desc">Reference to shape tuple objects </td></tr>
-<tr id="row_107_189_" 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="classtvm_1_1runtime_1_1String.html" target="_self">tvm::runtime::String</a></td><td class="desc">Reference to string objects </td></tr>
-<tr id="row_107_190_" 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="classtvm_1_1runtime_1_1Timer.html" target="_self">tvm::runtime::Timer</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Timer.html" title="Timer for a specific device. ">Timer</a> for a specific device </td></tr>
-<tr id="row_107_191_" 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="classtvm_1_1runtime_1_1vm_1_1Storage.html" target="_self">tvm::runtime::vm::Storage</a></td><td class="desc">Reference to storage </td></tr>
-<tr id="row_107_192_" 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="classtvm_1_1SourceName.html" target="_self">tvm::SourceName</a></td><td class="desc">The source name of a file span </td></tr>
-<tr id="row_107_193_" 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="classtvm_1_1Span.html" target="_self">tvm::Span</a></td><td class="desc"></td></tr>
-<tr id="row_107_194_" 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="classtvm_1_1Target.html" target="_self">tvm::Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target. ">TargetNode</a> </td></tr>
-<tr id="row_107_195_" 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="classtvm_1_1TargetKind.html" target="_self">tvm::TargetKind</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetKindNode.html" title="Target kind, specifies the kind of the target. ">TargetKindNode</a> </td></tr>
-<tr id="row_107_196_" 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="classtvm_1_1TargetTag.html" target="_self">tvm::TargetTag</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetTagNode.html" title="A target tag. ">TargetTagNode</a> </td></tr>
-<tr id="row_107_197_" 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="classtvm_1_1te_1_1IterVarAttr.html" target="_self">tvm::te::IterVarAttr</a></td><td class="desc">Additional scheduable attributes about IterVar </td></tr>
-<tr id="row_107_198_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_198_" class="arrow" onclick="toggleFolder('107_198_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html" target="_self">tvm::te::IterVarRelation</a></td><td class="desc">The schedule relation between IterVars can be <a class="el" href="classtvm_1_1te_1_1Split.h [...]
-<tr id="row_107_198_0_" 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_1te_1_1Fuse.html" target="_self">tvm::te::Fuse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1FuseNode.html" title="Fuse two domains into one domain. ">FuseNode</a> </td></tr>
-<tr id="row_107_198_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="classtvm_1_1te_1_1Rebase.html" target="_self">tvm::te::Rebase</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1RebaseNode.html" title="Rebase the iteration to make min to be 0. This is useful to normalize the Schedule to make every leaf...">Rebas [...]
-<tr id="row_107_198_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="classtvm_1_1te_1_1Singleton.html" target="_self">tvm::te::Singleton</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SingletonNode.html" title="Singleton iterator [0, 1) ">SingletonNode</a> </td></tr>
-<tr id="row_107_198_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_1te_1_1Split.html" target="_self">tvm::te::Split</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SplitNode.html" title="Split the parent domain into product of outer and iter. ">SplitNode</a> </td></tr>
-<tr id="row_107_198_4_" 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_1te_1_1Transform.html" target="_self">tvm::te::Transform</a></td><td class="desc"></td></tr>
-<tr id="row_107_199_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_199_" class="arrow" onclick="toggleFolder('107_199_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Operation.html" target="_self">tvm::te::Operation</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. ">Operati [...]
-<tr id="row_107_199_0_" 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_1te_1_1ComputeOp.html" target="_self">tvm::te::ComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html" title="A Compute op that compute a tensor on certain domain. ">ComputeOpNode</a> </td></tr>
-<tr id="row_107_199_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="classtvm_1_1te_1_1ExternOp.html" target="_self">tvm::te::ExternOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ExternOpNode.html" title="External computation that cannot be splitted. ">ExternOpNode</a> </td></tr>
-<tr id="row_107_199_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="classtvm_1_1te_1_1HybridOp.html" target="_self">tvm::te::HybridOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1HybridOpNode.html" title="A computation operator that generated by hybrid script. ">HybridOpNode</a> </td></tr>
-<tr id="row_107_199_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_1te_1_1PlaceholderOp.html" target="_self">tvm::te::PlaceholderOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html" title="A placeholder op represents an input placeholder. ">PlaceholderOpNode</a> </td></tr>
-<tr id="row_107_199_4_" 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_1te_1_1ScanOp.html" target="_self">tvm::te::ScanOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ScanOpNode.html" title="Symbolic scan. ">ScanOpNode</a> </td></tr>
-<tr id="row_107_199_5_" 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_1te_1_1TensorComputeOp.html" target="_self">tvm::te::TensorComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html" title="A TenorCompute op that compute a tensor with an tensor intrinsic. ">TensorComputeOpN [...]
-<tr id="row_107_200_" 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="classtvm_1_1te_1_1Schedule.html" target="_self">tvm::te::Schedule</a></td><td class="desc">Global schedule container For operations and all the operations they depend on. The schedule per <a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. " [...]
-<tr id="row_107_201_" 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="classtvm_1_1te_1_1SpecializedCondition.html" target="_self">tvm::te::SpecializedCondition</a></td><td class="desc">Specialized condition to enable op specialization </td></tr>
-<tr id="row_107_202_" 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="classtvm_1_1te_1_1Stage.html" target="_self">tvm::te::Stage</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">Stage</a>, contains scheduling for a stage of computation </td></tr>
-<tr id="row_107_203_" 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="classtvm_1_1te_1_1TensorIntrin.html" target="_self">tvm::te::TensorIntrin</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html" title="Node to represent a Tensor intrinsic operator. ">TensorIntrinNode</a> </td></tr>
-<tr id="row_107_204_" 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="classtvm_1_1te_1_1TensorIntrinCall.html" target="_self">tvm::te::TensorIntrinCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</a> </td></tr>
-<tr id="row_107_205_" 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="classtvm_1_1tir_1_1BijectiveLayout.html" target="_self">tvm::tir::BijectiveLayout</a></td><td class="desc">Bijective function mapping for data layout transformation. Given two <a class="el" href="classtvm_1_1tir_1_1Layout.html" title="Managed reference to LayoutNode. ">Layout</a>, < [...]
-<tr id="row_107_206_" 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="classtvm_1_1tir_1_1BlockRV.html" target="_self">tvm::tir::BlockRV</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html" title="A random variable that evaluates to a TensorIR block. ">BlockRVNode</a> </td></tr>
-<tr id="row_107_207_" 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="classtvm_1_1tir_1_1BlockScope.html" target="_self">tvm::tir::BlockScope</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html" title="An object with 1-to-1 correspondence with each block reference in the sref tree. This data structu [...]
-<tr id="row_107_208_" 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="classtvm_1_1tir_1_1Buffer.html" target="_self">tvm::tir::Buffer</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Buffer.html" title="Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types...">Buffer</a> is a symbolic n-darray structur [...]
-<tr id="row_107_209_" 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="classtvm_1_1tir_1_1BufferRegion.html" target="_self">tvm::tir::BufferRegion</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferRegionNode.html" title="Representing the region of multi-dimensional buffer access. ">BufferRegionNode</a> </td></tr>
-<tr id="row_107_210_" 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="classtvm_1_1tir_1_1CommReducer.html" target="_self">tvm::tir::CommReducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html" title="A commutative reducer node to represent a commutative binary operator with identity element..." [...]
-<tr id="row_107_211_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_211_" class="arrow" onclick="toggleFolder('107_211_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DataProducer.html" target="_self">tvm::tir::DataProducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html" title="Base  [...]
-<tr id="row_107_211_0_" 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_1te_1_1Tensor.html" target="_self">tvm::te::Tensor</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a> structure representing a possible input [...]
-<tr id="row_107_212_" 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="classtvm_1_1tir_1_1Dependency.html" target="_self">tvm::tir::Dependency</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DependencyNode.html" title="A tuple (src, dst, kind) representing certain types of dependency. For example, (A, B, kRAW) means [...]
-<tr id="row_107_213_" 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="classtvm_1_1tir_1_1IndexMap.html" target="_self">tvm::tir::IndexMap</a></td><td class="desc"></td></tr>
-<tr id="row_107_214_" 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="classtvm_1_1tir_1_1Instruction.html" target="_self">tvm::tir::Instruction</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1InstructionNode.html" title="Schedule instructions each corresponds to a schedule primitive. ">InstructionNode</a> </td></tr>
-<tr id="row_107_215_" 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="classtvm_1_1tir_1_1InstructionKind.html" target="_self">tvm::tir::InstructionKind</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1InstructionKindNode.html" title="Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of i [...]
-<tr id="row_107_216_" 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="classtvm_1_1tir_1_1IterVar.html" target="_self">tvm::tir::IterVar</a></td><td class="desc">Iteration Variable, represents an iteration over an integer interval </td></tr>
-<tr id="row_107_217_" 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="classtvm_1_1tir_1_1Layout.html" target="_self">tvm::tir::Layout</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LayoutNode.html" title="Layout is to describe how data is organized within an N-dimention tensor. It is composed of upper cas...">Layo [...]
-<tr id="row_107_218_" 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="classtvm_1_1tir_1_1LoopRV.html" target="_self">tvm::tir::LoopRV</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LoopRVNode.html" title="A random variable that evaluates to a TensorIR for loop. ">LoopRVNode</a> </td></tr>
-<tr id="row_107_219_" 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="classtvm_1_1tir_1_1MatchBufferRegion.html" target="_self">tvm::tir::MatchBufferRegion</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MatchBufferRegionNode.html" title="Match introduces a constraint that the source buffer region can be remapped t [...]
-<tr id="row_107_220_" 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="classtvm_1_1tir_1_1Schedule.html" target="_self">tvm::tir::Schedule</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ScheduleNode.html" title="The user-facing schedule class. ">ScheduleNode</a> </td></tr>
-<tr id="row_107_221_" 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="classtvm_1_1tir_1_1ScheduleState.html" target="_self">tvm::tir::ScheduleState</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ScheduleStateNode.html" title="The state of scheduling, which exposes a Replace method as the primary interface for all  [...]
-<tr id="row_107_222_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_222_" class="arrow" onclick="toggleFolder('107_222_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Stmt.html" target="_self">tvm::tir::Stmt</a></td><td class="desc">Container of all statements </td></tr>
-<tr id="row_107_222_0_" 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_1tir_1_1Allocate.html" target="_self">tvm::tir::Allocate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AllocateNode.html" title="Allocate a buffer that can be used in body. ">AllocateNode</a> </td></tr>
-<tr id="row_107_222_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="classtvm_1_1tir_1_1AllocateConst.html" target="_self">tvm::tir::AllocateConst</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html" title="Allocate a buffer that can be used in body. ">AllocateConstNode</a> </td></tr>
-<tr id="row_107_222_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="classtvm_1_1tir_1_1AssertStmt.html" target="_self">tvm::tir::AssertStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html" title="Assert condition, if an error occurs, return the error message. ">AssertStmtNode</a> </td></tr>
-<tr id="row_107_222_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_1tir_1_1AttrStmt.html" target="_self">tvm::tir::AttrStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html" title="Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary inform. [...]
-<tr id="row_107_222_4_" 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_1tir_1_1Block.html" target="_self">tvm::tir::Block</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockNode.html" title="A block is a basic schedule unit in TIR. ">BlockNode</a> </td></tr>
-<tr id="row_107_222_5_" 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_1tir_1_1BlockRealize.html" target="_self">tvm::tir::BlockRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html" title="A block realization node represents execution of the block at the binding values. ...">Blo [...]
-<tr id="row_107_222_6_" 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_1tir_1_1BufferRealize.html" target="_self">tvm::tir::BufferRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html" title="Annotate the region where the buffer need to be read and write in the body. We only nee [...]
-<tr id="row_107_222_7_" 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_1tir_1_1BufferStore.html" target="_self">tvm::tir::BufferStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html" title="Store value to the high dimension buffer. ">BufferStoreNode</a> </td></tr>
-<tr id="row_107_222_8_" 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_1tir_1_1Evaluate.html" target="_self">tvm::tir::Evaluate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html" title="Evaluates an expression. This is mostly used for putting a Call node into Stmt. ">EvaluateNode</a> </td></tr>
-<tr id="row_107_222_9_" 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_1tir_1_1For.html" target="_self">tvm::tir::For</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ForNode.html" title="A for loop, with poissible type annotations. ">ForNode</a> </td></tr>
-<tr id="row_107_222_10_" 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_1tir_1_1IfThenElse.html" target="_self">tvm::tir::IfThenElse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html" title="IfThenElse statment. ">IfThenElseNode</a> </td></tr>
-<tr id="row_107_222_11_" 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_1tir_1_1LetStmt.html" target="_self">tvm::tir::LetStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html" title="Let binding, bind var to value, then run body. ">LetStmtNode</a> </td></tr>
-<tr id="row_107_222_12_" 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_1tir_1_1Prefetch.html" target="_self">tvm::tir::Prefetch</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html" title="A prefetch hint for a buffer. ">PrefetchNode</a> </td></tr>
-<tr id="row_107_222_13_" 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_1tir_1_1ProducerRealize.html" target="_self">tvm::tir::ProducerRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerRealizeNode.html" title="Annotate the bounds where the data produced by the producer need to be written a [...]
-<tr id="row_107_222_14_" 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_1tir_1_1ProducerStore.html" target="_self">tvm::tir::ProducerStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerStoreNode.html" title="Store value into mult-dimensional array that will be read by the consumer of the produ [...]
-<tr id="row_107_222_15_" 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_1tir_1_1SeqStmt.html" target="_self">tvm::tir::SeqStmt</a></td><td class="desc">Sequence statement </td></tr>
-<tr id="row_107_222_16_" 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_1tir_1_1Store.html" target="_self">tvm::tir::Store</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StoreNode.html" title="Store value to the buffer. ">StoreNode</a> </td></tr>
-<tr id="row_107_222_17_" 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_1tir_1_1While.html" target="_self">tvm::tir::While</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1WhileNode.html" title="A While loop. ">WhileNode</a> </td></tr>
-<tr id="row_107_223_" 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="classtvm_1_1tir_1_1StmtSRef.html" target="_self">tvm::tir::StmtSRef</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StmtSRefNode.html" title="An object that refers to schedulable elements (block/for-loop) in TensorIR, aka &quot;sref&quot;. ">Stmt [...]
-<tr id="row_107_224_" 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="classtvm_1_1tir_1_1TensorIntrin.html" target="_self">tvm::tir::TensorIntrin</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1TensorIntrinNode.html" title="Tensor intrinsics for tensorization. ">TensorIntrinNode</a> </td></tr>
-<tr id="row_107_225_" 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="classtvm_1_1tir_1_1Trace.html" target="_self">tvm::tir::Trace</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1TraceNode.html" title="An execution trace of a scheduling program. ">TraceNode</a> </td></tr>
-<tr id="row_107_226_" 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="classtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfo.html" target="_self">tvm::tir::usmp::AllocatedPoolInfo</a></td><td class="desc"></td></tr>
-<tr id="row_107_227_" 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="classtvm_1_1tir_1_1usmp_1_1BufferInfo.html" target="_self">tvm::tir::usmp::BufferInfo</a></td><td class="desc"></td></tr>
-<tr id="row_107_228_" 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="classtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysis.html" target="_self">tvm::tir::usmp::BufferInfoAnalysis</a></td><td class="desc"></td></tr>
-<tr id="row_107_229_" 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="classtvm_1_1tir_1_1usmp_1_1PoolAllocation.html" target="_self">tvm::tir::usmp::PoolAllocation</a></td><td class="desc"></td></tr>
-<tr id="row_107_230_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_230_" class="arrow" onclick="toggleFolder('107_230_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1Pass.html" target="_self">tvm::transform::Pass</a></td><td class="desc"></td></tr>
-<tr id="row_107_230_0_" 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_1transform_1_1Sequential.html" target="_self">tvm::transform::Sequential</a></td><td class="desc"></td></tr>
-<tr id="row_107_231_" 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="classtvm_1_1transform_1_1PassContext.html" target="_self">tvm::transform::PassContext</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassContext.html" title="PassContext that is used to configure the pass behavior. ">PassContext</a> that is used to configure t [...]
-<tr id="row_107_232_" 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="classtvm_1_1transform_1_1PassInfo.html" target="_self">tvm::transform::PassInfo</a></td><td class="desc">Managed reference class for <a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html" title="Meta data that will be used to help optimization and analysis. ">PassInfoNode</ [...]
-<tr id="row_107_233_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_233_" class="arrow" onclick="toggleFolder('107_233_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">tvm::Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types. ">TypeNode</ [...]
-<tr id="row_107_233_0_" 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_1BaseTensorType.html" target="_self">tvm::BaseTensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseTensorTypeNode.html" title="Base of all Tensor types This container can hold TensorType or GenericTensorType. ...">BaseTensorTypeNo [...]
-<tr id="row_107_233_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="classtvm_1_1FuncType.html" target="_self">tvm::FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type. ">FuncTypeNode</a> </td></tr>
-<tr id="row_107_233_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="classtvm_1_1GlobalTypeVar.html" target="_self">tvm::GlobalTypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalTypeVarNode.html" title="A global type variable that is used for defining new types or type aliases. ">GlobalTypeVarNode</a> </td></tr>
-<tr id="row_107_233_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_1IncompleteType.html" target="_self">tvm::IncompleteType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1IncompleteTypeNode.html" title="Intermediate values that is used to indicate incomplete type during type inference. ">IncompleteTypeNod [...]
-<tr id="row_107_233_4_" 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_1PointerType.html" target="_self">tvm::PointerType</a></td><td class="desc"></td></tr>
-<tr id="row_107_233_5_" 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_1PrimType.html" target="_self">tvm::PrimType</a></td><td class="desc"></td></tr>
-<tr id="row_107_233_6_" 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_1RelayRefType.html" target="_self">tvm::RelayRefType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayRefTypeNode.html" title="Reference Type High-level Relay IR. ">RelayRefTypeNode</a> </td></tr>
-<tr id="row_107_233_7_" 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_1TensorType.html" target="_self">tvm::TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TensorTypeNode.html" title="This is the most commonly used type in relay. TensorType have a fixed dimension, data type...">TensorTypeNode</a> < [...]
-<tr id="row_107_233_8_" 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_1TupleType.html" target="_self">tvm::TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values. ">TupleTypeNode</a> </td></tr>
-<tr id="row_107_233_9_" 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_1TypeCall.html" target="_self">tvm::TypeCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeCallNode.html" title="Type function application. ">TypeCallNode</a> </td></tr>
-<tr id="row_107_233_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_107_233_10_" class="arrow" onclick="toggleFolder('107_233_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraint.html" target="_self">tvm::TypeConstraint</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeConstraintNode.html" title="Potential [...]
-<tr id="row_107_233_10_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="classtvm_1_1TypeRelation.html" target="_self">tvm::TypeRelation</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeRelationNode.html" title="User defined type relation, it is an input-output relation on types. ">TypeRelationNode</a> </td></tr>
-<tr id="row_107_233_11_" 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_1TypeData.html" target="_self">tvm::TypeData</a></td><td class="desc">Stores all data for an Algebraic Data <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> (ADT) </td></tr>
-<tr id="row_107_233_12_" 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_1TypeVar.html" target="_self">tvm::TypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeVarNode.html" title="Type parameter in functions. ">TypeVarNode</a> </td></tr>
-<tr id="row_107_234_" 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="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode. ">EnvFunc</a>. It is backed by a GlobalFuncNo [...]
-<tr id="row_107_235_" 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="classtvm_1_1TypeReporter.html" target="_self">tvm::TypeReporter</a></td><td class="desc">Container class of <a class="el" href="classtvm_1_1TypeReporter.html" title="Container class of TypeReporter. ">TypeReporter</a> </td></tr>
-<tr id="row_107_236_" 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="classtvm_1_1VirtualDevice.html" target="_self">tvm::VirtualDevice</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1VirtualDeviceNode.html" title="Describes at compile time the constraints on where data is to be stored at runtime down to the ( [...]
-<tr id="row_107_237_" 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="classtvm_1_1WorkspaceMemoryPools.html" target="_self">tvm::WorkspaceMemoryPools</a></td><td class="desc"></td></tr>
+<tr id="row_107_77_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::meta_schedule::Database &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_78_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::meta_schedule::SearchStrategy &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_79_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::meta_schedule::SpaceGenerator &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_80_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::PrimExpr &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_81_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::auto_scheduler::MeasureCallback &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_82_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::FloatImm &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_83_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::Integer &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_84_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::meta_schedule::BuilderResult &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_85_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::meta_schedule::MeasureCandidate &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_86_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Array&lt; tvm::meta_schedule::RunnerFuture &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_87_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::Map&lt; tvm::runtime::String, tvm::runtime::NDArray &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_88_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::NDArray &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_89_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::ObjectRef &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_90_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::runtime::String &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_91_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::Target &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_92_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::tir::IterVar &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_93_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; tvm::tir::Stmt &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_107_94_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_94_" class="arrow" onclick="toggleFolder('107_94_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AffineType.html" target="_self">tvm::AffineType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1AffineTypeNode.html" title="AffineType representation. ">Affi [...]
+<tr id="row_107_94_0_" 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_1TensorAffineType.html" target="_self">tvm::TensorAffineType</a></td><td class="desc">Managed reference to AffineTypes </td></tr>
+<tr id="row_107_94_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="classtvm_1_1TupleAffineType.html" target="_self">tvm::TupleAffineType</a></td><td class="desc">Managed reference to TupleAffineTypes </td></tr>
+<tr id="row_107_95_" 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="classtvm_1_1arith_1_1ConstIntBound.html" target="_self">tvm::arith::ConstIntBound</a></td><td class="desc">Reference class to <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html" title="Constant integer up and lower bound(inclusive). Useful for value bound analysis. ">Con [...]
+<tr id="row_107_96_" 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="classtvm_1_1arith_1_1IntConstraints.html" target="_self">tvm::arith::IntConstraints</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html" title="Represent integer constrains including (integer) variables, their ranges and the  [...]
+<tr id="row_107_97_" 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="classtvm_1_1arith_1_1IntConstraintsTransform.html" target="_self">tvm::arith::IntConstraintsTransform</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" title="We can have different set of variables to represent th [...]
+<tr id="row_107_98_" 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="classtvm_1_1arith_1_1IntGroupBounds.html" target="_self">tvm::arith::IntGroupBounds</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" title="Represent integer grouped bounds which are classified into lower bounds (inclusiv [...]
+<tr id="row_107_99_" 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="classtvm_1_1arith_1_1IntSet.html" target="_self">tvm::arith::IntSet</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IntSetNode.html" title="Base class of all Integer set containers. represent a set of integers in one dimension. ">IntSetNode</a>  [...]
+<tr id="row_107_100_" 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="classtvm_1_1arith_1_1IterMapResult.html" target="_self">tvm::arith::IterMapResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterMapResultNode.html" title="Result of DetectIterMap. ">IterMapResultNode</a> </td></tr>
+<tr id="row_107_101_" 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="classtvm_1_1arith_1_1IterMark.html" target="_self">tvm::arith::IterMark</a></td><td class="desc">Managed reference to IterMarkExprNode </td></tr>
+<tr id="row_107_102_" 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="classtvm_1_1arith_1_1ModularSet.html" target="_self">tvm::arith::ModularSet</a></td><td class="desc">Reference of <a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html" title="Range of a linear integer function. Use to do specify the possible index values. ">ModularSetNode</a [...]
+<tr id="row_107_103_" 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="classtvm_1_1AttrFieldInfo.html" target="_self">tvm::AttrFieldInfo</a></td><td class="desc"><a class="el" href="classtvm_1_1AttrFieldInfo.html" title="AttrFieldInfo. ">AttrFieldInfo</a> </td></tr>
+<tr id="row_107_104_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_104_" class="arrow" onclick="toggleFolder('107_104_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Attrs.html" target="_self">tvm::Attrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseAttrsNode.html" title="Base class of all attribute class. ">Base [...]
+<tr id="row_107_104_0_" 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_1DictAttrs.html" target="_self">tvm::DictAttrs</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior...">DictAttrsNode< [...]
+<tr id="row_107_105_" 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="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html" target="_self">tvm::auto_scheduler::AccessAnalyzer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html" title="Static analyzer for a ComputeDAG. ">AccessAnalyzerN [...]
+<tr id="row_107_106_" 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="classtvm_1_1auto__scheduler_1_1AttachMap.html" target="_self">tvm::auto_scheduler::AttachMap</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html" title="stores the compute_at relation between stages This stores a bi-dir [...]
+<tr id="row_107_107_" 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="classtvm_1_1auto__scheduler_1_1BuildResult.html" target="_self">tvm::auto_scheduler::BuildResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html" title="Store the result of a build. ">BuildResultNode</a> </td></tr>
+<tr id="row_107_108_" 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="classtvm_1_1auto__scheduler_1_1ComputeDAG.html" target="_self">tvm::auto_scheduler::ComputeDAG</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html" title="The auto-scheduler&#39;s computational graph and related progra [...]
+<tr id="row_107_109_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_109_" class="arrow" onclick="toggleFolder('107_109_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html" target="_self">tvm::auto_scheduler::CostModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CostMo [...]
+<tr id="row_107_109_0_" 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_1auto__scheduler_1_1PythonBasedModel.html" target="_self">tvm::auto_scheduler::PythonBasedModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html" title="A wrapper for cost model defined by python  [...]
+<tr id="row_107_109_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="classtvm_1_1auto__scheduler_1_1RandomModel.html" target="_self">tvm::auto_scheduler::RandomModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RandomModelNode.html" title="The cost model returning random value for all predictions. [...]
+<tr id="row_107_110_" 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="classtvm_1_1auto__scheduler_1_1HardwareParams.html" target="_self">tvm::auto_scheduler::HardwareParams</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html" title="The parameters of target hardware used to guide the [...]
+<tr id="row_107_111_" 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="classtvm_1_1auto__scheduler_1_1Iterator.html" target="_self">tvm::auto_scheduler::Iterator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html" title="An iterator of a for-loop Similar to tvm::IterVar in include/tvm/tir/ [...]
+<tr id="row_107_112_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_112_" class="arrow" onclick="toggleFolder('107_112_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html" target="_self">tvm::auto_scheduler::MeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__schedul [...]
+<tr id="row_107_112_0_" 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_1auto__scheduler_1_1PythonBasedMeasureCallback.html" target="_self">tvm::auto_scheduler::PythonBasedMeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedMeasureCallbackNode.html" title="A wrapper for [...]
+<tr id="row_107_112_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="classtvm_1_1auto__scheduler_1_1RecordToFile.html" target="_self">tvm::auto_scheduler::RecordToFile</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RecordToFileNode.html" title="Callback for logging the input and results of measureme [...]
+<tr id="row_107_113_" 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="classtvm_1_1auto__scheduler_1_1MeasureInput.html" target="_self">tvm::auto_scheduler::MeasureInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html" title="Store the input of a measurement. ">MeasureInputNode</a>  [...]
+<tr id="row_107_114_" 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="classtvm_1_1auto__scheduler_1_1MeasureResult.html" target="_self">tvm::auto_scheduler::MeasureResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html" title="Store the results of a measurement. ">MeasureResultNod [...]
+<tr id="row_107_115_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_115_" class="arrow" onclick="toggleFolder('107_115_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" target="_self">tvm::auto_scheduler::ProgramBuilder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler [...]
+<tr id="row_107_115_0_" 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_1auto__scheduler_1_1LocalBuilder.html" target="_self">tvm::auto_scheduler::LocalBuilder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html" title="LocalBuilder use local CPU cores to build programs in p [...]
+<tr id="row_107_116_" 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="classtvm_1_1auto__scheduler_1_1ProgramMeasurer.html" target="_self">tvm::auto_scheduler::ProgramMeasurer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html" title="Measurer that measures the time costs of tvm pro [...]
+<tr id="row_107_117_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_117_" class="arrow" onclick="toggleFolder('107_117_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html" target="_self">tvm::auto_scheduler::ProgramRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1 [...]
+<tr id="row_107_117_0_" 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_1auto__scheduler_1_1LocalRunner.html" target="_self">tvm::auto_scheduler::LocalRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html" title="LocalRunner that uses local CPU/GPU to measure the time co [...]
+<tr id="row_107_117_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="classtvm_1_1auto__scheduler_1_1RPCRunner.html" target="_self">tvm::auto_scheduler::RPCRunner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RPCRunnerNode.html" title="RPCRunner that uses RPC call to measures the time cost of progra [...]
+<tr id="row_107_118_" 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="classtvm_1_1auto__scheduler_1_1RecordReader.html" target="_self">tvm::auto_scheduler::RecordReader</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RecordReaderNode.html" title="Log reader to load step logs from a file. ">RecordReaderN [...]
+<tr id="row_107_119_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_119_" class="arrow" onclick="toggleFolder('107_119_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallback.html" target="_self">tvm::auto_scheduler::SearchCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler [...]
+<tr id="row_107_119_0_" 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_1auto__scheduler_1_1PreloadMeasuredStates.html" target="_self">tvm::auto_scheduler::PreloadMeasuredStates</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PreloadMeasuredStatesNode.html" title="Preload measured states from [...]
+<tr id="row_107_120_" 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="classtvm_1_1auto__scheduler_1_1SearchPolicy.html" target="_self">tvm::auto_scheduler::SearchPolicy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html" title="The base class of search policies. ">SearchPolicyNode</a> [...]
+<tr id="row_107_121_" 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="classtvm_1_1auto__scheduler_1_1SearchTask.html" target="_self">tvm::auto_scheduler::SearchTask</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SearchTaskNode.html" title="The computation information and hardware parameters for a speci [...]
+<tr id="row_107_122_" 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="classtvm_1_1auto__scheduler_1_1Stage.html" target="_self">tvm::auto_scheduler::Stage</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StageNode.html" title="A op stage in the compute declaration. Similar to te::Stage in include/tvm/te/ [...]
+<tr id="row_107_123_" 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="classtvm_1_1auto__scheduler_1_1State.html" target="_self">tvm::auto_scheduler::State</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StateNode.html" title="A state in the search process. It consists of the current loop structure and a [...]
+<tr id="row_107_124_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_124_" class="arrow" onclick="toggleFolder('107_124_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1auto__scheduler_1_1Step.html" target="_self">tvm::auto_scheduler::Step</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StepNode.html" t [...]
+<tr id="row_107_124_0_" 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_1auto__scheduler_1_1AnnotationStep.html" target="_self">tvm::auto_scheduler::AnnotationStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html" title="Annotation step that corresponds to vectorize, pa [...]
+<tr id="row_107_124_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="classtvm_1_1auto__scheduler_1_1CacheReadStep.html" target="_self">tvm::auto_scheduler::CacheReadStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html" title="Cache read step that corresponds to te::Schedule::ca [...]
+<tr id="row_107_124_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="classtvm_1_1auto__scheduler_1_1CacheWriteStep.html" target="_self">tvm::auto_scheduler::CacheWriteStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html" title="Cache write step that corresponds to te::Schedule [...]
+<tr id="row_107_124_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_1auto__scheduler_1_1ComputeAtStep.html" target="_self">tvm::auto_scheduler::ComputeAtStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html" title="Compute at step that corresponds to te::Stage::compu [...]
+<tr id="row_107_124_4_" 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_1auto__scheduler_1_1ComputeInlineStep.html" target="_self">tvm::auto_scheduler::ComputeInlineStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html" title="Compute inline step that corresponds to  [...]
+<tr id="row_107_124_5_" 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_1auto__scheduler_1_1ComputeRootStep.html" target="_self">tvm::auto_scheduler::ComputeRootStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html" title="Compute root step that corresponds to te::Stag [...]
+<tr id="row_107_124_6_" 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_1auto__scheduler_1_1FollowFusedSplitStep.html" target="_self">tvm::auto_scheduler::FollowFusedSplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html" title="Similar to FollowSplitStep, but [...]
+<tr id="row_107_124_7_" 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_1auto__scheduler_1_1FollowSplitStep.html" target="_self">tvm::auto_scheduler::FollowSplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html" title="Similar to SplitStepNode, but uses split facto [...]
+<tr id="row_107_124_8_" 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_1auto__scheduler_1_1FuseStep.html" target="_self">tvm::auto_scheduler::FuseStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html" title="Fuse step that corresponds to te::Stage::fuse. ">FuseStepNode</a> < [...]
+<tr id="row_107_124_9_" 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_1auto__scheduler_1_1PragmaStep.html" target="_self">tvm::auto_scheduler::PragmaStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1PragmaStepNode.html" title="Pragma step that corresponds to te::Stage::pragma. ">PragmaSt [...]
+<tr id="row_107_124_10_" 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_1auto__scheduler_1_1ReorderStep.html" target="_self">tvm::auto_scheduler::ReorderStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1ReorderStepNode.html" title="Reorder step that corresponds to te::Stage::reorder. ">Re [...]
+<tr id="row_107_124_11_" 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_1auto__scheduler_1_1RfactorStep.html" target="_self">tvm::auto_scheduler::RfactorStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1RfactorStepNode.html" title="Reduction factor step that corresponds to te::Schedule::r [...]
+<tr id="row_107_124_12_" 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_1auto__scheduler_1_1SplitStep.html" target="_self">tvm::auto_scheduler::SplitStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1SplitStepNode.html" title="Split step that corresponds to te::Stage::split with additional [...]
+<tr id="row_107_124_13_" 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_1auto__scheduler_1_1StorageAlignStep.html" target="_self">tvm::auto_scheduler::StorageAlignStep</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1StorageAlignStepNode.html" title="Storage align step that corresponds to te: [...]
+<tr id="row_107_125_" 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="classtvm_1_1auto__scheduler_1_1TuningOptions.html" target="_self">tvm::auto_scheduler::TuningOptions</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html" title="Tuning and measurement options. ">TuningOptionsNode</a [...]
+<tr id="row_107_126_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_126_" class="arrow" onclick="toggleFolder('107_126_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExpr.html" target="_self">tvm::BaseExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions. "> [...]
+<tr id="row_107_126_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_107_126_0_" class="arrow" onclick="toggleFolder('107_126_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExpr.html" target="_self">tvm::PrimExpr</a></td><td class="desc">Reference to <a class="el" href="classtvm_1_1PrimExprNode.html" title="Base node of all primitive expressions [...]
+<tr id="row_107_126_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_126_0_0_" class="arrow" onclick="toggleFolder('107_126_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html" target="_self">tvm::arith::IterMapExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.htm [...]
+<tr id="row_107_126_0_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html" target="_self">tvm::arith::IterSplitExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterSplitExprNode.html" title="Split of an iterator. ">IterSplitExprNode</a> </td></tr>
+<tr id="row_107_126_0_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html" target="_self">tvm::arith::IterSumExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1arith_1_1IterSumExprNode.html" title="Fuse multiple iterators by summing them with scaling. ">IterSumExprNode</a> </td></tr>
+<tr id="row_107_126_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="classtvm_1_1FloatImm.html" target="_self">tvm::FloatImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1FloatImmNode.html" title="Constant floating point literals in the program. ">FloatImmNode</a> </td></tr>
+<tr id="row_107_126_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_126_0_2_" class="arrow" onclick="toggleFolder('107_126_0_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1IntImm.html" target="_self">tvm::IntImm</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IntImmNode.html" title="Constant integer literal [...]
+<tr id="row_107_126_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Bool.html" target="_self">tvm::Bool</a></td><td class="desc">Boolean constant </td></tr>
+<tr id="row_107_126_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Integer.html" target="_self">tvm::Integer</a></td><td class="desc">Container of constant int that adds more constructors </td></tr>
+<tr id="row_107_126_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="classtvm_1_1tir_1_1Add.html" target="_self">tvm::tir::Add</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AddNode.html" title="a + b ">AddNode</a> </td></tr>
+<tr id="row_107_126_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="classtvm_1_1tir_1_1And.html" target="_self">tvm::tir::And</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AndNode.html" title="a &amp;&amp; b ">AndNode</a> </td></tr>
+<tr id="row_107_126_0_5_" 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="classtvm_1_1tir_1_1Any.html" target="_self">tvm::tir::Any</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AnyNode.html" title="Any shape. ">AnyNode</a> </td></tr>
+<tr id="row_107_126_0_6_" 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="classtvm_1_1tir_1_1Broadcast.html" target="_self">tvm::tir::Broadcast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html" title="Create a vector where all the elements are value. ">BroadcastNode</a> </td></tr>
+<tr id="row_107_126_0_7_" 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="classtvm_1_1tir_1_1BufferLoad.html" target="_self">tvm::tir::BufferLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html" title="Load value from the high dimension buffer. ">BufferLoadNode</a> </td></tr>
+<tr id="row_107_126_0_8_" 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="classtvm_1_1tir_1_1Call.html" target="_self">tvm::tir::Call</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CallNode.html" title="Call node. ">CallNode</a> </td></tr>
+<tr id="row_107_126_0_9_" 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="classtvm_1_1tir_1_1Cast.html" target="_self">tvm::tir::Cast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CastNode.html" title="Cast value from one data type to another. ">CastNode</a> </td></tr>
+<tr id="row_107_126_0_10_" 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="classtvm_1_1tir_1_1Div.html" target="_self">tvm::tir::Div</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DivNode.html" title="a / b in the C semnatics. ">DivNode</a> </td></tr>
+<tr id="row_107_126_0_11_" 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="classtvm_1_1tir_1_1EQ.html" target="_self">tvm::tir::EQ</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EQNode.html" title="a == b ">EQNode</a> </td></tr>
+<tr id="row_107_126_0_12_" 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="classtvm_1_1tir_1_1FloorDiv.html" target="_self">tvm::tir::FloorDiv</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html" title="Floor division, floor(a/b) ">FloorDivNode</a> </td></tr>
+<tr id="row_107_126_0_13_" 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="classtvm_1_1tir_1_1FloorMod.html" target="_self">tvm::tir::FloorMod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1FloorModNode.html" title="The remainder of the floordiv. ">FloorModNode</a> </td></tr>
+<tr id="row_107_126_0_14_" 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="classtvm_1_1tir_1_1GE.html" target="_self">tvm::tir::GE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GENode.html" title="a &gt;= b ">GENode</a> </td></tr>
+<tr id="row_107_126_0_15_" 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="classtvm_1_1tir_1_1GT.html" target="_self">tvm::tir::GT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1GTNode.html" title="a &gt; b ">GTNode</a> </td></tr>
+<tr id="row_107_126_0_16_" 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="classtvm_1_1tir_1_1LE.html" target="_self">tvm::tir::LE</a></td><td class="desc">Managed reference to <a class="el" href="structtvm_1_1tir_1_1LENode.html" title="a &lt;= b ">LENode</a> </td></tr>
+<tr id="row_107_126_0_17_" 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="classtvm_1_1tir_1_1Let.html" target="_self">tvm::tir::Let</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetNode.html" title="Let binding. Bind var to value then evaluate body. ">LetNode</a> </td></tr>
+<tr id="row_107_126_0_18_" 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="classtvm_1_1tir_1_1Load.html" target="_self">tvm::tir::Load</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LoadNode.html" title="Load the value from buffer_var. ">LoadNode</a> </td></tr>
+<tr id="row_107_126_0_19_" 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="classtvm_1_1tir_1_1LT.html" target="_self">tvm::tir::LT</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LTNode.html" title="a &lt; b ">LTNode</a> </td></tr>
+<tr id="row_107_126_0_20_" 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="classtvm_1_1tir_1_1Max.html" target="_self">tvm::tir::Max</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MaxNode.html" title="max(a, b) ">MaxNode</a> </td></tr>
+<tr id="row_107_126_0_21_" 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="classtvm_1_1tir_1_1Min.html" target="_self">tvm::tir::Min</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MinNode.html" title="min(a, b) ">MinNode</a> </td></tr>
+<tr id="row_107_126_0_22_" 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="classtvm_1_1tir_1_1Mod.html" target="_self">tvm::tir::Mod</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ModNode.html" title="a % b in the C semnatics. ">ModNode</a> </td></tr>
+<tr id="row_107_126_0_23_" 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="classtvm_1_1tir_1_1Mul.html" target="_self">tvm::tir::Mul</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MulNode.html" title="a * b ">MulNode</a> </td></tr>
+<tr id="row_107_126_0_24_" 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="classtvm_1_1tir_1_1NE.html" target="_self">tvm::tir::NE</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NENode.html" title="a != b ">NENode</a> </td></tr>
+<tr id="row_107_126_0_25_" 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="classtvm_1_1tir_1_1Not.html" target="_self">tvm::tir::Not</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1NotNode.html" title="!a ">NotNode</a> </td></tr>
+<tr id="row_107_126_0_26_" 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="classtvm_1_1tir_1_1Or.html" target="_self">tvm::tir::Or</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1OrNode.html" title="a || b ">OrNode</a> </td></tr>
+<tr id="row_107_126_0_27_" 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="classtvm_1_1tir_1_1ProducerLoad.html" target="_self">tvm::tir::ProducerLoad</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerLoadNode.html" title="Load value from the result produced by the producer. ">ProducerLoadNode</a> </td></tr>
+<tr id="row_107_126_0_28_" 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="classtvm_1_1tir_1_1Ramp.html" target="_self">tvm::tir::Ramp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1RampNode.html" title="Construct a vector with lanes elements where its i-th element equals base + i * stride. This is useful to const [...]
+<tr id="row_107_126_0_29_" 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="classtvm_1_1tir_1_1Reduce.html" target="_self">tvm::tir::Reduce</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ReduceNode.html" title="Reduction operator operator. ">ReduceNode</a> </td></tr>
+<tr id="row_107_126_0_30_" 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="classtvm_1_1tir_1_1Select.html" target="_self">tvm::tir::Select</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SelectNode.html" title="return true_value if condition is true, otherwise return false_value. ">SelectNode</a> </td></tr>
+<tr id="row_107_126_0_31_" 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="classtvm_1_1tir_1_1Shuffle.html" target="_self">tvm::tir::Shuffle</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html" title="Shuffle instruction. vec = concat(vectors) result = (vec[indices[0]], vec[indices[1]] ...">ShuffleNode [...]
+<tr id="row_107_126_0_32_" 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="classtvm_1_1tir_1_1StringImm.html" target="_self">tvm::tir::StringImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StringImmNode.html" title="String constants, only used in asserts. ">StringImmNode</a> </td></tr>
+<tr id="row_107_126_0_33_" 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="classtvm_1_1tir_1_1Sub.html" target="_self">tvm::tir::Sub</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1SubNode.html" title="a - b ">SubNode</a> </td></tr>
+<tr id="row_107_126_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_126_0_34_" class="arrow" onclick="toggleFolder('107_126_0_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Var.html" target="_self">tvm::tir::Var</a></td><td class="desc">Named variable in TIR </td></tr>
+<tr id="row_107_126_0_34_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1SizeVar.html" target="_self">tvm::tir::SizeVar</a></td><td class="desc">Named variable represents a tensor index size </td></tr>
+<tr id="row_107_126_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_107_126_1_" class="arrow" onclick="toggleFolder('107_126_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1RelayExpr.html" target="_self">tvm::RelayExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayExprNode.html" title="Base node of all non-primit [...]
+<tr id="row_107_126_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_107_126_1_0_" class="arrow" onclick="toggleFolder('107_126_1_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseFunc.html" target="_self">tvm::BaseFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functio [...]
+<tr id="row_107_126_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Function.html" target="_self">tvm::relay::Function</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
+<tr id="row_107_126_1_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1PrimFunc.html" target="_self">tvm::tir::PrimFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrimFuncNode.html" title="Primitive functions that contains TIR statements. ">PrimFuncNode</a> </td></tr>
+<tr id="row_107_126_1_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="classtvm_1_1Constructor.html" target="_self">tvm::Constructor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1ConstructorNode.html" title="ADT constructor. Constructors compare by pointer equality. ">ConstructorNode</a> </td></tr>
+<tr id="row_107_126_1_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="classtvm_1_1GlobalVar.html" target="_self">tvm::GlobalVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalVarNode.html" title="Global variable that lives in the top-level module. ">GlobalVarNode</a> </td></tr>
+<tr id="row_107_126_1_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="classtvm_1_1Op.html" target="_self">tvm::Op</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1OpNode.html" title="Primitive Op(builtin intrinsics) ">OpNode</a> </td></tr>
+<tr id="row_107_126_1_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="classtvm_1_1relay_1_1Call.html" target="_self">tvm::relay::Call</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_5_" 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="classtvm_1_1relay_1_1Constant.html" target="_self">tvm::relay::Constant</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_6_" 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="classtvm_1_1relay_1_1If.html" target="_self">tvm::relay::If</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_7_" 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="classtvm_1_1relay_1_1Let.html" target="_self">tvm::relay::Let</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_8_" 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="classtvm_1_1relay_1_1Match.html" target="_self">tvm::relay::Match</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_9_" 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="classtvm_1_1relay_1_1RefCreate.html" target="_self">tvm::relay::RefCreate</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_10_" 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="classtvm_1_1relay_1_1RefRead.html" target="_self">tvm::relay::RefRead</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_11_" 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="classtvm_1_1relay_1_1RefWrite.html" target="_self">tvm::relay::RefWrite</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_12_" 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="classtvm_1_1relay_1_1TempExpr.html" target="_self">tvm::relay::TempExpr</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_13_" 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="classtvm_1_1relay_1_1Tuple.html" target="_self">tvm::relay::Tuple</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_14_" 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="classtvm_1_1relay_1_1TupleGetItem.html" target="_self">tvm::relay::TupleGetItem</a></td><td class="desc"></td></tr>
+<tr id="row_107_126_1_15_" 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="classtvm_1_1relay_1_1Var.html" target="_self">tvm::relay::Var</a></td><td class="desc"></td></tr>
+<tr id="row_107_127_" 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="classtvm_1_1CompilationConfig.html" target="_self">tvm::CompilationConfig</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1CompilationConfig.html" title="Managed reference class to CompilationConfig. ">CompilationConfig</a></code> </td></tr>
+<tr id="row_107_128_" 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="classtvm_1_1Diagnostic.html" target="_self">tvm::Diagnostic</a></td><td class="desc"></td></tr>
+<tr id="row_107_129_" 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="classtvm_1_1DiagnosticContext.html" target="_self">tvm::DiagnosticContext</a></td><td class="desc"></td></tr>
+<tr id="row_107_130_" 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="classtvm_1_1DiagnosticRenderer.html" target="_self">tvm::DiagnosticRenderer</a></td><td class="desc"></td></tr>
+<tr id="row_107_131_" 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="classtvm_1_1EnvFunc.html" target="_self">tvm::EnvFunc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1EnvFuncNode.html" title="A serializable function backed by TVM&#39;s global environment. ">EnvFuncNode</a> </td></tr>
+<tr id="row_107_132_" 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="classtvm_1_1GenericFunc.html" target="_self">tvm::GenericFunc</a></td><td class="desc">Generic function that can be specialized on a per-target basis </td></tr>
+<tr id="row_107_133_" 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="classtvm_1_1instrument_1_1PassInstrument.html" target="_self">tvm::instrument::PassInstrument</a></td><td class="desc">Managed reference class for <a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html" title="PassInstrumentNode forms an instrument implementation. It  [...]
+<tr id="row_107_134_" 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="classtvm_1_1IRModule.html" target="_self">tvm::IRModule</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1IRModuleNode.html" title="IRModule that holds functions and type definitions. ">IRModuleNode</a> </td></tr>
+<tr id="row_107_135_" 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="classtvm_1_1MemoryInfo.html" target="_self">tvm::MemoryInfo</a></td><td class="desc">Defines memory info </td></tr>
+<tr id="row_107_136_" 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="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html" target="_self">tvm::meta_schedule::ApplyHistoryBest</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html" title="An integration context that allows application o [...]
+<tr id="row_107_137_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_137_" class="arrow" onclick="toggleFolder('107_137_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html" target="_self">tvm::meta_schedule::ArgInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.h [...]
+<tr id="row_107_137_0_" 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_1meta__schedule_1_1TensorInfo.html" target="_self">tvm::meta_schedule::TensorInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html" title="The tensor argument information. ">TensorInfoNode</a> </td></tr>
+<tr id="row_107_138_" 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="classtvm_1_1meta__schedule_1_1Builder.html" target="_self">tvm::meta_schedule::Builder</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html" title="The abstract builder interface. ">BuilderNode</a> </td></tr>
+<tr id="row_107_139_" 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="classtvm_1_1meta__schedule_1_1BuilderInput.html" target="_self">tvm::meta_schedule::BuilderInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html" title="The builder&#39;s input, containing an IRModule and the targ [...]
+<tr id="row_107_140_" 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="classtvm_1_1meta__schedule_1_1BuilderResult.html" target="_self">tvm::meta_schedule::BuilderResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html" title="The builder&#39;s output, containing the artifact path or [...]
+<tr id="row_107_141_" 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="classtvm_1_1meta__schedule_1_1CostModel.html" target="_self">tvm::meta_schedule::CostModel</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html" title="Cost model. ">CostModelNode</a> </td></tr>
+<tr id="row_107_142_" 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="classtvm_1_1meta__schedule_1_1Database.html" target="_self">tvm::meta_schedule::Database</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> </td></tr>
+<tr id="row_107_143_" 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="classtvm_1_1meta__schedule_1_1ExtractedTask.html" target="_self">tvm::meta_schedule::ExtractedTask</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html" title="A tuning task extracted from the high-level IR. ">Extract [...]
+<tr id="row_107_144_" 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="classtvm_1_1meta__schedule_1_1FeatureExtractor.html" target="_self">tvm::meta_schedule::FeatureExtractor</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html" title="Extractor for features from measure candidates f [...]
+<tr id="row_107_145_" 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="classtvm_1_1meta__schedule_1_1MeasureCallback.html" target="_self">tvm::meta_schedule::MeasureCallback</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html" title="Rules to apply after measure results is available.  [...]
+<tr id="row_107_146_" 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="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" target="_self">tvm::meta_schedule::MeasureCandidate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html" title="The schedule (with input shapes) to be measured. [...]
+<tr id="row_107_147_" 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="classtvm_1_1meta__schedule_1_1Mutator.html" target="_self">tvm::meta_schedule::Mutator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1MutatorNode.html" title="Mutator is designed to mutate the trace to explore the design space. ">Muta [...]
+<tr id="row_107_148_" 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="classtvm_1_1meta__schedule_1_1Postproc.html" target="_self">tvm::meta_schedule::Postproc</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1PostprocNode.html" title="Rules to apply a postprocessor to a schedule. ">PostprocNode</a> </td></tr>
+<tr id="row_107_149_" 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="classtvm_1_1meta__schedule_1_1Runner.html" target="_self">tvm::meta_schedule::Runner</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerNode.html" title="The abstract runner interface. ">RunnerNode</a> </td></tr>
+<tr id="row_107_150_" 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="classtvm_1_1meta__schedule_1_1RunnerFuture.html" target="_self">tvm::meta_schedule::RunnerFuture</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerFutureNode.html" title="A class to asynchronously fetch runner&#39;s output. ">Runne [...]
+<tr id="row_107_151_" 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="classtvm_1_1meta__schedule_1_1RunnerInput.html" target="_self">tvm::meta_schedule::RunnerInput</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html" title="Runner&#39;s input containing path of artifact, type of device  [...]
+<tr id="row_107_152_" 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="classtvm_1_1meta__schedule_1_1RunnerResult.html" target="_self">tvm::meta_schedule::RunnerResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html" title="Runner&#39;s output containing measurement result of Measure [...]
+<tr id="row_107_153_" 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="classtvm_1_1meta__schedule_1_1ScheduleRule.html" target="_self">tvm::meta_schedule::ScheduleRule</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1ScheduleRuleNode.html" title="Rules to modify a block in a schedule. ">ScheduleRuleNode</a [...]
+<tr id="row_107_154_" 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="classtvm_1_1meta__schedule_1_1SearchStrategy.html" target="_self">tvm::meta_schedule::SearchStrategy</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html" title="The search strategy for measure candidates generation. [...]
+<tr id="row_107_155_" 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="classtvm_1_1meta__schedule_1_1SpaceGenerator.html" target="_self">tvm::meta_schedule::SpaceGenerator</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1SpaceGeneratorNode.html" title="The abstract class for design space generation. ">Spac [...]
+<tr id="row_107_156_" 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="classtvm_1_1meta__schedule_1_1TaskScheduler.html" target="_self">tvm::meta_schedule::TaskScheduler</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html" title="The abstract interface of task schedulers. ">TaskSchedule [...]
+<tr id="row_107_157_" 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="classtvm_1_1meta__schedule_1_1TuneContext.html" target="_self">tvm::meta_schedule::TuneContext</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html" title="The auto tuning context. ">TuneContextNode</a> </td></tr>
+<tr id="row_107_158_" 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="classtvm_1_1meta__schedule_1_1TuningRecord.html" target="_self">tvm::meta_schedule::TuningRecord</a></td><td class="desc">The managed reference of <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" title="The class of tuning records. ">TuningRecordNode</a> </td></tr>
+<tr id="row_107_159_" 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="classtvm_1_1meta__schedule_1_1Workload.html" target="_self">tvm::meta_schedule::Workload</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1meta__schedule_1_1WorkloadNode.html" title="A workload, i.e. an IRModule and its structural hash. ">WorkloadNode</a> [...]
+<tr id="row_107_160_" 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="classtvm_1_1parser_1_1Source.html" target="_self">tvm::parser::Source</a></td><td class="desc"></td></tr>
+<tr id="row_107_161_" 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="classtvm_1_1parser_1_1SourceMap.html" target="_self">tvm::parser::SourceMap</a></td><td class="desc"></td></tr>
+<tr id="row_107_162_" 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="classtvm_1_1PoolInfo.html" target="_self">tvm::PoolInfo</a></td><td class="desc"></td></tr>
+<tr id="row_107_163_" 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="classtvm_1_1Range.html" target="_self">tvm::Range</a></td><td class="desc"><a class="el" href="classtvm_1_1Range.html" title="Range constainer. ">Range</a> constainer </td></tr>
+<tr id="row_107_164_" 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="classtvm_1_1relay_1_1Clause.html" target="_self">tvm::relay::Clause</a></td><td class="desc"></td></tr>
+<tr id="row_107_165_" 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="classtvm_1_1relay_1_1ConstructorValue.html" target="_self">tvm::relay::ConstructorValue</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_166_" class="arrow" onclick="toggleFolder('107_166_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1DFPattern.html" target="_self">tvm::relay::DFPattern</a></td><td class="desc">Managed reference to dataflow patterns </td></tr>
+<tr id="row_107_166_0_" 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_1relay_1_1AltPattern.html" target="_self">tvm::relay::AltPattern</a></td><td class="desc">A pattern which matches either of two patterns </td></tr>
+<tr id="row_107_166_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="classtvm_1_1relay_1_1AttrPattern.html" target="_self">tvm::relay::AttrPattern</a></td><td class="desc">A pattern which matches attributes in another pattern </td></tr>
+<tr id="row_107_166_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="classtvm_1_1relay_1_1CallPattern.html" target="_self">tvm::relay::CallPattern</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_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_1relay_1_1ConstantPattern.html" target="_self">tvm::relay::ConstantPattern</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_4_" 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_1relay_1_1DataTypePattern.html" target="_self">tvm::relay::DataTypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_107_166_5_" 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_1relay_1_1DominatorPattern.html" target="_self">tvm::relay::DominatorPattern</a></td><td class="desc">A pattern which matches a variable length dominator path </td></tr>
+<tr id="row_107_166_6_" 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_1relay_1_1ExprPattern.html" target="_self">tvm::relay::ExprPattern</a></td><td class="desc">A pattern which matches a literal expression </td></tr>
+<tr id="row_107_166_7_" 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_1relay_1_1FunctionPattern.html" target="_self">tvm::relay::FunctionPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relay_1_1FunctionNode.html" title="Relay Function container. ">FunctionNode</a> </td></tr>
+<tr id="row_107_166_8_" 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_1relay_1_1IfPattern.html" target="_self">tvm::relay::IfPattern</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_9_" 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_1relay_1_1LetPattern.html" target="_self">tvm::relay::LetPattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> binding that binds a local var </td></tr>
+<tr id="row_107_166_10_" 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_1relay_1_1ShapePattern.html" target="_self">tvm::relay::ShapePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_107_166_11_" 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_1relay_1_1TupleGetItemPattern.html" target="_self">tvm::relay::TupleGetItemPattern</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_12_" 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_1relay_1_1TuplePattern.html" target="_self">tvm::relay::TuplePattern</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_13_" 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_1relay_1_1TypePattern.html" target="_self">tvm::relay::TypePattern</a></td><td class="desc">A pattern which matches a type in another pattern </td></tr>
+<tr id="row_107_166_14_" 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_1relay_1_1VarPattern.html" target="_self">tvm::relay::VarPattern</a></td><td class="desc"></td></tr>
+<tr id="row_107_166_15_" 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_1relay_1_1WildcardPattern.html" target="_self">tvm::relay::WildcardPattern</a></td><td class="desc">A pattern which matches anything </td></tr>
+<tr id="row_107_167_" 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="classtvm_1_1relay_1_1DFPatternCallback.html" target="_self">tvm::relay::DFPatternCallback</a></td><td class="desc">Managed reference to dataflow pattern callbacks </td></tr>
+<tr id="row_107_168_" 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="classtvm_1_1relay_1_1Executor.html" target="_self">tvm::relay::Executor</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1relay_1_1ExecutorNode.html" title="Executor information. ">ExecutorNode</a> </td></tr>
+<tr id="row_107_169_" 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="classtvm_1_1relay_1_1Id.html" target="_self">tvm::relay::Id</a></td><td class="desc"></td></tr>
+<tr id="row_107_170_" 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="classtvm_1_1relay_1_1OpImplementation.html" target="_self">tvm::relay::OpImplementation</a></td><td class="desc">Operator implementation class </td></tr>
+<tr id="row_107_171_" 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="classtvm_1_1relay_1_1OpSpecialization.html" target="_self">tvm::relay::OpSpecialization</a></td><td class="desc">Operator specialization class </td></tr>
+<tr id="row_107_172_" 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="classtvm_1_1relay_1_1OpStrategy.html" target="_self">tvm::relay::OpStrategy</a></td><td class="desc">Operator strategy class </td></tr>
+<tr id="row_107_173_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_173_" class="arrow" onclick="toggleFolder('107_173_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relay_1_1Pattern.html" target="_self">tvm::relay::Pattern</a></td><td class="desc"><a class="el" href="classtvm_1_1relay_1_1Pattern.html" title="Pattern is the base type for an ADT mat [...]
+<tr id="row_107_173_0_" 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_1relay_1_1PatternConstructor.html" target="_self">tvm::relay::PatternConstructor</a></td><td class="desc"></td></tr>
+<tr id="row_107_173_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="classtvm_1_1relay_1_1PatternTuple.html" target="_self">tvm::relay::PatternTuple</a></td><td class="desc"></td></tr>
+<tr id="row_107_173_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="classtvm_1_1relay_1_1PatternVar.html" target="_self">tvm::relay::PatternVar</a></td><td class="desc"></td></tr>
+<tr id="row_107_173_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_1relay_1_1PatternWildcard.html" target="_self">tvm::relay::PatternWildcard</a></td><td class="desc"></td></tr>
+<tr id="row_107_174_" 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="classtvm_1_1relay_1_1RecClosure.html" target="_self">tvm::relay::RecClosure</a></td><td class="desc"></td></tr>
+<tr id="row_107_175_" 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="classtvm_1_1relay_1_1RefValue.html" target="_self">tvm::relay::RefValue</a></td><td class="desc"></td></tr>
+<tr id="row_107_176_" 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="classtvm_1_1relay_1_1Runtime.html" target="_self">tvm::relay::Runtime</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1relay_1_1RuntimeNode.html" title="Runtime information. ">RuntimeNode</a> </td></tr>
+<tr id="row_107_177_" 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="classtvm_1_1runtime_1_1ADT.html" target="_self">tvm::runtime::ADT</a></td><td class="desc">Reference to algebraic data type objects </td></tr>
+<tr id="row_107_178_" 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="classtvm_1_1runtime_1_1Array.html" target="_self">tvm::runtime::Array&lt; T, typename &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Array.html" title="Array, container representing a contiguous sequence of ObjectRefs. ">Array</a>, container representing a  [...]
+<tr id="row_107_179_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_179_" class="arrow" onclick="toggleFolder('107_179_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1Closure.html" target="_self">tvm::runtime::Closure</a></td><td class="desc">Reference to closure </td></tr>
+<tr id="row_107_179_0_" 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_1relay_1_1InterpreterClosure.html" target="_self">tvm::relay::InterpreterClosure</a></td><td class="desc"></td></tr>
+<tr id="row_107_179_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="classtvm_1_1runtime_1_1vm_1_1VMClosure.html" target="_self">tvm::runtime::vm::VMClosure</a></td><td class="desc">Reference to closure </td></tr>
+<tr id="row_107_180_" 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="classtvm_1_1runtime_1_1Map.html" target="_self">tvm::runtime::Map&lt; K, V, typename, typename &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Map.html" title="Map container of NodeRef-&gt;NodeRef in DSL graph. Map implements copy on write semantics, which m [...]
+<tr id="row_107_181_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_181_" class="arrow" onclick="toggleFolder('107_181_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBase.html" target="_self">tvm::runtime::metadata::MetadataBase</a></td><td class="desc">Reference class for the common <a class="el" href="classtvm_1_1ru [...]
+<tr id="row_107_181_0_" 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_1runtime_1_1metadata_1_1Metadata.html" target="_self">tvm::runtime::metadata::Metadata</a></td><td class="desc"></td></tr>
+<tr id="row_107_181_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="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html" target="_self">tvm::runtime::metadata::MetadataArray</a></td><td class="desc">Reference class for <a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html" title="Reference class for MetadataArray. ">MetadataA [...]
+<tr id="row_107_181_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="classtvm_1_1runtime_1_1metadata_1_1TensorInfo.html" target="_self">tvm::runtime::metadata::TensorInfo</a></td><td class="desc"></td></tr>
+<tr id="row_107_182_" 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="classtvm_1_1runtime_1_1Module.html" target="_self">tvm::runtime::Module</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Module.html" title="Module container of TVM. ">Module</a> container of TVM </td></tr>
+<tr id="row_107_183_" 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="classtvm_1_1runtime_1_1NDArray.html" target="_self">tvm::runtime::NDArray</a></td><td class="desc">Managed <a class="el" href="classtvm_1_1runtime_1_1NDArray.html" title="Managed NDArray. The array is backed by reference counted blocks. ">NDArray</a>. The array is backed by referenc [...]
+<tr id="row_107_184_" 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="classtvm_1_1runtime_1_1Optional.html" target="_self">tvm::runtime::Optional&lt; T &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Optional.html" title="Optional container that to represent to a Nullable variant of T. ">Optional</a> container that to represen [...]
+<tr id="row_107_185_" 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="classtvm_1_1runtime_1_1PackedFunc.html" target="_self">tvm::runtime::PackedFunc</a></td><td class="desc">Packed function is a type-erased function. The arguments are passed by packed format </td></tr>
+<tr id="row_107_186_" 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="classtvm_1_1runtime_1_1profiling_1_1DeviceWrapper.html" target="_self">tvm::runtime::profiling::DeviceWrapper</a></td><td class="desc">Wrapper for <code>Device</code> </td></tr>
+<tr id="row_107_187_" 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="classtvm_1_1runtime_1_1profiling_1_1MetricCollector.html" target="_self">tvm::runtime::profiling::MetricCollector</a></td><td class="desc">Wrapper for <code><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html" title="Interface for user defined profiling  [...]
+<tr id="row_107_188_" 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="classtvm_1_1runtime_1_1profiling_1_1Report.html" target="_self">tvm::runtime::profiling::Report</a></td><td class="desc"></td></tr>
+<tr id="row_107_189_" 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="classtvm_1_1runtime_1_1ShapeTuple.html" target="_self">tvm::runtime::ShapeTuple</a></td><td class="desc">Reference to shape tuple objects </td></tr>
+<tr id="row_107_190_" 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="classtvm_1_1runtime_1_1String.html" target="_self">tvm::runtime::String</a></td><td class="desc">Reference to string objects </td></tr>
+<tr id="row_107_191_" 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="classtvm_1_1runtime_1_1Timer.html" target="_self">tvm::runtime::Timer</a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Timer.html" title="Timer for a specific device. ">Timer</a> for a specific device </td></tr>
+<tr id="row_107_192_" 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="classtvm_1_1runtime_1_1vm_1_1Storage.html" target="_self">tvm::runtime::vm::Storage</a></td><td class="desc">Reference to storage </td></tr>
+<tr id="row_107_193_" 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="classtvm_1_1SourceName.html" target="_self">tvm::SourceName</a></td><td class="desc">The source name of a file span </td></tr>
+<tr id="row_107_194_" 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="classtvm_1_1Span.html" target="_self">tvm::Span</a></td><td class="desc"></td></tr>
+<tr id="row_107_195_" 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="classtvm_1_1Target.html" target="_self">tvm::Target</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetNode.html" title="Compilation target. ">TargetNode</a> </td></tr>
+<tr id="row_107_196_" 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="classtvm_1_1TargetKind.html" target="_self">tvm::TargetKind</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetKindNode.html" title="Target kind, specifies the kind of the target. ">TargetKindNode</a> </td></tr>
+<tr id="row_107_197_" 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="classtvm_1_1TargetTag.html" target="_self">tvm::TargetTag</a></td><td class="desc">Managed reference class to <a class="el" href="classtvm_1_1TargetTagNode.html" title="A target tag. ">TargetTagNode</a> </td></tr>
+<tr id="row_107_198_" 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="classtvm_1_1te_1_1IterVarAttr.html" target="_self">tvm::te::IterVarAttr</a></td><td class="desc">Additional scheduable attributes about IterVar </td></tr>
+<tr id="row_107_199_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_199_" class="arrow" onclick="toggleFolder('107_199_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html" target="_self">tvm::te::IterVarRelation</a></td><td class="desc">The schedule relation between IterVars can be <a class="el" href="classtvm_1_1te_1_1Split.h [...]
+<tr id="row_107_199_0_" 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_1te_1_1Fuse.html" target="_self">tvm::te::Fuse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1FuseNode.html" title="Fuse two domains into one domain. ">FuseNode</a> </td></tr>
+<tr id="row_107_199_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="classtvm_1_1te_1_1Rebase.html" target="_self">tvm::te::Rebase</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1RebaseNode.html" title="Rebase the iteration to make min to be 0. This is useful to normalize the Schedule to make every leaf...">Rebas [...]
+<tr id="row_107_199_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="classtvm_1_1te_1_1Singleton.html" target="_self">tvm::te::Singleton</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SingletonNode.html" title="Singleton iterator [0, 1) ">SingletonNode</a> </td></tr>
+<tr id="row_107_199_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_1te_1_1Split.html" target="_self">tvm::te::Split</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1SplitNode.html" title="Split the parent domain into product of outer and iter. ">SplitNode</a> </td></tr>
+<tr id="row_107_199_4_" 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_1te_1_1Transform.html" target="_self">tvm::te::Transform</a></td><td class="desc"></td></tr>
+<tr id="row_107_200_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_200_" class="arrow" onclick="toggleFolder('107_200_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1te_1_1Operation.html" target="_self">tvm::te::Operation</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. ">Operati [...]
+<tr id="row_107_200_0_" 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_1te_1_1ComputeOp.html" target="_self">tvm::te::ComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html" title="A Compute op that compute a tensor on certain domain. ">ComputeOpNode</a> </td></tr>
+<tr id="row_107_200_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="classtvm_1_1te_1_1ExternOp.html" target="_self">tvm::te::ExternOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ExternOpNode.html" title="External computation that cannot be splitted. ">ExternOpNode</a> </td></tr>
+<tr id="row_107_200_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="classtvm_1_1te_1_1HybridOp.html" target="_self">tvm::te::HybridOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1HybridOpNode.html" title="A computation operator that generated by hybrid script. ">HybridOpNode</a> </td></tr>
+<tr id="row_107_200_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_1te_1_1PlaceholderOp.html" target="_self">tvm::te::PlaceholderOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html" title="A placeholder op represents an input placeholder. ">PlaceholderOpNode</a> </td></tr>
+<tr id="row_107_200_4_" 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_1te_1_1ScanOp.html" target="_self">tvm::te::ScanOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1ScanOpNode.html" title="Symbolic scan. ">ScanOpNode</a> </td></tr>
+<tr id="row_107_200_5_" 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_1te_1_1TensorComputeOp.html" target="_self">tvm::te::TensorComputeOp</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorComputeOpNode.html" title="A TenorCompute op that compute a tensor with an tensor intrinsic. ">TensorComputeOpN [...]
+<tr id="row_107_201_" 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="classtvm_1_1te_1_1Schedule.html" target="_self">tvm::te::Schedule</a></td><td class="desc">Global schedule container For operations and all the operations they depend on. The schedule per <a class="el" href="classtvm_1_1te_1_1Operation.html" title="Operation that produces tensors. " [...]
+<tr id="row_107_202_" 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="classtvm_1_1te_1_1SpecializedCondition.html" target="_self">tvm::te::SpecializedCondition</a></td><td class="desc">Specialized condition to enable op specialization </td></tr>
+<tr id="row_107_203_" 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="classtvm_1_1te_1_1Stage.html" target="_self">tvm::te::Stage</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Stage.html" title="Stage, contains scheduling for a stage of computation. ">Stage</a>, contains scheduling for a stage of computation </td></tr>
+<tr id="row_107_204_" 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="classtvm_1_1te_1_1TensorIntrin.html" target="_self">tvm::te::TensorIntrin</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinNode.html" title="Node to represent a Tensor intrinsic operator. ">TensorIntrinNode</a> </td></tr>
+<tr id="row_107_205_" 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="classtvm_1_1te_1_1TensorIntrinCall.html" target="_self">tvm::te::TensorIntrinCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</a> </td></tr>
+<tr id="row_107_206_" 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="classtvm_1_1tir_1_1BijectiveLayout.html" target="_self">tvm::tir::BijectiveLayout</a></td><td class="desc">Bijective function mapping for data layout transformation. Given two <a class="el" href="classtvm_1_1tir_1_1Layout.html" title="Managed reference to LayoutNode. ">Layout</a>, < [...]
+<tr id="row_107_207_" 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="classtvm_1_1tir_1_1BlockRV.html" target="_self">tvm::tir::BlockRV</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html" title="A random variable that evaluates to a TensorIR block. ">BlockRVNode</a> </td></tr>
+<tr id="row_107_208_" 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="classtvm_1_1tir_1_1BlockScope.html" target="_self">tvm::tir::BlockScope</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html" title="An object with 1-to-1 correspondence with each block reference in the sref tree. This data structu [...]
+<tr id="row_107_209_" 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="classtvm_1_1tir_1_1Buffer.html" target="_self">tvm::tir::Buffer</a></td><td class="desc"><a class="el" href="classtvm_1_1tir_1_1Buffer.html" title="Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types...">Buffer</a> is a symbolic n-darray structur [...]
+<tr id="row_107_210_" 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="classtvm_1_1tir_1_1BufferRegion.html" target="_self">tvm::tir::BufferRegion</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferRegionNode.html" title="Representing the region of multi-dimensional buffer access. ">BufferRegionNode</a> </td></tr>
+<tr id="row_107_211_" 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="classtvm_1_1tir_1_1CommReducer.html" target="_self">tvm::tir::CommReducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html" title="A commutative reducer node to represent a commutative binary operator with identity element..." [...]
+<tr id="row_107_212_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_212_" class="arrow" onclick="toggleFolder('107_212_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1DataProducer.html" target="_self">tvm::tir::DataProducer</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html" title="Base  [...]
+<tr id="row_107_212_0_" 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_1te_1_1Tensor.html" target="_self">tvm::te::Tensor</a></td><td class="desc"><a class="el" href="classtvm_1_1te_1_1Tensor.html" title="Tensor structure representing a possible input, or intermediate computation result. ">Tensor</a> structure representing a possible input [...]
+<tr id="row_107_213_" 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="classtvm_1_1tir_1_1Dependency.html" target="_self">tvm::tir::Dependency</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1DependencyNode.html" title="A tuple (src, dst, kind) representing certain types of dependency. For example, (A, B, kRAW) means [...]
+<tr id="row_107_214_" 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="classtvm_1_1tir_1_1IndexMap.html" target="_self">tvm::tir::IndexMap</a></td><td class="desc"></td></tr>
+<tr id="row_107_215_" 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="classtvm_1_1tir_1_1Instruction.html" target="_self">tvm::tir::Instruction</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1InstructionNode.html" title="Schedule instructions each corresponds to a schedule primitive. ">InstructionNode</a> </td></tr>
+<tr id="row_107_216_" 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="classtvm_1_1tir_1_1InstructionKind.html" target="_self">tvm::tir::InstructionKind</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1InstructionKindNode.html" title="Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of i [...]
+<tr id="row_107_217_" 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="classtvm_1_1tir_1_1IterVar.html" target="_self">tvm::tir::IterVar</a></td><td class="desc">Iteration Variable, represents an iteration over an integer interval </td></tr>
+<tr id="row_107_218_" 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="classtvm_1_1tir_1_1Layout.html" target="_self">tvm::tir::Layout</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LayoutNode.html" title="Layout is to describe how data is organized within an N-dimention tensor. It is composed of upper cas...">Layo [...]
+<tr id="row_107_219_" 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="classtvm_1_1tir_1_1LoopRV.html" target="_self">tvm::tir::LoopRV</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LoopRVNode.html" title="A random variable that evaluates to a TensorIR for loop. ">LoopRVNode</a> </td></tr>
+<tr id="row_107_220_" 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="classtvm_1_1tir_1_1MatchBufferRegion.html" target="_self">tvm::tir::MatchBufferRegion</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1MatchBufferRegionNode.html" title="Match introduces a constraint that the source buffer region can be remapped t [...]
+<tr id="row_107_221_" 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="classtvm_1_1tir_1_1Schedule.html" target="_self">tvm::tir::Schedule</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ScheduleNode.html" title="The user-facing schedule class. ">ScheduleNode</a> </td></tr>
+<tr id="row_107_222_" 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="classtvm_1_1tir_1_1ScheduleState.html" target="_self">tvm::tir::ScheduleState</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ScheduleStateNode.html" title="The state of scheduling, which exposes a Replace method as the primary interface for all  [...]
+<tr id="row_107_223_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_223_" class="arrow" onclick="toggleFolder('107_223_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tir_1_1Stmt.html" target="_self">tvm::tir::Stmt</a></td><td class="desc">Container of all statements </td></tr>
+<tr id="row_107_223_0_" 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_1tir_1_1Allocate.html" target="_self">tvm::tir::Allocate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AllocateNode.html" title="Allocate a buffer that can be used in body. ">AllocateNode</a> </td></tr>
+<tr id="row_107_223_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="classtvm_1_1tir_1_1AllocateConst.html" target="_self">tvm::tir::AllocateConst</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html" title="Allocate a buffer that can be used in body. ">AllocateConstNode</a> </td></tr>
+<tr id="row_107_223_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="classtvm_1_1tir_1_1AssertStmt.html" target="_self">tvm::tir::AssertStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html" title="Assert condition, if an error occurs, return the error message. ">AssertStmtNode</a> </td></tr>
+<tr id="row_107_223_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_1tir_1_1AttrStmt.html" target="_self">tvm::tir::AttrStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html" title="Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary inform. [...]
+<tr id="row_107_223_4_" 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_1tir_1_1Block.html" target="_self">tvm::tir::Block</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockNode.html" title="A block is a basic schedule unit in TIR. ">BlockNode</a> </td></tr>
+<tr id="row_107_223_5_" 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_1tir_1_1BlockRealize.html" target="_self">tvm::tir::BlockRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html" title="A block realization node represents execution of the block at the binding values. ...">Blo [...]
+<tr id="row_107_223_6_" 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_1tir_1_1BufferRealize.html" target="_self">tvm::tir::BufferRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html" title="Annotate the region where the buffer need to be read and write in the body. We only nee [...]
+<tr id="row_107_223_7_" 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_1tir_1_1BufferStore.html" target="_self">tvm::tir::BufferStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html" title="Store value to the high dimension buffer. ">BufferStoreNode</a> </td></tr>
+<tr id="row_107_223_8_" 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_1tir_1_1Evaluate.html" target="_self">tvm::tir::Evaluate</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html" title="Evaluates an expression. This is mostly used for putting a Call node into Stmt. ">EvaluateNode</a> </td></tr>
+<tr id="row_107_223_9_" 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_1tir_1_1For.html" target="_self">tvm::tir::For</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ForNode.html" title="A for loop, with poissible type annotations. ">ForNode</a> </td></tr>
+<tr id="row_107_223_10_" 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_1tir_1_1IfThenElse.html" target="_self">tvm::tir::IfThenElse</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html" title="IfThenElse statment. ">IfThenElseNode</a> </td></tr>
+<tr id="row_107_223_11_" 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_1tir_1_1LetStmt.html" target="_self">tvm::tir::LetStmt</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html" title="Let binding, bind var to value, then run body. ">LetStmtNode</a> </td></tr>
+<tr id="row_107_223_12_" 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_1tir_1_1Prefetch.html" target="_self">tvm::tir::Prefetch</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html" title="A prefetch hint for a buffer. ">PrefetchNode</a> </td></tr>
+<tr id="row_107_223_13_" 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_1tir_1_1ProducerRealize.html" target="_self">tvm::tir::ProducerRealize</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerRealizeNode.html" title="Annotate the bounds where the data produced by the producer need to be written a [...]
+<tr id="row_107_223_14_" 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_1tir_1_1ProducerStore.html" target="_self">tvm::tir::ProducerStore</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1ProducerStoreNode.html" title="Store value into mult-dimensional array that will be read by the consumer of the produ [...]
+<tr id="row_107_223_15_" 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_1tir_1_1SeqStmt.html" target="_self">tvm::tir::SeqStmt</a></td><td class="desc">Sequence statement </td></tr>
+<tr id="row_107_223_16_" 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_1tir_1_1Store.html" target="_self">tvm::tir::Store</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StoreNode.html" title="Store value to the buffer. ">StoreNode</a> </td></tr>
+<tr id="row_107_223_17_" 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_1tir_1_1While.html" target="_self">tvm::tir::While</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1WhileNode.html" title="A While loop. ">WhileNode</a> </td></tr>
+<tr id="row_107_224_" 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="classtvm_1_1tir_1_1StmtSRef.html" target="_self">tvm::tir::StmtSRef</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1StmtSRefNode.html" title="An object that refers to schedulable elements (block/for-loop) in TensorIR, aka &quot;sref&quot;. ">Stmt [...]
+<tr id="row_107_225_" 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="classtvm_1_1tir_1_1TensorIntrin.html" target="_self">tvm::tir::TensorIntrin</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1TensorIntrinNode.html" title="Tensor intrinsics for tensorization. ">TensorIntrinNode</a> </td></tr>
+<tr id="row_107_226_" 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="classtvm_1_1tir_1_1Trace.html" target="_self">tvm::tir::Trace</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1tir_1_1TraceNode.html" title="An execution trace of a scheduling program. ">TraceNode</a> </td></tr>
+<tr id="row_107_227_" 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="classtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfo.html" target="_self">tvm::tir::usmp::AllocatedPoolInfo</a></td><td class="desc"></td></tr>
+<tr id="row_107_228_" 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="classtvm_1_1tir_1_1usmp_1_1BufferInfo.html" target="_self">tvm::tir::usmp::BufferInfo</a></td><td class="desc"></td></tr>
+<tr id="row_107_229_" 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="classtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysis.html" target="_self">tvm::tir::usmp::BufferInfoAnalysis</a></td><td class="desc"></td></tr>
+<tr id="row_107_230_" 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="classtvm_1_1tir_1_1usmp_1_1PoolAllocation.html" target="_self">tvm::tir::usmp::PoolAllocation</a></td><td class="desc"></td></tr>
+<tr id="row_107_231_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_231_" class="arrow" onclick="toggleFolder('107_231_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1transform_1_1Pass.html" target="_self">tvm::transform::Pass</a></td><td class="desc"></td></tr>
+<tr id="row_107_231_0_" 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_1transform_1_1Sequential.html" target="_self">tvm::transform::Sequential</a></td><td class="desc"></td></tr>
+<tr id="row_107_232_" 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="classtvm_1_1transform_1_1PassContext.html" target="_self">tvm::transform::PassContext</a></td><td class="desc"><a class="el" href="classtvm_1_1transform_1_1PassContext.html" title="PassContext that is used to configure the pass behavior. ">PassContext</a> that is used to configure t [...]
+<tr id="row_107_233_" 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="classtvm_1_1transform_1_1PassInfo.html" target="_self">tvm::transform::PassInfo</a></td><td class="desc">Managed reference class for <a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html" title="Meta data that will be used to help optimization and analysis. ">PassInfoNode</ [...]
+<tr id="row_107_234_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_107_234_" class="arrow" onclick="toggleFolder('107_234_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1Type.html" target="_self">tvm::Type</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeNode.html" title="Type is the base type of all types. ">TypeNode</ [...]
+<tr id="row_107_234_0_" 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_1BaseTensorType.html" target="_self">tvm::BaseTensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseTensorTypeNode.html" title="Base of all Tensor types This container can hold TensorType or GenericTensorType. ...">BaseTensorTypeNo [...]
+<tr id="row_107_234_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="classtvm_1_1FuncType.html" target="_self">tvm::FuncType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1FuncTypeNode.html" title="Function type. ">FuncTypeNode</a> </td></tr>
+<tr id="row_107_234_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="classtvm_1_1GlobalTypeVar.html" target="_self">tvm::GlobalTypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1GlobalTypeVarNode.html" title="A global type variable that is used for defining new types or type aliases. ">GlobalTypeVarNode</a> </td></tr>
+<tr id="row_107_234_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_1IncompleteType.html" target="_self">tvm::IncompleteType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1IncompleteTypeNode.html" title="Intermediate values that is used to indicate incomplete type during type inference. ">IncompleteTypeNod [...]
+<tr id="row_107_234_4_" 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_1PointerType.html" target="_self">tvm::PointerType</a></td><td class="desc"></td></tr>
+<tr id="row_107_234_5_" 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_1PrimType.html" target="_self">tvm::PrimType</a></td><td class="desc"></td></tr>
+<tr id="row_107_234_6_" 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_1RelayRefType.html" target="_self">tvm::RelayRefType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1RelayRefTypeNode.html" title="Reference Type High-level Relay IR. ">RelayRefTypeNode</a> </td></tr>
+<tr id="row_107_234_7_" 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_1TensorType.html" target="_self">tvm::TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TensorTypeNode.html" title="This is the most commonly used type in relay. TensorType have a fixed dimension, data type...">TensorTypeNode</a> < [...]
+<tr id="row_107_234_8_" 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_1TupleType.html" target="_self">tvm::TupleType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TupleTypeNode.html" title="The type of tuple values. ">TupleTypeNode</a> </td></tr>
+<tr id="row_107_234_9_" 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_1TypeCall.html" target="_self">tvm::TypeCall</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeCallNode.html" title="Type function application. ">TypeCallNode</a> </td></tr>
+<tr id="row_107_234_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_107_234_10_" class="arrow" onclick="toggleFolder('107_234_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1TypeConstraint.html" target="_self">tvm::TypeConstraint</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeConstraintNode.html" title="Potential [...]
+<tr id="row_107_234_10_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="classtvm_1_1TypeRelation.html" target="_self">tvm::TypeRelation</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeRelationNode.html" title="User defined type relation, it is an input-output relation on types. ">TypeRelationNode</a> </td></tr>
+<tr id="row_107_234_11_" 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_1TypeData.html" target="_self">tvm::TypeData</a></td><td class="desc">Stores all data for an Algebraic Data <a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> (ADT) </td></tr>
+<tr id="row_107_234_12_" 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_1TypeVar.html" target="_self">tvm::TypeVar</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1TypeVarNode.html" title="Type parameter in functions. ">TypeVarNode</a> </td></tr>
+<tr id="row_107_235_" 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="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html" target="_self">tvm::TypedEnvFunc&lt; R(Args...)&gt;</a></td><td class="desc">A typed version of <a class="el" href="classtvm_1_1EnvFunc.html" title="Managed reference to EnvFuncNode. ">EnvFunc</a>. It is backed by a GlobalFuncNo [...]
+<tr id="row_107_236_" 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="classtvm_1_1TypeReporter.html" target="_self">tvm::TypeReporter</a></td><td class="desc">Container class of <a class="el" href="classtvm_1_1TypeReporter.html" title="Container class of TypeReporter. ">TypeReporter</a> </td></tr>
+<tr id="row_107_237_" 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="classtvm_1_1VirtualDevice.html" target="_self">tvm::VirtualDevice</a></td><td class="desc">Managed reference class to <code><a class="el" href="classtvm_1_1VirtualDeviceNode.html" title="Describes at compile time the constraints on where data is to be stored at runtime down to the ( [...]
+<tr id="row_107_238_" 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="classtvm_1_1WorkspaceMemoryPools.html" target="_self">tvm::WorkspaceMemoryPools</a></td><td class="desc"></td></tr>
 <tr id="row_108_" 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_1_1runtime_1_1ObjectTypeChecker.html" target="_self">tvm::runtime::ObjectTypeChecker&lt; T &gt;</a></td><td class="desc"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode. ">Type</a> traits for runtime type check during FFI conversion </td></tr>
 <tr id="row_109_"><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_1_1runtime_1_1ObjectTypeChecker_3_01Array_3_01T_01_4_01_4.html" target="_self">tvm::runtime::ObjectTypeChecker&lt; Array&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_110_" 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_1_1runtime_1_1ObjectTypeChecker_3_01Map_3_01K_00_01V_01_4_01_4.html" target="_self">tvm::runtime::ObjectTypeChecker&lt; Map&lt; K, V &gt; &gt;</a></td><td class="desc"></td></tr>
@@ -1311,7 +1312,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_194_" 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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; String(const Array&lt; ObjectRef &gt; &amp;inputs, const Array&lt; ObjectRef &gt; &amp;attrs, const Optional&lt; ObjectRef &gt; &amp;decision, const Array&lt; String &gt; &amp;outputs)&gt;</a></td><td class="desc">< [...]
 <tr id="row_195_"><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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; te::Schedule(const Attrs &amp;attrs, const Array&lt; te::Tensor &gt; &amp;outs, const Target &amp;target)&gt;</a></td><td class="desc"></td></tr>
 <tr id="row_196_" 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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; void()&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_197_"><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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; void(const Array&lt; tir::Schedule &gt; &amp;)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_197_"><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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; void(const Array&lt; tir::Schedule &gt; &amp;, const Optional&lt; Database &gt; &amp;, const Optional&lt; CostModel &gt; &amp;)&gt;</a></td><td class="desc"></td></tr>
 <tr id="row_198_" 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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; void(const TaskScheduler &amp;task_scheduler, int task_id, const Array&lt; MeasureCandidate &gt; &amp;measure_candidates, const Array&lt; BuilderResult &gt; &amp;builds, const Array&lt; RunnerResult &gt; &amp;result [...]
 <tr id="row_199_"><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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; void(const TuneContext &amp;)&gt;</a></td><td class="desc"></td></tr>
 <tr id="row_200_" 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_1TypedPackedFunc.html" target="_self">tvm::runtime::TypedPackedFunc&lt; void(const TuneContext &amp;, const Array&lt; MeasureCandidate &gt; &amp;, const Array&lt; RunnerResult &gt; &amp;)&gt;</a></td><td class="desc"></td></tr>
diff --git a/docs/reference/api/doxygen/inherit_graph_10.svg b/docs/reference/api/doxygen/inherit_graph_10.svg
index d40140c67..6c2153917 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"/>
-<!-- Node1216 -->
+<!-- Node1217 -->
 <g id="node1" class="node">
-<title>Node1216</title>
+<title>Node1217</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>
-<!-- Node1216&#45;&gt;Node0 -->
+<!-- Node1217&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
-<title>Node1216&#45;&gt;Node0</title>
+<title>Node1217&#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>
-<!-- Node1218 -->
+<!-- Node1219 -->
 <g id="node3" class="node">
-<title>Node1218</title>
+<title>Node1219</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>
-<!-- Node1216&#45;&gt;Node1218 -->
+<!-- Node1217&#45;&gt;Node1219 -->
 <g id="edge2" class="edge">
-<title>Node1216&#45;&gt;Node1218</title>
+<title>Node1217&#45;&gt;Node1219</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 48d8d1c26..c9fb8f120 100644
--- a/docs/reference/api/doxygen/inherit_graph_107.svg
+++ b/docs/reference/api/doxygen/inherit_graph_107.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 11165)">
 <title>Graphical Class Hierarchy</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11165 1069,-11165 1069,4 -4,4"/>
-<!-- Node1226 -->
+<!-- Node1227 -->
 <g id="node1" class="node">
-<title>Node1226</title>
+<title>Node1227</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,-9693 20,-9723 148,-9723 148,-9693 20,-9693"/>
 <text text-anchor="start" x="28" y="-9711" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::NDArray</text>
@@ -29,15 +29,15 @@
 </a>
 </g>
 </g>
-<!-- Node1226&#45;&gt;Node504 -->
+<!-- Node1227&#45;&gt;Node504 -->
 <g id="edge1" class="edge">
-<title>Node1226&#45;&gt;Node504</title>
+<title>Node1227&#45;&gt;Node504</title>
 <path fill="none" stroke="#191970" d="M158.2796,-9707.3278C184.9735,-9707.0862 214.8383,-9706.8159 240.6206,-9706.5826"/>
 <polygon fill="#191970" stroke="#191970" points="158.1871,-9703.8284 148.2192,-9707.4188 158.2505,-9710.8281 158.1871,-9703.8284"/>
 </g>
-<!-- Node1173 -->
+<!-- Node1174 -->
 <g id="node3" class="node">
-<title>Node1173</title>
+<title>Node1174</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,-2542 222.5,-2572 387.5,-2572 387.5,-2542 222.5,-2542"/>
 <text text-anchor="start" x="230.5" y="-2560" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
@@ -54,15 +54,15 @@
 </a>
 </g>
 </g>
-<!-- Node1173&#45;&gt;Node496 -->
+<!-- Node1174&#45;&gt;Node496 -->
 <g id="edge2" class="edge">
-<title>Node1173&#45;&gt;Node496</title>
+<title>Node1174&#45;&gt;Node496</title>
 <path fill="none" stroke="#191970" d="M396.3329,-2541.0543C399.8769,-2538.4319 403.1333,-2535.4308 406,-2532 486.2427,-2435.967 359.373,-2063.9894 442,-1970 446.8961,-1964.4306 452.8983,-1960.1961 459.4968,-1957.0052"/>
 <polygon fill="#191970" stroke="#191970" points="394.2206,-2538.2468 387.5897,-2546.51 397.9264,-2544.1855 394.2206,-2538.2468"/>
 </g>
-<!-- Node1172 -->
+<!-- Node1173 -->
 <g id="node5" class="node">
-<title>Node1172</title>
+<title>Node1173</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,-9644 7.5,-9674 160.5,-9674 160.5,-9644 7.5,-9644"/>
 <text text-anchor="start" x="15.5" y="-9662" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
@@ -79,15 +79,15 @@
 </a>
 </g>
 </g>
-<!-- Node1172&#45;&gt;Node489 -->
+<!-- Node1173&#45;&gt;Node489 -->
 <g id="edge3" class="edge">
-<title>Node1172&#45;&gt;Node489</title>
+<title>Node1173&#45;&gt;Node489</title>
 <path fill="none" stroke="#191970" d="M170.9456,-9659C195.1707,-9659 220.9797,-9659 243.4174,-9659"/>
 <polygon fill="#191970" stroke="#191970" points="170.6749,-9655.5001 160.6748,-9659 170.6748,-9662.5001 170.6749,-9655.5001"/>
 </g>
-<!-- Node1171 -->
+<!-- Node1172 -->
 <g id="node7" class="node">
-<title>Node1171</title>
+<title>Node1172</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,-9595 0,-9625 168,-9625 168,-9595 0,-9595"/>
 <text text-anchor="start" x="8" y="-9613" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::InplaceArray</text>
@@ -104,9 +104,9 @@
 </a>
 </g>
 </g>
-<!-- Node1171&#45;&gt;Node490 -->
+<!-- Node1172&#45;&gt;Node490 -->
 <g id="edge4" class="edge">
-<title>Node1171&#45;&gt;Node490</title>
+<title>Node1172&#45;&gt;Node490</title>
 <path fill="none" stroke="#191970" d="M178.2093,-9614.6892C197.5291,-9615.6508 217.5282,-9616.6462 235.774,-9617.5544"/>
 <polygon fill="#191970" stroke="#191970" points="178.3427,-9611.1916 168.1811,-9614.19 177.9947,-9618.1829 178.3427,-9611.1916"/>
 </g>
diff --git a/docs/reference/api/doxygen/inherit_graph_116.svg b/docs/reference/api/doxygen/inherit_graph_116.svg
index 19c5f229f..4324d4dec 100644
--- a/docs/reference/api/doxygen/inherit_graph_116.svg
+++ b/docs/reference/api/doxygen/inherit_graph_116.svg
@@ -4,17 +4,17 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: Graphical Class Hierarchy Pages: 1 -->
-<svg width="971pt" height="11356pt"
- viewBox="0.00 0.00 971.00 11355.50" 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 11351.5)">
+<svg width="971pt" height="11416pt"
+ viewBox="0.00 0.00 971.00 11415.50" 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 11411.5)">
 <title>Graphical Class Hierarchy</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11351.5 967,-11351.5 967,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11411.5 967,-11411.5 967,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
 <g id="a_node1"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-5131.5 0,-5150.5 134,-5150.5 134,-5131.5 0,-5131.5"/>
-<text text-anchor="middle" x="67" y="-5138.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-5156.5 0,-5175.5 134,-5175.5 134,-5156.5 0,-5156.5"/>
+<text text-anchor="middle" x="67" y="-5163.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
 </a>
 </g>
 </g>
@@ -22,6128 +22,6145 @@
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; Range \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-11317 237,-11347 350,-11347 350,-11317 237,-11317"/>
-<text text-anchor="start" x="245" y="-11335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-11324" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; Range &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-11377 237,-11407 350,-11407 350,-11377 237,-11377"/>
+<text text-anchor="start" x="245" y="-11395" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11384" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; Range &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node0&#45;&gt;Node1</title>
-<path fill="none" stroke="#191970" d="M67.1595,-5161.0275C70.2165,-5542.4402 116.8001,-11244.5534 170,-11308 186.0688,-11327.1638 212.4693,-11333.9861 236.745,-11335.6731"/>
-<polygon fill="#191970" stroke="#191970" points="70.6584,-5160.8701 67.0785,-5150.8985 63.6586,-5160.9262 70.6584,-5160.8701"/>
+<path fill="none" stroke="#191970" d="M67.1539,-5185.5698C70.1502,-5563.9825 116.4746,-11304.159 170,-11368 186.0679,-11387.1646 212.4683,-11393.987 236.7442,-11395.6738"/>
+<polygon fill="#191970" stroke="#191970" points="70.6537,-5185.5193 67.0748,-5175.5473 63.654,-5185.5747 70.6537,-5185.5193"/>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; Region \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-11268 237,-11298 350,-11298 350,-11268 237,-11268"/>
-<text text-anchor="start" x="245" y="-11286" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-11275" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; Region &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-11328 237,-11358 350,-11358 350,-11328 237,-11328"/>
+<text text-anchor="start" x="245" y="-11346" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; Region &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node0&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M67.1609,-5160.8684C70.2445,-5539.2508 117.2185,-11196.0609 170,-11259 186.0701,-11278.1627 212.4707,-11284.9849 236.7462,-11286.6721"/>
-<polygon fill="#191970" stroke="#191970" points="70.6605,-5160.791 67.0792,-5150.8198 63.6607,-5160.848 70.6605,-5160.791"/>
+<path fill="none" stroke="#191970" d="M67.1599,-5185.982C70.2245,-5566.5289 116.9197,-11255.6984 170,-11319 186.0692,-11338.1635 212.4697,-11344.9858 236.7453,-11346.6728"/>
+<polygon fill="#191970" stroke="#191970" points="70.659,-5185.8475 67.0787,-5175.876 63.6592,-5185.9038 70.659,-5185.8475"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::arith::IterSplitExpr \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="217,-11219 217,-11249 370,-11249 370,-11219 217,-11219"/>
-<text text-anchor="start" x="225" y="-11237" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-11226" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::arith::IterSplitExpr &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="217,-11279 217,-11309 370,-11309 370,-11279 217,-11279"/>
+<text text-anchor="start" x="225" y="-11297" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11286" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::arith::IterSplitExpr &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node0&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M67.1646,-5160.988C70.2958,-5538.8294 117.6498,-11147.5838 170,-11210 181.7202,-11223.9738 198.9337,-11231.3852 216.8102,-11235.0285"/>
-<polygon fill="#191970" stroke="#191970" points="70.6625,-5160.7119 67.0799,-5150.7412 63.6628,-5160.7698 70.6625,-5160.7119"/>
+<path fill="none" stroke="#191970" d="M67.1613,-5185.8229C70.2525,-5563.3395 117.3381,-11207.2059 170,-11270 181.7195,-11283.9744 198.9328,-11291.3859 216.8092,-11295.0292"/>
+<polygon fill="#191970" stroke="#191970" points="70.661,-5185.7684 67.0794,-5175.7974 63.6613,-5185.8256 70.661,-5185.7684"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::arith::IterSumExpr \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="217,-11170 217,-11200 370,-11200 370,-11170 217,-11170"/>
-<text text-anchor="start" x="225" y="-11188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-11177" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::arith::IterSumExpr &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="217,-11230 217,-11260 370,-11260 370,-11230 217,-11230"/>
+<text text-anchor="start" x="225" y="-11248" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11237" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::arith::IterSumExpr &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node0&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M67.166,-5160.8266C70.324,-5535.6176 118.0681,-11099.0912 170,-11161 181.7212,-11174.973 198.935,-11182.3841 216.8115,-11186.0274"/>
-<polygon fill="#191970" stroke="#191970" points="70.6646,-5160.6327 67.0806,-5150.6625 63.6648,-5160.6916 70.6646,-5160.6327"/>
+<path fill="none" stroke="#191970" d="M67.165,-5185.9419C70.3039,-5562.9117 117.7693,-11158.7288 170,-11221 181.7205,-11234.9736 198.9341,-11242.3849 216.8105,-11246.0281"/>
+<polygon fill="#191970" stroke="#191970" points="70.6631,-5185.6893 67.0801,-5175.7187 63.6634,-5185.7475 70.6631,-5185.6893"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
 <title>Node5</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::AttrFieldInfo \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="231.5,-11121 231.5,-11151 355.5,-11151 355.5,-11121 231.5,-11121"/>
-<text text-anchor="start" x="239.5" y="-11139" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-11128" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::AttrFieldInfo &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="231.5,-11181 231.5,-11211 355.5,-11211 355.5,-11181 231.5,-11181"/>
+<text text-anchor="start" x="239.5" y="-11199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::AttrFieldInfo &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node0&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M67.1683,-5160.6613C70.3689,-5532.3268 118.7344,-11049.4087 170,-11111 184.8345,-11128.8224 208.558,-11136.1719 231.2659,-11138.6656"/>
-<polygon fill="#191970" stroke="#191970" points="70.6676,-5160.5515 67.0817,-5150.582 63.6678,-5160.6117 70.6676,-5160.5515"/>
+<path fill="none" stroke="#191970" d="M67.1673,-5185.7765C70.3489,-5559.6209 118.4371,-11109.0452 170,-11171 184.8336,-11188.8232 208.557,-11196.1727 231.265,-11198.6664"/>
+<polygon fill="#191970" stroke="#191970" points="70.6661,-5185.608 67.0812,-5175.6381 63.6663,-5185.6675 70.6661,-5185.608"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
 <title>Node6</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::auto_scheduler\l::Iterator \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-11060.5 229.5,-11101.5 357.5,-11101.5 357.5,-11060.5 229.5,-11060.5"/>
-<text text-anchor="start" x="237.5" y="-11089.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-11078.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-11067.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Iterator &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-11120.5 229.5,-11161.5 357.5,-11161.5 357.5,-11120.5 229.5,-11120.5"/>
+<text text-anchor="start" x="237.5" y="-11149.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-11138.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-11127.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Iterator &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node0&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M67.0055,-5160.7991C67.1468,-5529.5575 70.9081,-10927.1911 170,-11051 184.2699,-11068.8294 207.1881,-11077.1457 229.4291,-11080.7269"/>
-<polygon fill="#191970" stroke="#191970" points="70.5056,-5160.7714 67.0021,-5150.7726 63.5056,-5160.7739 70.5056,-5160.7714"/>
+<path fill="none" stroke="#191970" d="M67.1731,-5185.5756C70.4635,-5555.6226 120.139,-11048.6954 170,-11111 184.269,-11128.8301 207.187,-11137.1466 229.4281,-11140.7276"/>
+<polygon fill="#191970" stroke="#191970" points="70.6727,-5185.5087 67.084,-5175.5402 63.673,-5185.5709 70.6727,-5185.5087"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::auto_scheduler\l::Stage \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-11000.5 229.5,-11041.5 357.5,-11041.5 357.5,-11000.5 229.5,-11000.5"/>
-<text text-anchor="start" x="237.5" y="-11029.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-11018.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-11007.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Stage &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-11060.5 229.5,-11101.5 357.5,-11101.5 357.5,-11060.5 229.5,-11060.5"/>
+<text text-anchor="start" x="237.5" y="-11089.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-11078.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-11067.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Stage &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node0&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M67.0091,-5160.8693C67.2171,-5528.2495 71.927,-10868.4867 170,-10991 184.2715,-11008.8281 207.19,-11017.1442 229.4308,-11020.7255"/>
-<polygon fill="#191970" stroke="#191970" points="70.5091,-5160.6716 67.0038,-5150.6734 63.5091,-5160.6753 70.5091,-5160.6716"/>
+<path fill="none" stroke="#191970" d="M67.007,-5185.9881C67.1772,-5555.566 71.3469,-10927.7488 170,-11051 184.2706,-11068.8288 207.1889,-11077.1451 229.4298,-11080.7263"/>
+<polygon fill="#191970" stroke="#191970" points="70.507,-5185.7298 67.0028,-5175.7313 63.507,-5185.7328 70.507,-5185.7298"/>
 </g>
 <!-- Node8 -->
 <g id="node9" class="node">
 <title>Node8</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::auto_scheduler\l::Step \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10940.5 229.5,-10981.5 357.5,-10981.5 357.5,-10940.5 229.5,-10940.5"/>
-<text text-anchor="start" x="237.5" y="-10969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-10958.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-10947.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Step &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-11000.5 229.5,-11041.5 357.5,-11041.5 357.5,-11000.5 229.5,-11000.5"/>
+<text text-anchor="start" x="237.5" y="-11029.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-11018.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-11007.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Step &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node0&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M67.0126,-5160.6655C67.2856,-5524.2783 72.9215,-10809.7517 170,-10931 184.2732,-10948.8268 207.1919,-10957.1426 229.4325,-10960.7241"/>
-<polygon fill="#191970" stroke="#191970" points="70.5127,-5160.5717 67.0055,-5150.5742 63.5127,-5160.5767 70.5127,-5160.5717"/>
+<path fill="none" stroke="#191970" d="M67.0106,-5185.7844C67.2456,-5551.5948 72.3414,-10869.0138 170,-10991 184.2722,-11008.8275 207.1908,-11017.1435 229.4315,-11020.7249"/>
+<polygon fill="#191970" stroke="#191970" points="70.5106,-5185.63 67.0045,-5175.6321 63.5106,-5185.6342 70.5106,-5185.63"/>
 </g>
 <!-- Node9 -->
 <g id="node10" class="node">
 <title>Node9</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::Constructor \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="233,-10891 233,-10921 354,-10921 354,-10891 233,-10891"/>
-<text text-anchor="start" x="241" y="-10909" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10898" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Constructor &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="233,-10951 233,-10981 354,-10981 354,-10951 233,-10951"/>
+<text text-anchor="start" x="241" y="-10969" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10958" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Constructor &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node9 -->
 <g id="edge9" class="edge">
 <title>Node0&#45;&gt;Node9</title>
-<path fill="none" stroke="#191970" d="M67.0059,-5161.0521C67.1553,-5526.4351 71.0228,-10764.1073 170,-10882 185.238,-10900.1502 209.7438,-10907.2264 232.9242,-10909.3552"/>
-<polygon fill="#191970" stroke="#191970" points="70.506,-5160.8842 67.0023,-5150.8855 63.506,-5160.8868 70.506,-5160.8842"/>
+<path fill="none" stroke="#191970" d="M67.1805,-5185.8368C70.5385,-5552.5921 120.1881,-10882.662 170,-10942 185.237,-10960.151 209.7427,-10967.2273 232.9232,-10969.356"/>
+<polygon fill="#191970" stroke="#191970" points="70.6789,-5185.6257 67.0876,-5175.6581 63.6792,-5185.6896 70.6789,-5185.6257"/>
 </g>
 <!-- Node10 -->
 <g id="node11" class="node">
 <title>Node10</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::Diagnostic \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-10842 235.5,-10872 351.5,-10872 351.5,-10842 235.5,-10842"/>
-<text text-anchor="start" x="243.5" y="-10860" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10849" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Diagnostic &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-10902 235.5,-10932 351.5,-10932 351.5,-10902 235.5,-10902"/>
+<text text-anchor="start" x="243.5" y="-10920" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10909" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Diagnostic &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node10 -->
 <g id="edge10" class="edge">
 <title>Node0&#45;&gt;Node10</title>
-<path fill="none" stroke="#191970" d="M67.009,-5160.881C67.2136,-5523.1459 71.8583,-10716.1208 170,-10833 185.8013,-10851.8181 211.5649,-10858.7317 235.4834,-10860.5696"/>
-<polygon fill="#191970" stroke="#191970" points="70.5091,-5160.7993 67.0038,-5150.8012 63.5091,-5160.803 70.5091,-5160.7993"/>
+<path fill="none" stroke="#191970" d="M67.0068,-5186.0032C67.172,-5550.4953 71.2615,-10775.3969 170,-10893 185.8002,-10911.819 211.5637,-10918.7327 235.4824,-10920.5704"/>
+<polygon fill="#191970" stroke="#191970" points="70.5069,-5185.86 67.0027,-5175.8614 63.5069,-5185.8629 70.5069,-5185.86"/>
 </g>
 <!-- Node11 -->
 <g id="node12" class="node">
 <title>Node11</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::FloatImm \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10793 237,-10823 350,-10823 350,-10793 237,-10793"/>
-<text text-anchor="start" x="245" y="-10811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10800" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::FloatImm &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10853 237,-10883 350,-10883 350,-10853 237,-10853"/>
+<text text-anchor="start" x="245" y="-10871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10860" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::FloatImm &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node11 -->
 <g id="edge11" class="edge">
 <title>Node0&#45;&gt;Node11</title>
-<path fill="none" stroke="#191970" d="M67.0122,-5160.9766C67.2746,-5522.3975 72.7178,-10668.1629 170,-10784 186.0837,-10803.1514 212.4857,-10809.9723 236.7586,-10811.6617"/>
-<polygon fill="#191970" stroke="#191970" points="70.5122,-5160.7144 67.0053,-5150.7168 63.5122,-5160.7192 70.5122,-5160.7144"/>
+<path fill="none" stroke="#191970" d="M67.0099,-5185.8321C67.2303,-5547.2061 72.097,-10727.4104 170,-10844 186.0826,-10863.1523 212.4846,-10869.9733 236.7576,-10871.6625"/>
+<polygon fill="#191970" stroke="#191970" points="70.5099,-5185.7751 67.0042,-5175.7771 63.5099,-5185.7791 70.5099,-5185.7751"/>
 </g>
 <!-- Node12 -->
 <g id="node13" class="node">
 <title>Node12</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::instrument::PassInstrument \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="194,-10744 194,-10774 393,-10774 393,-10744 194,-10744"/>
-<text text-anchor="start" x="202" y="-10762" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10751" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::instrument::PassInstrument &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="194,-10804 194,-10834 393,-10834 393,-10804 194,-10804"/>
+<text text-anchor="start" x="202" y="-10822" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10811" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::instrument::PassInstrument &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node12 -->
 <g id="edge12" class="edge">
 <title>Node0&#45;&gt;Node12</title>
-<path fill="none" stroke="#191970" d="M67.0153,-5160.8032C67.3333,-5519.0862 73.553,-10620.1761 170,-10735 176.5324,-10742.7771 184.7664,-10748.5208 193.8683,-10752.7131"/>
-<polygon fill="#191970" stroke="#191970" points="70.5153,-5160.6295 67.0068,-5150.6324 63.5153,-5160.6354 70.5153,-5160.6295"/>
+<path fill="none" stroke="#191970" d="M67.0131,-5185.9271C67.2914,-5546.4514 72.9564,-10679.4523 170,-10795 176.532,-10802.7775 184.7657,-10808.5214 193.8674,-10812.7139"/>
+<polygon fill="#191970" stroke="#191970" points="70.5131,-5185.6901 67.0057,-5175.6927 63.5131,-5185.6953 70.5131,-5185.6901"/>
 </g>
 <!-- Node13 -->
 <g id="node14" class="node">
 <title>Node13</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::Integer \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10695 237,-10725 350,-10725 350,-10695 237,-10695"/>
-<text text-anchor="start" x="245" y="-10713" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10702" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Integer &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10755 237,-10785 350,-10785 350,-10755 237,-10755"/>
+<text text-anchor="start" x="245" y="-10773" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10762" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Integer &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node13 -->
 <g id="edge13" class="edge">
 <title>Node0&#45;&gt;Node13</title>
-<path fill="none" stroke="#191970" d="M67.0184,-5160.6298C67.392,-5515.7749 74.3883,-10572.1893 170,-10686 186.0868,-10705.1488 212.4892,-10711.9695 236.7614,-10713.6593"/>
-<polygon fill="#191970" stroke="#191970" points="70.5184,-5160.5445 67.0083,-5150.5481 63.5184,-5160.5516 70.5184,-5160.5445"/>
+<path fill="none" stroke="#191970" d="M67.0162,-5185.7536C67.3501,-5543.1401 73.7917,-10631.4656 170,-10746 186.0856,-10765.1497 212.4879,-10771.9705 236.7604,-10773.6602"/>
+<polygon fill="#191970" stroke="#191970" points="70.5162,-5185.6052 67.0072,-5175.6083 63.5162,-5185.6115 70.5162,-5185.6052"/>
 </g>
 <!-- Node14 -->
 <g id="node15" class="node">
 <title>Node14</title>
 <g id="a_node15"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::IntImm \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10646 237,-10676 350,-10676 350,-10646 237,-10646"/>
-<text text-anchor="start" x="245" y="-10664" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10653" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::IntImm &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10706 237,-10736 350,-10736 350,-10706 237,-10706"/>
+<text text-anchor="start" x="245" y="-10724" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10713" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::IntImm &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node14 -->
 <g id="edge14" class="edge">
 <title>Node0&#45;&gt;Node14</title>
-<path fill="none" stroke="#191970" d="M67.0222,-5160.9884C67.4585,-5517.4792 75.271,-10524.259 170,-10637 186.0883,-10656.1474 212.4909,-10662.968 236.7629,-10664.6581"/>
-<polygon fill="#191970" stroke="#191970" points="70.5221,-5160.8387 67.0102,-5150.8428 63.5221,-5160.847 70.5221,-5160.8387"/>
+<path fill="none" stroke="#191970" d="M67.0193,-5185.5802C67.4088,-5539.8288 74.627,-10583.4788 170,-10697 186.0872,-10716.1484 212.4897,-10722.9691 236.7618,-10724.659"/>
+<polygon fill="#191970" stroke="#191970" points="70.5193,-5185.5203 67.0087,-5175.524 63.5194,-5185.5277 70.5193,-5185.5203"/>
 </g>
 <!-- Node15 -->
 <g id="node16" class="node">
 <title>Node15</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::IRModule \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10597 237,-10627 350,-10627 350,-10597 237,-10597"/>
-<text text-anchor="start" x="245" y="-10615" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10604" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::IRModule &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10657 237,-10687 350,-10687 350,-10657 237,-10657"/>
+<text text-anchor="start" x="245" y="-10675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10664" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::IRModule &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node15 -->
 <g id="edge15" class="edge">
 <title>Node0&#45;&gt;Node15</title>
-<path fill="none" stroke="#191970" d="M67.0271,-5160.8052C67.5502,-5514.0287 76.5588,-10474.9275 170,-10587 186.0401,-10606.2383 212.4375,-10613.2685 236.7186,-10615.1626"/>
-<polygon fill="#191970" stroke="#191970" points="70.5271,-5160.7476 67.0127,-5150.7526 63.5271,-5160.7577 70.5271,-5160.7476"/>
+<path fill="none" stroke="#191970" d="M67.0248,-5185.9324C67.5079,-5541.4257 75.9653,-10534.2018 170,-10647 186.0389,-10666.2393 212.4363,-10673.2696 236.7176,-10675.1635"/>
+<polygon fill="#191970" stroke="#191970" points="70.5248,-5185.8107 67.0116,-5175.8153 63.5248,-5185.8199 70.5248,-5185.8107"/>
 </g>
 <!-- Node16 -->
 <g id="node17" class="node">
 <title>Node16</title>
 <g id="a_node17"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::ArgInfo \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10536.5 229.5,-10577.5 357.5,-10577.5 357.5,-10536.5 229.5,-10536.5"/>
-<text text-anchor="start" x="237.5" y="-10565.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-10554.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-10543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfo &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10596.5 229.5,-10637.5 357.5,-10637.5 357.5,-10596.5 229.5,-10596.5"/>
+<text text-anchor="start" x="237.5" y="-10625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-10614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-10603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfo &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node16 -->
 <g id="edge16" class="edge">
 <title>Node0&#45;&gt;Node16</title>
-<path fill="none" stroke="#191970" d="M67.0397,-5160.8397C67.7821,-5512.2153 79.7528,-10414.4377 170,-10527 184.285,-10544.8173 207.2061,-10553.1313 229.4452,-10556.714"/>
-<polygon fill="#191970" stroke="#191970" points="70.5394,-5160.6346 67.0186,-5150.6419 63.5394,-5160.6491 70.5394,-5160.6346"/>
+<path fill="none" stroke="#191970" d="M67.0369,-5185.7075C67.7349,-5537.1903 79.1511,-10473.6729 170,-10587 184.2839,-10604.8181 207.2048,-10613.1323 229.444,-10616.7149"/>
+<polygon fill="#191970" stroke="#191970" points="70.537,-5185.6977 67.0175,-5175.7045 63.537,-5185.7113 70.537,-5185.6977"/>
 </g>
 <!-- Node17 -->
 <g id="node18" class="node">
 <title>Node17</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::MeasureCallback \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10476.5 229.5,-10517.5 357.5,-10517.5 357.5,-10476.5 229.5,-10476.5"/>
-<text text-anchor="start" x="237.5" y="-10505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-10494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-10483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10536.5 229.5,-10577.5 357.5,-10577.5 357.5,-10536.5 229.5,-10536.5"/>
+<text text-anchor="start" x="237.5" y="-10565.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-10554.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-10543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node17 -->
 <g id="edge17" class="edge">
 <title>Node0&#45;&gt;Node17</title>
-<path fill="none" stroke="#191970" d="M67.0435,-5160.6188C67.8533,-5508.0806 80.7458,-10355.7008 170,-10467 184.287,-10484.8157 207.2084,-10493.1294 229.4472,-10496.7123"/>
-<polygon fill="#191970" stroke="#191970" points="70.5434,-5160.5264 67.0205,-5150.5345 63.5434,-5160.5425 70.5434,-5160.5264"/>
+<path fill="none" stroke="#191970" d="M67.0413,-5185.7477C67.8117,-5535.4925 80.1665,-10414.964 170,-10527 184.2858,-10544.8166 207.2071,-10553.1305 229.446,-10556.7133"/>
+<polygon fill="#191970" stroke="#191970" points="70.541,-5185.5895 67.0194,-5175.5971 63.5411,-5185.6047 70.541,-5185.5895"/>
 </g>
 <!-- Node18 -->
 <g id="node19" class="node">
 <title>Node18</title>
 <g id="a_node19"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::Postproc \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10416.5 229.5,-10457.5 357.5,-10457.5 357.5,-10416.5 229.5,-10416.5"/>
-<text text-anchor="start" x="237.5" y="-10445.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-10434.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-10423.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Postproc &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10476.5 229.5,-10517.5 357.5,-10517.5 357.5,-10476.5 229.5,-10476.5"/>
+<text text-anchor="start" x="237.5" y="-10505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-10494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-10483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Postproc &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node18 -->
 <g id="edge18" class="edge">
 <title>Node0&#45;&gt;Node18</title>
-<path fill="none" stroke="#191970" d="M67.0487,-5160.9172C67.9383,-5508.7449 81.783,-10297.019 170,-10407 184.2889,-10424.8141 207.2107,-10433.1276 229.4493,-10436.7107"/>
-<polygon fill="#191970" stroke="#191970" points="70.5485,-5160.7883 67.0233,-5150.7972 63.5485,-5160.806 70.5485,-5160.7883"/>
+<path fill="none" stroke="#191970" d="M67.0464,-5186.0496C67.8962,-5536.1887 81.204,-10356.2825 170,-10467 184.2878,-10484.8151 207.2094,-10493.1287 229.4481,-10496.7116"/>
+<polygon fill="#191970" stroke="#191970" points="70.546,-5185.8539 67.0221,-5175.8623 63.546,-5185.8706 70.546,-5185.8539"/>
 </g>
 <!-- Node19 -->
 <g id="node20" class="node">
 <title>Node19</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::ScheduleRule \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10356.5 229.5,-10397.5 357.5,-10397.5 357.5,-10356.5 229.5,-10356.5"/>
-<text text-anchor="start" x="237.5" y="-10385.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-10374.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-10363.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRule &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10416.5 229.5,-10457.5 357.5,-10457.5 357.5,-10416.5 229.5,-10416.5"/>
+<text text-anchor="start" x="237.5" y="-10445.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-10434.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-10423.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRule &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node19 -->
 <g id="edge19" class="edge">
 <title>Node0&#45;&gt;Node19</title>
-<path fill="none" stroke="#191970" d="M67.0526,-5160.6903C68.0104,-5504.5556 82.7755,-10238.2814 170,-10347 184.2909,-10364.8125 207.2131,-10373.1256 229.4514,-10376.7089"/>
-<polygon fill="#191970" stroke="#191970" points="70.5527,-5160.6759 67.0252,-5150.6856 63.5527,-5160.6952 70.5527,-5160.6759"/>
+<path fill="none" stroke="#191970" d="M67.0503,-5185.8227C67.9684,-5531.9994 82.1965,-10297.545 170,-10407 184.2898,-10424.8135 207.2117,-10433.1268 229.4502,-10436.7099"/>
+<polygon fill="#191970" stroke="#191970" points="70.5502,-5185.7415 67.0241,-5175.7507 63.5502,-5185.7598 70.5502,-5185.7415"/>
 </g>
 <!-- Node20 -->
 <g id="node21" class="node">
 <title>Node20</title>
 <g id="a_node21"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::meta_schedule\l::TuneContext \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10296.5 229.5,-10337.5 357.5,-10337.5 357.5,-10296.5 229.5,-10296.5"/>
-<text text-anchor="start" x="237.5" y="-10325.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="237.5" y="-10314.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-10303.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10356.5 229.5,-10397.5 357.5,-10397.5 357.5,-10356.5 229.5,-10356.5"/>
+<text text-anchor="start" x="237.5" y="-10385.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-10374.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-10363.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node20 -->
 <g id="edge20" class="edge">
 <title>Node0&#45;&gt;Node20</title>
-<path fill="none" stroke="#191970" d="M67.0573,-5160.716C68.0903,-5502.6767 83.7893,-10179.5704 170,-10287 184.293,-10304.8109 207.2156,-10313.1237 229.4536,-10316.7072"/>
-<polygon fill="#191970" stroke="#191970" points="70.557,-5160.5635 67.0272,-5150.574 63.557,-5160.5844 70.557,-5160.5635"/>
+<path fill="none" stroke="#191970" d="M67.055,-5185.8501C68.048,-5530.1362 83.2105,-10238.8342 170,-10347 184.2918,-10364.8119 207.2141,-10373.1248 229.4523,-10376.7082"/>
+<polygon fill="#191970" stroke="#191970" points="70.5545,-5185.6291 67.026,-5175.6391 63.5545,-5185.649 70.5545,-5185.6291"/>
 </g>
 <!-- Node21 -->
 <g id="node22" class="node">
 <title>Node21</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::PoolInfo \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10247 237,-10277 350,-10277 350,-10247 237,-10247"/>
-<text text-anchor="start" x="245" y="-10265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10254" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::PoolInfo &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10307 237,-10337 350,-10337 350,-10307 237,-10307"/>
+<text text-anchor="start" x="245" y="-10325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10314" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::PoolInfo &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node21 -->
 <g id="edge21" class="edge">
 <title>Node0&#45;&gt;Node21</title>
-<path fill="none" stroke="#191970" d="M67.0521,-5161.0489C67.9851,-5504.0226 82.2005,-10133.6614 170,-10238 186.1024,-10257.1356 212.5064,-10263.955 236.7758,-10265.6473"/>
-<polygon fill="#191970" stroke="#191970" points="70.5517,-5160.8425 67.0249,-5150.8519 63.5517,-5160.8613 70.5517,-5160.8425"/>
+<path fill="none" stroke="#191970" d="M67.049,-5185.9241C67.934,-5529.1453 81.5826,-10192.9125 170,-10298 186.1011,-10317.1367 212.505,-10323.9562 236.7745,-10325.6483"/>
+<polygon fill="#191970" stroke="#191970" points="70.5482,-5185.543 67.0228,-5175.5519 63.5482,-5185.5607 70.5482,-5185.543"/>
 </g>
 <!-- Node22 -->
 <g id="node23" class="node">
 <title>Node22</title>
 <g id="a_node23"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::PrimExpr \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10198 237,-10228 350,-10228 350,-10198 237,-10198"/>
-<text text-anchor="start" x="245" y="-10216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10205" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::PrimExpr &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10258 237,-10288 350,-10288 350,-10258 237,-10258"/>
+<text text-anchor="start" x="245" y="-10276" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10265" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::PrimExpr &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node22 -->
 <g id="edge22" class="edge">
 <title>Node0&#45;&gt;Node22</title>
-<path fill="none" stroke="#191970" d="M67.0563,-5161.1086C68.0543,-5502.7979 83.0555,-10085.6981 170,-10189 186.1043,-10208.1341 212.5085,-10214.9532 236.7775,-10216.6458"/>
-<polygon fill="#191970" stroke="#191970" points="70.5554,-5160.7471 67.0266,-5150.7572 63.5554,-5160.7672 70.5554,-5160.7471"/>
+<path fill="none" stroke="#191970" d="M67.0531,-5185.9938C68.0028,-5528.0257 82.4386,-10144.9503 170,-10249 186.1029,-10268.1352 212.507,-10274.9545 236.7762,-10276.6469"/>
+<polygon fill="#191970" stroke="#191970" points="70.5527,-5185.8152 67.0254,-5175.8249 63.5528,-5185.8344 70.5527,-5185.8152"/>
 </g>
 <!-- Node23 -->
 <g id="node24" class="node">
 <title>Node23</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::Range \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-10149 237,-10179 350,-10179 350,-10149 237,-10149"/>
-<text text-anchor="start" x="245" y="-10167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10156" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Range &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10209 237,-10239 350,-10239 350,-10209 237,-10209"/>
+<text text-anchor="start" x="245" y="-10227" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10216" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::Range &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node23 -->
 <g id="edge23" class="edge">
 <title>Node0&#45;&gt;Node23</title>
-<path fill="none" stroke="#191970" d="M67.0598,-5160.9135C68.1165,-5499.2866 83.8889,-10037.709 170,-10140 186.1062,-10159.1324 212.5106,-10165.9514 236.7792,-10167.6444"/>
-<polygon fill="#191970" stroke="#191970" points="70.5591,-5160.6517 67.0283,-5150.6625 63.5591,-5160.6733 70.5591,-5160.6517"/>
+<path fill="none" stroke="#191970" d="M67.0573,-5186.0529C68.0721,-5526.7946 83.2936,-10096.987 170,-10200 186.1048,-10219.1336 212.5091,-10225.9527 236.778,-10227.6454"/>
+<polygon fill="#191970" stroke="#191970" points="70.5564,-5185.7198 67.0271,-5175.7302 63.5565,-5185.7404 70.5564,-5185.7198"/>
 </g>
 <!-- Node24 -->
 <g id="node25" class="node">
 <title>Node24</title>
 <g id="a_node25"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::relay::Clause \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-10100 229.5,-10130 357.5,-10130 357.5,-10100 229.5,-10100"/>
-<text text-anchor="start" x="237.5" y="-10118" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10107" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::Clause &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10160 229.5,-10190 357.5,-10190 357.5,-10160 229.5,-10160"/>
+<text text-anchor="start" x="237.5" y="-10178" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::Clause &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node24 -->
 <g id="edge24" class="edge">
 <title>Node0&#45;&gt;Node24</title>
-<path fill="none" stroke="#191970" d="M67.0633,-5160.7183C68.1786,-5495.7753 84.7223,-9989.72 170,-10091 184.4903,-10108.2094 207.3126,-10115.4557 229.4167,-10117.9703"/>
-<polygon fill="#191970" stroke="#191970" points="70.5628,-5160.5563 67.03,-5150.5678 63.5629,-5160.5793 70.5628,-5160.5563"/>
+<path fill="none" stroke="#191970" d="M67.0608,-5185.8577C68.1342,-5523.2833 84.127,-10048.9979 170,-10151 184.489,-10168.2104 207.3111,-10175.457 229.4153,-10177.9714"/>
+<polygon fill="#191970" stroke="#191970" points="70.5602,-5185.6244 67.0288,-5175.6355 63.5602,-5185.6464 70.5602,-5185.6244"/>
 </g>
 <!-- Node25 -->
 <g id="node26" class="node">
 <title>Node25</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::relay::DFPattern \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="222.5,-10051 222.5,-10081 364.5,-10081 364.5,-10051 222.5,-10051"/>
-<text text-anchor="start" x="230.5" y="-10069" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10058" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::DFPattern &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="222.5,-10111 222.5,-10141 364.5,-10141 364.5,-10111 222.5,-10111"/>
+<text text-anchor="start" x="230.5" y="-10129" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10118" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::DFPattern &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node25 -->
 <g id="edge25" class="edge">
 <title>Node0&#45;&gt;Node25</title>
-<path fill="none" stroke="#191970" d="M67.0685,-5161.0251C68.2582,-5496.7235 85.598,-9941.7811 170,-10042 182.9444,-10057.3701 202.535,-10064.7926 222.3232,-10067.9947"/>
-<polygon fill="#191970" stroke="#191970" points="70.5679,-5160.8184 67.0329,-5150.8308 63.568,-5160.843 70.5679,-5160.8184"/>
+<path fill="none" stroke="#191970" d="M67.0643,-5185.6625C68.1964,-5519.772 84.9604,-10001.0088 170,-10102 182.9432,-10117.3711 202.5336,-10124.7938 222.3218,-10127.9959"/>
+<polygon fill="#191970" stroke="#191970" points="70.5639,-5185.529 67.0305,-5175.5408 63.564,-5185.5524 70.5639,-5185.529"/>
 </g>
 <!-- Node26 -->
 <g id="node27" class="node">
 <title>Node26</title>
 <g id="a_node27"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::relay::OpImplementation \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="200.5,-10002 200.5,-10032 386.5,-10032 386.5,-10002 200.5,-10002"/>
-<text text-anchor="start" x="208.5" y="-10020" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-10009" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::OpImplementation &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="200.5,-10062 200.5,-10092 386.5,-10092 386.5,-10062 200.5,-10062"/>
+<text text-anchor="start" x="208.5" y="-10080" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10069" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::OpImplementation &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node26 -->
 <g id="edge26" class="edge">
 <title>Node0&#45;&gt;Node26</title>
-<path fill="none" stroke="#191970" d="M67.0721,-5160.8249C68.3211,-5493.1676 86.4309,-9893.7915 170,-9993 178.0912,-10002.6055 188.7783,-10009.1068 200.4868,-10013.4138"/>
-<polygon fill="#191970" stroke="#191970" points="70.5718,-5160.7194 67.0347,-5150.7325 63.5719,-5160.7454 70.5718,-5160.7194"/>
+<path fill="none" stroke="#191970" d="M67.0695,-5185.9679C68.2761,-5520.7075 85.836,-9953.0698 170,-10053 178.0905,-10062.6061 188.7771,-10069.1077 200.4854,-10073.4149"/>
+<polygon fill="#191970" stroke="#191970" points="70.569,-5185.7902 67.0334,-5175.8027 63.5691,-5185.8151 70.569,-5185.7902"/>
 </g>
 <!-- Node27 -->
 <g id="node28" class="node">
 <title>Node27</title>
 <g id="a_node28"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::relay::OpSpecialization \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="205.5,-9953 205.5,-9983 381.5,-9983 381.5,-9953 205.5,-9953"/>
-<text text-anchor="start" x="213.5" y="-9971" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9960" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::OpSpecialization &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="205.5,-10013 205.5,-10043 381.5,-10043 381.5,-10013 205.5,-10013"/>
+<text text-anchor="start" x="213.5" y="-10031" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10020" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::OpSpecialization &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node27 -->
 <g id="edge27" class="edge">
 <title>Node0&#45;&gt;Node27</title>
-<path fill="none" stroke="#191970" d="M67.0776,-5161.1153C68.4027,-5493.9153 87.3047,-9845.8504 170,-9944 179.2182,-9954.9409 191.804,-9961.8543 205.4308,-9966.0848"/>
-<polygon fill="#191970" stroke="#191970" points="70.5758,-5160.6204 67.0364,-5150.6342 63.5758,-5160.6479 70.5758,-5160.6204"/>
+<path fill="none" stroke="#191970" d="M67.0731,-5185.7677C68.3391,-5517.1517 86.6689,-9905.0802 170,-10004 179.2173,-10014.9416 191.8028,-10021.8553 205.4294,-10026.086"/>
+<polygon fill="#191970" stroke="#191970" points="70.5729,-5185.6911 67.0352,-5175.7044 63.573,-5185.7176 70.5729,-5185.6911"/>
 </g>
 <!-- Node28 -->
 <g id="node29" class="node">
 <title>Node28</title>
 <g id="a_node29"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::relay::Pattern \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="229,-9904 229,-9934 358,-9934 358,-9904 229,-9904"/>
-<text text-anchor="start" x="237" y="-9922" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9911" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::Pattern &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="229,-9964 229,-9994 358,-9994 358,-9964 229,-9964"/>
+<text text-anchor="start" x="237" y="-9982" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9971" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::Pattern &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node28 -->
 <g id="edge28" class="edge">
 <title>Node0&#45;&gt;Node28</title>
-<path fill="none" stroke="#191970" d="M67.0813,-5160.9102C68.4664,-5490.3155 88.1373,-9797.8603 170,-9895 184.3569,-9912.0361 206.8791,-9919.3067 228.7806,-9921.889"/>
-<polygon fill="#191970" stroke="#191970" points="70.5798,-5160.5213 67.0382,-5150.536 63.5798,-5160.5504 70.5798,-5160.5213"/>
+<path fill="none" stroke="#191970" d="M67.0786,-5186.0567C68.4209,-5517.8867 87.5426,-9857.139 170,-9955 184.3555,-9972.0373 206.8774,-9979.308 228.7792,-9981.8902"/>
+<polygon fill="#191970" stroke="#191970" points="70.5769,-5185.5921 67.0369,-5175.6061 63.577,-5185.6201 70.5769,-5185.5921"/>
 </g>
 <!-- Node29 -->
 <g id="node30" class="node">
 <title>Node29</title>
 <g id="a_node30"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::relay::Var \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-9855 237,-9885 350,-9885 350,-9855 237,-9855"/>
-<text text-anchor="start" x="245" y="-9873" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9862" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::Var &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9915 237,-9945 350,-9945 350,-9915 237,-9915"/>
+<text text-anchor="start" x="245" y="-9933" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9922" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::relay::Var &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node29 -->
 <g id="edge29" class="edge">
 <title>Node0&#45;&gt;Node29</title>
-<path fill="none" stroke="#191970" d="M67.0871,-5161.1984C68.5506,-5490.9906 89.0104,-9749.9184 170,-9846 186.1185,-9865.1221 212.5242,-9871.94 236.7905,-9873.6349"/>
-<polygon fill="#191970" stroke="#191970" points="70.5854,-5160.7718 67.0415,-5150.7873 63.5854,-5160.8025 70.5854,-5160.7718"/>
+<path fill="none" stroke="#191970" d="M67.0823,-5185.8515C68.4846,-5514.287 88.3751,-9809.1489 170,-9906 186.1169,-9925.1234 212.5225,-9931.9414 236.7891,-9933.6361"/>
+<polygon fill="#191970" stroke="#191970" points="70.5809,-5185.493 67.0387,-5175.5079 63.581,-5185.5226 70.5809,-5185.493"/>
 </g>
 <!-- Node30 -->
 <g id="node31" class="node">
 <title>Node30</title>
 <g id="a_node31"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\&lt; tvm::RelayExpr \&gt;">
-<polygon fill="#ffffff" stroke="#000000" points="237,-9806 237,-9836 350,-9836 350,-9806 237,-9806"/>
-<text text-anchor="start" x="245" y="-9824" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9813" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::RelayExpr &gt;</text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9866 237,-9896 350,-9896 350,-9866 237,-9866"/>
+<text text-anchor="start" x="245" y="-9884" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9873" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::RelayExpr &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node30 -->
... 11950 lines suppressed ...