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/08 06:48:39 UTC
[tvm-site] branch asf-site updated: deploying docs (apache/tvm@f5f9600614c4aa933c863001459d92b13d9b72fc)
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 e9aa54106 deploying docs (apache/tvm@f5f9600614c4aa933c863001459d92b13d9b72fc)
e9aa54106 is described below
commit e9aa54106b50370cdb2164c51de75039438e9952
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Wed Jun 8 06:48:32 2022 +0000
deploying docs (apache/tvm@f5f9600614c4aa933c863001459d92b13d9b72fc)
---
.../deploy_sparse.ipynb | 2 +-
.../opt_gemm.ipynb | 4 +-
.../intrin_math.ipynb | 2 +-
.../auto_scheduler_matmul_x86.ipynb | 2 +-
.../286e7f77f494a25312ac88e3f234822e/extern_op.py | 4 +-
.../autotvm_matmul_x86.ipynb | 10 +-
.../3a9b1d387f618487c8ccf6b8b78ae179/intro_topi.py | 3 +-
.../opt_conv_cuda.py | 2 +-
.../tensor_expr_get_started.py | 8 +-
.../tensor_expr_get_started.ipynb | 6 +-
.../use_pass_infra.py | 8 +-
.../tensor_ir_blitz_course.py | 6 +-
.../intro_topi.ipynb | 4 +-
.../tune_conv2d_cuda.py | 2 +-
.../729378592a96230b4f7be71b44da43a4/scan.ipynb | 2 +-
.../tune_conv2d_cuda.ipynb | 2 +-
.../opt_conv_tensorcore.py | 2 +-
.../opt_conv_tensorcore.ipynb | 2 +-
.../use_pass_infra.ipynb | 8 +-
.../build_gcn.ipynb | 2 +-
.../extern_op.ipynb | 4 +-
.../opt_conv_cuda.ipynb | 2 +-
.../8c7d8fd6a4b93bcff1f5573943dd02f4/scan.py | 2 +-
.../autotvm_matmul_x86.py | 14 +-
.../96137df89d8034b548f407123ec50ce9/opt_gemm.py | 4 +-
.../deploy_sparse.py | 8 +-
.../bring_your_own_datatypes.ipynb | 2 +-
.../using_relay_viz.ipynb | 6 +-
.../tensor_ir_blitz_course.ipynb | 6 +-
.../low_level_custom_pass.py | 2 +-
.../using_relay_viz.py | 6 +-
.../use_pass_instrument.py | 4 +-
.../low_level_custom_pass.ipynb | 2 +-
.../intrin_math.py | 2 +-
.../dabb6b43ea9ef9d7bd1a3912001deace/build_gcn.py | 2 +-
.../auto_scheduler_matmul_x86.py | 4 +-
.../bring_your_own_datatypes.py | 2 +-
.../use_pass_instrument.ipynb | 4 +-
.../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 +-
.../how_to/deploy_models/deploy_sparse.rst.txt | 8 +-
.../deploy_models/deploy_ssd_gluoncv.rst.txt | 4 +-
.../deploy_models/sg_execution_times.rst.txt | 18 +-
.../extend_tvm/bring_your_own_datatypes.rst.txt | 6 +-
.../extend_tvm/low_level_custom_pass.rst.txt | 2 +-
.../how_to/extend_tvm/sg_execution_times.rst.txt | 8 +-
.../how_to/extend_tvm/use_pass_infra.rst.txt | 8 +-
.../how_to/extend_tvm/use_pass_instrument.rst.txt | 20 +-
.../optimize_operators/opt_conv_cuda.rst.txt | 4 +-
.../optimize_operators/opt_conv_tensorcore.rst.txt | 4 +-
.../how_to/optimize_operators/opt_gemm.rst.txt | 20 +-
.../optimize_operators/sg_execution_times.rst.txt | 8 +-
.../sg_execution_times.rst.txt | 16 +-
.../tune_conv2d_layer_cuda.rst.txt | 4 +-
.../tune_network_cuda.rst.txt | 2 +-
.../tune_network_x86.rst.txt | 4 +-
.../tune_sparse_x86.rst.txt | 132 +-
.../tune_with_autotvm/sg_execution_times.rst.txt | 12 +-
.../tune_with_autotvm/tune_conv2d_cuda.rst.txt | 36 +-
.../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 | 12 +-
.../how_to/work_with_relay/build_gcn.rst.txt | 2 +-
.../work_with_relay/sg_execution_times.rst.txt | 8 +-
.../how_to/work_with_relay/using_relay_viz.rst.txt | 6 +-
.../how_to/work_with_schedules/extern_op.rst.txt | 4 +-
.../how_to/work_with_schedules/intrin_math.rst.txt | 2 +-
.../how_to/work_with_schedules/scan.rst.txt | 2 +-
.../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 | 6 +-
docs/_sources/tutorial/autotvm_matmul_x86.rst.txt | 14 +-
docs/_sources/tutorial/autotvm_relay_x86.rst.txt | 54 +-
.../tutorial/cross_compilation_and_rpc.rst.txt | 2 +-
docs/_sources/tutorial/intro_topi.rst.txt | 5 +-
docs/_sources/tutorial/sg_execution_times.rst.txt | 26 +-
.../tutorial/tensor_expr_get_started.rst.txt | 57 +-
.../tutorial/tensor_ir_blitz_course.rst.txt | 6 +-
docs/commit_hash | 2 +-
docs/how_to/compile_models/from_mxnet.html | 2 +-
docs/how_to/compile_models/from_oneflow.html | 84 +-
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 | 21 +-
docs/how_to/deploy_models/deploy_prequantized.html | 11 +-
.../deploy_models/deploy_prequantized_tflite.html | 4 +-
docs/how_to/deploy_models/deploy_quantized.html | 2 +-
docs/how_to/deploy_models/deploy_sparse.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 | 6 +-
docs/how_to/extend_tvm/low_level_custom_pass.html | 2 +-
docs/how_to/extend_tvm/sg_execution_times.html | 8 +-
docs/how_to/extend_tvm/use_pass_infra.html | 8 +-
docs/how_to/extend_tvm/use_pass_instrument.html | 20 +-
docs/how_to/optimize_operators/opt_conv_cuda.html | 4 +-
.../optimize_operators/opt_conv_tensorcore.html | 4 +-
docs/how_to/optimize_operators/opt_gemm.html | 20 +-
.../optimize_operators/sg_execution_times.html | 8 +-
.../sg_execution_times.html | 14 +-
.../tune_conv2d_layer_cuda.html | 4 +-
.../tune_with_autoscheduler/tune_network_cuda.html | 2 +-
.../tune_with_autoscheduler/tune_network_x86.html | 4 +-
.../tune_with_autoscheduler/tune_sparse_x86.html | 132 +-
.../tune_with_autotvm/sg_execution_times.html | 12 +-
.../how_to/tune_with_autotvm/tune_conv2d_cuda.html | 36 +-
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 | 12 +-
docs/how_to/work_with_relay/build_gcn.html | 2 +-
.../how_to/work_with_relay/sg_execution_times.html | 8 +-
docs/how_to/work_with_relay/using_relay_viz.html | 6 +-
docs/how_to/work_with_schedules/extern_op.html | 4 +-
docs/how_to/work_with_schedules/intrin_math.html | 2 +-
docs/how_to/work_with_schedules/scan.html | 2 +-
.../work_with_schedules/sg_execution_times.html | 18 +-
docs/how_to/work_with_schedules/tensorize.html | 2 +-
.../doxygen/apply__history__best_8h_source.html | 2 +-
docs/reference/api/doxygen/classes.html | 20 +-
..._1_1meta__schedule_1_1TuningRecord-members.html | 2 +-
...classtvm_1_1meta__schedule_1_1TuningRecord.html | 24 +-
...meta__schedule_1_1TuningRecordNode-members.html | 6 +-
...stvm_1_1meta__schedule_1_1TuningRecordNode.html | 38 +-
...__schedule_1_1TuningRecordNode__coll__graph.svg | 293 +-
...chedule_1_1TuningRecordNode__inherit__graph.svg | 4 +-
.../doxygen/classtvm_1_1runtime_1_1ObjectRef.html | 2 +-
...asstvm_1_1runtime_1_1ObjectRef__coll__graph.svg | 12 +-
docs/reference/api/doxygen/database_8h_source.html | 38 +-
docs/reference/api/doxygen/functions_a.html | 2 +-
docs/reference/api/doxygen/functions_func_t.html | 2 +-
docs/reference/api/doxygen/functions_func_v.html | 2 +-
docs/reference/api/doxygen/functions_r.html | 2 +-
docs/reference/api/doxygen/functions_t.html | 4 +-
docs/reference/api/doxygen/functions_v.html | 10 +-
docs/reference/api/doxygen/functions_vars_a.html | 2 +-
docs/reference/api/doxygen/functions_vars_r.html | 2 +-
docs/reference/api/doxygen/functions_vars_t.html | 2 +-
docs/reference/api/doxygen/hierarchy.html | 627 +--
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 | 5067 ++++++++++----------
docs/reference/api/doxygen/inherit_graph_185.svg | 8 +-
docs/reference/api/doxygen/inherit_graph_199.svg | 16 +-
docs/reference/api/doxygen/inherit_graph_200.svg | 16 +-
docs/reference/api/doxygen/inherit_graph_39.svg | 16 +-
docs/reference/api/doxygen/inherit_graph_43.svg | 8 +-
docs/reference/api/doxygen/inherits.html | 2 +-
docs/reference/api/doxygen/search/all_10.js | 1 +
docs/reference/api/doxygen/search/all_13.js | 2 +-
docs/reference/api/doxygen/search/all_14.js | 6 +-
docs/reference/api/doxygen/search/all_15.js | 6 +-
docs/reference/api/doxygen/search/all_17.js | 6 +-
docs/reference/api/doxygen/search/all_18.js | 2 +-
docs/reference/api/doxygen/search/all_2.js | 2 +-
docs/reference/api/doxygen/search/classes_10.js | 6 +-
docs/reference/api/doxygen/search/classes_11.js | 2 +-
docs/reference/api/doxygen/search/classes_13.js | 2 +-
docs/reference/api/doxygen/search/classes_c.js | 1 +
docs/reference/api/doxygen/search/functions_14.js | 2 +-
docs/reference/api/doxygen/search/functions_16.js | 2 +-
docs/reference/api/doxygen/search/variables_1.js | 2 +-
docs/reference/api/doxygen/search/variables_10.js | 2 +-
docs/reference/api/doxygen/search/variables_12.js | 2 +-
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 | 6 +-
docs/tutorial/autotvm_matmul_x86.html | 16 +-
docs/tutorial/autotvm_relay_x86.html | 258 +-
docs/tutorial/cross_compilation_and_rpc.html | 2 +-
docs/tutorial/intro_topi.html | 8 +-
docs/tutorial/sg_execution_times.html | 26 +-
docs/tutorial/tensor_expr_get_started.html | 55 +-
docs/tutorial/tensor_ir_blitz_course.html | 6 +-
221 files changed, 4312 insertions(+), 4269 deletions(-)
diff --git a/docs/_downloads/0b60295044fd20226a0d5adc52b50b2f/deploy_sparse.ipynb b/docs/_downloads/0b60295044fd20226a0d5adc52b50b2f/deploy_sparse.ipynb
index c727a782b..29020c7a0 100644
--- a/docs/_downloads/0b60295044fd20226a0d5adc52b50b2f/deploy_sparse.ipynb
+++ b/docs/_downloads/0b60295044fd20226a0d5adc52b50b2f/deploy_sparse.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\nDeploy a Hugging Face Pruned Model on CPU\n=========================================\n**Author**: `Josh Fromm <https://github.com/jwfromm>`_\n\nThis tutorial demonstrates how to take any pruned model, in this case `PruneBert\nfrom Hugging Face\n<https://huggingface.co/huggingface/prunebert-base-uncased-6-finepruned-w-distil-squad>`_,\nand use TVM to leverage the model's sparsity support to produce real speedups. Although\nthe primary purpose of this tutorial is to realize spee [...]
+ "\nDeploy a Hugging Face Pruned Model on CPU\n=========================================\n**Author**: `Josh Fromm <https://github.com/jwfromm>`_\n\nThis tutorial demonstrates how to take any pruned model, in this case `PruneBert\nfrom Hugging Face\n<https://huggingface.co/huggingface/prunebert-base-uncased-6-finepruned-w-distil-squad>`_,\nand use TVM to leverage the model's sparsity support to produce real speedups. Although\nthe primary purpose of this tutorial is to realize spee [...]
]
},
{
diff --git a/docs/_downloads/0f8d36b3ffd04a5a08089dc671eb788e/opt_gemm.ipynb b/docs/_downloads/0f8d36b3ffd04a5a08089dc671eb788e/opt_gemm.ipynb
index b5cb9181d..2c7aa61da 100644
--- a/docs/_downloads/0f8d36b3ffd04a5a08089dc671eb788e/opt_gemm.ipynb
+++ b/docs/_downloads/0f8d36b3ffd04a5a08089dc671eb788e/opt_gemm.ipynb
@@ -220,7 +220,7 @@
},
"outputs": [],
"source": [
- "s = te.create_schedule(C.op)\n\n# Allocate write cache\nCC = s.cache_write(C, \"global\")\n\nmo, no, mi, ni = s[C].tile(C.op.axis[0], C.op.axis[1], bn, bn)\n\n# Write cache is computed at no\ns[CC].compute_at(s[C], no)\n\n# New inner axes\nmc, nc = s[CC].op.axis\n\n(kaxis,) = s[CC].op.reduce_axis\nko, ki = s[CC].split(kaxis, factor=kfactor)\ns[CC].reorder(ko, mc, ki, nc)\ns[CC].vectorize(nc)\n\n# TODO: Add separate optimization step to discuss loop unrolloing\n# unrolling is a l [...]
+ "s = te.create_schedule(C.op)\n\n# Allocate write cache\nCC = s.cache_write(C, \"global\")\n\nmo, no, mi, ni = s[C].tile(C.op.axis[0], C.op.axis[1], bn, bn)\n\n# Write cache is computed at no\ns[CC].compute_at(s[C], no)\n\n# New inner axes\nmc, nc = s[CC].op.axis\n\n(kaxis,) = s[CC].op.reduce_axis\nko, ki = s[CC].split(kaxis, factor=kfactor)\ns[CC].reorder(ko, mc, ki, nc)\ns[CC].vectorize(nc)\n\n# TODO: Add separate optimization step to discuss loop unrolling\n# unrolling is a lo [...]
]
},
{
@@ -281,7 +281,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Summary\n-------\nAfter applying the above simple optimizations with only 18 lines of code,\nour generated code can achieve 60% of the `numpy` performance with MKL.\nNote that the outputs on the web page reflect the running times on a non-exclusive\nDocker container, thereby they are *unreliable*. It is highly encouraged to run the\ntutorial by yourself to observe the performance gain acheived by TVM.\n\n"
+ "Summary\n-------\nAfter applying the above simple optimizations with only 18 lines of code,\nour generated code can achieve 60% of the `numpy` performance with MKL.\nNote that the outputs on the web page reflect the running times on a non-exclusive\nDocker container, thereby they are *unreliable*. It is highly encouraged to run the\ntutorial by yourself to observe the performance gain achieved by TVM.\n\n"
]
}
],
diff --git a/docs/_downloads/1e482ba1190961191e3a0bdbd0585faa/intrin_math.ipynb b/docs/_downloads/1e482ba1190961191e3a0bdbd0585faa/intrin_math.ipynb
index 0449a06bf..8994b1354 100644
--- a/docs/_downloads/1e482ba1190961191e3a0bdbd0585faa/intrin_math.ipynb
+++ b/docs/_downloads/1e482ba1190961191e3a0bdbd0585faa/intrin_math.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\nIntrinsics and Math Functions\n=============================\n**Author**: `Tianqi Chen <https://tqchen.github.io>`_\n\nWhile TVM supports basic arithmetic operations. In many cases\nusually we will need more complicated builtin functions.\nFor example :code:`exp` to take the exponential of the function.\n\nThese functions are target system dependent and may have different\nnames of different target platforms. In this tutorial, we will learn\nhow we can invoke these target spec [...]
+ "\nIntrinsics and Math Functions\n=============================\n**Author**: `Tianqi Chen <https://tqchen.github.io>`_\n\nWhile TVM supports basic arithmetic operations. In many cases\nusually we will need more complicated builtin functions.\nFor example :code:`exp` to take the exponential of the function.\n\nThese functions are target system dependent and may have different\nnames of different target platforms. In this tutorial, we will learn\nhow we can invoke these target spec [...]
]
},
{
diff --git a/docs/_downloads/246d4b8509474fd9046e69f6cc9b7f87/auto_scheduler_matmul_x86.ipynb b/docs/_downloads/246d4b8509474fd9046e69f6cc9b7f87/auto_scheduler_matmul_x86.ipynb
index f61b8670e..4a567d69c 100644
--- a/docs/_downloads/246d4b8509474fd9046e69f6cc9b7f87/auto_scheduler_matmul_x86.ipynb
+++ b/docs/_downloads/246d4b8509474fd9046e69f6cc9b7f87/auto_scheduler_matmul_x86.ipynb
@@ -51,7 +51,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Create the search task\n----------------------\nWith the function defined, we can now create the task for the auto_scheduler\nto search against. We specify the particular parameters for this matrix\nmultiplication, in this case a multiplication of to square matricies of size\n1024x1024. We then create a search task with N=L=M=1024 and dtype=\"float32\"\n\n.. admonition:: Improve performance with custom targets\n\n In order for TVM to take full advantage of specific hardware pla [...]
+ "Create the search task\n----------------------\nWith the function defined, we can now create the task for the auto_scheduler\nto search against. We specify the particular parameters for this matrix\nmultiplication, in this case a multiplication of two square matrices of size\n1024x1024. We then create a search task with N=L=M=1024 and dtype=\"float32\"\n\n.. admonition:: Improve performance with custom targets\n\n In order for TVM to take full advantage of specific hardware pla [...]
]
},
{
diff --git a/docs/_downloads/286e7f77f494a25312ac88e3f234822e/extern_op.py b/docs/_downloads/286e7f77f494a25312ac88e3f234822e/extern_op.py
index fb9b2eaf8..a0aa5d724 100644
--- a/docs/_downloads/286e7f77f494a25312ac88e3f234822e/extern_op.py
+++ b/docs/_downloads/286e7f77f494a25312ac88e3f234822e/extern_op.py
@@ -25,7 +25,7 @@ the pipeline. For example, we might want to use cuDNN for
some of the convolution kernels and define the rest of the stages.
TVM supports these black box function calls natively.
-Specfically, TVM support all the tensor functions that are DLPack compatible.
+Specifically, TVM support all the tensor functions that are DLPack compatible.
Which means we can call any function with POD types(pointer, int, float)
or pointer to DLTensor as argument.
"""
@@ -52,7 +52,7 @@ if not tvm.get_global_func("tvm.contrib.cblas.matmul", allow_missing=True):
# list of symbolic placeholder for the outputs and returns the executing statement.
#
# In this case we simply call a registered TVM function, which invokes a CBLAS call.
-# TVM does not control internal of the extern array function and treats it as blackbox.
+# TVM does not control internal of the extern array function and treats it as black-box.
# We can further mix schedulable TVM calls that add a bias term to the result.
#
n = 1024
diff --git a/docs/_downloads/37bbf9e2065ec8deeb64a8d9fa0755bc/autotvm_matmul_x86.ipynb b/docs/_downloads/37bbf9e2065ec8deeb64a8d9fa0755bc/autotvm_matmul_x86.ipynb
index 0b75b7f57..3a83871b9 100644
--- a/docs/_downloads/37bbf9e2065ec8deeb64a8d9fa0755bc/autotvm_matmul_x86.ipynb
+++ b/docs/_downloads/37bbf9e2065ec8deeb64a8d9fa0755bc/autotvm_matmul_x86.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n\nOptimizing Operators with Schedule Templates and AutoTVM\n========================================================\n**Authors**:\n`Lianmin Zheng <https://github.com/merrymercy>`_,\n`Chris Hoge <https://github.com/hogepodge>`_\n\nIn this tutorial, we show how the TVM Tensor Expression (TE) language\ncan be used to write schedule templates that can be searched by AutoTVM to\nfind the optimal schedule. This process is called Auto-Tuning, which helps\nautomate the process of opt [...]
+ "\n\nOptimizing Operators with Schedule Templates and AutoTVM\n========================================================\n**Authors**:\n`Lianmin Zheng <https://github.com/merrymercy>`_,\n`Chris Hoge <https://github.com/hogepodge>`_\n\nIn this tutorial, we show how the TVM Tensor Expression (TE) language\ncan be used to write schedule templates that can be searched by AutoTVM to\nfind the optimal schedule. This process is called Auto-Tuning, which helps\nautomate the process of opt [...]
]
},
{
@@ -90,7 +90,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "A Matrix Multiplication Template with the Advanced Parameter API\n----------------------------------------------------------------\nIn the previous template, we manually listed all of the possible values for a\nknob. This is the lowest level API to define the space, and gives an explicit\nenumeration of the parameter space to search. However, we also provide\nanother set of APIs that can make the definition of the search space easier\nand smarter. Where possible, we receomment y [...]
+ "A Matrix Multiplication Template with the Advanced Parameter API\n----------------------------------------------------------------\nIn the previous template, we manually listed all of the possible values for a\nknob. This is the lowest level API to define the space, and gives an explicit\nenumeration of the parameter space to search. However, we also provide\nanother set of APIs that can make the definition of the search space easier\nand smarter. Where possible, we recommend yo [...]
]
},
{
@@ -115,7 +115,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Step 2: Use AutoTVM to Optimize the Matrix Multiplication\n---------------------------------------------------------\nIn Step 1, we wrote a matrix multiplication template that allowed us to\nparamaterize the block size used in the `split` schedule. We can now conduct\na search over this parameter space. The next step is to pick a tuner to guide\nthe exploration of this space.\n\nAuto-tuners in TVM\n~~~~~~~~~~~~~~~~~~\nThe job for a tuner can be described by following pseudo code [...]
+ "Step 2: Use AutoTVM to Optimize the Matrix Multiplication\n---------------------------------------------------------\nIn Step 1, we wrote a matrix multiplication template that allowed us to\nparameterize the block size used in the `split` schedule. We can now conduct\na search over this parameter space. The next step is to pick a tuner to guide\nthe exploration of this space.\n\nAuto-tuners in TVM\n~~~~~~~~~~~~~~~~~~\nThe job for a tuner can be described by following pseudo code [...]
]
},
{
@@ -176,7 +176,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "With tuning completed, we can choose the configuration from the log file that\nhas the best measured performance and compile the schedule with the\ncorresponding parameters. We also do a quick verfication that the schedule is\nproducing correct answers. We can call the function :code:`matmul` directly\nunder the :any:`autotvm.apply_history_best` context. When we call this\nfunction, it will query the dispatch context with its argument and get the\nbest config with the same argu [...]
+ "With tuning completed, we can choose the configuration from the log file that\nhas the best measured performance and compile the schedule with the\ncorresponding parameters. We also do a quick verification that the schedule is\nproducing correct answers. We can call the function :code:`matmul` directly\nunder the :any:`autotvm.apply_history_best` context. When we call this\nfunction, it will query the dispatch context with its argument and get the\nbest config with the same arg [...]
]
},
{
@@ -194,7 +194,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Final Notes and Summary\n-----------------------\nIn this tutorial, we have shown how to build operator templates that allow\nTVM to search a parameter space and choose optimized schedule configurations.\nTo gain a deeper understanding of how this works, we recommend expanding on\nthis example by adding new search parameters to the schedule based on\nschedule operations demonstated in the `Getting Started With Tensor\nExpressions <tensor_expr_get_started>_` tutorial. In the upco [...]
+ "Final Notes and Summary\n-----------------------\nIn this tutorial, we have shown how to build operator templates that allow\nTVM to search a parameter space and choose optimized schedule configurations.\nTo gain a deeper understanding of how this works, we recommend expanding on\nthis example by adding new search parameters to the schedule based on\nschedule operations demonstrated in the :ref: `Getting Started With Tensor\nExpressions <tensor_expr_get_started>_` tutorial. In t [...]
]
}
],
diff --git a/docs/_downloads/3a9b1d387f618487c8ccf6b8b78ae179/intro_topi.py b/docs/_downloads/3a9b1d387f618487c8ccf6b8b78ae179/intro_topi.py
index dad8c53bf..17fa3ff37 100644
--- a/docs/_downloads/3a9b1d387f618487c8ccf6b8b78ae179/intro_topi.py
+++ b/docs/_downloads/3a9b1d387f618487c8ccf6b8b78ae179/intro_topi.py
@@ -23,9 +23,8 @@ Introduction to TOPI
This is an introductory tutorial to TVM Operator Inventory (TOPI).
TOPI provides numpy-style generic operations and schedules with higher abstractions than TVM.
-In this tutorial, we will see how TOPI can save us from writing boilerplates code in TVM.
+In this tutorial, we will see how TOPI can save us from writing boilerplate code in TVM.
"""
-from __future__ import absolute_import, print_function
import tvm
import tvm.testing
diff --git a/docs/_downloads/3c5c85c3954f3110f16ca084e286f03a/opt_conv_cuda.py b/docs/_downloads/3c5c85c3954f3110f16ca084e286f03a/opt_conv_cuda.py
index 0ac2c625b..3d2caa0d3 100644
--- a/docs/_downloads/3c5c85c3954f3110f16ca084e286f03a/opt_conv_cuda.py
+++ b/docs/_downloads/3c5c85c3954f3110f16ca084e286f03a/opt_conv_cuda.py
@@ -97,7 +97,7 @@ B = te.compute(
# :width: 271px
#
# In this example, we load both Apad and W into buffer AA and WW, which are
-# stored in the shared memory. These bufferes will be later shared by all
+# stored in the shared memory. These buffers will be later shared by all
# threads within the same thread block to compute the convolution. Each thread
# then loads its own part from shared buffer into their local registers, AL and
# WL. BL is a local cache of output B, which is also stored in the thread local
diff --git a/docs/_downloads/40a01cffb015a67aaec0fad7e27cf80d/tensor_expr_get_started.py b/docs/_downloads/40a01cffb015a67aaec0fad7e27cf80d/tensor_expr_get_started.py
index 7d8c0d781..25ea4e8a5 100644
--- a/docs/_downloads/40a01cffb015a67aaec0fad7e27cf80d/tensor_expr_get_started.py
+++ b/docs/_downloads/40a01cffb015a67aaec0fad7e27cf80d/tensor_expr_get_started.py
@@ -187,8 +187,8 @@ log = [("numpy", np_running_time / np_repeat)]
evaluate_addition(fadd, tgt, "naive", log=log)
################################################################################
-# Updating the Schedule to Use Paralleism
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# Updating the Schedule to Use Parallelism
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Now that we've illustrated the fundamentals of TE, let's go deeper into what
# schedules do, and how they can be used to optimize tensor expressions for
@@ -754,7 +754,7 @@ print(tvm.lower(s, [A, B, C], simple_mode=True))
# regular but discontinuous. We expect that after some transformation we can
# get a continuous access pattern. By reordering a ``[16][16]`` array to a
# ``[16/4][16][4]`` array the access pattern of B will be sequential when
-# grabing the corresponding value from the packed array.
+# grabbing the corresponding value from the packed array.
#
# To accomplish this, we are going to have to start with a new default
# schedule, taking into account the new packing of B. It's worth taking a
@@ -889,7 +889,7 @@ for result in log:
# have from this introduction to TE, we can now begin to explore how TVM can
# automate the schedule optimization process.
#
-# This tutorial provided a walkthrough of TVM Tensor Expresstion (TE) workflow
+# This tutorial provided a walk-through of TVM Tensor Expression (TE) workflow
# using a vector add and a matrix multiplication examples. The general workflow
# is
#
diff --git a/docs/_downloads/4459ebf5b03d332f7f380abdaef81c05/tensor_expr_get_started.ipynb b/docs/_downloads/4459ebf5b03d332f7f380abdaef81c05/tensor_expr_get_started.ipynb
index 50732399f..838761660 100644
--- a/docs/_downloads/4459ebf5b03d332f7f380abdaef81c05/tensor_expr_get_started.ipynb
+++ b/docs/_downloads/4459ebf5b03d332f7f380abdaef81c05/tensor_expr_get_started.ipynb
@@ -155,7 +155,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Updating the Schedule to Use Paralleism\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNow that we've illustrated the fundamentals of TE, let's go deeper into what\nschedules do, and how they can be used to optimize tensor expressions for\ndifferent architectures. A schedule is a series of steps that are applied to\nan expression to transform it in a number of different ways. When a schedule\nis applied to an expression in TE, the inputs and outputs remain the same,\nbut when compi [...]
+ "Updating the Schedule to Use Parallelism\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNow that we've illustrated the fundamentals of TE, let's go deeper into what\nschedules do, and how they can be used to optimize tensor expressions for\ndifferent architectures. A schedule is a series of steps that are applied to\nan expression to transform it in a number of different ways. When a schedule\nis applied to an expression in TE, the inputs and outputs remain the same,\nbut when com [...]
]
},
{
@@ -503,7 +503,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Optimization 4: Array Packing\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAnother important trick is array packing. This trick is to reorder the\nstorage dimension of the array to convert the continuous access pattern on\ncertain dimension to a sequential pattern after flattening.\n\n\n\n :align: center\n\nJust as it is shown in the figure above, after blocking the computations, we\ncan observe the array access [...]
+ "Optimization 4: Array Packing\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAnother important trick is array packing. This trick is to reorder the\nstorage dimension of the array to convert the continuous access pattern on\ncertain dimension to a sequential pattern after flattening.\n\n\n\n :align: center\n\nJust as it is shown in the figure above, after blocking the computations, we\ncan observe the array access [...]
]
},
{
@@ -582,7 +582,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Final Notes and Summary\n-----------------------\nAs mentioned earlier, how to apply optimizations using TE and scheduling\nprimitives can require some knowledge of the underlying architecture and\nalgorithms. However, TE was designed to act as a foundation for more complex\nalgorithms that can search the potential optimization. With the knowledge you\nhave from this introduction to TE, we can now begin to explore how TVM can\nautomate the schedule optimization process.\n\nThis [...]
+ "Final Notes and Summary\n-----------------------\nAs mentioned earlier, how to apply optimizations using TE and scheduling\nprimitives can require some knowledge of the underlying architecture and\nalgorithms. However, TE was designed to act as a foundation for more complex\nalgorithms that can search the potential optimization. With the knowledge you\nhave from this introduction to TE, we can now begin to explore how TVM can\nautomate the schedule optimization process.\n\nThis [...]
]
}
],
diff --git a/docs/_downloads/5499fb7d70e17c6aabf49246a978db52/use_pass_infra.py b/docs/_downloads/5499fb7d70e17c6aabf49246a978db52/use_pass_infra.py
index 67cdfdedc..e38383e69 100644
--- a/docs/_downloads/5499fb7d70e17c6aabf49246a978db52/use_pass_infra.py
+++ b/docs/_downloads/5499fb7d70e17c6aabf49246a978db52/use_pass_infra.py
@@ -35,7 +35,7 @@ on a Relay/tir program where the dependencies between passes can be resolved by
pass infra. For more details about each type of these passes, please refer to
the :ref:`pass-infra`
-This tutorial mainly demostrates how developers can use the pass infra to perform
+This tutorial mainly demonstrates how developers can use the pass infra to perform
a certain optimization and create an optimization pipeline for a Relay program.
The same approach can be used for tir as well.
"""
@@ -104,7 +104,7 @@ mod = relay.transform.EliminateCommonSubexpr()(mod)
print(mod)
###############################################################################
-# Some optimizations, such as fusion, are parameteric as well. For example,
+# Some optimizations, such as fusion, are parametric as well. For example,
# opt level 0 will not allow operators to be fused together. Users can pass the
# `fuse_opt_level` to enable this.
mod = relay.transform.FuseOps(fuse_opt_level=0)(mod)
@@ -127,7 +127,7 @@ print(mod)
# these issues explicitly by specifying the required passes of each pass and
# packing them as a whole to execute. For example, the same passes can now be
# applied using the sequential style as the following. :py:class:`tvm.transform.Sequential` is
-# similiar to `torch.nn.sequential <https://pytorch.org/docs/stable/nn.html#torch.nn.Sequential>`_
+# similar to `torch.nn.sequential <https://pytorch.org/docs/stable/nn.html#torch.nn.Sequential>`_
# and `mxnet.gluon.block <https://mxnet.apache.org/api/python/docs/_modules/mxnet/gluon/block.html>`_.
# For example, `torch.nn.sequential` is used to contain a sequence of PyTorch
# `Modules` that will be added to build a network. It focuses on the network
@@ -267,7 +267,7 @@ print("done")
# -------
# This tutorial has covered how we can write and invoke passes in TVM more
# conveniently using the pass infra. Different ways of invoking a pass are also
-# disucssed. Using :py:class:`tvm.transform.Sequential` can largely help
+# discussed. Using :py:class:`tvm.transform.Sequential` can largely help
# users to ease the work of handling multiple optimization passes and their
# dependencies. In addition, an example is provided to illustrate
# how we can debug a pass using the ``PrintIR`` and tracing.
diff --git a/docs/_downloads/5c7000b5aef924e29ec975ec3002ea03/tensor_ir_blitz_course.py b/docs/_downloads/5c7000b5aef924e29ec975ec3002ea03/tensor_ir_blitz_course.py
index e9a0801f3..11edc7ae9 100644
--- a/docs/_downloads/5c7000b5aef924e29ec975ec3002ea03/tensor_ir_blitz_course.py
+++ b/docs/_downloads/5c7000b5aef924e29ec975ec3002ea03/tensor_ir_blitz_course.py
@@ -25,7 +25,7 @@ TensorIR is a domain specific language for deep learning programs serving two br
- An implementation for transforming and optimizing programs on various hardware backends.
-- An abstraction for automatic tensorized program optimization.
+- An abstraction for automatic _tensorized_ program optimization.
"""
@@ -145,7 +145,7 @@ print(b)
# sequence of schedule primitives will help to improve the performance. And at last, we can lower
# and build it into a runnable module.
#
-# Here we just demostrate a very simple tranformation. First we create schedule on the input `ir_module`.
+# Here we just demonstrate a very simple transformation. First we create schedule on the input `ir_module`.
sch = tvm.tir.Schedule(ir_module)
print(type(sch))
@@ -155,7 +155,7 @@ print(type(sch))
# Get block by its name
block_b = sch.get_block("B")
-# Get loops surronding the block
+# Get loops surrounding the block
(i,) = sch.get_loops(block_b)
# Tile the loop nesting.
i_0, i_1, i_2 = sch.split(i, factors=[2, 2, 2])
diff --git a/docs/_downloads/63f9e50204143ea3c2d3593c72439b3d/intro_topi.ipynb b/docs/_downloads/63f9e50204143ea3c2d3593c72439b3d/intro_topi.ipynb
index 181e3cff2..1325b7cfb 100644
--- a/docs/_downloads/63f9e50204143ea3c2d3593c72439b3d/intro_topi.ipynb
+++ b/docs/_downloads/63f9e50204143ea3c2d3593c72439b3d/intro_topi.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n\nIntroduction to TOPI\n====================\n**Author**: `Ehsan M. Kermani <https://github.com/ehsanmok>`_\n\nThis is an introductory tutorial to TVM Operator Inventory (TOPI).\nTOPI provides numpy-style generic operations and schedules with higher abstractions than TVM.\nIn this tutorial, we will see how TOPI can save us from writing boilerplates code in TVM.\n"
+ "\n\nIntroduction to TOPI\n====================\n**Author**: `Ehsan M. Kermani <https://github.com/ehsanmok>`_\n\nThis is an introductory tutorial to TVM Operator Inventory (TOPI).\nTOPI provides numpy-style generic operations and schedules with higher abstractions than TVM.\nIn this tutorial, we will see how TOPI can save us from writing boilerplate code in TVM.\n"
]
},
{
@@ -26,7 +26,7 @@
},
"outputs": [],
"source": [
- "from __future__ import absolute_import, print_function\n\nimport tvm\nimport tvm.testing\nfrom tvm import te\nfrom tvm import topi\nimport numpy as np"
+ "import tvm\nimport tvm.testing\nfrom tvm import te\nfrom tvm import topi\nimport numpy as np"
]
},
{
diff --git a/docs/_downloads/6ad550da5092845382b1197f58a93816/tune_conv2d_cuda.py b/docs/_downloads/6ad550da5092845382b1197f58a93816/tune_conv2d_cuda.py
index ef921563e..e3072773b 100644
--- a/docs/_downloads/6ad550da5092845382b1197f58a93816/tune_conv2d_cuda.py
+++ b/docs/_downloads/6ad550da5092845382b1197f58a93816/tune_conv2d_cuda.py
@@ -74,7 +74,7 @@ from tvm import autotvm
#
# If you are familiar with writing cuda schedule, you can find the following
# template is very general. Actually this template can be easily modified
-# to tune other operators such as depthwise convolution and gemm.
+# to tune other operators such as depthwise convolution and GEMM.
# In order to fully understand this template, you should be familiar with
# the schedule primitives and auto tuning API. You can refer to the above
# tutorials and :ref:`autotvm tutorial <tutorial-autotvm-matmul-x86>`
diff --git a/docs/_downloads/729378592a96230b4f7be71b44da43a4/scan.ipynb b/docs/_downloads/729378592a96230b4f7be71b44da43a4/scan.ipynb
index 25d2afad1..454ceccc4 100644
--- a/docs/_downloads/729378592a96230b4f7be71b44da43a4/scan.ipynb
+++ b/docs/_downloads/729378592a96230b4f7be71b44da43a4/scan.ipynb
@@ -51,7 +51,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Schedule the Scan Cell\n----------------------\nWe can schedule the body of the scan by scheduling the update and\ninit part seperately. Note that it is invalid to schedule the\nfirst iteration dimension of the update part.\nTo split on the time iteration, user can schedule on scan_op.scan_axis instead.\n\n\n"
+ "Schedule the Scan Cell\n----------------------\nWe can schedule the body of the scan by scheduling the update and\ninit part separately. Note that it is invalid to schedule the\nfirst iteration dimension of the update part.\nTo split on the time iteration, user can schedule on scan_op.scan_axis instead.\n\n\n"
]
},
{
diff --git a/docs/_downloads/732ed130cbc15432e737da8cc47e1734/tune_conv2d_cuda.ipynb b/docs/_downloads/732ed130cbc15432e737da8cc47e1734/tune_conv2d_cuda.ipynb
index 7737043f4..b1f0fed95 100644
--- a/docs/_downloads/732ed130cbc15432e737da8cc47e1734/tune_conv2d_cuda.ipynb
+++ b/docs/_downloads/732ed130cbc15432e737da8cc47e1734/tune_conv2d_cuda.ipynb
@@ -40,7 +40,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Step 1: Define the search space\n--------------------------------\nThere are plenty of useful schedule primitives in tvm. You can also find\nsome tutorials that describe them in more details, such as\n(1). `opt-conv-gpu`\n(2). `Optimizing DepthwiseConv on NVIDIA GPU <https://tvm.apache.org/2017/08/22/Optimize-Deep-Learning-GPU-Operators-with-TVM-A-Depthwise-Convolution-Example>`_\n\nHowever, their implementations are manually tuned for some special input\nshapes. In this sectio [...]
+ "Step 1: Define the search space\n--------------------------------\nThere are plenty of useful schedule primitives in tvm. You can also find\nsome tutorials that describe them in more details, such as\n(1). `opt-conv-gpu`\n(2). `Optimizing DepthwiseConv on NVIDIA GPU <https://tvm.apache.org/2017/08/22/Optimize-Deep-Learning-GPU-Operators-with-TVM-A-Depthwise-Convolution-Example>`_\n\nHowever, their implementations are manually tuned for some special input\nshapes. In this sectio [...]
]
},
{
diff --git a/docs/_downloads/7372db5919b5619bc34fde3434862bca/opt_conv_tensorcore.py b/docs/_downloads/7372db5919b5619bc34fde3434862bca/opt_conv_tensorcore.py
index 702e4a777..ccfc7b974 100644
--- a/docs/_downloads/7372db5919b5619bc34fde3434862bca/opt_conv_tensorcore.py
+++ b/docs/_downloads/7372db5919b5619bc34fde3434862bca/opt_conv_tensorcore.py
@@ -306,7 +306,7 @@ def intrin_wmma_store_matrix():
# *Warp-level Operation*
#
# Note that all TensorCore instructions are warp-level instructions, which means all 32 threads
-# in a warp should do this instruction simultaneously. Making theadIdx.x extent=32 is one of the
+# in a warp should do this instruction simultaneously. Making threadIdx.x extent=32 is one of the
# easiest way to solve this. Then We can bind threadIdx.x to any loops except those contain
# TensorCore intrinsics directly or indirectly. Also note that it is not the unique solution.
# The only thing we should do is to make sure all threads in a warp can call TensorCore at the same time.
diff --git a/docs/_downloads/7455981870c23c8c76482dedf33d8a42/opt_conv_tensorcore.ipynb b/docs/_downloads/7455981870c23c8c76482dedf33d8a42/opt_conv_tensorcore.ipynb
index 8ff422f51..622bd15a0 100644
--- a/docs/_downloads/7455981870c23c8c76482dedf33d8a42/opt_conv_tensorcore.ipynb
+++ b/docs/_downloads/7455981870c23c8c76482dedf33d8a42/opt_conv_tensorcore.ipynb
@@ -83,7 +83,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Scheduling the Computation\n--------------------------\nTo use TensorCores in TVM, we must schedule the computation into specific structure\nto match the tensor intrinsic. The same as traditional GPU programs, we can also use\nshared memory to boost the speed. If you have any questions about blocking and shared\nmemory, please refer `opt-conv-gpu`.\n\nIn this example, each block contains 2x4 warps, and each warp calls 4x2 TensorCore\ninstructions. Thus, the output shape of each [...]
+ "Scheduling the Computation\n--------------------------\nTo use TensorCores in TVM, we must schedule the computation into specific structure\nto match the tensor intrinsic. The same as traditional GPU programs, we can also use\nshared memory to boost the speed. If you have any questions about blocking and shared\nmemory, please refer `opt-conv-gpu`.\n\nIn this example, each block contains 2x4 warps, and each warp calls 4x2 TensorCore\ninstructions. Thus, the output shape of each [...]
]
},
{
diff --git a/docs/_downloads/7ef14586a3b62fe120d97d5fedf72879/use_pass_infra.ipynb b/docs/_downloads/7ef14586a3b62fe120d97d5fedf72879/use_pass_infra.ipynb
index f9a25ae1e..073b77447 100644
--- a/docs/_downloads/7ef14586a3b62fe120d97d5fedf72879/use_pass_infra.ipynb
+++ b/docs/_downloads/7ef14586a3b62fe120d97d5fedf72879/use_pass_infra.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n\nHow to Use TVM Pass Infra\n=========================\n**Author**: `Zhi Chen <https://github.com/zhiics>`_\n\nAs the number of optimization passes increases in Relay/tir, it becomes intractable to\nexecute them and maintain their dependencies manually. Therefore, we have\nintroduced an infrastructure to manage the optimization passes and make it\napplicable to different layers of the IR in the TVM stack.\n\nThe optimizations of a Relay/tir program could be applied at various [...]
+ "\n\nHow to Use TVM Pass Infra\n=========================\n**Author**: `Zhi Chen <https://github.com/zhiics>`_\n\nAs the number of optimization passes increases in Relay/tir, it becomes intractable to\nexecute them and maintain their dependencies manually. Therefore, we have\nintroduced an infrastructure to manage the optimization passes and make it\napplicable to different layers of the IR in the TVM stack.\n\nThe optimizations of a Relay/tir program could be applied at various [...]
]
},
{
@@ -87,7 +87,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Some optimizations, such as fusion, are parameteric as well. For example,\nopt level 0 will not allow operators to be fused together. Users can pass the\n`fuse_opt_level` to enable this.\n\n"
+ "Some optimizations, such as fusion, are parametric as well. For example,\nopt level 0 will not allow operators to be fused together. Users can pass the\n`fuse_opt_level` to enable this.\n\n"
]
},
{
@@ -105,7 +105,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Use Sequential to Apply a Sequence of Passes\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nApplying passes as above is actually tedious and it may require users to have\nbetter understanding about the dependencies between them. For example, fusion\ncurrently doesn't work well on let bindings. Therefore, we would not be able\nto fuse operators that were fusable if :py:func:`relay.transform.ToANormalForm` is applied before\nfusion, as this pass generates let bindings for each exp [...]
+ "Use Sequential to Apply a Sequence of Passes\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nApplying passes as above is actually tedious and it may require users to have\nbetter understanding about the dependencies between them. For example, fusion\ncurrently doesn't work well on let bindings. Therefore, we would not be able\nto fuse operators that were fusable if :py:func:`relay.transform.ToANormalForm` is applied before\nfusion, as this pass generates let bindings for each exp [...]
]
},
{
@@ -213,7 +213,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Summary\n-------\nThis tutorial has covered how we can write and invoke passes in TVM more\nconveniently using the pass infra. Different ways of invoking a pass are also\ndisucssed. Using :py:class:`tvm.transform.Sequential` can largely help\nusers to ease the work of handling multiple optimization passes and their\ndependencies. In addition, an example is provided to illustrate\nhow we can debug a pass using the ``PrintIR`` and tracing.\n\n"
+ "Summary\n-------\nThis tutorial has covered how we can write and invoke passes in TVM more\nconveniently using the pass infra. Different ways of invoking a pass are also\ndiscussed. Using :py:class:`tvm.transform.Sequential` can largely help\nusers to ease the work of handling multiple optimization passes and their\ndependencies. In addition, an example is provided to illustrate\nhow we can debug a pass using the ``PrintIR`` and tracing.\n\n"
]
}
],
diff --git a/docs/_downloads/825671e45a9bdc4733400384984cd9dd/build_gcn.ipynb b/docs/_downloads/825671e45a9bdc4733400384984cd9dd/build_gcn.ipynb
index 0c9d40ecd..7d8c3b2fa 100644
--- a/docs/_downloads/825671e45a9bdc4733400384984cd9dd/build_gcn.ipynb
+++ b/docs/_downloads/825671e45a9bdc4733400384984cd9dd/build_gcn.ipynb
@@ -166,7 +166,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Compile and run with TVM\n------------------------\n\nExport the weigths from PyTorch model to Python Dict\n\n"
+ "Compile and run with TVM\n------------------------\n\nExport the weights from PyTorch model to Python Dict\n\n"
]
},
{
diff --git a/docs/_downloads/8472bea81cf679760d7e4e77e895726f/extern_op.ipynb b/docs/_downloads/8472bea81cf679760d7e4e77e895726f/extern_op.ipynb
index 8646d2b81..5bc8dead1 100644
--- a/docs/_downloads/8472bea81cf679760d7e4e77e895726f/extern_op.ipynb
+++ b/docs/_downloads/8472bea81cf679760d7e4e77e895726f/extern_op.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\nExternal Tensor Functions\n=========================\n**Author**: `Tianqi Chen <https://tqchen.github.io>`_\n\nWhile TVM supports transparent code generation, sometimes\nit is also helpful to incorporate manual written code into\nthe pipeline. For example, we might want to use cuDNN for\nsome of the convolution kernels and define the rest of the stages.\n\nTVM supports these black box function calls natively.\nSpecfically, TVM support all the tensor functions that are DLPack c [...]
+ "\nExternal Tensor Functions\n=========================\n**Author**: `Tianqi Chen <https://tqchen.github.io>`_\n\nWhile TVM supports transparent code generation, sometimes\nit is also helpful to incorporate manual written code into\nthe pipeline. For example, we might want to use cuDNN for\nsome of the convolution kernels and define the rest of the stages.\n\nTVM supports these black box function calls natively.\nSpecifically, TVM support all the tensor functions that are DLPack [...]
]
},
{
@@ -33,7 +33,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Use Extern Tensor Function\n--------------------------\nIn the example below, we use :any:`te.extern` to add an extern\narray function call. In the extern call, we declare the shape\nof output tensors. In the second argument we provide the list of inputs.\n\nUser will need to provide a function describing how to compute the result.\nThe compute function takes list of symbolic placeholder for the inputs,\nlist of symbolic placeholder for the outputs and returns the executing stat [...]
+ "Use Extern Tensor Function\n--------------------------\nIn the example below, we use :any:`te.extern` to add an extern\narray function call. In the extern call, we declare the shape\nof output tensors. In the second argument we provide the list of inputs.\n\nUser will need to provide a function describing how to compute the result.\nThe compute function takes list of symbolic placeholder for the inputs,\nlist of symbolic placeholder for the outputs and returns the executing stat [...]
]
},
{
diff --git a/docs/_downloads/854257a66df713b1f3f82eb3577f95e3/opt_conv_cuda.ipynb b/docs/_downloads/854257a66df713b1f3f82eb3577f95e3/opt_conv_cuda.ipynb
index 471a6529a..df0b5d24e 100644
--- a/docs/_downloads/854257a66df713b1f3f82eb3577f95e3/opt_conv_cuda.ipynb
+++ b/docs/_downloads/854257a66df713b1f3f82eb3577f95e3/opt_conv_cuda.ipynb
@@ -40,7 +40,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Memory Hierarchy\n----------------\n\nWe first specify the memory hierarchy for buffers. The figure below shows the\nGPU memory hierarchy. One important difference from CPU memory hierarchy is\nthat GPU provides a cache buffer called shared memory, which is managed by\nprogrammers. Thus how to maximize the data reuse in the shared memory is\ncritical to achieve high performance in GPU kernels.\n\n
# Schedule the Scan Cell
# ----------------------
# We can schedule the body of the scan by scheduling the update and
-# init part seperately. Note that it is invalid to schedule the
+# init part separately. Note that it is invalid to schedule the
# first iteration dimension of the update part.
# To split on the time iteration, user can schedule on scan_op.scan_axis instead.
#
diff --git a/docs/_downloads/8e7bbc9dbdda76ac573b24606b41c006/autotvm_matmul_x86.py b/docs/_downloads/8e7bbc9dbdda76ac573b24606b41c006/autotvm_matmul_x86.py
index 545811721..b84a6193c 100644
--- a/docs/_downloads/8e7bbc9dbdda76ac573b24606b41c006/autotvm_matmul_x86.py
+++ b/docs/_downloads/8e7bbc9dbdda76ac573b24606b41c006/autotvm_matmul_x86.py
@@ -28,7 +28,7 @@ can be used to write schedule templates that can be searched by AutoTVM to
find the optimal schedule. This process is called Auto-Tuning, which helps
automate the process of optimizing tensor computation.
-This tutorial builds on the previous `tutorial on how to write a matrix
+This tutorial builds on the previous :doc:`tutorial on how to write a matrix
multiplication using TE <tensor_expr_get_started>`.
There are two steps in auto-tuning.
@@ -201,7 +201,7 @@ def matmul_v1(N, L, M, dtype):
# knob. This is the lowest level API to define the space, and gives an explicit
# enumeration of the parameter space to search. However, we also provide
# another set of APIs that can make the definition of the search space easier
-# and smarter. Where possible, we receomment you use this higher-level API
+# and smarter. Where possible, we recommend you use this higher-level API
#
# In the following example, we use :any:`ConfigSpace.define_split` to define a
# split knob. It will enumerate all the possible ways to split an axis and
@@ -267,7 +267,7 @@ def matmul(N, L, M, dtype):
# Step 2: Use AutoTVM to Optimize the Matrix Multiplication
# ---------------------------------------------------------
# In Step 1, we wrote a matrix multiplication template that allowed us to
-# paramaterize the block size used in the `split` schedule. We can now conduct
+# parameterize the block size used in the `split` schedule. We can now conduct
# a search over this parameter space. The next step is to pick a tuner to guide
# the exploration of this space.
#
@@ -295,7 +295,7 @@ def matmul(N, L, M, dtype):
#
# You can choose the tuner according to the size of your space, your time
# budget and other factors. For example, if your space is very small (less
-# than 1000), a gridsearch tuner or a random tuner is good enough. If your
+# than 1000), a grid-search tuner or a random tuner is good enough. If your
# space is at the level of 10^9 (this is the space size of a conv2d operator on
# CUDA GPU), XGBoostTuner can explore more efficiently and find better configs.
@@ -342,7 +342,7 @@ tuner.tune(
################################################################################
# With tuning completed, we can choose the configuration from the log file that
# has the best measured performance and compile the schedule with the
-# corresponding parameters. We also do a quick verfication that the schedule is
+# corresponding parameters. We also do a quick verification that the schedule is
# producing correct answers. We can call the function :code:`matmul` directly
# under the :any:`autotvm.apply_history_best` context. When we call this
# function, it will query the dispatch context with its argument and get the
@@ -371,7 +371,7 @@ tvm.testing.assert_allclose(c_np, c_tvm.numpy(), rtol=1e-4)
# TVM to search a parameter space and choose optimized schedule configurations.
# To gain a deeper understanding of how this works, we recommend expanding on
# this example by adding new search parameters to the schedule based on
-# schedule operations demonstated in the `Getting Started With Tensor
+# schedule operations demonstrated in the :ref: `Getting Started With Tensor
# Expressions <tensor_expr_get_started>_` tutorial. In the upcoming sections, we
-# will demonstate the AutoScheduler, a method for TVM to optimize common
+# will demonstrate the AutoScheduler, a method for TVM to optimize common
# operators without the need for the user to provide a user-defined template.
diff --git a/docs/_downloads/96137df89d8034b548f407123ec50ce9/opt_gemm.py b/docs/_downloads/96137df89d8034b548f407123ec50ce9/opt_gemm.py
index 5d698c612..920d7a87f 100644
--- a/docs/_downloads/96137df89d8034b548f407123ec50ce9/opt_gemm.py
+++ b/docs/_downloads/96137df89d8034b548f407123ec50ce9/opt_gemm.py
@@ -312,7 +312,7 @@ ko, ki = s[CC].split(kaxis, factor=kfactor)
s[CC].reorder(ko, mc, ki, nc)
s[CC].vectorize(nc)
-# TODO: Add separate optimization step to discuss loop unrolloing
+# TODO: Add separate optimization step to discuss loop unrolling
# unrolling is a loop optimization strategy which can reduce branch
# prediction failures and increases the chance of concurrent execution
# unroll kfactor loops
@@ -390,4 +390,4 @@ print(tvm.lower(s, [A, B, C], simple_mode=True))
# our generated code can achieve 60% of the `numpy` performance with MKL.
# Note that the outputs on the web page reflect the running times on a non-exclusive
# Docker container, thereby they are *unreliable*. It is highly encouraged to run the
-# tutorial by yourself to observe the performance gain acheived by TVM.
+# tutorial by yourself to observe the performance gain achieved by TVM.
diff --git a/docs/_downloads/9c3764c88ab3eb57dc223b4eda1e8a2f/deploy_sparse.py b/docs/_downloads/9c3764c88ab3eb57dc223b4eda1e8a2f/deploy_sparse.py
index 768a697f4..56a5f1aaf 100644
--- a/docs/_downloads/9c3764c88ab3eb57dc223b4eda1e8a2f/deploy_sparse.py
+++ b/docs/_downloads/9c3764c88ab3eb57dc223b4eda1e8a2f/deploy_sparse.py
@@ -36,11 +36,11 @@ different types of sparsity: **structured** and **unstructured**.
Pruning is a technique primarily used to reduce the parameter size of a model
by replacing weight values with 0s. Although many methods exist for choosing which
-weights should be set to 0, the most straight forward is by picking the
+weights should be set to 0, the most straight forward is by picking the
weights with the smallest value. Typically, weights are pruned to a desired
sparsity percentage. For example, a 95% sparse model would have only 5% of
its weights non-zero. Pruning to very high sparsities often requires
-finetuning or full retraining as it tends to be a lossy approximation.
+fine-tuning or full retraining as it tends to be a lossy approximation.
Although parameter size benefits are quite easy to obtain from a pruned model
through simple compression, leveraging sparsity to yield runtime speedups
is more complicated.
@@ -50,8 +50,8 @@ pruned weights together. In other words, they are pruned using both their
value and location. The benefit of bunching up pruned weights is that it allows
an algorithm such as matrix multiplication to skip entire blocks. It turns out
that some degree of *block sparsity* is very important to realizing significant
-speedups on most hardware available today.
-This is because when loading memory in most CPUs or GPUs,
+speedups on most hardware available today.
+This is because when loading memory in most CPUs or GPUs,
it doesn't save any work to skip reading a single value at a time, instead an entire
chunk or tile is read in and executed using something like vectorized instructions.
diff --git a/docs/_downloads/b11795df0596a55e4982bf895d0c8c38/bring_your_own_datatypes.ipynb b/docs/_downloads/b11795df0596a55e4982bf895d0c8c38/bring_your_own_datatypes.ipynb
index 6ee1999c9..7458071e0 100644
--- a/docs/_downloads/b11795df0596a55e4982bf895d0c8c38/bring_your_own_datatypes.ipynb
+++ b/docs/_downloads/b11795df0596a55e4982bf895d0c8c38/bring_your_own_datatypes.ipynb
@@ -292,7 +292,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "When we attempt to run the model, we get a familiar error telling us that more functions need to be registerd for myfloat.\n\nBecause this is a neural network, many more operations are required.\nHere, we register all the needed functions:\n\n"
+ "When we attempt to run the model, we get a familiar error telling us that more functions need to be registered for myfloat.\n\nBecause this is a neural network, many more operations are required.\nHere, we register all the needed functions:\n\n"
]
},
{
diff --git a/docs/_downloads/b954238c1884e83b45d2ae543d824f03/using_relay_viz.ipynb b/docs/_downloads/b954238c1884e83b45d2ae543d824f03/using_relay_viz.ipynb
index c061311f9..1251dab9d 100644
--- a/docs/_downloads/b954238c1884e83b45d2ae543d824f03/using_relay_viz.ipynb
+++ b/docs/_downloads/b954238c1884e83b45d2ae543d824f03/using_relay_viz.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\nUse Relay Visualizer to Visualize Relay\n============================================================\n**Author**: `Chi-Wei Wang <https://github.com/chiwwang>`_\n\nRelay IR module can contain lots of operations. Although an individual\noperation is usually easy to understand, putting them together can cause\na complicated, hard-to-read graph. Things can get even worse with optimiztion-passes\ncoming into play.\n\nThis utility visualizes an IR module as nodes and edges. It defi [...]
+ "\nUse Relay Visualizer to Visualize Relay\n============================================================\n**Author**: `Chi-Wei Wang <https://github.com/chiwwang>`_\n\nRelay IR module can contain lots of operations. Although an individual\noperation is usually easy to understand, putting them together can cause\na complicated, hard-to-read graph. Things can get even worse with optimization-passes\ncoming into play.\n\nThis utility visualizes an IR module as nodes and edges. It def [...]
]
},
{
@@ -69,7 +69,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Customize Parser for Interested Relay Types\n-------------------------------------------\nSometimes we want to emphasize interested information, or parse things differently for a specific usage.\nIt is possible to provide customized parsers as long as it obeys the interface.\nHere demostrate how to customize parsers for ``relay.var``.\nWe need to implement abstract interface :py:class:`tvm.contrib.relay_viz.interface.VizParser`.\n\n"
+ "Customize Parser for Interested Relay Types\n-------------------------------------------\nSometimes we want to emphasize interested information, or parse things differently for a specific usage.\nIt is possible to provide customized parsers as long as it obeys the interface.\nHere demonstrate how to customize parsers for ``relay.var``.\nWe need to implement abstract interface :py:class:`tvm.contrib.relay_viz.interface.VizParser`.\n\n"
]
},
{
@@ -116,7 +116,7 @@
},
"outputs": [],
"source": [
- "class AwesomeGraph(TermGraph):\n def node(self, viz_node):\n # add the node first\n super().node(viz_node)\n # if it's AwesomeVar, duplicate it.\n if viz_node.type_name == \"AwesomeVar\":\n duplicated_id = f\"duplciated_{viz_node.identity}\"\n duplicated_type = \"double AwesomeVar\"\n super().node(VizNode(duplicated_id, duplicated_type, \"\"))\n # connect the duplicated var to the original one\n [...]
+ "class AwesomeGraph(TermGraph):\n def node(self, viz_node):\n # add the node first\n super().node(viz_node)\n # if it's AwesomeVar, duplicate it.\n if viz_node.type_name == \"AwesomeVar\":\n duplicated_id = f\"duplicated_{viz_node.identity}\"\n duplicated_type = \"double AwesomeVar\"\n super().node(VizNode(duplicated_id, duplicated_type, \"\"))\n # connect the duplicated var to the original one\n [...]
]
},
{
diff --git a/docs/_downloads/c9bb7875c6ca5b2da162e177d3c9aac0/tensor_ir_blitz_course.ipynb b/docs/_downloads/c9bb7875c6ca5b2da162e177d3c9aac0/tensor_ir_blitz_course.ipynb
index 3e40008cb..fee27fd3c 100644
--- a/docs/_downloads/c9bb7875c6ca5b2da162e177d3c9aac0/tensor_ir_blitz_course.ipynb
+++ b/docs/_downloads/c9bb7875c6ca5b2da162e177d3c9aac0/tensor_ir_blitz_course.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n\nBlitz Course to TensorIR\n========================\n**Author**: `Siyuan Feng <https://github.com/Hzfengsy>`_\n\nTensorIR is a domain specific language for deep learning programs serving two broad purposes:\n\n- An implementation for transforming and optimizing programs on various hardware backends.\n\n- An abstraction for automatic tensorized program optimization.\n"
+ "\n\nBlitz Course to TensorIR\n========================\n**Author**: `Siyuan Feng <https://github.com/Hzfengsy>`_\n\nTensorIR is a domain specific language for deep learning programs serving two broad purposes:\n\n- An implementation for transforming and optimizing programs on various hardware backends.\n\n- An abstraction for automatic _tensorized_ program optimization.\n"
]
},
{
@@ -112,7 +112,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Transform an IRModule\n---------------------\nThe IRModule is the central data structure for program optimization, which can be transformed\nby :code:`Schedule`.\nA schedule contains multiple primitive methods to interactively transform the program.\nEach primitive transforms the program in certain ways to bring additional performance optimizations.\n\n\n\n :align: center\n [...]
+ "Transform an IRModule\n---------------------\nThe IRModule is the central data structure for program optimization, which can be transformed\nby :code:`Schedule`.\nA schedule contains multiple primitive methods to interactively transform the program.\nEach primitive transforms the program in certain ways to bring additional performance optimizations.\n\n\n\n :align: center\n [...]
]
},
{
@@ -141,7 +141,7 @@
},
"outputs": [],
"source": [
- "# Get block by its name\nblock_b = sch.get_block(\"B\")\n# Get loops surronding the block\n(i,) = sch.get_loops(block_b)\n# Tile the loop nesting.\ni_0, i_1, i_2 = sch.split(i, factors=[2, 2, 2])\nprint(sch.mod.script())"
+ "# Get block by its name\nblock_b = sch.get_block(\"B\")\n# Get loops surrounding the block\n(i,) = sch.get_loops(block_b)\n# Tile the loop nesting.\ni_0, i_1, i_2 = sch.split(i, factors=[2, 2, 2])\nprint(sch.mod.script())"
]
},
{
diff --git a/docs/_downloads/caa649473e845a115a0397a2855fd356/low_level_custom_pass.py b/docs/_downloads/caa649473e845a115a0397a2855fd356/low_level_custom_pass.py
index 8f6310754..ee96d8220 100644
--- a/docs/_downloads/caa649473e845a115a0397a2855fd356/low_level_custom_pass.py
+++ b/docs/_downloads/caa649473e845a115a0397a2855fd356/low_level_custom_pass.py
@@ -129,7 +129,7 @@ def vectorize(f, mod, ctx):
tvm.tir.stmt_functor.post_order_visit(f.body, find_width8)
if not loops:
- return sf
+ return f
# The last list arugment indicates what kinds of nodes will be transformed.
# Thus, in this case only `For` nodes will call `vectorize8`
diff --git a/docs/_downloads/cb089f2129f9829a01cc54eb81528811/using_relay_viz.py b/docs/_downloads/cb089f2129f9829a01cc54eb81528811/using_relay_viz.py
index 10e6dab12..b0132f40b 100644
--- a/docs/_downloads/cb089f2129f9829a01cc54eb81528811/using_relay_viz.py
+++ b/docs/_downloads/cb089f2129f9829a01cc54eb81528811/using_relay_viz.py
@@ -22,7 +22,7 @@ Use Relay Visualizer to Visualize Relay
Relay IR module can contain lots of operations. Although an individual
operation is usually easy to understand, putting them together can cause
-a complicated, hard-to-read graph. Things can get even worse with optimiztion-passes
+a complicated, hard-to-read graph. Things can get even worse with optimization-passes
coming into play.
This utility visualizes an IR module as nodes and edges. It defines a set of interfaces including
@@ -89,7 +89,7 @@ viz.render()
# -------------------------------------------
# Sometimes we want to emphasize interested information, or parse things differently for a specific usage.
# It is possible to provide customized parsers as long as it obeys the interface.
-# Here demostrate how to customize parsers for ``relay.var``.
+# Here demonstrate how to customize parsers for ``relay.var``.
# We need to implement abstract interface :py:class:`tvm.contrib.relay_viz.interface.VizParser`.
class YourAwesomeParser(VizParser):
def __init__(self):
@@ -131,7 +131,7 @@ class AwesomeGraph(TermGraph):
super().node(viz_node)
# if it's AwesomeVar, duplicate it.
if viz_node.type_name == "AwesomeVar":
- duplicated_id = f"duplciated_{viz_node.identity}"
+ duplicated_id = f"duplicated_{viz_node.identity}"
duplicated_type = "double AwesomeVar"
super().node(VizNode(duplicated_id, duplicated_type, ""))
# connect the duplicated var to the original one
diff --git a/docs/_downloads/d0a1817b910da958b41d88afe4d4952d/use_pass_instrument.py b/docs/_downloads/d0a1817b910da958b41d88afe4d4952d/use_pass_instrument.py
index 3369304a6..036aa63e3 100644
--- a/docs/_downloads/d0a1817b910da958b41d88afe4d4952d/use_pass_instrument.py
+++ b/docs/_downloads/d0a1817b910da958b41d88afe4d4952d/use_pass_instrument.py
@@ -30,7 +30,7 @@ instances to :py:class:`tvm.transform.PassContext`. We provide a pass instrument
for collecting timing information (:py:class:`tvm.ir.instrument.PassTimingInstrument`),
but an extension mechanism is available via the :py:func:`tvm.instrument.pass_instrument` decorator.
-This tutorial demostrates how developers can use ``PassContext`` to instrument
+This tutorial demonstrates how developers can use ``PassContext`` to instrument
passes. Please also refer to the :ref:`pass-infra`.
"""
import tvm
@@ -314,7 +314,7 @@ except ValueError as ex:
print("Catching", str(ex).split("\n")[-1])
###############################################################################
-# Exceptions occured in ``should_run``, ``run_before_pass``, ``run_after_pass``
+# Exceptions occurred in ``should_run``, ``run_before_pass``, ``run_after_pass``
# are not handled explicitly -- we rely on the context manager (the ``with`` syntax)
# to exit ``PassContext`` safely.
#
diff --git a/docs/_downloads/d58ec306b89044968adefb49e6552378/low_level_custom_pass.ipynb b/docs/_downloads/d58ec306b89044968adefb49e6552378/low_level_custom_pass.ipynb
index 80e1d23cb..08ebd6c93 100644
--- a/docs/_downloads/d58ec306b89044968adefb49e6552378/low_level_custom_pass.ipynb
+++ b/docs/_downloads/d58ec306b89044968adefb49e6552378/low_level_custom_pass.ipynb
@@ -87,7 +87,7 @@
},
"outputs": [],
"source": [
- "def vectorize8(op):\n \"\"\"Split can vectorize the loops found in `find_width8`.\"\"\"\n if op in loops:\n extent = op.extent.value\n name = op.loop_var.name\n lo, li = te.var(name + \".outer\"), te.var(name + \".inner\")\n body = tvm.tir.stmt_functor.substitute(op.body, {op.loop_var: lo * 8 + li})\n body = tvm.tir.For(li, 0, 8, tvm.tir.ForKind.VECTORIZED, body)\n body = tvm.tir.For(lo, 0, extent // 8, tvm.tir.ForKind.SERIAL, body [...]
+ "def vectorize8(op):\n \"\"\"Split can vectorize the loops found in `find_width8`.\"\"\"\n if op in loops:\n extent = op.extent.value\n name = op.loop_var.name\n lo, li = te.var(name + \".outer\"), te.var(name + \".inner\")\n body = tvm.tir.stmt_functor.substitute(op.body, {op.loop_var: lo * 8 + li})\n body = tvm.tir.For(li, 0, 8, tvm.tir.ForKind.VECTORIZED, body)\n body = tvm.tir.For(lo, 0, extent // 8, tvm.tir.ForKind.SERIAL, body [...]
]
},
{
diff --git a/docs/_downloads/d9089082842c138d4c81335f88c60c82/intrin_math.py b/docs/_downloads/d9089082842c138d4c81335f88c60c82/intrin_math.py
index 92383b90a..535563bfb 100644
--- a/docs/_downloads/d9089082842c138d4c81335f88c60c82/intrin_math.py
+++ b/docs/_downloads/d9089082842c138d4c81335f88c60c82/intrin_math.py
@@ -26,7 +26,7 @@ For example :code:`exp` to take the exponential of the function.
These functions are target system dependent and may have different
names of different target platforms. In this tutorial, we will learn
how we can invoke these target specific functions, and how we can unify
-the interface via tvm's intrinsic API.
+the interface via TVM's intrinsic API.
"""
from __future__ import absolute_import, print_function
import numpy as np
diff --git a/docs/_downloads/dabb6b43ea9ef9d7bd1a3912001deace/build_gcn.py b/docs/_downloads/dabb6b43ea9ef9d7bd1a3912001deace/build_gcn.py
index d76baec1e..fcffbd77f 100644
--- a/docs/_downloads/dabb6b43ea9ef9d7bd1a3912001deace/build_gcn.py
+++ b/docs/_downloads/dabb6b43ea9ef9d7bd1a3912001deace/build_gcn.py
@@ -314,7 +314,7 @@ output = layers[-1]
# Compile and run with TVM
# ------------------------
#
-# Export the weigths from PyTorch model to Python Dict
+# Export the weights from PyTorch model to Python Dict
model_params = {}
for param_tensor in torch_model.state_dict():
model_params[param_tensor] = torch_model.state_dict()[param_tensor].numpy()
diff --git a/docs/_downloads/eac4389b114db015e95cb3cdf8b86b83/auto_scheduler_matmul_x86.py b/docs/_downloads/eac4389b114db015e95cb3cdf8b86b83/auto_scheduler_matmul_x86.py
index 9f3a6070c..b9f89f672 100644
--- a/docs/_downloads/eac4389b114db015e95cb3cdf8b86b83/auto_scheduler_matmul_x86.py
+++ b/docs/_downloads/eac4389b114db015e95cb3cdf8b86b83/auto_scheduler_matmul_x86.py
@@ -78,13 +78,13 @@ def matmul_add(N, L, M, dtype):
# ----------------------
# With the function defined, we can now create the task for the auto_scheduler
# to search against. We specify the particular parameters for this matrix
-# multiplication, in this case a multiplication of to square matricies of size
+# multiplication, in this case a multiplication of two square matrices of size
# 1024x1024. We then create a search task with N=L=M=1024 and dtype="float32"
#
# .. admonition:: Improve performance with custom targets
#
# In order for TVM to take full advantage of specific hardware platforms,
-# you will want to manuall specify your CPU capabilities. For example:
+# you will want to manually specify your CPU capabilities. For example:
#
# - replace ``llvm`` below with ``llvm -mcpu=core-avx2`` to enable AVX2
# - replace ``llvm`` below with ``llvm -mcpu=skylake-avx512`` to enable AVX-512
diff --git a/docs/_downloads/ee99205e9f2e4f54c0fb7925008a5354/bring_your_own_datatypes.py b/docs/_downloads/ee99205e9f2e4f54c0fb7925008a5354/bring_your_own_datatypes.py
index 018245609..1a48781e2 100644
--- a/docs/_downloads/ee99205e9f2e4f54c0fb7925008a5354/bring_your_own_datatypes.py
+++ b/docs/_downloads/ee99205e9f2e4f54c0fb7925008a5354/bring_your_own_datatypes.py
@@ -313,7 +313,7 @@ except tvm.TVMError as e:
print(str(e).split("\n")[-1])
######################################################################
-# When we attempt to run the model, we get a familiar error telling us that more functions need to be registerd for myfloat.
+# When we attempt to run the model, we get a familiar error telling us that more functions need to be registered for myfloat.
#
# Because this is a neural network, many more operations are required.
# Here, we register all the needed functions:
diff --git a/docs/_downloads/f6ff0fbc61d45d2cc0f53ebbf11a5fb5/use_pass_instrument.ipynb b/docs/_downloads/f6ff0fbc61d45d2cc0f53ebbf11a5fb5/use_pass_instrument.ipynb
index 4c4d92611..b1b6f6a03 100644
--- a/docs/_downloads/f6ff0fbc61d45d2cc0f53ebbf11a5fb5/use_pass_instrument.ipynb
+++ b/docs/_downloads/f6ff0fbc61d45d2cc0f53ebbf11a5fb5/use_pass_instrument.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n\nHow to Use TVM Pass Instrument\n==============================\n**Author**: `Chi-Wei Wang <https://github.com/chiwwang>`_\n\nAs more and more passes are implemented, it becomes useful to instrument\npass execution, analyze per-pass effects, and observe various events.\n\nWe can instrument passes by providing a list of :py:class:`tvm.ir.instrument.PassInstrument`\ninstances to :py:class:`tvm.transform.PassContext`. We provide a pass instrument\nfor collecting timing informati [...]
+ "\n\nHow to Use TVM Pass Instrument\n==============================\n**Author**: `Chi-Wei Wang <https://github.com/chiwwang>`_\n\nAs more and more passes are implemented, it becomes useful to instrument\npass execution, analyze per-pass effects, and observe various events.\n\nWe can instrument passes by providing a list of :py:class:`tvm.ir.instrument.PassInstrument`\ninstances to :py:class:`tvm.transform.PassContext`. We provide a pass instrument\nfor collecting timing informati [...]
]
},
{
@@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Exceptions occured in ``should_run``, ``run_before_pass``, ``run_after_pass``\nare not handled explicitly -- we rely on the context manager (the ``with`` syntax)\nto exit ``PassContext`` safely.\n\nWe use ``run_before_pass`` as an example:\n\n"
+ "Exceptions occurred in ``should_run``, ``run_before_pass``, ``run_after_pass``\nare not handled explicitly -- we rely on the context manager (the ``with`` syntax)\nto exit ``PassContext`` safely.\n\nWe use ``run_before_pass`` as an example:\n\n"
]
},
{
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 f706b2d7a..ea5a086df 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.zip5dbcd572-c086-45f1-81d8-9ca43debd0e0 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+ Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip69be23b3-820e-43a1-95fd-b3934a3c4108 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 5bbcffcc4..6442de675 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.3kB/s]
0%| | 48.0k/41.5M [00:00<04:57, 146kB/s]
0%| | 96.0k/41.5M [00:00<03:31, 205kB/s]
0%| | 176k/41.5M [00:00<02:21, 306kB/s]
1%| | 360k/41.5M [00:00<01:14, 576kB/s]
1%|1 | 552k/41.5M [00:01<00:56, 755kB/s]
3%|2 | 1.09M/41.5M [00:01<00:26, 1.57MB/s]
5%|5 | 2.20M/41.5M [00:01<00:13, 3.13MB/s]
9%|8 | 3.66M/41.5M [00:01<00:08, 4.85MB/s]
12%|#2 | 5.13M/41.5M [00:01<00:06, 6.02MB/s]
16%|#5 | 6.61M/41.5M [00:01<00:05, 6.83MB/s]
19%|#9 | 8.08M/41.5M [00:02<00:04, 7.38MB/s]
23%|##3 | 9.55M/41.5M [00:02<00:04, 7.76MB/s]
27%|##6 | 11.0M/41.5M [00:02<00:03, 8.02MB/s]
30%|### | 12.5M/41.5M [00:02<00:03, 8.21MB/s]
32%|###1 | 13.3M/41.5M [00:02<00:04, 7.07MB/s]
35%|###4 | 14.4M/41.5M [00:03<00
:04, 7.01MB/s]
38%|###8 | 15.9M/41.5M [00:03<00:03, 7.50MB/s]
42%|####1 | 17.4M/41.5M [00:03<00:03, 7.84MB/s]
45%|####5 | 18.9M/41.5M [00:03<00:02, 8.09MB/s]
49%|####8 | 20.3M/41.5M [00:03<00:02, 8.25MB/s]
53%|#####2 | 21.8M/41.5M [00:03<00:02, 8.37MB/s]
56%|#####6 | 23.3M/41.5M [00:04<00:02, 8.45MB/s]
60%|#####9 | 24.7M/41.5M [00:04<00:02, 8.50MB/s]
63%|######3 | 26.2M/41.5M [00:04<00:01, 9.50MB/s]
67%|######6 | 27.7M/41.5M [00:04<00:01, 8.32MB/s]
70%|####### | 29.1M/41.5M [00:04<00:01, 8.41MB/s]
74%|#######3 | 30.6M/41.5M [00:04<00:01, 8.48MB/s]
77%|#######7 | 32.1M/41.5M [00:05<00:01, 8.53MB/s]
81%|######## | 33.6M/41.5M [00:05<00:00, 8.57MB/s]
84%|########4 | 35.0M/41.5M [00:05<00:00, 8.59MB/s]
88%|########7 | 36.5M/41.5M [00:05<00:00, 8.61MB/s]
92%|#########1| 38.0M/41.5M [00:05<00:00, 8.61MB/s]
95%|#########5| 39.4M/41.5M [00:06<00:00, 8.61MB/s]
99%|####
#####8| 40.9M/41.5M [00:06<00:00, 8.62MB/s]
100%|##########| 41.5M/41.5M [00:06<00:00, 6.95MB/s]
+
0%| | 0.00/41.5M [00:00<?, ?B/s]
0%| | 16.0k/41.5M [00:00<08:06, 89.4kB/s]
0%| | 48.0k/41.5M [00:00<05:05, 142kB/s]
0%| | 72.0k/41.5M [00:00<05:11, 139kB/s]
0%| | 136k/41.5M [00:00<03:12, 225kB/s]
1%| | 288k/41.5M [00:00<01:36, 448kB/s]
1%|1 | 576k/41.5M [00:01<00:51, 841kB/s]
2%|2 | 952k/41.5M [00:01<00:33, 1.25MB/s]
3%|3 | 1.31M/41.5M [00:01<00:27, 1.56MB/s]
4%|4 | 1.72M/41.5M [00:01<00:22, 1.82MB/s]
5%|5 | 2.14M/41.5M [00:01<00:20, 2.01MB/s]
6%|6 | 2.59M/41.5M [00:02<00:18, 2.18MB/s]
7%|7 | 3.05M/41.5M [00:02<00:15, 2.53MB/s]
9%|8 | 3.55M/41.5M [00:02<00:15, 2.63MB/s]
10%|9 | 4.05M/41.5M [00:02<00:15, 2.53MB/s]
11%|#1 | 4.59M/41.5M [00:02<00:14, 2.73MB/s]
12%|#2 | 5.15M/41.5M [00:02<00:13, 2.92MB/s]
14%|#3 | 5.73M/41.5M [00:03<00:
12, 3.10MB/s]
15%|#5 | 6.35M/41.5M [00:03<00:11, 3.26MB/s]
17%|#6 | 6.99M/41.5M [00:03<00:10, 3.42MB/s]
18%|#8 | 7.67M/41.5M [00:03<00:09, 3.61MB/s]
20%|## | 8.38M/41.5M [00:03<00:09, 3.78MB/s]
22%|##1 | 9.12M/41.5M [00:03<00:08, 3.93MB/s]
24%|##3 | 9.91M/41.5M [00:04<00:08, 4.08MB/s]
26%|##5 | 10.7M/41.5M [00:04<00:07, 4.28MB/s]
28%|##7 | 11.6M/41.5M [00:04<00:06, 4.48MB/s]
30%|### | 12.5M/41.5M [00:04<00:06, 4.63MB/s]
32%|###2 | 13.4M/41.5M [00:04<00:06, 4.82MB/s]
35%|###4 | 14.4M/41.5M [00:05<00:05, 5.05MB/s]
37%|###7 | 15.5M/41.5M [00:05<00:05, 5.34MB/s]
40%|###9 | 16.6M/41.5M [00:05<00:04, 5.64MB/s]
43%|####2 | 17.7M/41.5M [00:05<00:04, 5.92MB/s]
46%|####5 | 18.9M/41.5M [00:05<00:03, 6.24MB/s]
49%|####8 | 20.2M/41.5M [00:05<00:03, 6.55MB/s]
52%|#####1 | 21.5M/41.5M [00:06<00:03, 6.86MB/s]
55%|#####
5 | 22.9M/41.5M [00:06<00:02, 7.17MB/s]
59%|#####8 | 24.4M/41.5M [00:06<00:02, 7.51MB/s]
62%|######2 | 25.8M/41.5M [00:06<00:02, 7.81MB/s]
66%|######5 | 27.3M/41.5M [00:06<00:01, 8.02MB/s]
69%|######9 | 28.8M/41.5M [00:07<00:01, 8.12MB/s]
73%|#######2 | 30.2M/41.5M [00:07<00:01, 8.18MB/s]
76%|#######6 | 31.7M/41.5M [00:07<00:01, 8.23MB/s]
80%|#######9 | 33.2M/41.5M [00:07<00:01, 8.25MB/s]
84%|########3 | 34.6M/41.5M [00:07<00:00, 8.28MB/s]
87%|########7 | 36.1M/41.5M [00:08<00:00, 8.28MB/s]
91%|######### | 37.6M/41.5M [00:08<00:00, 8.26MB/s]
94%|#########4| 39.1M/41.5M [00:08<00:00, 8.25MB/s]
98%|#########7| 40.5M/41.5M [00:08<00:00, 8.23MB/s]
100%|##########| 41.5M/41.5M [00:08<00:00, 5.07MB/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 907bb8a54..9cfc80339 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.539 seconds)
+ **Total running time of the script:** ( 1 minutes 8.144 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 63693e99f..9ae50a3df 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]
33%|###3 | 14.8M/44.7M [00:00<00:00, 155MB/s]
66%|######6 | 29.6M/44.7M [00:00<00:00, 151MB/s]
100%|##########| 44.7M/44.7M [00:00<00:00, 170MB/s]
+
0%| | 0.00/44.7M [00:00<?, ?B/s]
15%|#5 | 6.77M/44.7M [00:00<00:00, 68.7MB/s]
37%|###7 | 16.7M/44.7M [00:00<00:00, 87.5MB/s]
83%|########3 | 37.1M/44.7M [00:00<00:00, 144MB/s]
100%|##########| 44.7M/44.7M [00:00<00:00, 135MB/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 0920e0b80..42ef184ab 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 0.224 seconds)
+ **Total running time of the script:** ( 1 minutes 2.154 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 4ef230b4e..5a3fb5e72 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:36.540** total execution time for **how_to_compile_models** files:
+**05:29.087** total execution time for **how_to_compile_models** files:
-- **01:05.539**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
-- **01:00.224**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
-- **00:57.002**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
-- **00:40.945**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
-- **00:31.870**: :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)
-- **00:22.716**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
-- **00:21.762**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
-- **00:19.043**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
-- **00:14.532**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
-- **00:02.906**: :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)
+- **01:08.144**: :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)
+- **01:02.154**: :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``)
+- **00:58.529**: :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)
+- **00:34.150**: :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)
+- **00:24.336**: :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)
+- **00:22.939**: :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)
+- **00:21.806**: :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)
+- **00:20.351**: :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)
+- **00:14.185**: :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)
+- **00:02.493**: :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 91bc13f18..ad81ab6ae 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)
- 16.2326 15.9737 16.9055 15.8591 0.4070
+ 16.0267 15.9703 16.3084 15.9199 0.1226
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 caf61b210..374409321 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]
8%|7 | 13.4M/170M [00:00<00:01, 140MB/s]
19%|#9 | 33.0M/170M [00:00<00:00, 179MB/s]
32%|###1 | 53.6M/170M [00:00<00:00, 196MB/s]
43%|####3 | 73.3M/170M [00:00<00:00, 200MB/s]
55%|#####5 | 93.5M/170M [00:00<00:00, 204MB/s]
68%|######8 | 116M/170M [00:00<00:00, 215MB/s]
81%|######## | 137M/170M [00:00<00:00, 216MB/s]
93%|#########2| 157M/170M [00:00<00:00, 215MB/s]
100%|##########| 170M/170M [00:00<00:00, 208MB/s]
+
0%| | 0.00/170M [00:00<?, ?B/s]
4%|3 | 5.98M/170M [00:00<00:02, 58.3MB/s]
9%|8 | 15.0M/170M [00:00<00:02, 79.3MB/s]
22%|##2 | 38.2M/170M [00:00<00:00, 153MB/s]
34%|###3 | 57.1M/170M [00:00<00:00, 170MB/s]
43%|####3 | 73.5M/170M [00:00<00:00, 161MB/s]
55%|#####4 | 93.0M/170M [00:00<00:00, 176MB/s]
66%|######6 | 112M/170M [00:00<00:00, 184MB/s]
78%|#######8 | 133M/170M [00:00<00:00, 193MB/s]
91%|######### | 154M/170M [00:00<00:00, 203MB/s]
100%|##########| 170M/170M [00:01<00:00, 170MB/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 58.760 seconds)
+ **Total running time of the script:** ( 2 minutes 59.421 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 1c20c2a88..142746084 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]
36%|###5 | 4.86M/13.6M [00:00<00:00, 50.9MB/s]
72%|#######1 | 9.72M/13.6M [00:00<00:00, 49.9MB/s]
100%|##########| 13.6M/13.6M [00:00<00:00, 65.0MB/s]
+
0%| | 0.00/13.6M [00:00<?, ?B/s]
27%|##7 | 3.69M/13.6M [00:00<00:00, 33.3MB/s]
51%|##### | 6.87M/13.6M [00:00<00:00, 20.6MB/s]
86%|########6 | 11.7M/13.6M [00:00<00:00, 30.4MB/s]
100%|##########| 13.6M/13.6M [00:00<00:00, 30.5MB/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)
- 89.7738 89.6539 91.2964 89.0311 0.5350
+ 90.5046 90.2703 100.2387 90.1407 1.1541
@@ -393,7 +393,7 @@ TODO
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 6.339 seconds)
+ **Total running time of the script:** ( 1 minutes 7.039 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 db62c932a..00031c5f0 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)
- 117.8574 117.7878 123.0413 117.0000 0.6198
+ 120.5413 120.4076 126.1949 119.6308 0.7128
@@ -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 51.540 seconds)
+ **Total running time of the script:** ( 1 minutes 58.943 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 95bcab31f..320a5d176 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.855 seconds)
+ **Total running time of the script:** ( 1 minutes 12.976 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_quantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_sparse.rst.txt b/docs/_sources/how_to/deploy_models/deploy_sparse.rst.txt
index de02f9c7e..f0d86a8b9 100644
--- a/docs/_sources/how_to/deploy_models/deploy_sparse.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_sparse.rst.txt
@@ -28,11 +28,11 @@ different types of sparsity: **structured** and **unstructured**.
Pruning is a technique primarily used to reduce the parameter size of a model
by replacing weight values with 0s. Although many methods exist for choosing which
-weights should be set to 0, the most straight forward is by picking the
+weights should be set to 0, the most straight forward is by picking the
weights with the smallest value. Typically, weights are pruned to a desired
sparsity percentage. For example, a 95% sparse model would have only 5% of
its weights non-zero. Pruning to very high sparsities often requires
-finetuning or full retraining as it tends to be a lossy approximation.
+fine-tuning or full retraining as it tends to be a lossy approximation.
Although parameter size benefits are quite easy to obtain from a pruned model
through simple compression, leveraging sparsity to yield runtime speedups
is more complicated.
@@ -42,8 +42,8 @@ pruned weights together. In other words, they are pruned using both their
value and location. The benefit of bunching up pruned weights is that it allows
an algorithm such as matrix multiplication to skip entire blocks. It turns out
that some degree of *block sparsity* is very important to realizing significant
-speedups on most hardware available today.
-This is because when loading memory in most CPUs or GPUs,
+speedups on most hardware available today.
+This is because when loading memory in most CPUs or GPUs,
it doesn't save any work to skip reading a single value at a time, instead an entire
chunk or tile is read in and executed using something like vectorized instructions.
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 101e3217f..091714297 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]
2%|1 | 2094/132723 [00:00<00:06, 20527.68KB/s]
3%|3 | 4212/132723 [00:00<00:06, 20907.10KB/s]
8%|8 | 10989/132723 [00:00<00:02, 42207.22KB/s]
15%|#4 | 19524/132723 [00:00<00:01, 59189.07KB/s]
21%|##1 | 28083/132723 [00:00<00:01, 68690.16KB/s]
28%|##7 | 36621/132723 [00:00<00:01, 74354.32KB/s]
33%|###3 | 44063/132723 [00:00<00:01, 72216.25KB/s]
40%|###9 | 52512/132723 [00:00<00:01, 76033.13KB/s]
46%|####6 | 61072/132723 [00:00<00:00, 78979.78KB/s]
52%|#####2 | 69264/132723 [00:01<00:00, 76026.56KB/s]
59%|#####8 | 77671/132723 [00:01<00:00, 78386.05KB/s]
65%|######4 | 86248/132723 [00:01<00:00, 80566.29KB/s]
71%|#######1 | 94726/132723 [00:01<00:00, 81815.83KB/s]
78%|#######7 | 103304/132723 [00:01<00:00, 82993.86KB/s]
84%|########4 | 111936/132723 [00:01<00:00, 83980.08KB/s]
91%|#########
| 120550/132723 [00:01<00:00, 84622.70KB/s]
97%|#########7| 129167/132723 [00:01<00:00, 85084.29KB/s]
100%|##########| 132723/132723 [00:01<00:00, 74948.43KB/s]
+
0%| | 0/132723 [00:00<?, ?KB/s]
5%|4 | 6055/132723 [00:00<00:02, 60544.72KB/s]
11%|# | 14513/132723 [00:00<00:01, 74678.25KB/s]
17%|#7 | 23069/132723 [00:00<00:01, 79642.53KB/s]
24%|##3 | 31547/132723 [00:00<00:01, 81662.50KB/s]
30%|##9 | 39714/132723 [00:00<00:01, 69338.40KB/s]
36%|###6 | 48258/132723 [00:00<00:01, 74228.73KB/s]
43%|####2 | 56800/132723 [00:00<00:00, 77617.51KB/s]
49%|####9 | 65328/132723 [00:00<00:00, 79924.45KB/s]
56%|#####5 | 73888/132723 [00:00<00:00, 81633.71KB/s]
62%|######2 | 82465/132723 [00:01<00:00, 82876.50KB/s]
69%|######8 | 91132/132723 [00:01<00:00, 84015.61KB/s]
75%|#######5 | 99586/132723 [00:01<00:00, 75636.59KB/s]
81%|########1 | 107873/132723 [00:01<00:00, 77648.09KB/s]
87%|########7 | 115787/132723 [00:01<00:00, 49870.57KB/s]
94%|#########3| 124123/132723 [00:01<00:00, 56772.48KB/s]
100%|########
#9| 132564/132723 [00:01<00:00, 63057.60KB/s]
100%|##########| 132723/132723 [00:01<00:00, 70220.74KB/s]
@@ -211,7 +211,7 @@ Display result
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 2 minutes 19.378 seconds)
+ **Total running time of the script:** ( 2 minutes 18.823 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 2ea7265e1..78b8415f6 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:20.023** total execution time for **how_to_deploy_models** files:
+**10:29.094** total execution time for **how_to_deploy_models** files:
-- **02:58.760**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
-- **02:19.378**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
-- **01:51.540**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
-- **01:12.855**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
-- **01:06.339**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
-- **00:28.900**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
-- **00:22.056**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
-- **00:00.197**: :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)
+- **02:59.421**: :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``)
+- **02:18.823**: :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)
+- **01:58.943**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)
+- **01:12.976**: :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)
+- **01:07.039**: :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)
+- **00:29.058**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)
+- **00:22.634**: :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)
+- **00:00.201**: :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 bdfa411a1..c5d8ae9d1 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.zipf72c5caa-2564-4689-b8f2-56e2ea6329cf from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+ Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip5f463e3d-4b2a-4d5e-966b-aca87eb90c16 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
@@ -527,11 +527,11 @@ Now, to actually convert the entire network, we have written `a pass in Relay <h
.. code-block:: none
- Check failed: (lower) is false: Intrinsic lowering function for target llvm, intrinsic name tir.sqrt, type 150 not found
+ Check failed: (lower) is false: FloatImm lowering function for target llvm type 150 not found
-When we attempt to run the model, we get a familiar error telling us that more functions need to be registerd for myfloat.
+When we attempt to run the model, we get a familiar error telling us that more functions need to be registered for myfloat.
Because this is a neural network, many more operations are required.
Here, we register all the needed functions:
diff --git a/docs/_sources/how_to/extend_tvm/low_level_custom_pass.rst.txt b/docs/_sources/how_to/extend_tvm/low_level_custom_pass.rst.txt
index 70bd276ca..0ff5d0cd1 100644
--- a/docs/_sources/how_to/extend_tvm/low_level_custom_pass.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/low_level_custom_pass.rst.txt
@@ -169,7 +169,7 @@ this value.
tvm.tir.stmt_functor.post_order_visit(f.body, find_width8)
if not loops:
- return sf
+ return f
# The last list arugment indicates what kinds of nodes will be transformed.
# Thus, in this case only `For` nodes will call `vectorize8`
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 fabe0a596..19d51daf2 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:40.821** total execution time for **how_to_extend_tvm** files:
+**00:40.261** total execution time for **how_to_extend_tvm** files:
-- **00:36.996**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
-- **00:02.456**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
-- **00:01.156**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
+- **00:36.576**: :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``)
+- **00:02.362**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)
+- **00:01.109**: :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)
- **00:00.213**: :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_infra.rst.txt b/docs/_sources/how_to/extend_tvm/use_pass_infra.rst.txt
index ce5d7099f..afa2747d7 100644
--- a/docs/_sources/how_to/extend_tvm/use_pass_infra.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/use_pass_infra.rst.txt
@@ -26,7 +26,7 @@ on a Relay/tir program where the dependencies between passes can be resolved by
pass infra. For more details about each type of these passes, please refer to
the :ref:`pass-infra`
-This tutorial mainly demostrates how developers can use the pass infra to perform
+This tutorial mainly demonstrates how developers can use the pass infra to perform
a certain optimization and create an optimization pipeline for a Relay program.
The same approach can be used for tir as well.
@@ -163,7 +163,7 @@ eliminate the common expressions that used by `z` and `z1`.
-Some optimizations, such as fusion, are parameteric as well. For example,
+Some optimizations, such as fusion, are parametric as well. For example,
opt level 0 will not allow operators to be fused together. Users can pass the
`fuse_opt_level` to enable this.
@@ -222,7 +222,7 @@ Relay, hence, provides :py:class:`tvm.transform.Sequential` to alleviate develop
these issues explicitly by specifying the required passes of each pass and
packing them as a whole to execute. For example, the same passes can now be
applied using the sequential style as the following. :py:class:`tvm.transform.Sequential` is
-similiar to `torch.nn.sequential <https://pytorch.org/docs/stable/nn.html#torch.nn.Sequential>`_
+similar to `torch.nn.sequential <https://pytorch.org/docs/stable/nn.html#torch.nn.Sequential>`_
and `mxnet.gluon.block <https://mxnet.apache.org/api/python/docs/_modules/mxnet/gluon/block.html>`_.
For example, `torch.nn.sequential` is used to contain a sequence of PyTorch
`Modules` that will be added to build a network. It focuses on the network
@@ -626,7 +626,7 @@ Summary
-------
This tutorial has covered how we can write and invoke passes in TVM more
conveniently using the pass infra. Different ways of invoking a pass are also
-disucssed. Using :py:class:`tvm.transform.Sequential` can largely help
+discussed. Using :py:class:`tvm.transform.Sequential` can largely help
users to ease the work of handling multiple optimization passes and their
dependencies. In addition, an example is provided to illustrate
how we can debug a pass using the ``PrintIR`` and tracing.
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 3ea116479..2bd81d7a9 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
@@ -21,7 +21,7 @@ instances to :py:class:`tvm.transform.PassContext`. We provide a pass instrument
for collecting timing information (:py:class:`tvm.ir.instrument.PassTimingInstrument`),
but an extension mechanism is available via the :py:func:`tvm.instrument.pass_instrument` decorator.
-This tutorial demostrates how developers can use ``PassContext`` to instrument
+This tutorial demonstrates how developers can use ``PassContext`` to instrument
passes. Please also refer to the :ref:`pass-infra`.
@@ -199,10 +199,10 @@ profile the execution time of each passes.
.. code-block:: none
Printing results of timing profile...
- InferType: 6572us [6572us] (45.25%; 45.25%)
- FoldScaleAxis: 7953us [6us] (54.75%; 54.75%)
- FoldConstant: 7946us [1582us] (54.71%; 99.92%)
- InferType: 6364us [6364us] (43.82%; 80.09%)
+ InferType: 6541us [6541us] (44.78%; 44.78%)
+ FoldScaleAxis: 8065us [6us] (55.22%; 55.22%)
+ FoldConstant: 8059us [1554us] (55.18%; 99.93%)
+ InferType: 6505us [6505us] (44.54%; 80.72%)
@@ -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: 6396us [6396us] (44.75%; 44.75%)
- FoldScaleAxis: 7897us [6us] (55.25%; 55.25%)
- FoldConstant: 7891us [1621us] (55.21%; 99.92%)
- InferType: 6270us [6270us] (43.87%; 79.46%)
+ InferType: 6270us [6270us] (44.51%; 44.51%)
+ FoldScaleAxis: 7816us [5us] (55.49%; 55.49%)
+ FoldConstant: 7811us [1613us] (55.45%; 99.94%)
+ InferType: 6198us [6198us] (44.00%; 79.35%)
@@ -595,7 +595,7 @@ after the one throwing the exception do not execute ``exit_pass_ctx``.
-Exceptions occured in ``should_run``, ``run_before_pass``, ``run_after_pass``
+Exceptions occurred in ``should_run``, ``run_before_pass``, ``run_after_pass``
are not handled explicitly -- we rely on the context manager (the ``with`` syntax)
to exit ``PassContext`` safely.
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 3f8022e1d..d9ea20a0d 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
@@ -95,7 +95,7 @@ critical to achieve high performance in GPU kernels.
:width: 271px
In this example, we load both Apad and W into buffer AA and WW, which are
-stored in the shared memory. These bufferes will be later shared by all
+stored in the shared memory. These buffers will be later shared by all
threads within the same thread block to compute the convolution. Each thread
then loads its own part from shared buffer into their local registers, AL and
WL. BL is a local cache of output B, which is also stored in the thread local
@@ -295,7 +295,7 @@ latency of convolution.
.. code-block:: none
- Convolution: 54.181335 ms
+ Convolution: 54.131947 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 f42f5cbf2..659653107 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
@@ -321,7 +321,7 @@ one time.
*Warp-level Operation*
Note that all TensorCore instructions are warp-level instructions, which means all 32 threads
- in a warp should do this instruction simultaneously. Making theadIdx.x extent=32 is one of the
+ in a warp should do this instruction simultaneously. Making threadIdx.x extent=32 is one of the
easiest way to solve this. Then We can bind threadIdx.x to any loops except those contain
TensorCore intrinsics directly or indirectly. Also note that it is not the unique solution.
The only thing we should do is to make sure all threads in a warp can call TensorCore at the same time.
@@ -628,7 +628,7 @@ be able to run on our build server
.. code-block:: none
- conv2d with tensor core: 7.453295 ms
+ conv2d with tensor core: 6.993976 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 27bb74a7d..6b7c315ef 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.018660
- Baseline: 3.258906
+ Numpy running time: 0.019189
+ Baseline: 3.452864
@@ -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.315168
+ Opt1: 0.300515
@@ -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.341248
+ Opt2: 0.334529
@@ -401,7 +401,7 @@ the access pattern for A matrix is more cache friendly.
.. code-block:: none
- Opt3: 0.118415
+ Opt3: 0.116622
@@ -520,7 +520,7 @@ flattening.
.. code-block:: none
- Opt4: 0.110422
+ Opt4: 0.110502
@@ -608,7 +608,7 @@ write to C when all the block results are ready.
s[CC].reorder(ko, mc, ki, nc)
s[CC].vectorize(nc)
- # TODO: Add separate optimization step to discuss loop unrolloing
+ # TODO: Add separate optimization step to discuss loop unrolling
# unrolling is a loop optimization strategy which can reduce branch
# prediction failures and increases the chance of concurrent execution
# unroll kfactor loops
@@ -638,7 +638,7 @@ write to C when all the block results are ready.
.. code-block:: none
- Opt5: 0.110941
+ Opt5: 0.111951
@@ -759,7 +759,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
.. code-block:: none
- Opt6: 0.145064
+ Opt6: 0.145564
@@ -834,7 +834,7 @@ After applying the above simple optimizations with only 18 lines of code,
our generated code can achieve 60% of the `numpy` performance with MKL.
Note that the outputs on the web page reflect the running times on a non-exclusive
Docker container, thereby they are *unreliable*. It is highly encouraged to run the
-tutorial by yourself to observe the performance gain acheived by TVM.
+tutorial by yourself to observe the performance gain achieved by TVM.
.. _sphx_glr_download_how_to_optimize_operators_opt_gemm.py:
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 22a4886cd..c5e0c601f 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.855** total execution time for **how_to_optimize_operators** files:
+**00:35.355** total execution time for **how_to_optimize_operators** files:
-- **00:32.178**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
-- **00:01.456**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
-- **00:01.221**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)
+- **00:32.584**: :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)
+- **00:01.479**: :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``)
+- **00:01.291**: :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 e28f51fd9..211d8c22c 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:13.382** total execution time for **how_to_tune_with_autoscheduler** files:
-
-- **02:34.359**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
-- **01:20.451**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
-- **00:43.345**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
-- **00:17.691**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
-- **00:08.877**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
-- **00:08.657**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)
+**05:11.293** total execution time for **how_to_tune_with_autoscheduler** files:
+
+- **02:32.762**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``)
+- **01:20.411**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)
+- **00:43.020**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)
+- **00:17.522**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)
+- **00:08.978**: :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)
+- **00:08.601**: :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 a80baaa78..9f76cef8b 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
@@ -751,7 +751,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 0.360 ms
+ Execution time of this operator: 0.358 ms
@@ -1351,7 +1351,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 34.359 seconds)
+ **Total running time of the script:** ( 2 minutes 32.762 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 35078b6ed..d5ef784a0 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.8982 9.9180 9.9450 9.8317 0.0483
+ 9.8067 9.8261 9.8339 9.7602 0.0331
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 1e10e6de7..2e6303fc0 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)
- 747.8577 749.1900 749.2567 745.1264 1.9315
+ 755.5129 755.9471 756.3586 754.2330 0.9205
@@ -660,7 +660,7 @@ Other Tips
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 20.451 seconds)
+ **Total running time of the script:** ( 1 minutes 20.411 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 e54f567cb..85fb3ad1c 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,75 +362,77 @@ 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_6: placeholder_15: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_8: placeholder_16: Buffer(placeholder_13, int32, [33], []), placeholder_7: placeholder_17: Buffer(placeholder_12, int32, [4916], []), placeholder_9: placeholder_18: Buffer(placeholder_14, float32, [128, 512], []), 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, [256]), storage_scope = global {
- for (nb_j.inner: int32, 0, 2) {
- for (i.inner.init: int32, 0, 8) {
- let cse_var_1: int32 = ((i.inner.init*32) + (nb_j.inner*16))
- {
- compute_5: Buffer(compute_4, float32, [256], [])[cse_var_1] = 0f32
- compute_5[(cse_var_1 + 1)] = 0f32
- compute_5[(cse_var_1 + 2)] = 0f32
- compute_5[(cse_var_1 + 3)] = 0f32
- compute_5[(cse_var_1 + 4)] = 0f32
- compute_5[(cse_var_1 + 5)] = 0f32
- compute_5[(cse_var_1 + 6)] = 0f32
- compute_5[(cse_var_1 + 7)] = 0f32
- compute_5[(cse_var_1 + 8)] = 0f32
- compute_5[(cse_var_1 + 9)] = 0f32
- compute_5[(cse_var_1 + 10)] = 0f32
- compute_5[(cse_var_1 + 11)] = 0f32
- compute_5[(cse_var_1 + 12)] = 0f32
- compute_5[(cse_var_1 + 13)] = 0f32
- compute_5[(cse_var_1 + 14)] = 0f32
- compute_5[(cse_var_1 + 15)] = 0f32
- }
- }
- for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])) {
- for (i.inner: int32, 0, 8) {
- let cse_var_21: int32 = (elem_idx*16)
- let cse_var_20: int32 = ((i.inner*32) + (nb_j.inner*16))
- let cse_var_19: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
- let cse_var_18: int32 = (cse_var_20 + 1)
- let cse_var_17: int32 = (cse_var_20 + 11)
- let cse_var_16: int32 = (cse_var_20 + 12)
- let cse_var_15: int32 = (cse_var_20 + 13)
- let cse_var_14: int32 = (cse_var_20 + 14)
- let cse_var_13: int32 = (cse_var_20 + 15)
- let cse_var_12: int32 = (cse_var_20 + 2)
- let cse_var_11: int32 = (cse_var_20 + 3)
- let cse_var_10: int32 = (cse_var_20 + 4)
- let cse_var_9: int32 = (cse_var_20 + 5)
- let cse_var_8: int32 = (cse_var_20 + 6)
- let cse_var_7: int32 = (cse_var_20 + 7)
- let cse_var_6: int32 = (cse_var_20 + 8)
- let cse_var_5: int32 = (cse_var_20 + 9)
- let cse_var_4: int32 = ((floordiv(i0.outer.i1.outer.fused, 16)*2048) + (i.inner*256))
- let cse_var_3: int32 = (cse_var_20 + 10)
+ preflattened_buffer_map = {placeholder_9: placeholder_15: Buffer(placeholder_14, float32, [128, 512], []), compute_1: compute_3: Buffer(compute_2, 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], [])} {
+ 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, 16) {
+ for (nb_j.inner: int32, 0, 2) {
+ for (i.inner.init: int32, 0, 4) {
+ let cse_var_1: int32 = (((i.outer.inner*128) + (i.inner.init*32)) + (nb_j.inner*16))
{
- compute_5[cse_var_20] = (compute_5[cse_var_20] + (placeholder_1[((placeholder_3[cse_var_19]*16) + cse_var_21)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_18] = (compute_5[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 1)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 2)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 3)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 4)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 5)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 6)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 7)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 8)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 9)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 10)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 11)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 12)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 13)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 14)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 15)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+ compute_5: Buffer(compute_4, float32, [2048], [])[cse_var_1] = 0f32
+ compute_5[(cse_var_1 + 1)] = 0f32
+ compute_5[(cse_var_1 + 2)] = 0f32
+ compute_5[(cse_var_1 + 3)] = 0f32
+ compute_5[(cse_var_1 + 4)] = 0f32
+ compute_5[(cse_var_1 + 5)] = 0f32
+ compute_5[(cse_var_1 + 6)] = 0f32
+ compute_5[(cse_var_1 + 7)] = 0f32
+ compute_5[(cse_var_1 + 8)] = 0f32
+ compute_5[(cse_var_1 + 9)] = 0f32
+ compute_5[(cse_var_1 + 10)] = 0f32
+ compute_5[(cse_var_1 + 11)] = 0f32
+ compute_5[(cse_var_1 + 12)] = 0f32
+ compute_5[(cse_var_1 + 13)] = 0f32
+ compute_5[(cse_var_1 + 14)] = 0f32
+ compute_5[(cse_var_1 + 15)] = 0f32
+ }
+ }
+ for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])) {
+ for (i.inner: int32, 0, 4) {
+ let cse_var_21: int32 = (elem_idx*16)
+ let cse_var_20: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+ let cse_var_19: int32 = (((i.outer.inner*128) + (i.inner*32)) + (nb_j.inner*16))
+ let cse_var_18: int32 = (cse_var_19 + 1)
+ let cse_var_17: int32 = (cse_var_19 + 11)
+ let cse_var_16: int32 = (cse_var_19 + 12)
+ let cse_var_15: int32 = (cse_var_19 + 13)
+ let cse_var_14: int32 = (cse_var_19 + 14)
+ let cse_var_13: int32 = (cse_var_19 + 15)
+ let cse_var_12: int32 = (cse_var_19 + 2)
+ let cse_var_11: int32 = (cse_var_19 + 3)
+ let cse_var_10: int32 = (cse_var_19 + 4)
+ let cse_var_9: int32 = (cse_var_19 + 5)
+ let cse_var_8: int32 = (cse_var_19 + 6)
+ let cse_var_7: int32 = (cse_var_19 + 7)
+ let cse_var_6: int32 = (cse_var_19 + 8)
+ let cse_var_5: int32 = (cse_var_19 + 9)
+ let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*1024)) + (i.inner*256))
+ let cse_var_3: int32 = (cse_var_19 + 10)
+ {
+ compute_5[cse_var_19] = (compute_5[cse_var_19] + (placeholder_1[((placeholder_3[cse_var_20]*16) + cse_var_21)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_18] = (compute_5[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 1)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 2)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 3)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 4)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 5)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 6)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 7)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 8)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 9)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 10)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 11)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 12)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 13)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 14)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 15)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ }
}
}
}
}
- for (i0.inner: int32, 0, 8) {
- let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*4096) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
+ for (i0.inner: int32, 0, 64) {
+ let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
compute[ramp(cse_var_22, 1, 32)] = max((compute_5[ramp((i0.inner*32), 1, 32)] + placeholder_4[ramp(cse_var_22, 1, 32)]), broadcast(0f32, 32))
}
}
@@ -485,7 +487,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 1.884 ms
+ Execution time of this operator: 2.160 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 7c156a32a..9438f3c1a 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.438** total execution time for **how_to_tune_with_autotvm** files:
+**00:45.767** total execution time for **how_to_tune_with_autotvm** files:
-- **00:43.546**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
-- **00:00.234**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
-- **00:00.223**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
-- **00:00.218**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)
-- **00:00.216**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:44.888**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)
+- **00:00.237**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)
+- **00:00.216**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``)
+- **00:00.215**: :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``)
+- **00:00.212**: :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 5b5f2baaa..ce648b8a6 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
@@ -73,7 +73,7 @@ to search through this space and pick some good configurations.
If you are familiar with writing cuda schedule, you can find the following
template is very general. Actually this template can be easily modified
-to tune other operators such as depthwise convolution and gemm.
+to tune other operators such as depthwise convolution and GEMM.
In order to fully understand this template, you should be familiar with
the schedule primitives and auto tuning API. You can refer to the above
tutorials and :ref:`autotvm tutorial <tutorial-autotvm-matmul-x86>`
@@ -859,8 +859,8 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 4, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2885496
- No: 6 GFLOPS: 95.92/95.92 result: MeasureResult(costs=(0.0024134619583333337,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6140697002410889, timestamp=1654644371.017709) [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3754080
- No: 7 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 6 GFLOPS: 42.64/42.64 result: MeasureResult(costs=(0.005429114789473685,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.5012328624725342, timestamp=1654669018.3772974) [('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/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -983,7 +983,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 16, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 256, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6225319
- No: 8 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 8 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1106,7 +1106,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,943546
- No: 9 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 9 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1229,7 +1229,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 16, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2868708
- No: 10 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 10 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 142, in build
res = future.result()
File "/usr/lib/python3.7/concurrent/futures/_base.py", line 435, in result
@@ -1247,7 +1247,7 @@ for this template
TimeoutError
[('tile_f', [-1, 32, 2, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4691833
- No: 11 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 11 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1370,7 +1370,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 2, 64]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1042124
- No: 12 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 12 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1493,7 +1493,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 32, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10013405
- No: 13 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 13 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1616,7 +1616,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 8, 8, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6732082
- No: 14 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 14 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1739,7 +1739,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 4, 32]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7536735
- No: 15 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 15 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1862,7 +1862,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,482121
- No: 16 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 16 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -1985,7 +1985,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 32, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2824525
- No: 17 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 17 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -2108,7 +2108,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 64, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4559286
- No: 18 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 18 GFLOPS: 0.00/42.64 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 571, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 523, in _build_func_common
@@ -2231,7 +2231,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 32, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9677544
- No: 19 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+ No: 19 GFLOPS: 0.00/42.64 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: 0x00007fb37c553fa2
+ 12: 0x00007f46e1a5dfa2
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.97/144.97 result: MeasureResult(costs=(0.00159690949,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.464625597000122, timestamp=1654644397.5587177) [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
+ No: 20 GFLOPS: 144.29/144.29 result: MeasureResult(costs=(0.0016044719299999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4524359703063965, timestamp=1654669045.0340207) [('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.001964
+ Time cost of this operator: 0.001957
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 67ca71b2c..6b73d5771 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 314.1 98.745 (1, 2, 10, 10, 3) 2 1
- tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.07 0.965 (1, 6, 10, 10) 1 1
- tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.922 0.29 (1, 1, 10, 10, 3) 1 1
- Total_time - 318.092 - - - -
+ tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 314.6 98.747 (1, 2, 10, 10, 3) 2 1
+ tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.091 0.97 (1, 6, 10, 10) 1 1
+ tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.901 0.283 (1, 1, 10, 10, 3) 1 1
+ Total_time - 318.592 - - - -
@@ -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 154.1 98.277 (1, 6, 10, 10, 1) 2 1
- tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 1.738 1.108 (1, 6, 10, 10) 1 1
- tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.963 0.614 (1, 1, 10, 10, 3) 1 1
- Total_time - 156.801 - - - -
+ tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 226.2 98.8 (1, 1, 10, 10, 6) 2 1
+ tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 1.935 0.845 (1, 6, 10, 10) 1 1
+ tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.812 0.355 (1, 3, 10, 10, 1) 1 1
+ Total_time - 228.947 - - - -
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 7ddde433c..52e5ed91e 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/tmpfxj8a1el/images/target contains 8144 images
- /tmp/tmpfxj8a1el/images/random contains 5000 images
+ /tmp/tmpv4vn17m7/images/target contains 8144 images
+ /tmp/tmpv4vn17m7/images/random contains 5000 images
@@ -459,11 +459,11 @@ the time on our validation set).
.. code-block:: none
Epoch 1/3
- 328/328 - 54s - loss: 0.2189 - accuracy: 0.9242 - val_loss: 0.1366 - val_accuracy: 0.9592
+ 328/328 - 54s - loss: 0.2052 - accuracy: 0.9296 - val_loss: 0.1563 - val_accuracy: 0.9543
Epoch 2/3
- 328/328 - 52s - loss: 0.0989 - accuracy: 0.9638 - val_loss: 0.1167 - val_accuracy: 0.9615
+ 328/328 - 52s - loss: 0.0980 - accuracy: 0.9630 - val_loss: 0.1520 - val_accuracy: 0.9585
Epoch 3/3
- 328/328 - 52s - loss: 0.0664 - accuracy: 0.9753 - val_loss: 0.1076 - val_accuracy: 0.9637
+ 328/328 - 52s - loss: 0.0603 - accuracy: 0.9768 - val_loss: 0.1156 - val_accuracy: 0.9656
@@ -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 36.910 seconds)
+ **Total running time of the script:** ( 5 minutes 10.613 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 0e3f0d8da..a52d21073 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:22.774** total execution time for **how_to_work_with_microtvm** files:
+**05:57.419** total execution time for **how_to_work_with_microtvm** files:
-- **04:36.910**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)
-- **00:41.661**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
-- **00:03.587**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
+- **05:10.613**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)
+- **00:42.484**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)
+- **00:03.716**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)
- **00:00.209**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_tvmc.py` (``micro_tvmc.py``)
-- **00:00.206**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)
-- **00:00.201**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
+- **00:00.199**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)
+- **00:00.199**: :ref:`sphx_glr_how_to_work_with_microtvm_micro_reference_vm.py` (``micro_reference_vm.py``)
diff --git a/docs/_sources/how_to/work_with_relay/build_gcn.rst.txt b/docs/_sources/how_to/work_with_relay/build_gcn.rst.txt
index 43e3aa570..e29b21236 100644
--- a/docs/_sources/how_to/work_with_relay/build_gcn.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/build_gcn.rst.txt
@@ -433,7 +433,7 @@ Put layers together
Compile and run with TVM
------------------------
-Export the weigths from PyTorch model to Python Dict
+Export the weights from PyTorch model to Python Dict
.. code-block:: default
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 5656dd918..073b488f2 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.906** total execution time for **how_to_work_with_relay** files:
+**00:12.095** 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.724**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
-- **00:00.226**: :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)
+- **00:10.170**: :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)
+- **00:01.710**: :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)
+- **00:00.215**: :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_relay/using_relay_viz.rst.txt b/docs/_sources/how_to/work_with_relay/using_relay_viz.rst.txt
index 6411288c8..8141838f4 100644
--- a/docs/_sources/how_to/work_with_relay/using_relay_viz.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/using_relay_viz.rst.txt
@@ -13,7 +13,7 @@ Use Relay Visualizer to Visualize Relay
Relay IR module can contain lots of operations. Although an individual
operation is usually easy to understand, putting them together can cause
-a complicated, hard-to-read graph. Things can get even worse with optimiztion-passes
+a complicated, hard-to-read graph. Things can get even worse with optimization-passes
coming into play.
This utility visualizes an IR module as nodes and edges. It defines a set of interfaces including
@@ -126,7 +126,7 @@ Customize Parser for Interested Relay Types
-------------------------------------------
Sometimes we want to emphasize interested information, or parse things differently for a specific usage.
It is possible to provide customized parsers as long as it obeys the interface.
-Here demostrate how to customize parsers for ``relay.var``.
+Here demonstrate how to customize parsers for ``relay.var``.
We need to implement abstract interface :py:class:`tvm.contrib.relay_viz.interface.VizParser`.
@@ -210,7 +210,7 @@ We add a hook duplicating above ``AwesomeVar``, and make ``TermPlotter`` use the
super().node(viz_node)
# if it's AwesomeVar, duplicate it.
if viz_node.type_name == "AwesomeVar":
- duplicated_id = f"duplciated_{viz_node.identity}"
+ duplicated_id = f"duplicated_{viz_node.identity}"
duplicated_type = "double AwesomeVar"
super().node(VizNode(duplicated_id, duplicated_type, ""))
# connect the duplicated var to the original one
diff --git a/docs/_sources/how_to/work_with_schedules/extern_op.rst.txt b/docs/_sources/how_to/work_with_schedules/extern_op.rst.txt
index d063c4c2d..a7ca2264a 100644
--- a/docs/_sources/how_to/work_with_schedules/extern_op.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/extern_op.rst.txt
@@ -17,7 +17,7 @@ the pipeline. For example, we might want to use cuDNN for
some of the convolution kernels and define the rest of the stages.
TVM supports these black box function calls natively.
-Specfically, TVM support all the tensor functions that are DLPack compatible.
+Specifically, TVM support all the tensor functions that are DLPack compatible.
Which means we can call any function with POD types(pointer, int, float)
or pointer to DLTensor as argument.
@@ -52,7 +52,7 @@ The compute function takes list of symbolic placeholder for the inputs,
list of symbolic placeholder for the outputs and returns the executing statement.
In this case we simply call a registered TVM function, which invokes a CBLAS call.
-TVM does not control internal of the extern array function and treats it as blackbox.
+TVM does not control internal of the extern array function and treats it as black-box.
We can further mix schedulable TVM calls that add a bias term to the result.
diff --git a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
index b22d798f1..eba8b4572 100644
--- a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
@@ -18,7 +18,7 @@ For example :code:`exp` to take the exponential of the function.
These functions are target system dependent and may have different
names of different target platforms. In this tutorial, we will learn
how we can invoke these target specific functions, and how we can unify
-the interface via tvm's intrinsic API.
+the interface via TVM's intrinsic API.
.. code-block:: default
diff --git a/docs/_sources/how_to/work_with_schedules/scan.rst.txt b/docs/_sources/how_to/work_with_schedules/scan.rst.txt
index 9a56294bc..8c65add04 100644
--- a/docs/_sources/how_to/work_with_schedules/scan.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/scan.rst.txt
@@ -69,7 +69,7 @@ update over the time domain.
Schedule the Scan Cell
----------------------
We can schedule the body of the scan by scheduling the update and
-init part seperately. Note that it is invalid to schedule the
+init part separately. Note that it is invalid to schedule the
first iteration dimension of the update part.
To split on the time iteration, user can schedule on scan_op.scan_axis instead.
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 89a78afa9..190a400e4 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.833** total execution time for **how_to_work_with_schedules** files:
+**00:05.959** total execution time for **how_to_work_with_schedules** files:
-- **00:02.134**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
-- **00:01.198**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
-- **00:00.745**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
-- **00:00.729**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
-- **00:00.312**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
-- **00:00.251**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
-- **00:00.239**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
-- **00:00.225**: :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``)
+- **00:02.170**: :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)
+- **00:01.236**: :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)
+- **00:00.746**: :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)
+- **00:00.736**: :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)
+- **00:00.315**: :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)
+- **00:00.284**: :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``)
+- **00:00.242**: :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)
+- **00:00.230**: :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 f6bb58bf7..c50c598e1 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/tmpcsetdwf3/input0.cc'\nsource_filename = \"/tmp/tmpcsetdwf3/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/tmpt78h14xo/input0.cc'\nsource_filename = \"/tmp/tmpt78h14xo/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 8298f4c2c..f4bfa1f8b 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:21.462** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:21.354** total execution time for **topic_vta_tutorials_autotvm** files:
-- **00:21.250**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
-- **00:00.212**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)
+- **00:21.135**: :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``)
+- **00:00.219**: :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 8db4b95ea..8cdcf08e6 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 22.82s!
+ resnet18_v1 inference graph built in 22.17s!
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 634175f8e..2523fc51e 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 15.80s!
+ yolov3-tiny inference graph built in 15.55s!
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 ff0f02396..9eb8bffe3 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:31.892** total execution time for **topic_vta_tutorials_frontend** files:
+**01:30.556** total execution time for **topic_vta_tutorials_frontend** files:
-- **00:48.834**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
-- **00:43.057**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``)
+- **00:48.088**: :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)
+- **00:42.468**: :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 fc22e5f71..dcf09aa78 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.598** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.647** total execution time for **topic_vta_tutorials_optimize** files:
-- **00:03.019**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
-- **00:00.579**: :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``)
+- **00:03.035**: :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)
+- **00:00.612**: :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 7e8a28ee3..e7e4defbe 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.089** total execution time for **topic_vta_tutorials** files:
+**00:01.092** total execution time for **topic_vta_tutorials** files:
-- **00:00.550**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
-- **00:00.540**: :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``)
+- **00:00.553**: :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``)
+- **00:00.539**: :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 6732bac01..7ca8307e9 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -86,13 +86,13 @@ Create the search task
----------------------
With the function defined, we can now create the task for the auto_scheduler
to search against. We specify the particular parameters for this matrix
-multiplication, in this case a multiplication of to square matricies of size
+multiplication, in this case a multiplication of two square matrices of size
1024x1024. We then create a search task with N=L=M=1024 and dtype="float32"
.. admonition:: Improve performance with custom targets
In order for TVM to take full advantage of specific hardware platforms,
- you will want to manuall specify your CPU capabilities. For example:
+ you will want to manually specify your CPU capabilities. For example:
- replace ``llvm`` below with ``llvm -mcpu=core-avx2`` to enable AVX2
- replace ``llvm`` below with ``llvm -mcpu=skylake-avx512`` to enable AVX-512
@@ -306,7 +306,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 93.499 ms
+ Execution time of this operator: 93.865 ms
diff --git a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
index 0e9fa028f..1e4535c07 100644
--- a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
@@ -20,7 +20,7 @@ can be used to write schedule templates that can be searched by AutoTVM to
find the optimal schedule. This process is called Auto-Tuning, which helps
automate the process of optimizing tensor computation.
-This tutorial builds on the previous `tutorial on how to write a matrix
+This tutorial builds on the previous :doc:`tutorial on how to write a matrix
multiplication using TE <tensor_expr_get_started>`.
There are two steps in auto-tuning.
@@ -216,7 +216,7 @@ In the previous template, we manually listed all of the possible values for a
knob. This is the lowest level API to define the space, and gives an explicit
enumeration of the parameter space to search. However, we also provide
another set of APIs that can make the definition of the search space easier
-and smarter. Where possible, we receomment you use this higher-level API
+and smarter. Where possible, we recommend you use this higher-level API
In the following example, we use :any:`ConfigSpace.define_split` to define a
split knob. It will enumerate all the possible ways to split an axis and
@@ -290,7 +290,7 @@ can always fall back to using the low level API.
Step 2: Use AutoTVM to Optimize the Matrix Multiplication
---------------------------------------------------------
In Step 1, we wrote a matrix multiplication template that allowed us to
-paramaterize the block size used in the `split` schedule. We can now conduct
+parameterize the block size used in the `split` schedule. We can now conduct
a search over this parameter space. The next step is to pick a tuner to guide
the exploration of this space.
@@ -318,7 +318,7 @@ strategies. Some of the tuner strategies provided by TVM include:
You can choose the tuner according to the size of your space, your time
budget and other factors. For example, if your space is very small (less
-than 1000), a gridsearch tuner or a random tuner is good enough. If your
+than 1000), a grid-search tuner or a random tuner is good enough. If your
space is at the level of 10^9 (this is the space size of a conv2d operator on
CUDA GPU), XGBoostTuner can explore more efficiently and find better configs.
@@ -402,7 +402,7 @@ reduce variance, we take 5 measurements and average them.
With tuning completed, we can choose the configuration from the log file that
has the best measured performance and compile the schedule with the
-corresponding parameters. We also do a quick verfication that the schedule is
+corresponding parameters. We also do a quick verification that the schedule is
producing correct answers. We can call the function :code:`matmul` directly
under the :any:`autotvm.apply_history_best` context. When we call this
function, it will query the dispatch context with its argument and get the
@@ -440,9 +440,9 @@ In this tutorial, we have shown how to build operator templates that allow
TVM to search a parameter space and choose optimized schedule configurations.
To gain a deeper understanding of how this works, we recommend expanding on
this example by adding new search parameters to the schedule based on
-schedule operations demonstated in the `Getting Started With Tensor
+schedule operations demonstrated in the :ref: `Getting Started With Tensor
Expressions <tensor_expr_get_started>_` tutorial. In the upcoming sections, we
-will demonstate the AutoScheduler, a method for TVM to optimize common
+will demonstrate the AutoScheduler, a method for TVM to optimize common
operators without the need for the user to provide a user-defined template.
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index a36aa4312..ab6177be3 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': 494.48566579999914, 'median': 494.308517449997, 'std': 1.0335504241642963}
+ {'mean': 494.4295934299953, 'median': 494.5921276000263, 'std': 0.5236284867723745}
@@ -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.51/ 17.51 GFLOPS | Progress: (4/20) | 5.57 s
[Task 1/25] Current/Best: 6.17/ 17.51 GFLOPS | Progress: (8/20) | 9.01 s
[Task 1/25] Current/Best: 11.55/ 22.86 GFLOPS | Progress: (12/20) | 11.42 s
[Task 1/25] Current/Best: 16.86/ 22.86 GFLOPS | Progress: (16/20) | 13.11 s
[Task 1/25] Current/Best: 11.61/ 23.88 GFLOPS | Progress: (20/20) | 14.84 s Done.
-
[Task 2/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 2/25] Current/Best: 12.32/ 12.76 GFLOPS | Progress: (4/20) | 3.58 s
[Task 2/25] Current/Best: 14.07/ 18.70 GFLOPS | Progress: (8/20) | 4.87 s
[Task 2/25] Current/Best: 20.75/ 20.75 GFLOPS | Progress: (12/20) | 6.22 s
[Task 2/25] Current/Best: 12.05/ 20.75 GFLOPS | Progress: (16/20) | 7.48 s
[Task 2/25] Current/Best: 19.43/ 20.75 GFLOPS | Progress: (20/20) | 9.01 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.58 GFLOPS | Progress: (4/20) | 5.80 s
[Task 3/25] Current/Best: 15.57/ 16.86 GFLOPS | Progress: (8/20) | 7.71 s
[Task 3/25] Current/Best: 14.89/ 16.86 GFLOPS | Progress: (12/20) | 9.43 s
[Task 3/25] Current/Best: 7.19/ 23.67 GFLOPS | Progress: (16/20) | 11.33 s
[Task 3/25] Current/Best: 12.60/ 23.67 GFLOPS | Progress: (20/20) | 15.83 s Done.
-
[Task 4/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 4/25] Current/Best: 9.56/ 20.42 GFLOPS | Progress: (4/20) | 2.34 s
[Task 4/25] Current/Best: 6.88/ 20.42 GFLOPS | Progress: (8/20) | 6.65 s
[Task 4/25] Current/Best: 22.16/ 22.16 GFLOPS | Progress: (12/20) | 11.05 s
[Task 4/25] Current/Best: 17.07/ 22.16 GFLOPS | Progress: (16/20) | 13.25 s
[Task 4/25] Current/Best: 13.36/ 22.16 GFLOPS | Progress: (20/20) | 15.14 s Done.
-
[Task 5/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 5/25] Current/Best: 9.83/ 10.40 GFLOPS | Progress: (4/20) | 2.52 s
[Task 5/25] Current/Best: 11.86/ 12.76 GFLOPS | Progress: (8/20) | 4.56 s
[Task 5/25] Current/Best: 11.88/ 18.14 GFLOPS | Progress: (12/20) | 7.48 s
[Task 5/25] Current/Best: 11.85/ 22.75 GFLOPS | Progress: (16/20) | 8.88 s
[Task 5/25] Current/Best: 12.04/ 22.75 GFLOPS | Progress: (20/20) | 10.72 s Done.
-
[Task 6/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 6/25] Current/Best: 12.32/ 20.75 GFLOPS | Progress: (4/20) | 3.89 s
[Task 6/25] Current/Best: 18.82/ 20.75 GFLOPS | Progress: (8/20) | 5.64 s
[Task 6/25] Current/Best: 13.26/ 20.75 GFLOPS | Progress: (12/20) | 7.56 s
[Task 6/25] Current/Best: 20.06/ 20.75 GFLOPS | Progress: (16/20) | 9.80 s
[Task 6/25] Current/Best: 3.60/ 20.75 GFLOPS | Progress: (20/20) | 12.36 s Done.
-
[Task 7/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 7/25] Current/Best: 10.35/ 12.24 GFLOPS | Progress: (4/20) | 3.61 s
[Task 7/25] Current/Best: 20.32/ 21.23 GFLOPS | Progress: (8/20) | 5.12 s
[Task 7/25] Current/Best: 16.06/ 21.23 GFLOPS | Progress: (12/20) | 7.03 s
[Task 7/25] Current/Best: 12.25/ 21.23 GFLOPS | Progress: (16/20) | 9.07 s
[Task 7/25] Current/Best: 6.38/ 21.70 GFLOPS | Progress: (20/20) | 11.54 s Done.
-
[Task 8/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 8/25] Current/Best: 10.49/ 14.46 GFLOPS | Progress: (4/20) | 2.88 s
[Task 8/25] Current/Best: 9.65/ 14.46 GFLOPS | Progress: (8/20) | 7.62 s
[Task 8/25] Current/Best: 12.89/ 14.46 GFLOPS | Progress: (12/20) | 13.68 s
[Task 8/25] Current/Best: 18.78/ 18.78 GFLOPS | Progress: (16/20) | 15.75 s
[Task 8/25] Current/Best: 20.31/ 20.31 GFLOPS | Progress: (20/20) | 22.24 s Done.
-
[Task 9/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 9/25] Current/Best: 14.27/ 14.54 GFLOPS | Progress: (4/20) | 11.94 s
[Task 9/25] Current/Best: 23.41/ 23.41 GFLOPS | Progress: (8/20) | 13.71 s
[Task 9/25] Current/Best: 8.24/ 23.41 GFLOPS | Progress: (12/20) | 16.07 s
[Task 9/25] Current/Best: 17.92/ 23.41 GFLOPS | Progress: (16/20) | 18.69 s
[Task 9/25] Current/Best: 9.04/ 23.41 GFLOPS | Progress: (20/20) | 26.39 s
[Task 10/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 10/25] Current/Best: 18.29/ 18.29 GFLOPS | Progress: (4/20) | 2.48 s
[Task 10/25] Current/Best: 15.41/ 18.29 GFLOPS | Progress: (8/20) | 4.05 s
[Task 10/25] Current/Best: 12.56/ 19.12 GFLOPS | Progress: (12/20) | 5.57 s
[Task 10/25] Current/Best: 19.08/ 20.45 GFLOPS | Progress: (16/20) | 6.68 s
[Task 10/25] Current/Best: 8.94/ 20.45 GFLOPS | Progress: (20/20
) | 8.24 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.27 s
[Task 11/25] Current/Best: 15.49/ 18.12 GFLOPS | Progress: (8/20) | 6.04 s
[Task 11/25] Current/Best: 17.28/ 18.12 GFLOPS | Progress: (12/20) | 8.09 s
[Task 11/25] Current/Best: 12.99/ 21.15 GFLOPS | Progress: (16/20) | 10.85 s
[Task 11/25] Current/Best: 19.44/ 21.59 GFLOPS | Progress: (20/20) | 12.86 s Done.
-
[Task 12/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 12/25] Current/Best: 7.83/ 18.10 GFLOPS | Progress: (4/20) | 5.31 s
[Task 12/25] Current/Best: 5.26/ 18.10 GFLOPS | Progress: (8/20) | 8.97 s
[Task 12/25] Current/Best: 18.92/ 18.92 GFLOPS | Progress: (12/20) | 10.98 s
[Task 12/25] Current/Best: 15.45/ 18.92 GFLOPS | Progress: (16/20) | 13.71 s
[Task 12/25] Current/Best: 15.15/ 18.93 GFLOPS | Progress: (20/20) | 15.62 s Done.
-
[Task 13/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 13/25] Current/Best: 8.67/ 17.31 GFLOPS | Progress: (4/20) | 3.55 s
[Task 13/25] Current/Best: 16.05/ 20.90 GFLOPS | Progress: (8/20) | 5.96 s
[Task 13/25] Current/Best: 19.64/ 21.54 GFLOPS | Progress: (12/20) | 8.78 s
[Task 13/25] Current/Best: 12.23/ 21.54 GFLOPS | Progress: (16/20) | 12.20 s
[Task 13/25] Current/Best: 18.87/ 21.54 GFLOPS | Progress: (20/20) | 14.45 s Done.
-
[Task 14/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 14/25] Current/Best: 13.60/ 13.60 GFLOPS | Progress: (4/20) | 3.17 s
[Task 14/25] Current/Best: 6.09/ 13.60 GFLOPS | Progress: (8/20) | 5.32 s
[Task 14/25] Current/Best: 20.59/ 20.59 GFLOPS | Progress: (12/20) | 7.84 s
[Task 14/25] Current/Best: 16.57/ 20.59 GFLOPS | Progress: (16/20) | 9.56 s Done.
-
[Task 14/25] Current/Best: 16.99/ 20.59 GFLOPS | Progress: (20/20) | 11.33 s
[Task 15/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 15/25] Current/Best: 16.08/ 17.63 GFLOPS | Progress: (4/20) | 2.60 s
[Task 15/25] Current/Best: 14.33/ 18.00 GFLOPS | Progress: (8/20) | 3.93 s
[Task 15/25] Current/Best: 10.37/ 22.22 GFLOPS | Progress: (12/20) | 5.98 s
[Task 15/25] Current/Best: 19.90/ 22.22 GFLOPS | Progress: (16/20) | 8.89 s
[Task 15/25] Current/Best: 9.68/ 22.22 GFLOPS | Progress: (20/20) | 9.86 s
[Task 16/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 16/25] Current/Best: 20.74/ 20.74 GFLOPS | Progress: (4/20) | 2.85 s
[Task 16/25] Current/Best: 3.02/ 20.74 GFLOPS | Progress: (8/20) | 4.46 s
[Task 16/25] Current/Best: 19.67/ 20.74 GFLOPS | Progress: (12/20) | 5.67 s
[Task 16/25] Current/Best: 17.95/ 20.74 GFLOPS | Progress: (16/20) |
7.02 s
[Task 16/25] Current/Best: 10.02/ 22.63 GFLOPS | Progress: (20/20) | 9.03 s Done.
-
[Task 17/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 17/25] Current/Best: 11.65/ 18.99 GFLOPS | Progress: (4/20) | 4.64 s
[Task 17/25] Current/Best: 14.48/ 23.32 GFLOPS | Progress: (8/20) | 7.45 s
[Task 17/25] Current/Best: 16.90/ 23.32 GFLOPS | Progress: (12/20) | 9.50 s
[Task 17/25] Current/Best: 16.54/ 23.32 GFLOPS | Progress: (16/20) | 11.70 s
[Task 17/25] Current/Best: 10.05/ 23.32 GFLOPS | Progress: (20/20) | 13.82 s Done.
-
[Task 18/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 18/25] Current/Best: 11.41/ 18.16 GFLOPS | Progress: (4/20) | 3.60 s
[Task 18/25] Current/Best: 10.61/ 18.16 GFLOPS | Progress: (8/20) | 7.03 s
[Task 18/25] Current/Best: 19.39/ 19.39 GFLOPS | Progress: (12/20) | 8.95 s
[Task 18/25] Current/Best: 10.02/ 19.39 GFLOPS | Progress: (16/20) | 12.52 s
[Task 18/25] Current/Best: 20.64/ 20.64 GFLOPS | Progress: (20/20) | 14.04 s Done.
-
[Task 19/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 19/25] Current/Best: 7.27/ 20.28 GFLOPS | Progress: (4/20) | 5.94 s
[Task 19/25] Current/Best: 2.61/ 20.28 GFLOPS | Progress: (8/20) | 9.25 s
[Task 19/25] Current/Best: 19.80/ 21.10 GFLOPS | Progress: (12/20) | 11.99 s
[Task 19/25] Current/Best: 15.36/ 21.10 GFLOPS | Progress: (16/20) | 14.80 s
[Task 19/25] Current/Best: 2.70/ 23.23 GFLOPS | Progress: (20/20) | 17.59 s Done.
-
[Task 20/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 20/25] Current/Best: 9.68/ 15.25 GFLOPS | Progress: (4/20) | 3.22 s Done.
+
[Task 1/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 1/25] Current/Best: 17.45/ 17.45 GFLOPS | Progress: (4/20) | 5.56 s
[Task 1/25] Current/Best: 6.15/ 17.45 GFLOPS | Progress: (8/20) | 9.02 s
[Task 1/25] Current/Best: 11.53/ 22.79 GFLOPS | Progress: (12/20) | 11.53 s
[Task 1/25] Current/Best: 16.85/ 22.80 GFLOPS | Progress: (16/20) | 13.21 s
[Task 1/25] Current/Best: 11.61/ 23.60 GFLOPS | Progress: (20/20) | 14.98 s Done.
+
[Task 2/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 2/25] Current/Best: 11.63/ 12.89 GFLOPS | Progress: (4/20) | 3.85 s
[Task 2/25] Current/Best: 13.80/ 18.29 GFLOPS | Progress: (8/20) | 5.16 s
[Task 2/25] Current/Best: 20.51/ 20.51 GFLOPS | Progress: (12/20) | 6.48 s
[Task 2/25] Current/Best: 12.68/ 20.51 GFLOPS | Progress: (16/20) | 7.77 s
[Task 2/25] Current/Best: 19.50/ 20.51 GFLOPS | Progress: (20/20) | 9.41 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.55 GFLOPS | Progress: (4/20) | 5.81 s
[Task 3/25] Current/Best: 15.59/ 16.83 GFLOPS | Progress: (8/20) | 7.73 s
[Task 3/25] Current/Best: 14.75/ 16.83 GFLOPS | Progress: (12/20) | 9.45 s
[Task 3/25] Current/Best: 7.17/ 23.74 GFLOPS | Progress: (16/20) | 11.34 s
[Task 3/25] Current/Best: 12.50/ 23.74 GFLOPS | Progress: (20/20) | 15.93 s Done.
+
[Task 4/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 4/25] Current/Best: 9.49/ 20.34 GFLOPS | Progress: (4/20) | 2.33 s
[Task 4/25] Current/Best: 6.74/ 20.34 GFLOPS | Progress: (8/20) | 7.12 s
[Task 4/25] Current/Best: 22.23/ 22.23 GFLOPS | Progress: (12/20) | 12.14 s
[Task 4/25] Current/Best: 16.72/ 22.23 GFLOPS | Progress: (16/20) | 14.57 s
[Task 4/25] Current/Best: 13.17/ 22.23 GFLOPS | Progress: (20/20) | 16.65 s Done.
+
[Task 5/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 5/25] Current/Best: 9.55/ 10.30 GFLOPS | Progress: (4/20) | 2.53 s
[Task 5/25] Current/Best: 11.68/ 12.67 GFLOPS | Progress: (8/20) | 4.59 s
[Task 5/25] Current/Best: 11.12/ 18.14 GFLOPS | Progress: (12/20) | 7.81 s
[Task 5/25] Current/Best: 11.64/ 22.63 GFLOPS | Progress: (16/20) | 9.24 s
[Task 5/25] Current/Best: 11.93/ 22.63 GFLOPS | Progress: (20/20) | 11.14 s Done.
+
[Task 6/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 6/25] Current/Best: 12.19/ 20.79 GFLOPS | Progress: (4/20) | 4.10 s
[Task 6/25] Current/Best: 18.95/ 20.79 GFLOPS | Progress: (8/20) | 5.87 s
[Task 6/25] Current/Best: 13.34/ 20.79 GFLOPS | Progress: (12/20) | 7.82 s
[Task 6/25] Current/Best: 19.93/ 20.79 GFLOPS | Progress: (16/20) | 10.10 s
[Task 6/25] Current/Best: 3.76/ 20.79 GFLOPS | Progress: (20/20) | 12.61 s Done.
+
[Task 7/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 7/25] Current/Best: 10.71/ 12.88 GFLOPS | Progress: (4/20) | 3.61 s
[Task 7/25] Current/Best: 20.18/ 21.05 GFLOPS | Progress: (8/20) | 5.12 s
[Task 7/25] Current/Best: 16.02/ 21.05 GFLOPS | Progress: (12/20) | 7.02 s
[Task 7/25] Current/Best: 12.24/ 21.05 GFLOPS | Progress: (16/20) | 9.07 s
[Task 7/25] Current/Best: 6.40/ 21.75 GFLOPS | Progress: (20/20) | 11.52 s Done.
+
[Task 8/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 8/25] Current/Best: 10.04/ 13.99 GFLOPS | Progress: (4/20) | 2.88 s
[Task 8/25] Current/Best: 9.72/ 13.99 GFLOPS | Progress: (8/20) | 8.16 s
[Task 8/25] Current/Best: 13.17/ 13.99 GFLOPS | Progress: (12/20) | 14.66 s
[Task 8/25] Current/Best: 18.68/ 18.68 GFLOPS | Progress: (16/20) | 16.74 s
[Task 8/25] Current/Best: 19.59/ 19.59 GFLOPS | Progress: (20/20) | 23.88 s Done.
+
[Task 9/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 9/25] Current/Best: 14.31/ 15.80 GFLOPS | Progress: (4/20) | 11.90 s
[Task 9/25] Current/Best: 23.41/ 23.41 GFLOPS | Progress: (8/20) | 13.67 s
[Task 9/25] Current/Best: 8.25/ 23.41 GFLOPS | Progress: (12/20) | 16.24 s
[Task 9/25] Current/Best: 18.02/ 23.41 GFLOPS | Progress: (16/20) | 19.15 s
[Task 9/25] Current/Best: 8.94/ 23.41 GFLOPS | Progress: (20/20) | 27.73 s
[Task 10/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 10/25] Current/Best: 18.21/ 18.21 GFLOPS | Progress: (4/20) | 2.51 s
[Task 10/25] Current/Best: 15.53/ 18.21 GFLOPS | Progress: (8/20) | 4.18 s
[Task 10/25] Current/Best: 12.32/ 18.88 GFLOPS | Progress: (12/20) | 5.73 s
[Task 10/25] Current/Best: 19.15/ 20.34 GFLOPS | Progress: (16/20) | 6.84 s
[Task 10/25] Current/Best: 8.94/ 20.34 GFLOPS | Progress: (20/20
) | 8.37 s Done.
+
[Task 11/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 11/25] Current/Best: 11.54/ 18.09 GFLOPS | Progress: (4/20) | 3.29 s
[Task 11/25] Current/Best: 16.90/ 18.09 GFLOPS | Progress: (8/20) | 6.12 s
[Task 11/25] Current/Best: 18.03/ 18.09 GFLOPS | Progress: (12/20) | 8.20 s
[Task 11/25] Current/Best: 12.99/ 21.21 GFLOPS | Progress: (16/20) | 11.17 s
[Task 11/25] Current/Best: 19.46/ 21.62 GFLOPS | Progress: (20/20) | 13.26 s Done.
+
[Task 12/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 12/25] Current/Best: 7.81/ 18.07 GFLOPS | Progress: (4/20) | 5.66 s
[Task 12/25] Current/Best: 5.15/ 18.07 GFLOPS | Progress: (8/20) | 9.64 s
[Task 12/25] Current/Best: 18.87/ 18.87 GFLOPS | Progress: (12/20) | 11.64 s
[Task 12/25] Current/Best: 15.29/ 18.87 GFLOPS | Progress: (16/20) | 14.56 s
[Task 12/25] Current/Best: 15.13/ 18.87 GFLOPS | Progress: (20/20) | 16.48 s Done.
+
[Task 13/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 13/25] Current/Best: 8.69/ 17.31 GFLOPS | Progress: (4/20) | 3.68 s
[Task 13/25] Current/Best: 15.72/ 20.93 GFLOPS | Progress: (8/20) | 6.31 s
[Task 13/25] Current/Best: 19.39/ 21.55 GFLOPS | Progress: (12/20) | 9.34 s
[Task 13/25] Current/Best: 12.25/ 21.55 GFLOPS | Progress: (16/20) | 12.80 s
[Task 13/25] Current/Best: 18.75/ 21.55 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: 13.47/ 13.47 GFLOPS | Progress: (4/20) | 3.38 s
[Task 14/25] Current/Best: 6.09/ 13.47 GFLOPS | Progress: (8/20) | 5.59 s
[Task 14/25] Current/Best: 21.10/ 21.10 GFLOPS | Progress: (12/20) | 8.33 s
[Task 14/25] Current/Best: 16.11/ 21.10 GFLOPS | Progress: (16/20) | 10.01 s Done.
+
[Task 14/25] Current/Best: 17.37/ 21.10 GFLOPS | Progress: (20/20) | 11.73 s
[Task 15/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 15/25] Current/Best: 16.21/ 17.66 GFLOPS | Progress: (4/20) | 2.62 s
[Task 15/25] Current/Best: 14.31/ 18.12 GFLOPS | Progress: (8/20) | 3.97 s
[Task 15/25] Current/Best: 10.40/ 22.29 GFLOPS | Progress: (12/20) | 6.30 s
[Task 15/25] Current/Best: 20.23/ 22.29 GFLOPS | Progress: (16/20) | 9.70 s
[Task 15/25] Current/Best: 9.70/ 22.29 GFLOPS | Progress: (20/20) | 10.72 s
[Task 16/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 16/25] Current/Best: 20.30/ 20.30 GFLOPS | Progress: (4/20) | 2.89 s
[Task 16/25] Current/Best: 3.01/ 20.30 GFLOPS | Progress: (8/20) | 4.53 s
[Task 16/25] Current/Best: 19.41/ 20.30 GFLOPS | Progress: (12/20) | 5.75 s
[Task 16/25] Current/Best: 17.72/ 20.30 GFLOPS | Progress: (16/20) |
7.11 s
[Task 16/25] Current/Best: 10.12/ 22.42 GFLOPS | Progress: (20/20) | 9.28 s Done.
+
[Task 17/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 17/25] Current/Best: 13.06/ 18.80 GFLOPS | Progress: (4/20) | 4.78 s
[Task 17/25] Current/Best: 14.38/ 23.08 GFLOPS | Progress: (8/20) | 7.64 s
[Task 17/25] Current/Best: 17.15/ 23.08 GFLOPS | Progress: (12/20) | 9.71 s
[Task 17/25] Current/Best: 16.74/ 23.08 GFLOPS | Progress: (16/20) | 11.96 s
[Task 17/25] Current/Best: 10.05/ 23.08 GFLOPS | Progress: (20/20) | 14.12 s Done.
+
[Task 18/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 18/25] Current/Best: 11.68/ 17.84 GFLOPS | Progress: (4/20) | 3.75 s
[Task 18/25] Current/Best: 10.60/ 19.81 GFLOPS | Progress: (8/20) | 7.49 s
[Task 18/25] Current/Best: 18.82/ 19.81 GFLOPS | Progress: (12/20) | 9.42 s
[Task 18/25] Current/Best: 9.99/ 19.81 GFLOPS | Progress: (16/20) | 13.32 s
[Task 18/25] Current/Best: 20.73/ 20.73 GFLOPS | Progress: (20/20) | 14.84 s Done.
+
[Task 19/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 19/25] Current/Best: 6.88/ 20.51 GFLOPS | Progress: (4/20) | 6.10 s
[Task 19/25] Current/Best: 2.60/ 20.51 GFLOPS | Progress: (8/20) | 9.42 s
[Task 19/25] Current/Best: 19.88/ 21.65 GFLOPS | Progress: (12/20) | 12.44 s
[Task 19/25] Current/Best: 15.08/ 21.76 GFLOPS | Progress: (16/20) | 15.56 s
[Task 19/25] Current/Best: 2.70/ 23.20 GFLOPS | Progress: (20/20) | 18.35 s Done.
+
[Task 20/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 20/25] Current/Best: 8.83/ 15.08 GFLOPS | Progress: (4/20) | 3.31 s Done.
Done.
-
[Task 20/25] Current/Best: 9.83/ 15.25 GFLOPS | Progress: (8/20) | 6.63 s
[Task 20/25] Current/Best: 2.32/ 16.76 GFLOPS | Progress: (12/20) | 10.53 s
[Task 20/25] Current/Best: 12.37/ 16.76 GFLOPS | Progress: (16/20) | 14.04 s
[Task 20/25] Current/Best: 13.21/ 22.15 GFLOPS | Progress: (20/20) | 16.16 s
[Task 21/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 21/25] Current/Best: 6.42/ 17.69 GFLOPS | Progress: (4/20) | 3.13 s
[Task 21/25] Current/Best: 14.54/ 17.69 GFLOPS | Progress: (8/20) | 4.68 s
[Task 21/25] Current/Best: 1.61/ 17.69 GFLOPS | Progress: (12/20) | 6.81 s
[Task 21/25] Current/Best: 18.27/ 18.27 GFLOPS | Progress: (16/20) | 10.20 s
[Task 21/25] Current/Best: 4.47/ 18.27 GFLOPS | Progress: (20/20) | 17.23 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.90 GFLOPS | Progress: (4/20
) | 2.61 s
[Task 22/25] Current/Best: 8.57/ 21.71 GFLOPS | Progress: (8/20) | 4.59 s
[Task 22/25] Current/Best: 19.82/ 21.71 GFLOPS | Progress: (12/20) | 6.89 s
[Task 22/25] Current/Best: 15.51/ 21.71 GFLOPS | Progress: (16/20) | 8.92 s
[Task 22/25] Current/Best: 14.33/ 21.71 GFLOPS | Progress: (20/20) | 10.57 s Done.
-
[Task 23/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 23/25] Current/Best: 17.57/ 20.36 GFLOPS | Progress: (4/20) | 3.19 s
[Task 23/25] Current/Best: 15.33/ 20.36 GFLOPS | Progress: (8/20) | 6.44 s
[Task 23/25] Current/Best: 21.03/ 21.22 GFLOPS | Progress: (12/20) | 8.24 s
[Task 23/25] Current/Best: 6.45/ 21.22 GFLOPS | Progress: (16/20) | 15.16 s
[Task 23/25] Current/Best: 7.90/ 21.22 GFLOPS | Progress: (20/20) | 19.37 s Done.
-
[Task 24/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 24/25] Current/Best: 8.60/ 8.60 GFLOPS | Progress: (4/20) | 11.73 s
[Task 24/25] Current/Best: 1.89/ 8.60 GFLOPS | Progress: (8/20) | 22.75 s
[Task 24/25] Current/Best: 4.48/ 8.60 GFLOPS | Progress: (12/20) | 34.26 s Done.
+
[Task 20/25] Current/Best: 10.22/ 15.08 GFLOPS | Progress: (8/20) | 6.71 s
[Task 20/25] Current/Best: 2.32/ 16.68 GFLOPS | Progress: (12/20) | 10.66 s
[Task 20/25] Current/Best: 12.48/ 16.68 GFLOPS | Progress: (16/20) | 14.54 s
[Task 20/25] Current/Best: 13.32/ 21.93 GFLOPS | Progress: (20/20) | 16.64 s
[Task 21/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 21/25] Current/Best: 6.40/ 17.72 GFLOPS | Progress: (4/20) | 3.23 s
[Task 21/25] Current/Best: 14.65/ 17.72 GFLOPS | Progress: (8/20) | 4.84 s
[Task 21/25] Current/Best: 1.61/ 17.72 GFLOPS | Progress: (12/20) | 6.98 s
[Task 21/25] Current/Best: 17.86/ 17.86 GFLOPS | Progress: (16/20) | 10.49 s
[Task 21/25] Current/Best: 4.45/ 17.86 GFLOPS | Progress: (20/20) | 17.92 s
[Task 22/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 22/25] Current/Best: 2.70/ 17.05 GFLOPS | Progress: (4/20
) | 2.64 s
[Task 22/25] Current/Best: 8.69/ 21.06 GFLOPS | Progress: (8/20) | 4.68 s
[Task 22/25] Current/Best: 19.70/ 21.06 GFLOPS | Progress: (12/20) | 7.07 s
[Task 22/25] Current/Best: 15.33/ 21.06 GFLOPS | Progress: (16/20) | 9.25 s
[Task 22/25] Current/Best: 14.45/ 21.06 GFLOPS | Progress: (20/20) | 10.99 s Done.
+
[Task 23/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 23/25] Current/Best: 17.52/ 20.69 GFLOPS | Progress: (4/20) | 3.22 s
[Task 23/25] Current/Best: 15.51/ 20.69 GFLOPS | Progress: (8/20) | 6.58 s
[Task 23/25] Current/Best: 20.82/ 21.75 GFLOPS | Progress: (12/20) | 8.43 s
[Task 23/25] Current/Best: 6.31/ 21.75 GFLOPS | Progress: (16/20) | 15.59 s
[Task 23/25] Current/Best: 7.91/ 21.75 GFLOPS | Progress: (20/20) | 19.82 s Done.
+
[Task 24/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 24/25] Current/Best: 8.35/ 8.35 GFLOPS | Progress: (4/20) | 11.70 s
[Task 24/25] Current/Best: 3.51/ 8.35 GFLOPS | Progress: (8/20) | 22.96 s
[Task 24/25] Current/Best: 4.18/ 8.35 GFLOPS | Progress: (12/20) | 33.70 s Done.
Done.
-
[Task 24/25] Current/Best: 7.27/ 8.86 GFLOPS | Progress: (16/20) | 39.96 s
[Task 24/25] Current/Best: 3.31/ 8.94 GFLOPS | Progress: (20/20) | 45.78 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.86 GFLOPS | Progress: (4/20) | 11.51 s
[Task 25/25] Current/Best: 5.84/ 8.07 GFLOPS | Progress: (8/20) | 22.77 s
[Task 25/25] Current/Best: 5.98/ 8.07 GFLOPS | Progress: (12/20) | 34.17 s
[Task 25/25] Current/Best: 5.75/ 9.26 GFLOPS | Progress: (16/20) | 35.93 s
[Task 25/25] Current/Best: 2.94/ 9.26 GFLOPS | Progress: (20/20) | 46.66 s
+
[Task 24/25] Current/Best: 7.03/ 8.92 GFLOPS | Progress: (16/20) | 39.50 s
[Task 24/25] Current/Best: 3.26/ 8.92 GFLOPS | Progress: (20/20) | 45.60 s Done.
+
[Task 25/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 25/25] Current/Best: 1.56/ 2.90 GFLOPS | Progress: (4/20) | 11.53 s
[Task 25/25] Current/Best: 5.72/ 7.89 GFLOPS | Progress: (8/20) | 22.77 s
[Task 25/25] Current/Best: 5.96/ 7.89 GFLOPS | Progress: (12/20) | 34.04 s
[Task 25/25] Current/Best: 5.82/ 8.98 GFLOPS | Progress: (16/20) | 35.94 s
[Task 25/25] Current/Best: 2.93/ 8.98 GFLOPS | Progress: (20/20) | 46.63 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': 412.13002305000145, 'median': 412.10994939999637, 'std': 1.0728322745304126}
- unoptimized: {'mean': 494.48566579999914, 'median': 494.308517449997, 'std': 1.0335504241642963}
+ optimized: {'mean': 412.25458756999615, 'median': 412.13977365000574, 'std': 0.7233945995532131}
+ unoptimized: {'mean': 494.4295934299953, 'median': 494.5921276000263, 'std': 0.5236284867723745}
@@ -681,7 +681,7 @@ profiling/benchmarking.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 10 minutes 13.333 seconds)
+ **Total running time of the script:** ( 10 minutes 25.317 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 79b102c41..e93f09491 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.192e-07 secs/op
+ 1.287e-07 secs/op
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index 119b8a988..9071af63f 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -15,12 +15,11 @@ Introduction to TOPI
This is an introductory tutorial to TVM Operator Inventory (TOPI).
TOPI provides numpy-style generic operations and schedules with higher abstractions than TVM.
-In this tutorial, we will see how TOPI can save us from writing boilerplates code in TVM.
+In this tutorial, we will see how TOPI can save us from writing boilerplate code in TVM.
.. code-block:: default
- from __future__ import absolute_import, print_function
import tvm
import tvm.testing
@@ -233,7 +232,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
.. code-block:: none
- [stage(a, placeholder(a, 0xfe4aad0)), stage(b, placeholder(b, 0xd420170)), 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, 0x4c1bd10)), stage(b, placeholder(b, 0x4d25f50)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min= [...]
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index d6fb35c93..8b68d58e2 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
=================
-**12:51.575** total execution time for **tutorial** files:
+**13:04.882** total execution time for **tutorial** files:
-- **10:13.333**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
-- **00:59.134**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
-- **00:45.218**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
-- **00:28.125**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
-- **00:23.300**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
-- **00:01.366**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
-- **00:00.743**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
-- **00:00.224**: :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
-- **00:00.036**: :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)
-- **00:00.035**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
-- **00:00.033**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
-- **00:00.029**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
+- **10:25.317**: :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)
+- **01:00.128**: :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)
+- **00:44.333**: :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``)
+- **00:28.085**: :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)
+- **00:25.071**: :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)
+- **00:00.836**: :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)
+- **00:00.730**: :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)
+- **00:00.229**: :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
+- **00:00.046**: :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)
+- **00:00.038**: :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)
+- **00:00.035**: :ref:`sphx_glr_tutorial_install.py` (``install.py``)
+- **00:00.033**: :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 98401a9bf..819849973 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -252,13 +252,13 @@ helper function to run a profile of the TVM generated code.
.. code-block:: none
- Numpy running time: 0.000007
- naive: 0.000006
+ Numpy running time: 0.000009
+ naive: 0.000008
-Updating the Schedule to Use Paralleism
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Updating the Schedule to Use Parallelism
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that we've illustrated the fundamentals of TE, let's go deeper into what
schedules do, and how they can be used to optimize tensor expressions for
@@ -344,7 +344,7 @@ compile and run this new schedule with the parallel operation applied:
.. code-block:: none
- parallel: 0.000006
+ parallel: 0.000008
@@ -447,10 +447,10 @@ We can now compare the different schedules
.. code-block:: none
Operator Timing Performance
- numpy 6.777090000014141e-06 1.0
- naive 5.8412999999999995e-06 0.8619186110834902
- parallel 6.0707e-06 0.8957679475980594
- vector 2.47215e-05 3.6478045886875363
+ numpy 8.690399999977671e-06 1.0
+ naive 8.4343e-06 0.9705307005456216
+ parallel 8.0627e-06 0.9277708736100428
+ vector 2.4574199999999996e-05 2.8277409555444093
@@ -839,7 +839,7 @@ matrix multiplication.
.. code-block:: none
- Numpy running time: 0.018761
+ Numpy running time: 0.018735
@@ -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.260645
+ none: 3.348010
@@ -996,7 +996,7 @@ schedule.
.. code-block:: none
- blocking: 0.308868
+ blocking: 0.299571
@@ -1088,7 +1088,7 @@ already cache friendly from our previous optimizations.
.. code-block:: none
- vectorization: 0.343562
+ vectorization: 0.335709
@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.114552
+ loop permutation: 0.118393
@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], []),
@@ -1206,7 +1206,7 @@ can observe the array access pattern of B (after flattening), which is
regular but discontinuous. We expect that after some transformation we can
get a continuous access pattern. By reordering a ``[16][16]`` array to a
``[16/4][16][4]`` array the access pattern of B will be sequential when
-grabing the corresponding value from the packed array.
+grabbing the corresponding value from the packed array.
To accomplish this, we are going to have to start with a new default
schedule, taking into account the new packing of B. It's worth taking a
@@ -1257,7 +1257,7 @@ optimized schedule.
.. code-block:: none
- array packing: 0.107916
+ array packing: 0.110317
@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.110790
+ block caching: 0.110864
@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.144465
+ parallelization: 0.144669
@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.2606449347 1.0
- blocking 0.3088675775 0.09472591578831865
- vectorization 0.3435617395 0.10536619177506669
- loop permutation 0.11455243290000001 0.03513183287175044
- array packing 0.10791621 0.0330965843142099
- block caching 0.1107904824 0.03397808857412235
- parallelization 0.1444653366 0.044305755300919236
+ none 3.3480103597000004 1.0
+ blocking 0.2995706819 0.08947722668541658
+ vectorization 0.3357090278 0.10027120341111528
+ loop permutation 0.1183928922 0.0353621642349424
+ array packing 0.11031703450000001 0.032950027821862835
+ block caching 0.1108637539 0.03311332462840228
+ parallelization 0.14466928880000002 0.04321052603103748
@@ -1537,7 +1537,7 @@ algorithms that can search the potential optimization. With the knowledge you
have from this introduction to TE, we can now begin to explore how TVM can
automate the schedule optimization process.
-This tutorial provided a walkthrough of TVM Tensor Expresstion (TE) workflow
+This tutorial provided a walk-through of TVM Tensor Expression (TE) workflow
using a vector add and a matrix multiplication examples. The general workflow
is
@@ -1552,6 +1552,11 @@ operations with tunable parameters that allows you to automatically optimize
the computation for specific platforms.
+.. rst-class:: sphx-glr-timing
+
+ **Total running time of the script:** ( 1 minutes 0.128 seconds)
+
+
.. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
diff --git a/docs/_sources/tutorial/tensor_ir_blitz_course.rst.txt b/docs/_sources/tutorial/tensor_ir_blitz_course.rst.txt
index 4c88822c1..ff36b5c06 100644
--- a/docs/_sources/tutorial/tensor_ir_blitz_course.rst.txt
+++ b/docs/_sources/tutorial/tensor_ir_blitz_course.rst.txt
@@ -17,7 +17,7 @@ TensorIR is a domain specific language for deep learning programs serving two br
- An implementation for transforming and optimizing programs on various hardware backends.
-- An abstraction for automatic tensorized program optimization.
+- An abstraction for automatic _tensorized_ program optimization.
.. code-block:: default
@@ -244,7 +244,7 @@ schedule on the initial IRModule created from either TVMScript or Tensor Express
sequence of schedule primitives will help to improve the performance. And at last, we can lower
and build it into a runnable module.
-Here we just demostrate a very simple tranformation. First we create schedule on the input `ir_module`.
+Here we just demonstrate a very simple transformation. First we create schedule on the input `ir_module`.
.. code-block:: default
@@ -275,7 +275,7 @@ Tile the loop into 3 loops and print the result.
# Get block by its name
block_b = sch.get_block("B")
- # Get loops surronding the block
+ # Get loops surrounding the block
(i,) = sch.get_loops(block_b)
# Tile the loop nesting.
i_0, i_1, i_2 = sch.split(i, factors=[2, 2, 2])
diff --git a/docs/commit_hash b/docs/commit_hash
index 1b5ab5ddc..f548575cc 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-d490620085792f802d606209008698e65fb12c0e
+f5f9600614c4aa933c863001459d92b13d9b72fc
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index 4188b3910..9b32c3cf3 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.zip5dbcd572-c086-45f1-81d8-9ca43debd0e0 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.zip69be23b3-820e-43a1-95fd-b3934a3c4108 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 b487147a2..19a6d8639 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -406,42 +406,54 @@ 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: "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.3kB/s]
- 0%| | 48.0k/41.5M [00:00<04:57, 146kB/s]
- 0%| | 96.0k/41.5M [00:00<03:31, 205kB/s]
- 0%| | 176k/41.5M [00:00<02:21, 306kB/s]
- 1%| | 360k/41.5M [00:00<01:14, 576kB/s]
- 1%|1 | 552k/41.5M [00:01<00:56, 755kB/s]
- 3%|2 | 1.09M/41.5M [00:01<00:26, 1.57MB/s]
- 5%|5 | 2.20M/41.5M [00:01<00:13, 3.13MB/s]
- 9%|8 | 3.66M/41.5M [00:01<00:08, 4.85MB/s]
- 12%|#2 | 5.13M/41.5M [00:01<00:06, 6.02MB/s]
- 16%|#5 | 6.61M/41.5M [00:01<00:05, 6.83MB/s]
- 19%|#9 | 8.08M/41.5M [00:02<00:04, 7.38MB/s]
- 23%|##3 | 9.55M/41.5M [00:02<00:04, 7.76MB/s]
- 27%|##6 | 11.0M/41.5M [00:02<00:03, 8.02MB/s]
- 30%|### | 12.5M/41.5M [00:02<00:03, 8.21MB/s]
- 32%|###1 | 13.3M/41.5M [00:02<00:04, 7.07MB/s]
- 35%|###4 | 14.4M/41.5M [00:03<00:04, 7.01MB/s]
- 38%|###8 | 15.9M/41.5M [00:03<00:03, 7.50MB/s]
- 42%|####1 | 17.4M/41.5M [00:03<00:03, 7.84MB/s]
- 45%|####5 | 18.9M/41.5M [00:03<00:02, 8.09MB/s]
- 49%|####8 | 20.3M/41.5M [00:03<00:02, 8.25MB/s]
- 53%|#####2 | 21.8M/41.5M [00:03<00:02, 8.37MB/s]
- 56%|#####6 | 23.3M/41.5M [00:04<00:02, 8.45MB/s]
- 60%|#####9 | 24.7M/41.5M [00:04<00:02, 8.50MB/s]
- 63%|######3 | 26.2M/41.5M [00:04<00:01, 9.50MB/s]
- 67%|######6 | 27.7M/41.5M [00:04<00:01, 8.32MB/s]
- 70%|####### | 29.1M/41.5M [00:04<00:01, 8.41MB/s]
- 74%|#######3 | 30.6M/41.5M [00:04<00:01, 8.48MB/s]
- 77%|#######7 | 32.1M/41.5M [00:05<00:01, 8.53MB/s]
- 81%|######## | 33.6M/41.5M [00:05<00:00, 8.57MB/s]
- 84%|########4 | 35.0M/41.5M [00:05<00:00, 8.59MB/s]
- 88%|########7 | 36.5M/41.5M [00:05<00:00, 8.61MB/s]
- 92%|#########1| 38.0M/41.5M [00:05<00:00, 8.61MB/s]
- 95%|#########5| 39.4M/41.5M [00:06<00:00, 8.61MB/s]
- 99%|#########8| 40.9M/41.5M [00:06<00:00, 8.62MB/s]
-100%|##########| 41.5M/41.5M [00:06<00:00, 6.95MB/s]
+ 0%| | 16.0k/41.5M [00:00<08:06, 89.4kB/s]
+ 0%| | 48.0k/41.5M [00:00<05:05, 142kB/s]
+ 0%| | 72.0k/41.5M [00:00<05:11, 139kB/s]
+ 0%| | 136k/41.5M [00:00<03:12, 225kB/s]
+ 1%| | 288k/41.5M [00:00<01:36, 448kB/s]
+ 1%|1 | 576k/41.5M [00:01<00:51, 841kB/s]
+ 2%|2 | 952k/41.5M [00:01<00:33, 1.25MB/s]
+ 3%|3 | 1.31M/41.5M [00:01<00:27, 1.56MB/s]
+ 4%|4 | 1.72M/41.5M [00:01<00:22, 1.82MB/s]
+ 5%|5 | 2.14M/41.5M [00:01<00:20, 2.01MB/s]
+ 6%|6 | 2.59M/41.5M [00:02<00:18, 2.18MB/s]
+ 7%|7 | 3.05M/41.5M [00:02<00:15, 2.53MB/s]
+ 9%|8 | 3.55M/41.5M [00:02<00:15, 2.63MB/s]
+ 10%|9 | 4.05M/41.5M [00:02<00:15, 2.53MB/s]
+ 11%|#1 | 4.59M/41.5M [00:02<00:14, 2.73MB/s]
+ 12%|#2 | 5.15M/41.5M [00:02<00:13, 2.92MB/s]
+ 14%|#3 | 5.73M/41.5M [00:03<00:12, 3.10MB/s]
+ 15%|#5 | 6.35M/41.5M [00:03<00:11, 3.26MB/s]
+ 17%|#6 | 6.99M/41.5M [00:03<00:10, 3.42MB/s]
+ 18%|#8 | 7.67M/41.5M [00:03<00:09, 3.61MB/s]
+ 20%|## | 8.38M/41.5M [00:03<00:09, 3.78MB/s]
+ 22%|##1 | 9.12M/41.5M [00:03<00:08, 3.93MB/s]
+ 24%|##3 | 9.91M/41.5M [00:04<00:08, 4.08MB/s]
+ 26%|##5 | 10.7M/41.5M [00:04<00:07, 4.28MB/s]
+ 28%|##7 | 11.6M/41.5M [00:04<00:06, 4.48MB/s]
+ 30%|### | 12.5M/41.5M [00:04<00:06, 4.63MB/s]
+ 32%|###2 | 13.4M/41.5M [00:04<00:06, 4.82MB/s]
+ 35%|###4 | 14.4M/41.5M [00:05<00:05, 5.05MB/s]
+ 37%|###7 | 15.5M/41.5M [00:05<00:05, 5.34MB/s]
+ 40%|###9 | 16.6M/41.5M [00:05<00:04, 5.64MB/s]
+ 43%|####2 | 17.7M/41.5M [00:05<00:04, 5.92MB/s]
+ 46%|####5 | 18.9M/41.5M [00:05<00:03, 6.24MB/s]
+ 49%|####8 | 20.2M/41.5M [00:05<00:03, 6.55MB/s]
+ 52%|#####1 | 21.5M/41.5M [00:06<00:03, 6.86MB/s]
+ 55%|#####5 | 22.9M/41.5M [00:06<00:02, 7.17MB/s]
+ 59%|#####8 | 24.4M/41.5M [00:06<00:02, 7.51MB/s]
+ 62%|######2 | 25.8M/41.5M [00:06<00:02, 7.81MB/s]
+ 66%|######5 | 27.3M/41.5M [00:06<00:01, 8.02MB/s]
+ 69%|######9 | 28.8M/41.5M [00:07<00:01, 8.12MB/s]
+ 73%|#######2 | 30.2M/41.5M [00:07<00:01, 8.18MB/s]
+ 76%|#######6 | 31.7M/41.5M [00:07<00:01, 8.23MB/s]
+ 80%|#######9 | 33.2M/41.5M [00:07<00:01, 8.25MB/s]
+ 84%|########3 | 34.6M/41.5M [00:07<00:00, 8.28MB/s]
+ 87%|########7 | 36.1M/41.5M [00:08<00:00, 8.28MB/s]
+ 91%|######### | 37.6M/41.5M [00:08<00:00, 8.26MB/s]
+ 94%|#########4| 39.1M/41.5M [00:08<00:00, 8.25MB/s]
+ 98%|#########7| 40.5M/41.5M [00:08<00:00, 8.23MB/s]
+100%|##########| 41.5M/41.5M [00:08<00:00, 5.07MB/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 8a87fa681..2b6dcd2a4 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: 'tiger cat',
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 5.539 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 8.144 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 d6b0e2acb..98af2ac39 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: "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]
- 33%|###3 | 14.8M/44.7M [00:00<00:00, 155MB/s]
- 66%|######6 | 29.6M/44.7M [00:00<00:00, 151MB/s]
-100%|##########| 44.7M/44.7M [00:00<00:00, 170MB/s]
+ 15%|#5 | 6.77M/44.7M [00:00<00:00, 68.7MB/s]
+ 37%|###7 | 16.7M/44.7M [00:00<00:00, 87.5MB/s]
+ 83%|########3 | 37.1M/44.7M [00:00<00:00, 144MB/s]
+100%|##########| 44.7M/44.7M [00:00<00:00, 135MB/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 a26b72376..ee71b49e4 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 0.224 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 2.154 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 983d2308e..b52b0fa68 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:36.540</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>05:29.087</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
<ul class="simple">
-<li><p><strong>01:05.539</strong>: <a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></li>
-<li><p><strong>01:00.224</strong>: <a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></li>
-<li><p><strong>00:57.002</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:40.945</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:31.870</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:22.716</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.762</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.043</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:14.532</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.906</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:08.144</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:02.154</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:58.529</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:34.150</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.336</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.939</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.806</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:20.351</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:14.185</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.493</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 0acd817a4..16a126e91 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)
- 16.2326 15.9737 16.9055 15.8591 0.4070
+ 16.0267 15.9703 16.3084 15.9199 0.1226
</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 96df8e94b..3702de2de 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -409,15 +409,16 @@ be unstable.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>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]
- 8%|7 | 13.4M/170M [00:00<00:01, 140MB/s]
- 19%|#9 | 33.0M/170M [00:00<00:00, 179MB/s]
- 32%|###1 | 53.6M/170M [00:00<00:00, 196MB/s]
- 43%|####3 | 73.3M/170M [00:00<00:00, 200MB/s]
- 55%|#####5 | 93.5M/170M [00:00<00:00, 204MB/s]
- 68%|######8 | 116M/170M [00:00<00:00, 215MB/s]
- 81%|######## | 137M/170M [00:00<00:00, 216MB/s]
- 93%|#########2| 157M/170M [00:00<00:00, 215MB/s]
-100%|##########| 170M/170M [00:00<00:00, 208MB/s]
+ 4%|3 | 5.98M/170M [00:00<00:02, 58.3MB/s]
+ 9%|8 | 15.0M/170M [00:00<00:02, 79.3MB/s]
+ 22%|##2 | 38.2M/170M [00:00<00:00, 153MB/s]
+ 34%|###3 | 57.1M/170M [00:00<00:00, 170MB/s]
+ 43%|####3 | 73.5M/170M [00:00<00:00, 161MB/s]
+ 55%|#####4 | 93.0M/170M [00:00<00:00, 176MB/s]
+ 66%|######6 | 112M/170M [00:00<00:00, 184MB/s]
+ 78%|#######8 | 133M/170M [00:00<00:00, 193MB/s]
+ 91%|######### | 154M/170M [00:00<00:00, 203MB/s]
+100%|##########| 170M/170M [00:01<00:00, 170MB/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').
@@ -515,7 +516,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 58.760 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 59.421 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 b5a36c03e..b9ee8fa1f 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -450,9 +450,10 @@ training. Other models require a full post training calibration.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: "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]
- 36%|###5 | 4.86M/13.6M [00:00<00:00, 50.9MB/s]
- 72%|#######1 | 9.72M/13.6M [00:00<00:00, 49.9MB/s]
-100%|##########| 13.6M/13.6M [00:00<00:00, 65.0MB/s]
+ 27%|##7 | 3.69M/13.6M [00:00<00:00, 33.3MB/s]
+ 51%|##### | 6.87M/13.6M [00:00<00:00, 20.6MB/s]
+ 86%|########6 | 11.7M/13.6M [00:00<00:00, 30.4MB/s]
+100%|##########| 13.6M/13.6M [00:00<00:00, 30.5MB/s]
</pre></div>
</div>
</div>
@@ -546,7 +547,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)
- 89.7738 89.6539 91.2964 89.0311 0.5350
+ 90.5046 90.2703 100.2387 90.1407 1.1541
</pre></div>
</div>
<div class="admonition note">
@@ -585,7 +586,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 6.339 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 7.039 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 78fca97cc..8e9b3e293 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)
- 117.8574 117.7878 123.0413 117.0000 0.6198
+ 120.5413 120.4076 126.1949 119.6308 0.7128
</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 51.540 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 58.943 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 ad0f170e9..7252f0336 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.855 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 12.976 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_sparse.html b/docs/how_to/deploy_models/deploy_sparse.html
index 3427b405f..d9d033562 100644
--- a/docs/how_to/deploy_models/deploy_sparse.html
+++ b/docs/how_to/deploy_models/deploy_sparse.html
@@ -355,7 +355,7 @@ weights should be set to 0, the most straight forward is by picking the
weights with the smallest value. Typically, weights are pruned to a desired
sparsity percentage. For example, a 95% sparse model would have only 5% of
its weights non-zero. Pruning to very high sparsities often requires
-finetuning or full retraining as it tends to be a lossy approximation.
+fine-tuning or full retraining as it tends to be a lossy approximation.
Although parameter size benefits are quite easy to obtain from a pruned model
through simple compression, leveraging sparsity to yield runtime speedups
is more complicated.</p>
diff --git a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index ada951bb5..a93d691e4 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<?, ?KB/s]
- 2%|1 | 2094/132723 [00:00<00:06, 20527.68KB/s]
- 3%|3 | 4212/132723 [00:00<00:06, 20907.10KB/s]
- 8%|8 | 10989/132723 [00:00<00:02, 42207.22KB/s]
- 15%|#4 | 19524/132723 [00:00<00:01, 59189.07KB/s]
- 21%|##1 | 28083/132723 [00:00<00:01, 68690.16KB/s]
- 28%|##7 | 36621/132723 [00:00<00:01, 74354.32KB/s]
- 33%|###3 | 44063/132723 [00:00<00:01, 72216.25KB/s]
- 40%|###9 | 52512/132723 [00:00<00:01, 76033.13KB/s]
- 46%|####6 | 61072/132723 [00:00<00:00, 78979.78KB/s]
- 52%|#####2 | 69264/132723 [00:01<00:00, 76026.56KB/s]
- 59%|#####8 | 77671/132723 [00:01<00:00, 78386.05KB/s]
- 65%|######4 | 86248/132723 [00:01<00:00, 80566.29KB/s]
- 71%|#######1 | 94726/132723 [00:01<00:00, 81815.83KB/s]
- 78%|#######7 | 103304/132723 [00:01<00:00, 82993.86KB/s]
- 84%|########4 | 111936/132723 [00:01<00:00, 83980.08KB/s]
- 91%|######### | 120550/132723 [00:01<00:00, 84622.70KB/s]
- 97%|#########7| 129167/132723 [00:01<00:00, 85084.29KB/s]
-100%|##########| 132723/132723 [00:01<00:00, 74948.43KB/s]
+ 5%|4 | 6055/132723 [00:00<00:02, 60544.72KB/s]
+ 11%|# | 14513/132723 [00:00<00:01, 74678.25KB/s]
+ 17%|#7 | 23069/132723 [00:00<00:01, 79642.53KB/s]
+ 24%|##3 | 31547/132723 [00:00<00:01, 81662.50KB/s]
+ 30%|##9 | 39714/132723 [00:00<00:01, 69338.40KB/s]
+ 36%|###6 | 48258/132723 [00:00<00:01, 74228.73KB/s]
+ 43%|####2 | 56800/132723 [00:00<00:00, 77617.51KB/s]
+ 49%|####9 | 65328/132723 [00:00<00:00, 79924.45KB/s]
+ 56%|#####5 | 73888/132723 [00:00<00:00, 81633.71KB/s]
+ 62%|######2 | 82465/132723 [00:01<00:00, 82876.50KB/s]
+ 69%|######8 | 91132/132723 [00:01<00:00, 84015.61KB/s]
+ 75%|#######5 | 99586/132723 [00:01<00:00, 75636.59KB/s]
+ 81%|########1 | 107873/132723 [00:01<00:00, 77648.09KB/s]
+ 87%|########7 | 115787/132723 [00:01<00:00, 49870.57KB/s]
+ 94%|#########3| 124123/132723 [00:01<00:00, 56772.48KB/s]
+100%|#########9| 132564/132723 [00:01<00:00, 63057.60KB/s]
+100%|##########| 132723/132723 [00:01<00:00, 70220.74KB/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 19.378 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 18.823 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 44228bc6f..b6d4e1a7c 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:20.023</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>10:29.094</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
<ul class="simple">
-<li><p><strong>02:58.760</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:19.378</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:51.540</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.855</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:06.339</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.900</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.056</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.197</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>02:59.421</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:18.823</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:58.943</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.976</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.039</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.058</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.634</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.201</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 274244a84..2a0cd236e 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.zipf72c5caa-2564-4689-b8f2-56e2ea6329cf 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.zip5f463e3d-4b2a-4d5e-966b-aca87eb90c16 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>
@@ -652,10 +652,10 @@ 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>Check failed: (lower) is false: Intrinsic lowering function for target llvm, intrinsic name tir.sqrt, type 150 not found
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Check failed: (lower) is false: FloatImm lowering function for target llvm type 150 not found
</pre></div>
</div>
-<p>When we attempt to run the model, we get a familiar error telling us that more functions need to be registerd for myfloat.</p>
+<p>When we attempt to run the model, we get a familiar error telling us that more functions need to be registered for myfloat.</p>
<p>Because this is a neural network, many more operations are required.
Here, we register all the needed functions:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tvm</span><span class="o">.</span><span class="n">target</span><span class="o">.</span><span class="n">datatype</span><span class="o">.</span><span class="n">register_op</span><span class="p">(</span>
diff --git a/docs/how_to/extend_tvm/low_level_custom_pass.html b/docs/how_to/extend_tvm/low_level_custom_pass.html
index b09500b60..ca129570e 100644
--- a/docs/how_to/extend_tvm/low_level_custom_pass.html
+++ b/docs/how_to/extend_tvm/low_level_custom_pass.html
@@ -448,7 +448,7 @@ function will be skipped.</p>
<a href="../../reference/api/python/tir.html#tvm.tir.stmt_functor.post_order_visit" title="View documentation for tvm.tir.stmt_functor.post_order_visit"><span class="n">tvm</span><span class="o">.</span><span class="n">tir</span><span class="o">.</span><span class="n">stmt_functor</span><span class="o">.</span><span class="n">post_order_visit</span></a><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">body</span><span class="p">,</span> <span cla [...]
<span class="k">if</span> <span class="ow">not</span> <span class="n">loops</span><span class="p">:</span>
- <span class="k">return</span> <span class="n">sf</span>
+ <span class="k">return</span> <span class="n">f</span>
<span class="c1"># The last list arugment indicates what kinds of nodes will be transformed.</span>
<span class="c1"># Thus, in this case only `For` nodes will call `vectorize8`</span>
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index 691cbf7eb..bff688238 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -300,11 +300,11 @@
<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:40.821</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:40.261</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
<ul class="simple">
-<li><p><strong>00:36.996</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.456</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.156</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:36.576</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.362</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.109</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.213</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_infra.html b/docs/how_to/extend_tvm/use_pass_infra.html
index e43a5b1a8..0db9d3372 100644
--- a/docs/how_to/extend_tvm/use_pass_infra.html
+++ b/docs/how_to/extend_tvm/use_pass_infra.html
@@ -349,7 +349,7 @@ respectively. Or users can rely on <a class="reference internal" href="../../ref
on a Relay/tir program where the dependencies between passes can be resolved by the
pass infra. For more details about each type of these passes, please refer to
the <a class="reference internal" href="../../arch/pass_infra.html#pass-infra"><span class="std std-ref">Pass Infrastructure</span></a></p>
-<p>This tutorial mainly demostrates how developers can use the pass infra to perform
+<p>This tutorial mainly demonstrates how developers can use the pass infra to perform
a certain optimization and create an optimization pipeline for a Relay program.
The same approach can be used for tir as well.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
@@ -432,7 +432,7 @@ eliminate the common expressions that used by <cite>z</cite> and <cite>z1</cite>
}
</pre></div>
</div>
-<p>Some optimizations, such as fusion, are parameteric as well. For example,
+<p>Some optimizations, such as fusion, are parametric as well. For example,
opt level 0 will not allow operators to be fused together. Users can pass the
<cite>fuse_opt_level</cite> to enable this.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mod</span> <span class="o">=</span> <a href="../../reference/api/python/relay/transform.html#tvm.relay.transform.FuseOps" title="View documentation for tvm.relay.transform.FuseOps"><span class="n">relay</span><span class="o">.</span><span class="n">transform</span><span class="o">.</span><span class="n">FuseOps</span></a><span class="p">(</span><span class="n">fuse_opt_level</span><span cl [...]
@@ -476,7 +476,7 @@ canonicalize a Relay program.</p>
these issues explicitly by specifying the required passes of each pass and
packing them as a whole to execute. For example, the same passes can now be
applied using the sequential style as the following. <a class="reference internal" href="../../reference/api/python/ir.html#tvm.transform.Sequential" title="tvm.transform.Sequential"><code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.transform.Sequential</span></code></a> is
-similiar to <a class="reference external" href="https://pytorch.org/docs/stable/nn.html#torch.nn.Sequential">torch.nn.sequential</a>
+similar to <a class="reference external" href="https://pytorch.org/docs/stable/nn.html#torch.nn.Sequential">torch.nn.sequential</a>
and <a class="reference external" href="https://mxnet.apache.org/api/python/docs/_modules/mxnet/gluon/block.html">mxnet.gluon.block</a>.
For example, <cite>torch.nn.sequential</cite> is used to contain a sequence of PyTorch
<cite>Modules</cite> that will be added to build a network. It focuses on the network
@@ -791,7 +791,7 @@ done
<h2>Summary<a class="headerlink" href="#summary" title="Permalink to this headline">¶</a></h2>
<p>This tutorial has covered how we can write and invoke passes in TVM more
conveniently using the pass infra. Different ways of invoking a pass are also
-disucssed. Using <a class="reference internal" href="../../reference/api/python/ir.html#tvm.transform.Sequential" title="tvm.transform.Sequential"><code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.transform.Sequential</span></code></a> can largely help
+discussed. Using <a class="reference internal" href="../../reference/api/python/ir.html#tvm.transform.Sequential" title="tvm.transform.Sequential"><code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.transform.Sequential</span></code></a> can largely help
users to ease the work of handling multiple optimization passes and their
dependencies. In addition, an example is provided to illustrate
how we can debug a pass using the <code class="docutils literal notranslate"><span class="pre">PrintIR</span></code> and tracing.</p>
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index 146909e7e..9fdceb4a7 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -345,7 +345,7 @@ pass execution, analyze per-pass effects, and observe various events.</p>
instances to <a class="reference internal" href="../../reference/api/python/ir.html#tvm.transform.PassContext" title="tvm.transform.PassContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.transform.PassContext</span></code></a>. We provide a pass instrument
for collecting timing information (<a class="reference internal" href="../../reference/api/python/ir.html#tvm.instrument.PassTimingInstrument" title="tvm.ir.instrument.PassTimingInstrument"><code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.ir.instrument.PassTimingInstrument</span></code></a>),
but an extension mechanism is available via the <a class="reference internal" href="../../reference/api/python/ir.html#tvm.instrument.pass_instrument" title="tvm.instrument.pass_instrument"><code class="xref py py-func docutils literal notranslate"><span class="pre">tvm.instrument.pass_instrument()</span></code></a> decorator.</p>
-<p>This tutorial demostrates how developers can use <code class="docutils literal notranslate"><span class="pre">PassContext</span></code> to instrument
+<p>This tutorial demonstrates how developers can use <code class="docutils literal notranslate"><span class="pre">PassContext</span></code> to instrument
passes. Please also refer to the <a class="reference internal" href="../../arch/pass_infra.html#pass-infra"><span class="std std-ref">Pass Infrastructure</span></a>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">tvm</span>
<span class="kn">import</span> <span class="nn">tvm.relay</span> <span class="k">as</span> <span class="nn">relay</span>
@@ -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: 6572us [6572us] (45.25%; 45.25%)
-FoldScaleAxis: 7953us [6us] (54.75%; 54.75%)
- FoldConstant: 7946us [1582us] (54.71%; 99.92%)
- InferType: 6364us [6364us] (43.82%; 80.09%)
+InferType: 6541us [6541us] (44.78%; 44.78%)
+FoldScaleAxis: 8065us [6us] (55.22%; 55.22%)
+ FoldConstant: 8059us [1554us] (55.18%; 99.93%)
+ InferType: 6505us [6505us] (44.54%; 80.72%)
</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: 6396us [6396us] (44.75%; 44.75%)
-FoldScaleAxis: 7897us [6us] (55.25%; 55.25%)
- FoldConstant: 7891us [1621us] (55.21%; 99.92%)
- InferType: 6270us [6270us] (43.87%; 79.46%)
+InferType: 6270us [6270us] (44.51%; 44.51%)
+FoldScaleAxis: 7816us [5us] (55.49%; 55.49%)
+ FoldConstant: 7811us [1613us] (55.45%; 99.94%)
+ InferType: 6198us [6198us] (44.00%; 79.35%)
</pre></div>
</div>
<p>Register empty list to clear existing instruments.</p>
@@ -770,7 +770,7 @@ PassBadExitCtx bad exit_pass_ctx!!!
Catching ValueError: PassBadExitCtx bad exit_pass_ctx
</pre></div>
</div>
-<p>Exceptions occured in <code class="docutils literal notranslate"><span class="pre">should_run</span></code>, <code class="docutils literal notranslate"><span class="pre">run_before_pass</span></code>, <code class="docutils literal notranslate"><span class="pre">run_after_pass</span></code>
+<p>Exceptions occurred in <code class="docutils literal notranslate"><span class="pre">should_run</span></code>, <code class="docutils literal notranslate"><span class="pre">run_before_pass</span></code>, <code class="docutils literal notranslate"><span class="pre">run_after_pass</span></code>
are not handled explicitly – we rely on the context manager (the <code class="docutils literal notranslate"><span class="pre">with</span></code> syntax)
to exit <code class="docutils literal notranslate"><span class="pre">PassContext</span></code> safely.</p>
<p>We use <code class="docutils literal notranslate"><span class="pre">run_before_pass</span></code> as an example:</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index 7466fd0d4..f1d78d042 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -401,7 +401,7 @@ programmers. Thus how to maximize the data reuse in the shared memory is
critical to achieve high performance in GPU kernels.</p>
<a class="reference internal image-reference" href="https://github.com/dmlc/web-data/raw/main/tvm/tutorial/gpu_memory_hierarchy.png"><img alt="https://github.com/dmlc/web-data/raw/main/tvm/tutorial/gpu_memory_hierarchy.png" class="align-center" src="https://github.com/dmlc/web-data/raw/main/tvm/tutorial/gpu_memory_hierarchy.png" style="width: 271px; height: 319px;" /></a>
<p>In this example, we load both Apad and W into buffer AA and WW, which are
-stored in the shared memory. These bufferes will be later shared by all
+stored in the shared memory. These buffers will be later shared by all
threads within the same thread block to compute the convolution. Each thread
then loads its own part from shared buffer into their local registers, AL and
WL. BL is a local cache of output B, which is also stored in the thread local
@@ -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.181335 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.131947 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 ec21bf862..54293a267 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -613,7 +613,7 @@ one time.</p>
<p class="admonition-title">Note</p>
<p><em>Warp-level Operation</em></p>
<p>Note that all TensorCore instructions are warp-level instructions, which means all 32 threads
-in a warp should do this instruction simultaneously. Making theadIdx.x extent=32 is one of the
+in a warp should do this instruction simultaneously. Making threadIdx.x extent=32 is one of the
easiest way to solve this. Then We can bind threadIdx.x to any loops except those contain
TensorCore intrinsics directly or indirectly. Also note that it is not the unique solution.
The only thing we should do is to make sure all threads in a warp can call TensorCore at the same time.</p>
@@ -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: 7.453295 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 6.993976 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 bf44e7c7d..5f78567de 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.018660
-Baseline: 3.258906
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.019189
+Baseline: 3.452864
</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.315168
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.300515
</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.341248
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.334529
</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.118415
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.116622
</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.110422
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.110502
</pre></div>
</div>
<p>Here is the generated IR after array packing.</p>
@@ -777,7 +777,7 @@ write to C when all the block results are ready.</p>
<span class="n">s</span><span class="p">[</span><span class="n">CC</span><span class="p">]</span><span class="o">.</span><span class="n">reorder</span><span class="p">(</span><span class="n">ko</span><span class="p">,</span> <span class="n">mc</span><span class="p">,</span> <span class="n">ki</span><span class="p">,</span> <span class="n">nc</span><span class="p">)</span>
<span class="n">s</span><span class="p">[</span><span class="n">CC</span><span class="p">]</span><span class="o">.</span><span class="n">vectorize</span><span class="p">(</span><span class="n">nc</span><span class="p">)</span>
-<span class="c1"># TODO: Add separate optimization step to discuss loop unrolloing</span>
+<span class="c1"># TODO: Add separate optimization step to discuss loop unrolling</span>
<span class="c1"># unrolling is a loop optimization strategy which can reduce branch</span>
<span class="c1"># prediction failures and increases the chance of concurrent execution</span>
<span class="c1"># unroll kfactor loops</span>
@@ -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.110941
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.111951
</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.145064
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.145564
</pre></div>
</div>
<p>Here is the generated IR after parallelization.</p>
@@ -950,7 +950,7 @@ write to C when all the block results are ready.</p>
our generated code can achieve 60% of the <cite>numpy</cite> performance with MKL.
Note that the outputs on the web page reflect the running times on a non-exclusive
Docker container, thereby they are <em>unreliable</em>. It is highly encouraged to run the
-tutorial by yourself to observe the performance gain acheived by TVM.</p>
+tutorial by yourself to observe the performance gain achieved by TVM.</p>
<div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-optimize-operators-opt-gemm-py">
<div class="sphx-glr-download docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/96137df89d8034b548f407123ec50ce9/opt_gemm.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">opt_gemm.py</span></code></a></p>
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index 73bb36048..50ba0e786 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.855</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:35.355</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
<ul class="simple">
-<li><p><strong>00:32.178</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.456</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.221</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.584</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.479</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.291</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 77c856222..4164e2dc0 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:13.382</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>05:11.293</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
<ul class="simple">
-<li><p><strong>02:34.359</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:20.451</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.345</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:17.691</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.877</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.657</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.762</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:20.411</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.020</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:17.522</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.978</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.601</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 a1ade8138..0a225d0c2 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
@@ -984,7 +984,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.360 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.358 ms
</pre></div>
</div>
</div>
@@ -1549,7 +1549,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 34.359 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 32.762 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 4e74b8269..cea45f7cc 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.8982 9.9180 9.9450 9.8317 0.0483
+ 9.8067 9.8261 9.8339 9.7602 0.0331
</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 8d37cc283..1d1b9904a 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)
- 747.8577 749.1900 749.2567 745.1264 1.9315
+ 755.5129 755.9471 756.3586 754.2330 0.9205
</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 20.451 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 20.411 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 6559c39c7..8893d6346 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -600,75 +600,77 @@ 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_6: placeholder_15: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_8: placeholder_16: Buffer(placeholder_13, int32, [33], []), placeholder_7: placeholder_17: Buffer(placeholder_12, int32, [4916], []), placeholder_9: placeholder_18: Buffer(placeholder_14, float32, [128, 512], []), 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, [256]), storage_scope = global {
- for (nb_j.inner: int32, 0, 2) {
- for (i.inner.init: int32, 0, 8) {
- let cse_var_1: int32 = ((i.inner.init*32) + (nb_j.inner*16))
- {
- compute_5: Buffer(compute_4, float32, [256], [])[cse_var_1] = 0f32
- compute_5[(cse_var_1 + 1)] = 0f32
- compute_5[(cse_var_1 + 2)] = 0f32
- compute_5[(cse_var_1 + 3)] = 0f32
- compute_5[(cse_var_1 + 4)] = 0f32
- compute_5[(cse_var_1 + 5)] = 0f32
- compute_5[(cse_var_1 + 6)] = 0f32
- compute_5[(cse_var_1 + 7)] = 0f32
- compute_5[(cse_var_1 + 8)] = 0f32
- compute_5[(cse_var_1 + 9)] = 0f32
- compute_5[(cse_var_1 + 10)] = 0f32
- compute_5[(cse_var_1 + 11)] = 0f32
- compute_5[(cse_var_1 + 12)] = 0f32
- compute_5[(cse_var_1 + 13)] = 0f32
- compute_5[(cse_var_1 + 14)] = 0f32
- compute_5[(cse_var_1 + 15)] = 0f32
- }
- }
- for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])) {
- for (i.inner: int32, 0, 8) {
- let cse_var_21: int32 = (elem_idx*16)
- let cse_var_20: int32 = ((i.inner*32) + (nb_j.inner*16))
- let cse_var_19: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
- let cse_var_18: int32 = (cse_var_20 + 1)
- let cse_var_17: int32 = (cse_var_20 + 11)
- let cse_var_16: int32 = (cse_var_20 + 12)
- let cse_var_15: int32 = (cse_var_20 + 13)
- let cse_var_14: int32 = (cse_var_20 + 14)
- let cse_var_13: int32 = (cse_var_20 + 15)
- let cse_var_12: int32 = (cse_var_20 + 2)
- let cse_var_11: int32 = (cse_var_20 + 3)
- let cse_var_10: int32 = (cse_var_20 + 4)
- let cse_var_9: int32 = (cse_var_20 + 5)
- let cse_var_8: int32 = (cse_var_20 + 6)
- let cse_var_7: int32 = (cse_var_20 + 7)
- let cse_var_6: int32 = (cse_var_20 + 8)
- let cse_var_5: int32 = (cse_var_20 + 9)
- let cse_var_4: int32 = ((floordiv(i0.outer.i1.outer.fused, 16)*2048) + (i.inner*256))
- let cse_var_3: int32 = (cse_var_20 + 10)
+ preflattened_buffer_map = {placeholder_9: placeholder_15: Buffer(placeholder_14, float32, [128, 512], []), compute_1: compute_3: Buffer(compute_2, 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], [])} {
+ 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, 16) {
+ for (nb_j.inner: int32, 0, 2) {
+ for (i.inner.init: int32, 0, 4) {
+ let cse_var_1: int32 = (((i.outer.inner*128) + (i.inner.init*32)) + (nb_j.inner*16))
{
- compute_5[cse_var_20] = (compute_5[cse_var_20] + (placeholder_1[((placeholder_3[cse_var_19]*16) + cse_var_21)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_18] = (compute_5[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 1)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 2)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 3)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 4)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 5)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 6)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 7)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 8)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 9)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 10)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 11)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 12)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 13)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 14)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
- compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_19]*16) + cse_var_21) + 15)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_19] + elem_idx)])], 0f32)))
+ compute_5: Buffer(compute_4, float32, [2048], [])[cse_var_1] = 0f32
+ compute_5[(cse_var_1 + 1)] = 0f32
+ compute_5[(cse_var_1 + 2)] = 0f32
+ compute_5[(cse_var_1 + 3)] = 0f32
+ compute_5[(cse_var_1 + 4)] = 0f32
+ compute_5[(cse_var_1 + 5)] = 0f32
+ compute_5[(cse_var_1 + 6)] = 0f32
+ compute_5[(cse_var_1 + 7)] = 0f32
+ compute_5[(cse_var_1 + 8)] = 0f32
+ compute_5[(cse_var_1 + 9)] = 0f32
+ compute_5[(cse_var_1 + 10)] = 0f32
+ compute_5[(cse_var_1 + 11)] = 0f32
+ compute_5[(cse_var_1 + 12)] = 0f32
+ compute_5[(cse_var_1 + 13)] = 0f32
+ compute_5[(cse_var_1 + 14)] = 0f32
+ compute_5[(cse_var_1 + 15)] = 0f32
+ }
+ }
+ for (elem_idx: int32, 0, let cse_var_2: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner) in (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])) {
+ for (i.inner: int32, 0, 4) {
+ let cse_var_21: int32 = (elem_idx*16)
+ let cse_var_20: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
+ let cse_var_19: int32 = (((i.outer.inner*128) + (i.inner*32)) + (nb_j.inner*16))
+ let cse_var_18: int32 = (cse_var_19 + 1)
+ let cse_var_17: int32 = (cse_var_19 + 11)
+ let cse_var_16: int32 = (cse_var_19 + 12)
+ let cse_var_15: int32 = (cse_var_19 + 13)
+ let cse_var_14: int32 = (cse_var_19 + 14)
+ let cse_var_13: int32 = (cse_var_19 + 15)
+ let cse_var_12: int32 = (cse_var_19 + 2)
+ let cse_var_11: int32 = (cse_var_19 + 3)
+ let cse_var_10: int32 = (cse_var_19 + 4)
+ let cse_var_9: int32 = (cse_var_19 + 5)
+ let cse_var_8: int32 = (cse_var_19 + 6)
+ let cse_var_7: int32 = (cse_var_19 + 7)
+ let cse_var_6: int32 = (cse_var_19 + 8)
+ let cse_var_5: int32 = (cse_var_19 + 9)
+ let cse_var_4: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*1024)) + (i.inner*256))
+ let cse_var_3: int32 = (cse_var_19 + 10)
+ {
+ compute_5[cse_var_19] = (compute_5[cse_var_19] + (placeholder_1[((placeholder_3[cse_var_20]*16) + cse_var_21)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_18] = (compute_5[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 1)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 2)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 3)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 4)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 5)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 6)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 7)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 8)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 9)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 10)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 11)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 12)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 13)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 14)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_20]*16) + cse_var_21) + 15)]*max(placeholder[(cse_var_4 + placeholder_2[(placeholder_3[cse_var_20] + elem_idx)])], 0f32)))
+ }
}
}
}
}
- for (i0.inner: int32, 0, 8) {
- let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*4096) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
+ for (i0.inner: int32, 0, 64) {
+ let cse_var_22: int32 = (((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32))
compute[ramp(cse_var_22, 1, 32)] = max((compute_5[ramp((i0.inner*32), 1, 32)] + placeholder_4[ramp(cse_var_22, 1, 32)]), broadcast(0f32, 32))
}
}
@@ -708,7 +710,7 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
</pre></div>
</div>
<p class="sphx-glr-script-out">Out:</p>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.884 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 2.160 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 9e8a92493..8e7abc40f 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.438</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:45.767</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
<ul class="simple">
-<li><p><strong>00:43.546</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.234</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.223</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.218</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.216</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.888</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.237</strong>: <a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></li>
+<li><p><strong>00:00.216</strong>: <a class="reference internal" href="tune_relay_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.215</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.212</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 ad8958324..0d7d21eaf 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -382,7 +382,7 @@ the techniques used in these tutorials. Then we rely on the efficient auto-tuner
to search through this space and pick some good configurations.</p>
<p>If you are familiar with writing cuda schedule, you can find the following
template is very general. Actually this template can be easily modified
-to tune other operators such as depthwise convolution and gemm.
+to tune other operators such as depthwise convolution and GEMM.
In order to fully understand this template, you should be familiar with
the schedule primitives and auto tuning API. You can refer to the above
tutorials and <a class="reference internal" href="../../tutorial/autotvm_matmul_x86.html#tutorial-autotvm-matmul-x86"><span class="std std-ref">autotvm tutorial</span></a></p>
@@ -1142,8 +1142,8 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 4, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2885496
-No: 6 GFLOPS: 95.92/95.92 result: MeasureResult(costs=(0.0024134619583333337,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6140697002410889, timestamp=1654644371.017709) [('tile_f', [-1, 1, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3754080
-No: 7 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 6 GFLOPS: 42.64/42.64 result: MeasureResult(costs=(0.005429114789473685,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.5012328624725342, timestamp=1654669018.3772974) [('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/42.64 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
@@ -1266,7 +1266,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 16, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 256, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6225319
-No: 8 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 8 GFLOPS: 0.00/42.64 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
@@ -1389,7 +1389,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,943546
-No: 9 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 9 GFLOPS: 0.00/42.64 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
@@ -1512,7 +1512,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 16, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 32]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2868708
-No: 10 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 10 GFLOPS: 0.00/42.64 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
@@ -1530,7 +1530,7 @@ No: 10 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
TimeoutError
[('tile_f', [-1, 32, 2, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4691833
-No: 11 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 11 GFLOPS: 0.00/42.64 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
@@ -1653,7 +1653,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 2, 64]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1042124
-No: 12 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 12 GFLOPS: 0.00/42.64 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
@@ -1776,7 +1776,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 32, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10013405
-No: 13 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 13 GFLOPS: 0.00/42.64 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
@@ -1899,7 +1899,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 8, 8, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6732082
-No: 14 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 14 GFLOPS: 0.00/42.64 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
@@ -2022,7 +2022,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 4, 32]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7536735
-No: 15 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 15 GFLOPS: 0.00/42.64 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
@@ -2145,7 +2145,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,482121
-No: 16 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 16 GFLOPS: 0.00/42.64 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
@@ -2268,7 +2268,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 32, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2824525
-No: 17 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 17 GFLOPS: 0.00/42.64 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
@@ -2391,7 +2391,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 64, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4559286
-No: 18 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 18 GFLOPS: 0.00/42.64 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
@@ -2514,7 +2514,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 854, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 32, 16]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9677544
-No: 19 GFLOPS: 0.00/95.92 result: Traceback (most recent call last):
+No: 19 GFLOPS: 0.00/42.64 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
@@ -2602,7 +2602,7 @@ tvm._ffi.base.TVMError: Traceback (most recent call last):
15: _PyEval_EvalFrameDefault
14: 0x0000000000537c30
13: _PyObject_FastCallKeywords
- 12: 0x00007fb37c553fa2
+ 12: 0x00007f46e1a5dfa2
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 [('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.97/144.97 result: MeasureResult(costs=(0.00159690949,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.464625597000122, timestamp=1654644397.5587177) [('tile_f', [-1, 1, 4, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9881539
+No: 20 GFLOPS: 144.29/144.29 result: MeasureResult(costs=(0.0016044719299999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.4524359703063965, timestamp=1654669045.0340207) [('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
</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:
[('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.001964
+Time cost of this operator: 0.001957
</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 9134d472b..f6f57bf5d 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 314.1 98.745 (1, 2, 10, 10, 3) 2 1
-tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.07 0.965 (1, 6, 10, 10) 1 1
-tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.922 0.29 (1, 1, 10, 10, 3) 1 1
-Total_time - 318.092 - - - -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 314.6 98.747 (1, 2, 10, 10, 3) 2 1
+tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.091 0.97 (1, 6, 10, 10) 1 1
+tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.901 0.283 (1, 1, 10, 10, 3) 1 1
+Total_time - 318.592 - - - -
</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 154.1 98.277 (1, 6, 10, 10, 1) 2 1
-tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 1.738 1.108 (1, 6, 10, 10) 1 1
-tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.963 0.614 (1, 1, 10, 10, 3) 1 1
-Total_time - 156.801 - - - -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 226.2 98.8 (1, 1, 10, 10, 6) 2 1
+tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 1.935 0.845 (1, 6, 10, 10) 1 1
+tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.812 0.355 (1, 3, 10, 10, 1) 1 1
+Total_time - 228.947 - - - -
</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 34bfbe95e..54d82cf5b 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/tmpfxj8a1el/images/target contains 8144 images
-/tmp/tmpfxj8a1el/images/random contains 5000 images
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpv4vn17m7/images/target contains 8144 images
+/tmp/tmpv4vn17m7/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 - 54s - loss: 0.2189 - accuracy: 0.9242 - val_loss: 0.1366 - val_accuracy: 0.9592
+328/328 - 54s - loss: 0.2052 - accuracy: 0.9296 - val_loss: 0.1563 - val_accuracy: 0.9543
Epoch 2/3
-328/328 - 52s - loss: 0.0989 - accuracy: 0.9638 - val_loss: 0.1167 - val_accuracy: 0.9615
+328/328 - 52s - loss: 0.0980 - accuracy: 0.9630 - val_loss: 0.1520 - val_accuracy: 0.9585
Epoch 3/3
-328/328 - 52s - loss: 0.0664 - accuracy: 0.9753 - val_loss: 0.1076 - val_accuracy: 0.9637
+328/328 - 52s - loss: 0.0603 - accuracy: 0.9768 - val_loss: 0.1156 - val_accuracy: 0.9656
</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 36.910 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes 10.613 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 9a173ab56..fb4ac5b45 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:22.774</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>05:57.419</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
<ul class="simple">
-<li><p><strong>04:36.910</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:41.661</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.587</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>05:10.613</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:42.484</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.716</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.209</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.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>
-<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.199</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>00:00.199</strong>: <a class="reference internal" href="micro_reference_vm.html#sphx-glr-how-to-work-with-microtvm-micro-reference-vm-py"><span class="std std-ref">microTVM Reference Virtual Machines</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_reference_vm.py</span></code>)</p></li>
</ul>
</div>
diff --git a/docs/how_to/work_with_relay/build_gcn.html b/docs/how_to/work_with_relay/build_gcn.html
index 89c080532..44a5f386c 100644
--- a/docs/how_to/work_with_relay/build_gcn.html
+++ b/docs/how_to/work_with_relay/build_gcn.html
@@ -671,7 +671,7 @@ this method is temporary and will be updated in next few weeks when we have spar
</div>
<div class="section" id="compile-and-run-with-tvm">
<h2>Compile and run with TVM<a class="headerlink" href="#compile-and-run-with-tvm" title="Permalink to this headline">¶</a></h2>
-<p>Export the weigths from PyTorch model to Python Dict</p>
+<p>Export the weights from PyTorch model to Python Dict</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">model_params</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">param_tensor</span> <span class="ow">in</span> <span class="n">torch_model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">():</span>
<span class="n">model_params</span><span class="p">[</span><span class="n">param_tensor</span><span class="p">]</span> <span class="o">=</span> <span class="n">torch_model</span><span class="o">.</span><span class="n">state_dict</span><span class="p">()[</span><span class="n">param_tensor</span><span class="p">]</span><span class="o">.</span><span class="n">numpy</span><span class="p">()</span>
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 9138803dc..e4ca5d5b4 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.906</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:12.095</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.724</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.226</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.170</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.710</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.215</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_relay/using_relay_viz.html b/docs/how_to/work_with_relay/using_relay_viz.html
index 0d86ac825..3eeda20cc 100644
--- a/docs/how_to/work_with_relay/using_relay_viz.html
+++ b/docs/how_to/work_with_relay/using_relay_viz.html
@@ -339,7 +339,7 @@
<p><strong>Author</strong>: <a class="reference external" href="https://github.com/chiwwang">Chi-Wei Wang</a></p>
<p>Relay IR module can contain lots of operations. Although an individual
operation is usually easy to understand, putting them together can cause
-a complicated, hard-to-read graph. Things can get even worse with optimiztion-passes
+a complicated, hard-to-read graph. Things can get even worse with optimization-passes
coming into play.</p>
<p>This utility visualizes an IR module as nodes and edges. It defines a set of interfaces including
parser, plotter(renderer), graph, node, and edges.
@@ -420,7 +420,7 @@ We should see <code class="docutils literal notranslate"><span class="pre">main<
<h2>Customize Parser for Interested Relay Types<a class="headerlink" href="#customize-parser-for-interested-relay-types" title="Permalink to this headline">¶</a></h2>
<p>Sometimes we want to emphasize interested information, or parse things differently for a specific usage.
It is possible to provide customized parsers as long as it obeys the interface.
-Here demostrate how to customize parsers for <code class="docutils literal notranslate"><span class="pre">relay.var</span></code>.
+Here demonstrate how to customize parsers for <code class="docutils literal notranslate"><span class="pre">relay.var</span></code>.
We need to implement abstract interface <a class="reference internal" href="../../reference/api/python/contrib.html#tvm.contrib.relay_viz.interface.VizParser" title="tvm.contrib.relay_viz.interface.VizParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">tvm.contrib.relay_viz.interface.VizParser</span></code></a>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">YourAwesomeParser</span><span class="p">(</span><span class="n">VizParser</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -478,7 +478,7 @@ We add a hook duplicating above <code class="docutils literal notranslate"><span
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">node</span><span class="p">(</span><span class="n">viz_node</span><span class="p">)</span>
<span class="c1"># if it's AwesomeVar, duplicate it.</span>
<span class="k">if</span> <span class="n">viz_node</span><span class="o">.</span><span class="n">type_name</span> <span class="o">==</span> <span class="s2">"AwesomeVar"</span><span class="p">:</span>
- <span class="n">duplicated_id</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"duplciated_</span><span class="si">{</span><span class="n">viz_node</span><span class="o">.</span><span class="n">identity</span><span class="si">}</span><span class="s2">"</span>
+ <span class="n">duplicated_id</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"duplicated_</span><span class="si">{</span><span class="n">viz_node</span><span class="o">.</span><span class="n">identity</span><span class="si">}</span><span class="s2">"</span>
<span class="n">duplicated_type</span> <span class="o">=</span> <span class="s2">"double AwesomeVar"</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">node</span><span class="p">(</span><a href="../../reference/api/python/contrib.html#tvm.contrib.relay_viz.interface.VizNode" title="View documentation for tvm.contrib.relay_viz.interface.VizNode"><span class="n">VizNode</span></a><span class="p">(</span><span class="n">duplicated_id</span><span class="p">,</span> <span class="n">duplicated_type</span><span class="p">,</span> <span cl [...]
<span class="c1"># connect the duplicated var to the original one</span>
diff --git a/docs/how_to/work_with_schedules/extern_op.html b/docs/how_to/work_with_schedules/extern_op.html
index e951acdf1..633f695bb 100644
--- a/docs/how_to/work_with_schedules/extern_op.html
+++ b/docs/how_to/work_with_schedules/extern_op.html
@@ -347,7 +347,7 @@ it is also helpful to incorporate manual written code into
the pipeline. For example, we might want to use cuDNN for
some of the convolution kernels and define the rest of the stages.</p>
<p>TVM supports these black box function calls natively.
-Specfically, TVM support all the tensor functions that are DLPack compatible.
+Specifically, TVM support all the tensor functions that are DLPack compatible.
Which means we can call any function with POD types(pointer, int, float)
or pointer to DLTensor as argument.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
@@ -371,7 +371,7 @@ of output tensors. In the second argument we provide the list of inputs.</p>
The compute function takes list of symbolic placeholder for the inputs,
list of symbolic placeholder for the outputs and returns the executing statement.</p>
<p>In this case we simply call a registered TVM function, which invokes a CBLAS call.
-TVM does not control internal of the extern array function and treats it as blackbox.
+TVM does not control internal of the extern array function and treats it as black-box.
We can further mix schedulable TVM calls that add a bias term to the result.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">n</span> <span class="o">=</span> <span class="mi">1024</span>
<span class="n">l</span> <span class="o">=</span> <span class="mi">128</span>
diff --git a/docs/how_to/work_with_schedules/intrin_math.html b/docs/how_to/work_with_schedules/intrin_math.html
index 791fee274..f9e930ac7 100644
--- a/docs/how_to/work_with_schedules/intrin_math.html
+++ b/docs/how_to/work_with_schedules/intrin_math.html
@@ -348,7 +348,7 @@ For example <code class="code docutils literal notranslate"><span class="pre">ex
<p>These functions are target system dependent and may have different
names of different target platforms. In this tutorial, we will learn
how we can invoke these target specific functions, and how we can unify
-the interface via tvm’s intrinsic API.</p>
+the interface via TVM’s intrinsic API.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
diff --git a/docs/how_to/work_with_schedules/scan.html b/docs/how_to/work_with_schedules/scan.html
index a29d9b222..c5b495dc3 100644
--- a/docs/how_to/work_with_schedules/scan.html
+++ b/docs/how_to/work_with_schedules/scan.html
@@ -378,7 +378,7 @@ update over the time domain.</p>
<div class="section" id="schedule-the-scan-cell">
<h2>Schedule the Scan Cell<a class="headerlink" href="#schedule-the-scan-cell" title="Permalink to this headline">¶</a></h2>
<p>We can schedule the body of the scan by scheduling the update and
-init part seperately. Note that it is invalid to schedule the
+init part separately. Note that it is invalid to schedule the
first iteration dimension of the update part.
To split on the time iteration, user can schedule on scan_op.scan_axis instead.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">s</span> <span class="o">=</span> <a href="../../reference/api/python/te.html#tvm.te.create_schedule" title="View documentation for tvm.te.create_schedule"><span class="n">te</span><span class="o">.</span><span class="n">create_schedule</span></a><span class="p">(</span><span class="n">s_scan</span><span class="o">.</span><span class="n">op</span><span class="p">)</span>
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 cdbbbf3d1..36d00f685 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.833</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:05.959</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
<ul class="simple">
-<li><p><strong>00:02.134</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.198</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.745</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.729</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.312</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.251</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.239</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.225</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.170</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.236</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.746</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.736</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.315</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.284</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.242</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.230</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 a3b873071..a06dba5db 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), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpcsetdwf3/input0.cc'\nsource_filename = \"/tmp/tmpcsetdwf3/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 = allo [...]
+ attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpt78h14xo/input0.cc'\nsource_filename = \"/tmp/tmpt78h14xo/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 = allo [...]
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/reference/api/doxygen/apply__history__best_8h_source.html b/docs/reference/api/doxygen/apply__history__best_8h_source.html
index 067b33c0e..5f870c9ab 100644
--- a/docs/reference/api/doxygen/apply__history__best_8h_source.html
+++ b/docs/reference/api/doxygen/apply__history__best_8h_source.html
@@ -78,7 +78,7 @@ $(function() {
<div class="ttc" id="array_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div><div class="ttdoc">Runtime Array container types. </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_1ApplyHistoryBestNode_html_a86fc3705d9a37c98f75a9a843878178a"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html#a86fc3705d9a37c98f75a9a843878178a">tvm::meta_schedule::ApplyHistoryBestNode::Query</a></div><div class="ttdeci">Optional< IRModule > Query(runtime::String task_name, IRModule mod, Target target, Optional< Array< IRModule >> dispatched)</div><div class="ttdoc">Query the best en [...]
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1Database_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Database.html">tvm::meta_schedule::Database</a></div><div class="ttdoc">Managed reference to DatabaseNode. </div><div class="ttdef"><b>Definition:</b> database.h:288</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1Database_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Database.html">tvm::meta_schedule::Database</a></div><div class="ttdoc">Managed reference to DatabaseNode. </div><div class="ttdef"><b>Definition:</b> database.h:289</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1Array_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array</a></div><div class="ttdoc">Array, container representing a contiguous sequence of ObjectRefs. </div><div class="ttdef"><b>Definition:</b> array.h:270</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode_html_a6be4c52d4ff271c11d2f2daf53861778"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ApplyHistoryBestNode.html#a6be4c52d4ff271c11d2f2daf53861778">tvm::meta_schedule::ApplyHistoryBestNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> apply_history_best.h:46</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1String_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1String.html">tvm::runtime::String</a></div><div class="ttdoc">Reference to string objects. </div><div class="ttdef"><b>Definition:</b> string.h:129</div></div>
diff --git a/docs/reference/api/doxygen/classes.html b/docs/reference/api/doxygen/classes.html
index daabb3a79..8d708ab15 100644
--- a/docs/reference/api/doxygen/classes.html
+++ b/docs/reference/api/doxygen/classes.html
@@ -70,8 +70,8 @@ $(function() {
<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html">AccessAnalyzer</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1support_1_1Span_1_1iterator__base.h [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html">AccessAnalyzerNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_ [...]
<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool1DAttrs.html">AdaptivePool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1auto__scheduler_1_1AttachMapNode_1_1It [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html">IterMap [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.html"> [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html">IterMap [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.html"> [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html">CountNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapResult.html">IterMapResult</a> (<a class="el" hr [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapResultNode.html">IterMapResultNode</a> (<a class="el" href="name [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  d  </div></td></tr></table>
@@ -178,8 +178,8 @@ $(function() {
<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1BlockInfo.html">BlockInfo</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNode</a> (<a class="el" href="namespacetvm_1_1runtime.html"> [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockNode.html">BlockNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStep.html">FollowFusedSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</a> (<a class="el" href [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealize.html">BlockRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html">FollowFusedSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html">BlockRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html">FollowSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html">Multi [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRV.html">BlockRV</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html">FollowSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBox [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html">BlockRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html">FollowSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html">Multi [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRV.html">BlockRV</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html">FollowSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBox [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html">BlockRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Mutator.html">Mutator</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::me [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MutatorNode.html">MutatorNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html">FrameBuffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing= [...]
@@ -201,8 +201,8 @@ $(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>)   </td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  g  </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>)   </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>)   </td><td valign="top"><a class="el" href="unionTVMValue.html">TVMValue</a>   </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>)   </td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  o  </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1Type.html">Type</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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>)   </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>)   </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: [...]
+</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>)   </td><td valign="top"><a class="el" href="classtvm_1_1Type.html">Type</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>) &# [...]
<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>)   </td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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 [...]
@@ -255,8 +255,8 @@ $(function() {
<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>)   </td><td valign="top"><a class="el" href="classtvm_1_1IncompleteType.html">IncompleteType</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNod [...]
+<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>)   </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>)   </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>)   </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNod [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOp.html">ComputeOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html">InplaceArrayBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassNode.html">PassNode</a> (<a class="el" href="namespacetvm_1_1 [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html">ComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html">InstanceNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Pattern.html">Pattern</a> (<a class="el" href="namespacetvm_1_1r [...]
<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStep.html">ComputeRootStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)   </td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)   </td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConst [...]
@@ -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>)   </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>)   </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1Integer.html">Integer</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1IntImm.html">IntImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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>)   </td><td valign="top"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)   </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_1TuningRecord-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecord-members.html
index 7b5b020f6..25f3e943e 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecord-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecord-members.html
@@ -87,7 +87,7 @@ $(function() {
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator<</a>(const ObjectRef &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 &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_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &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_1TuningRecord.html#a8495d5cbf2d11eaca3a5c1f6a25e5ea7">TuningRecord</a>(tir::Trace trace, Array< FloatImm > run_secs, Workload workload, Target target, Array< ArgInfo > args_info)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html">tvm::meta_schedule::TuningRecord</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#aa4699af50f91bda306e6c199766c4757">TuningRecord</a>(tir::Trace trace, Workload workload, Optional< Array< FloatImm >> run_secs, Optional< Target > target, Optional< Array< ArgInfo >> args_info)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html">tvm::meta_schedule::TuningRecord</a></td><td class="entry"><span class=" [...]
<tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#adb7a5f83ed6236b9b9efc59219c95d01">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(TuningRecord, runtime::ObjectRef, TuningRecordNode)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html">tvm::meta_schedule::TuningRecord</a></td><td class="entry"></td></tr>
<tr class="even"><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>
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</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_1TuningRecord.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecord.html
index 379d8292d..da0d9e0df 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecord.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecord.html
@@ -90,9 +90,9 @@ Collaboration diagram for tvm::meta_schedule::TuningRecord:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:a8495d5cbf2d11eaca3a5c1f6a25e5ea7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#a8495d5cbf2d11eaca3a5c1f6a25e5ea7">TuningRecord</a> (<a class="el" href="classtvm_1_1tir_1_1Trace.html">tir::Trace</a> trace, <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> > run_sec [...]
-<tr class="memdesc:a8495d5cbf2d11eaca3a5c1f6a25e5ea7"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classtvm_1_1Constructor.html" title="Managed reference to ConstructorNode. ">Constructor</a> of a tuning record. <a href="#a8495d5cbf2d11eaca3a5c1f6a25e5ea7">More...</a><br /></td></tr>
-<tr class="separator:a8495d5cbf2d11eaca3a5c1f6a25e5ea7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa4699af50f91bda306e6c199766c4757"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#aa4699af50f91bda306e6c199766c4757">TuningRecord</a> (<a class="el" href="classtvm_1_1tir_1_1Trace.html">tir::Trace</a> trace, <a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html">Workload</a> workload, <a class="el" href="classtvm_1_1runtime_1_1Optional.h [...]
+<tr class="memdesc:aa4699af50f91bda306e6c199766c4757"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classtvm_1_1Constructor.html" title="Managed reference to ConstructorNode. ">Constructor</a> of a tuning record. <a href="#aa4699af50f91bda306e6c199766c4757">More...</a><br /></td></tr>
+<tr class="separator:aa4699af50f91bda306e6c199766c4757"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:adb7a5f83ed6236b9b9efc59219c95d01"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#adb7a5f83ed6236b9b9efc59219c95d01">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html">TuningRecord</a>, <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">runtime::ObjectRef</a>, <a class="el" h [...]
<tr class="separator:adb7a5f83ed6236b9b9efc59219c95d01"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
@@ -168,8 +168,8 @@ Additional Inherited Members</h2></td></tr>
<div class="textblock"><p>The managed reference of <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" title="The class of tuning records. ">TuningRecordNode</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html" title="The class of tuning records. ">TuningRecordNode</a> </dd></dl>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
-<a id="a8495d5cbf2d11eaca3a5c1f6a25e5ea7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8495d5cbf2d11eaca3a5c1f6a25e5ea7">◆ </a></span>TuningRecord()</h2>
+<a id="aa4699af50f91bda306e6c199766c4757"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa4699af50f91bda306e6c199766c4757">◆ </a></span>TuningRecord()</h2>
<div class="memitem">
<div class="memproto">
@@ -186,25 +186,25 @@ Additional Inherited Members</h2></td></tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> > </td>
- <td class="paramname"><em>run_secs</em>, </td>
+ <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html">Workload</a> </td>
+ <td class="paramname"><em>workload</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html">Workload</a> </td>
- <td class="paramname"><em>workload</em>, </td>
+ <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> >> </td>
+ <td class="paramname"><em>run_secs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classtvm_1_1Target.html">Target</a> </td>
+ <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1Target.html">Target</a> > </td>
<td class="paramname"><em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> > </td>
+ <td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> >> </td>
<td class="paramname"><em>args_info</em> </td>
</tr>
<tr>
@@ -224,8 +224,8 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">trace</td><td>The trace of the tuning record. </td></tr>
- <tr><td class="paramname">run_secs</td><td>The running time of the tuning record. </td></tr>
<tr><td class="paramname">workload</td><td>The workload of the tuning record. </td></tr>
+ <tr><td class="paramname">run_secs</td><td>The running time of the tuning record. </td></tr>
<tr><td class="paramname">target</td><td>The target of the tuning record. </td></tr>
<tr><td class="paramname">args_info</td><td>The argument information of the tuning record. </td></tr>
</table>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode-members.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode-members.html
index 9b8b8c1ed..6803959ac 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode-members.html
@@ -78,7 +78,7 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a74e9f076b50b8b335b4a321e9b0bf03c">_type_has_method_visit_attrs</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">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af6aed95d70af7e44ce376a8d7be6c5f1">_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">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#aa90a4ab949484eac753ff45a7693a829">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</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_1TuningRecordNode.html#abd204834fbe398290cdd419e26851b6a">args_info</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a09f1921d607d7ef4397876c15d2f0b08">args_info</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#ac2e3ed776662e66112c37ec4fcb091d1">AsJSON</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
<tr><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 class="even"><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>
@@ -95,9 +95,9 @@ $(function() {
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ae341e561272ff43cdcbc927bc29ac50d">operator=</a>(Object &&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#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><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 class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a5ee669c272da1447f3f666d9faf5e449">run_secs</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a00aeeedbe4d1d6008224d98c62739581">run_secs</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</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>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#ab9cbbf8eb7941995e9c7552948eac02b">target</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a45a380cfa2edfd63056fb1a00f9aac35">target</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a8cc2d64f796593a1a774eef259f17b29">trace</a></td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a6270ef8a153eca3d2571ee2d34feb4ff">TVM_DECLARE_FINAL_OBJECT_INFO</a>(TuningRecordNode, runtime::Object)</td><td class="entry"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</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>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode.html
index b3ab472a1..e384b8a40 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode.html
@@ -85,7 +85,7 @@ Inheritance diagram for tvm::meta_schedule::TuningRecordNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::meta_schedule::TuningRecordNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TuningRecordNode__coll__graph.svg" width="1408" height="1360"><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_1TuningRecordNode__coll__graph.svg" width="1478" height="1360"><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">
@@ -126,18 +126,18 @@ Public Attributes</h2></td></tr>
<tr class="memitem:a8cc2d64f796593a1a774eef259f17b29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1tir_1_1Trace.html">tir::Trace</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a8cc2d64f796593a1a774eef259f17b29">trace</a></td></tr>
<tr class="memdesc:a8cc2d64f796593a1a774eef259f17b29"><td class="mdescLeft"> </td><td class="mdescRight">The trace tuned. <a href="#a8cc2d64f796593a1a774eef259f17b29">More...</a><br /></td></tr>
<tr class="separator:a8cc2d64f796593a1a774eef259f17b29"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5ee669c272da1447f3f666d9faf5e449"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a5ee669c272da1447f3f666d9faf5e449">run_secs</a></td></tr>
-<tr class="memdesc:a5ee669c272da1447f3f666d9faf5e449"><td class="mdescLeft"> </td><td class="mdescRight">The profiling result in seconds. <a href="#a5ee669c272da1447f3f666d9faf5e449">More...</a><br /></td></tr>
-<tr class="separator:a5ee669c272da1447f3f666d9faf5e449"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a42c87f1ec62dae6806c3fe9629c5e7f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Workload.html">Workload</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a42c87f1ec62dae6806c3fe9629c5e7f0">workload</a> {nullptr}</td></tr>
<tr class="memdesc:a42c87f1ec62dae6806c3fe9629c5e7f0"><td class="mdescLeft"> </td><td class="mdescRight">The workload. <a href="#a42c87f1ec62dae6806c3fe9629c5e7f0">More...</a><br /></td></tr>
<tr class="separator:a42c87f1ec62dae6806c3fe9629c5e7f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab9cbbf8eb7941995e9c7552948eac02b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1Target.html">Target</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#ab9cbbf8eb7941995e9c7552948eac02b">target</a></td></tr>
-<tr class="memdesc:ab9cbbf8eb7941995e9c7552948eac02b"><td class="mdescLeft"> </td><td class="mdescRight">The target for tuning. <a href="#ab9cbbf8eb7941995e9c7552948eac02b">More...</a><br /></td></tr>
-<tr class="separator:ab9cbbf8eb7941995e9c7552948eac02b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abd204834fbe398290cdd419e26851b6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#abd204834fbe398290cdd419e26851b6a">args_info</a></td></tr>
-<tr class="memdesc:abd204834fbe398290cdd419e26851b6a"><td class="mdescLeft"> </td><td class="mdescRight">The argument information. <a href="#abd204834fbe398290cdd419e26851b6a">More...</a><br /></td></tr>
-<tr class="separator:abd204834fbe398290cdd419e26851b6a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00aeeedbe4d1d6008224d98c62739581"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a00aeeedbe4d1d6008224d98c62739581">run_secs</a></td></tr>
+<tr class="memdesc:a00aeeedbe4d1d6008224d98c62739581"><td class="mdescLeft"> </td><td class="mdescRight">The profiling result in seconds. <a href="#a00aeeedbe4d1d6008224d98c62739581">More...</a><br /></td></tr>
+<tr class="separator:a00aeeedbe4d1d6008224d98c62739581"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a45a380cfa2edfd63056fb1a00f9aac35"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1Target.html">Target</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a45a380cfa2edfd63056fb1a00f9aac35">target</a></td></tr>
+<tr class="memdesc:a45a380cfa2edfd63056fb1a00f9aac35"><td class="mdescLeft"> </td><td class="mdescRight">The target for tuning. <a href="#a45a380cfa2edfd63056fb1a00f9aac35">More...</a><br /></td></tr>
+<tr class="separator:a45a380cfa2edfd63056fb1a00f9aac35"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a09f1921d607d7ef4397876c15d2f0b08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>< <a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a09f1921d607d7ef4397876c15d2f0b08" [...]
+<tr class="memdesc:a09f1921d607d7ef4397876c15d2f0b08"><td class="mdescLeft"> </td><td class="mdescRight">The argument information. <a href="#a09f1921d607d7ef4397876c15d2f0b08">More...</a><br /></td></tr>
+<tr class="separator:a09f1921d607d7ef4397876c15d2f0b08"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
@@ -305,14 +305,14 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
-<a id="abd204834fbe398290cdd419e26851b6a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abd204834fbe398290cdd419e26851b6a">◆ </a></span>args_info</h2>
+<a id="a09f1921d607d7ef4397876c15d2f0b08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09f1921d607d7ef4397876c15d2f0b08">◆ </a></span>args_info</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a><<a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a>> tvm::meta_schedule::TuningRecordNode::args_info</td>
+ <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a><<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a><<a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a>> > tvm::meta_schedule::TuningRecordNode::args_info</td>
</tr>
</table>
</div><div class="memdoc">
@@ -321,14 +321,14 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
-<a id="a5ee669c272da1447f3f666d9faf5e449"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5ee669c272da1447f3f666d9faf5e449">◆ </a></span>run_secs</h2>
+<a id="a00aeeedbe4d1d6008224d98c62739581"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00aeeedbe4d1d6008224d98c62739581">◆ </a></span>run_secs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a><<a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a>> tvm::meta_schedule::TuningRecordNode::run_secs</td>
+ <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a><<a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a><<a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a>> > tvm::meta_schedule::TuningRecordNode::run_secs</td>
</tr>
</table>
</div><div class="memdoc">
@@ -337,14 +337,14 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
-<a id="ab9cbbf8eb7941995e9c7552948eac02b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab9cbbf8eb7941995e9c7552948eac02b">◆ </a></span>target</h2>
+<a id="a45a380cfa2edfd63056fb1a00f9aac35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45a380cfa2edfd63056fb1a00f9aac35">◆ </a></span>target</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="classtvm_1_1Target.html">Target</a> tvm::meta_schedule::TuningRecordNode::target</td>
+ <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a><<a class="el" href="classtvm_1_1Target.html">Target</a>> tvm::meta_schedule::TuningRecordNode::target</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__coll__graph.svg
index 97ce654a4..7a9dc864a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__coll__graph.svg
@@ -4,23 +4,23 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::meta_schedule::TuningRecordNode Pages: 1 -->
-<svg width="1056pt" height="1020pt"
- viewBox="0.00 0.00 1055.50 1020.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1108pt" height="1020pt"
+ viewBox="0.00 0.00 1107.50 1020.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 1016)">
<title>tvm::meta_schedule::TuningRecordNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1016 1051.5,-1016 1051.5,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1016 1103.5,-1016 1103.5,4 -4,4"/>
<!-- Node2 -->
<g id="node1" class="node">
<title>Node2</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="477,-.5 477,-90.5 686,-90.5 686,-.5 477,-.5"/>
-<text text-anchor="start" x="485" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="581.5" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningRecordNode</text>
-<polyline fill="none" stroke="#000000" points="477,-60.5 686,-60.5 "/>
-<text text-anchor="start" x="485" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="477,-41.5 686,-41.5 "/>
-<text text-anchor="start" x="485" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="485" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
-<text text-anchor="start" x="485" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AsJSON()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="504,-.5 504,-90.5 713,-90.5 713,-.5 504,-.5"/>
+<text text-anchor="start" x="512" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="608.5" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningRecordNode</text>
+<polyline fill="none" stroke="#000000" points="504,-60.5 713,-60.5 "/>
+<text text-anchor="start" x="512" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="504,-41.5 713,-41.5 "/>
+<text text-anchor="start" x="512" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="512" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="512" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AsJSON()</text>
</g>
<!-- Node3 -->
<g id="node2" class="node">
@@ -68,8 +68,8 @@
<!-- Node3->Node2 -->
<g id="edge1" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="#191970" d="M190.0255,-199.2752C211.8388,-176.3546 236.3291,-154.6009 262.5,-138 327.5053,-96.7653 411.4629,-73.3821 476.9282,-60.4455"/>
-<polygon fill="none" stroke="#191970" points="187.3085,-197.0565 183.0386,-206.7529 192.4233,-201.8356 187.3085,-197.0565"/>
+<path fill="none" stroke="#191970" d="M190.1775,-198.3855C211.9076,-175.6694 236.3285,-154.2185 262.5,-138 335.9659,-92.473 431.6584,-69.1151 503.782,-57.2741"/>
+<polygon fill="none" stroke="#191970" points="187.5097,-196.1136 183.218,-205.8003 192.6137,-200.9042 187.5097,-196.1136"/>
</g>
<!-- Node3->Node3 -->
<g id="edge2" class="edge">
@@ -99,215 +99,218 @@
<!-- Node4->Node2 -->
<g id="edge3" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M372.5889,-275.7134C387.8602,-234.3894 412.8139,-178.6159 447.5,-138 460.1182,-123.2247 475.6205,-109.7153 491.5485,-97.8572"/>
-<polygon fill="none" stroke="#404040" points="491.7616,-97.7038 494.2926,-90.9514 501.499,-90.6907 498.968,-97.4431 491.7616,-97.7038"/>
-<text text-anchor="middle" x="504" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +workload</text>
+<path fill="none" stroke="#404040" d="M370.9688,-275.6998C385.4651,-233.8316 410.0137,-177.3701 446.5,-138 460.9883,-122.3666 478.7338,-108.658 497.1044,-96.9176"/>
+<polygon fill="none" stroke="#404040" points="497.1423,-96.8943 500.1513,-90.341 507.3579,-90.598 504.3489,-97.1513 497.1423,-96.8943"/>
+<text text-anchor="middle" x="505" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +workload</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="584.5,-563.5 584.5,-785.5 718.5,-785.5 718.5,-563.5 584.5,-563.5"/>
-<text text-anchor="middle" x="651.5" y="-773.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="584.5,-766.5 718.5,-766.5 "/>
-<text text-anchor="start" x="592.5" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="584.5,-747.5 718.5,-747.5 "/>
-<text text-anchor="start" x="592.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="592.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="592.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="592.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="592.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="592.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator<()</text>
-<text text-anchor="start" x="592.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="592.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="592.5" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
-<text text-anchor="start" x="592.5" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="592.5" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="592.5" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="592.5" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="592.5" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="592.5" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="592.5" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="630.5,-563.5 630.5,-785.5 764.5,-785.5 764.5,-563.5 630.5,-563.5"/>
+<text text-anchor="middle" x="697.5" y="-773.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="630.5,-766.5 764.5,-766.5 "/>
+<text text-anchor="start" x="638.5" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="630.5,-747.5 764.5,-747.5 "/>
+<text text-anchor="start" x="638.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="638.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="638.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="638.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="638.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="638.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator<()</text>
+<text text-anchor="start" x="638.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="638.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="638.5" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
+<text text-anchor="start" x="638.5" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="638.5" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="638.5" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="638.5" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="638.5" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="638.5" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="638.5" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge4" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="#191970" d="M575.6528,-632.095C533.7678,-605.7727 483.1627,-568.8343 447.5,-526 413.3253,-484.9529 388.3116,-429.2299 372.8878,-388.0345"/>
-<polygon fill="none" stroke="#191970" points="573.8348,-635.086 584.1778,-637.3826 577.5245,-629.1373 573.8348,-635.086"/>
+<path fill="none" stroke="#191970" d="M621.1048,-643.8708C566.6835,-618.8763 494.8933,-579.0331 446.5,-526 410.3186,-486.3496 385.7319,-429.9231 371.1439,-388.1392"/>
+<polygon fill="none" stroke="#191970" points="619.8137,-647.1282 630.3676,-648.0593 622.6979,-640.7499 619.8137,-647.1282"/>
</g>
<!-- Node7 -->
<g id="node6" class="node">
<title>Node7</title>
-<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\< tvm::FloatImm \>\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="456,-243 456,-421 569,-421 569,-243 456,-243"/>
-<text text-anchor="start" x="464" y="-409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="512.5" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm ></text>
-<polyline fill="none" stroke="#000000" points="456,-391 569,-391 "/>
-<text text-anchor="middle" x="512.5" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="456,-372 569,-372 "/>
-<text text-anchor="start" x="464" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="464" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="464" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="464" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::FloatImm \> \>\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="455.5,-237.5 455.5,-426.5 583.5,-426.5 583.5,-237.5 455.5,-237.5"/>
+<text text-anchor="start" x="463.5" y="-414.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="463.5" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="519.5" y="-392.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm > ></text>
+<polyline fill="none" stroke="#000000" points="455.5,-385.5 583.5,-385.5 "/>
+<text text-anchor="start" x="463.5" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="455.5,-366.5 583.5,-366.5 "/>
+<text text-anchor="start" x="463.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="463.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="463.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="463.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge7" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="#191970" d="M590.6324,-553.9316C586.3845,-544.5443 582.2902,-535.1578 578.5,-526 564.555,-492.306 551.1963,-454.4929 540.1899,-421.2607"/>
-<polygon fill="none" stroke="#191970" points="587.581,-555.6748 594.9257,-563.3106 593.9458,-552.7612 587.581,-555.6748"/>
+<path fill="none" stroke="#191970" d="M624.4582,-577.4002C613.3678,-560.6904 602.6055,-543.1668 593.5,-526 576.9467,-494.7916 562.2227,-459.0474 550.3532,-426.8134"/>
+<polygon fill="none" stroke="#191970" points="621.7958,-579.7131 630.2807,-586.058 627.6045,-575.8067 621.7958,-579.7131"/>
</g>
<!-- Node8 -->
<g id="node7" class="node">
<title>Node8</title>
-<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\< tvm::meta_schedule\l::ArgInfo \>\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="587.5,-237.5 587.5,-426.5 715.5,-426.5 715.5,-237.5 587.5,-237.5"/>
-<text text-anchor="start" x="595.5" y="-414.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="595.5" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule</text>
-<text text-anchor="middle" x="651.5" y="-392.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfo ></text>
-<polyline fill="none" stroke="#000000" points="587.5,-385.5 715.5,-385.5 "/>
-<text text-anchor="middle" x="651.5" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="587.5,-366.5 715.5,-366.5 "/>
-<text text-anchor="start" x="595.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
-<text text-anchor="start" x="595.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="595.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="595.5" y="-244.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\< tvm::runtime::Array\l\< tvm::meta_schedule::ArgInfo \> \>\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="602,-237.5 602,-426.5 793,-426.5 793,-237.5 602,-237.5"/>
+<text text-anchor="start" x="610" y="-414.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="610" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="697.5" y="-392.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::ArgInfo > ></text>
+<polyline fill="none" stroke="#000000" points="602,-385.5 793,-385.5 "/>
+<text text-anchor="start" x="610" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="602,-366.5 793,-366.5 "/>
+<text text-anchor="start" x="610" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="610" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="610" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="610" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node8 -->
<g id="edge9" class="edge">
<title>Node5->Node8</title>
-<path fill="none" stroke="#191970" d="M651.5,-553.1125C651.5,-511.5481 651.5,-465.6904 651.5,-426.5637"/>
-<polygon fill="none" stroke="#191970" points="648.0001,-553.3 651.5,-563.3001 655.0001,-553.3001 648.0001,-553.3"/>
+<path fill="none" stroke="#191970" d="M697.5,-553.1125C697.5,-511.5481 697.5,-465.6904 697.5,-426.5637"/>
+<polygon fill="none" stroke="#191970" points="694.0001,-553.3 697.5,-563.3001 701.0001,-553.3001 694.0001,-553.3"/>
</g>
<!-- Node9 -->
<g id="node8" class="node">
<title>Node9</title>
-<g id="a_node8"><a xlink:href="classtvm_1_1tir_1_1Trace.html" target="_top" xlink:title="Managed reference to TraceNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="733.5,-276 733.5,-388 875.5,-388 875.5,-276 733.5,-276"/>
-<text text-anchor="middle" x="804.5" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Trace</text>
-<polyline fill="none" stroke="#000000" points="733.5,-369 875.5,-369 "/>
-<text text-anchor="middle" x="804.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="733.5,-350 875.5,-350 "/>
-<text text-anchor="start" x="741.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Trace()</text>
-<text text-anchor="start" x="741.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Trace()</text>
-<text text-anchor="start" x="741.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="741.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="741.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="741.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ApplyJSONToSchedule()</text>
+<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\< tvm::Target \>\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="811.5,-243 811.5,-421 939.5,-421 939.5,-243 811.5,-243"/>
+<text text-anchor="start" x="819.5" y="-409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="875.5" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Target ></text>
+<polyline fill="none" stroke="#000000" points="811.5,-391 939.5,-391 "/>
+<text text-anchor="start" x="819.5" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="811.5,-372 939.5,-372 "/>
+<text text-anchor="start" x="819.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="819.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="819.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="819.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node9 -->
<g id="edge11" class="edge">
<title>Node5->Node9</title>
-<path fill="none" stroke="#191970" d="M711.4397,-554.2509C715.9337,-544.7271 720.3351,-535.2268 724.5,-526 745.2593,-480.0101 766.9723,-426.9993 782.5307,-388.0256"/>
-<polygon fill="none" stroke="#191970" points="708.2323,-552.846 707.1074,-563.381 714.5565,-555.8469 708.2323,-552.846"/>
+<path fill="none" stroke="#191970" d="M770.3361,-578.9997C781.8774,-561.8284 793.0912,-543.7389 802.5,-526 819.9524,-493.0963 835.2252,-455.0879 847.2281,-421.4807"/>
+<polygon fill="none" stroke="#191970" points="767.3856,-577.1142 764.6505,-587.3499 773.1718,-581.0539 767.3856,-577.1142"/>
</g>
<!-- Node10 -->
<g id="node9" class="node">
<title>Node10</title>
-<g id="a_node9"><a xlink:href="classtvm_1_1Target.html" target="_top" xlink:title="Managed reference class to TargetNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="893.5,-254 893.5,-410 1047.5,-410 1047.5,-254 893.5,-254"/>
-<text text-anchor="middle" x="970.5" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::Target</text>
-<polyline fill="none" stroke="#000000" points="893.5,-391 1047.5,-391 "/>
-<text text-anchor="middle" x="970.5" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="893.5,-372 1047.5,-372 "/>
-<text text-anchor="start" x="901.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Target()</text>
-<text text-anchor="start" x="901.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Target()</text>
-<text text-anchor="start" x="901.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Target()</text>
-<text text-anchor="start" x="901.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Target()</text>
-<text text-anchor="start" x="901.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="901.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
-<text text-anchor="start" x="901.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsExternalCodegen()</text>
-<text text-anchor="start" x="901.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsExternalCodegenFor()</text>
-<text text-anchor="start" x="901.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Current()</text>
-<text text-anchor="start" x="901.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ WithHost()</text>
+<g id="a_node9"><a xlink:href="classtvm_1_1tir_1_1Trace.html" target="_top" xlink:title="Managed reference to TraceNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="957.5,-276 957.5,-388 1099.5,-388 1099.5,-276 957.5,-276"/>
+<text text-anchor="middle" x="1028.5" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Trace</text>
+<polyline fill="none" stroke="#000000" points="957.5,-369 1099.5,-369 "/>
+<text text-anchor="middle" x="1028.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="957.5,-350 1099.5,-350 "/>
+<text text-anchor="start" x="965.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Trace()</text>
+<text text-anchor="start" x="965.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Trace()</text>
+<text text-anchor="start" x="965.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="965.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="965.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="965.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ApplyJSONToSchedule()</text>
</a>
</g>
</g>
<!-- Node5->Node10 -->
<g id="edge13" class="edge">
<title>Node5->Node10</title>
-<path fill="none" stroke="#191970" d="M727.7248,-640.4829C777.7358,-614.9692 841.5818,-575.8999 884.5,-526 913.2081,-492.6218 933.8539,-448.1328 947.7087,-410.1791"/>
-<polygon fill="none" stroke="#191970" points="725.9207,-637.4724 718.5558,-645.0887 729.0628,-643.7275 725.9207,-637.4724"/>
+<path fill="none" stroke="#191970" d="M773.9019,-644.9752C828.8337,-620.3731 901.2584,-580.5373 948.5,-526 982.8489,-486.3465 1003.8678,-429.9203 1015.6847,-388.1374"/>
+<polygon fill="none" stroke="#191970" points="772.2939,-641.8589 764.5522,-649.092 775.1147,-648.2654 772.2939,-641.8589"/>
</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\< tvm::runtime::Object \>\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator-\>()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="581.5,-833.5 581.5,-1011.5 721.5,-1011.5 721.5,-833.5 581.5,-833.5"/>
-<text text-anchor="start" x="589.5" y="-999.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="651.5" y="-988.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="#000000" points="581.5,-981.5 721.5,-981.5 "/>
-<text text-anchor="middle" x="651.5" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="581.5,-962.5 721.5,-962.5 "/>
-<text text-anchor="start" x="589.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="589.5" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="589.5" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="589.5" y="-851.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
-<text text-anchor="start" x="589.5" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<polygon fill="#ffffff" stroke="#000000" points="627.5,-833.5 627.5,-1011.5 767.5,-1011.5 767.5,-833.5 627.5,-833.5"/>
+<text text-anchor="start" x="635.5" y="-999.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="697.5" y="-988.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="#000000" points="627.5,-981.5 767.5,-981.5 "/>
+<text text-anchor="middle" x="697.5" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="627.5,-962.5 767.5,-962.5 "/>
+<text text-anchor="start" x="635.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="635.5" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="635.5" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="635.5" y="-851.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
+<text text-anchor="start" x="635.5" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge5" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M651.5,-833.3167C651.5,-821.8765 651.5,-810.0062 651.5,-798.1402"/>
-<polygon fill="none" stroke="#404040" points="651.5001,-797.7944 647.5,-791.7944 651.5,-785.7944 655.5,-791.7943 651.5001,-797.7944"/>
-<text text-anchor="middle" x="671" y="-807" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M697.5,-833.3167C697.5,-821.8765 697.5,-810.0062 697.5,-798.1402"/>
+<polygon fill="none" stroke="#404040" points="697.5001,-797.7944 693.5,-791.7944 697.5,-785.7944 701.5,-791.7943 697.5001,-797.7944"/>
+<text text-anchor="middle" x="717" y="-807" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
</g>
<!-- Node7->Node2 -->
<g id="edge6" class="edge">
<title>Node7->Node2</title>
-<path fill="none" stroke="#404040" d="M527.8415,-242.8467C535.6883,-201.76 546.1889,-152.5558 558.5,-109 559.1339,-106.7575 559.8079,-104.4804 560.5121,-102.1877"/>
-<polygon fill="none" stroke="#404040" points="560.5413,-102.0975 558.584,-95.1571 564.2378,-90.681 566.195,-97.6214 560.5413,-102.0975"/>
-<text text-anchor="middle" x="586" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +run_secs</text>
+<path fill="none" stroke="#404040" d="M548.8886,-237.3952C562.7919,-192.639 578.9284,-140.694 590.9036,-102.1446"/>
+<polygon fill="none" stroke="#404040" points="590.9194,-102.0936 588.8794,-95.177 594.4794,-90.6338 596.5193,-97.5504 590.9194,-102.0936"/>
+<text text-anchor="middle" x="614" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +run_secs</text>
</g>
<!-- Node8->Node2 -->
<g id="edge8" class="edge">
<title>Node8->Node2</title>
-<path fill="none" stroke="#404040" d="M641.7296,-237.4527C635.9535,-197.1947 627.0294,-150.1309 613.5,-109 612.7165,-106.618 611.8558,-104.2142 610.9352,-101.8071"/>
-<polygon fill="none" stroke="#404040" points="610.8749,-101.6623 604.873,-97.6651 606.2542,-90.5875 612.2562,-94.5847 610.8749,-101.6623"/>
-<text text-anchor="middle" x="643" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +args_info</text>
+<path fill="none" stroke="#404040" d="M681.9257,-237.3362C673.6327,-196.9505 661.726,-149.8215 645.5,-109 644.5235,-106.5434 643.4628,-104.0685 642.3378,-101.5944"/>
+<polygon fill="none" stroke="#404040" points="642.3343,-101.5873 636.1028,-97.9585 637.0558,-90.8106 643.2873,-94.4394 642.3343,-101.5873"/>
+<text text-anchor="middle" x="676" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +args_info</text>
</g>
<!-- Node9->Node2 -->
<g id="edge10" class="edge">
<title>Node9->Node2</title>
-<path fill="none" stroke="#404040" d="M791.1005,-275.818C779.0226,-234.2815 757.9342,-178.1911 724.5,-138 711.8943,-122.8468 696.1568,-109.313 679.7734,-97.5828"/>
-<polygon fill="none" stroke="#404040" points="679.3935,-97.3212 672.1832,-97.2116 669.5111,-90.5138 676.7214,-90.6234 679.3935,-97.3212"/>
-<text text-anchor="middle" x="723" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +trace</text>
+<path fill="none" stroke="#404040" d="M857.3287,-242.6305C846.3623,-206.7106 829.1541,-167.0223 802.5,-138 781.1269,-114.728 752.6662,-96.7307 724.1455,-83.0651"/>
+<polygon fill="none" stroke="#404040" points="724.1265,-83.0564 717.0035,-84.1804 713.2263,-78.0377 720.3493,-76.9136 724.1265,-83.0564"/>
+<text text-anchor="middle" x="801" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +target</text>
</g>
<!-- Node10->Node2 -->
<g id="edge12" class="edge">
<title>Node10->Node2</title>
-<path fill="none" stroke="#404040" d="M952.4489,-253.6496C939.5992,-214.0057 918.421,-168.0471 884.5,-138 856.2249,-112.954 771.0658,-88.1561 698.2031,-70.55"/>
-<polygon fill="none" stroke="#404040" points="697.8331,-70.4619 691.0688,-72.9606 686.1606,-67.6777 692.9249,-65.1789 697.8331,-70.4619"/>
-<text text-anchor="middle" x="872" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +target</text>
+<path fill="none" stroke="#404040" d="M1019.1876,-275.7028C1009.0847,-232.1293 988.6691,-173.4198 948.5,-138 915.0856,-108.5362 809.6363,-82.657 724.9357,-65.8208"/>
+<polygon fill="none" stroke="#404040" points="724.9071,-65.8153 718.2494,-68.5857 713.1314,-63.5057 719.7891,-60.7353 724.9071,-65.8153"/>
+<text text-anchor="middle" x="937" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +trace</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__inherit__graph.svg
index 911dd2459..701f2456f 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TuningRecordNode__inherit__graph.svg
@@ -17,8 +17,8 @@
<text text-anchor="middle" x="104.5" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningRecordNode</text>
<polyline fill="none" stroke="#000000" points="0,-115.5 209,-115.5 "/>
<text text-anchor="start" x="8" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ trace</text>
-<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ run_secs</text>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ workload</text>
+<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ workload</text>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ run_secs</text>
<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ target</text>
<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ args_info</text>
<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
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 4d7054192..97e14bee9 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 <<a class="el" href="object_8h_source.html">object.h</a>></code></p>
-<p>Inherited by <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< Range ></a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< Region ></a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< tvm::arith::IterSplitExpr ></a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< tvm::arith::IterSumExpr ></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< Range ></a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< Region ></a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< tvm::arith::IterSplitExpr ></a>, <a class="el" href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array< tvm::arith::IterSumExpr ></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 6b99e0433..b15f12c76 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"/>
-<!-- Node396 -->
+<!-- Node397 -->
<g id="node1" class="node">
-<title>Node396</title>
+<title>Node397</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>
-<!-- Node397 -->
+<!-- Node398 -->
<g id="node2" class="node">
-<title>Node397</title>
+<title>Node398</title>
<g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\< tvm::runtime::Object \>\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator-\>()\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>
-<!-- Node397->Node396 -->
+<!-- Node398->Node397 -->
<g id="edge1" class="edge">
-<title>Node397->Node396</title>
+<title>Node398->Node397</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/database_8h_source.html b/docs/reference/api/doxygen/database_8h_source.html
index 494f5f5ef..bc66872b3 100644
--- a/docs/reference/api/doxygen/database_8h_source.html
+++ b/docs/reference/api/doxygen/database_8h_source.html
@@ -66,59 +66,59 @@ $(function() {
<div class="title">database.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="database_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or more co [...]
+<a href="database_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or more co [...]
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_a93d2f3debadefcc713bbc045127ca8f7"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#a93d2f3debadefcc713bbc045127ca8f7">tvm::meta_schedule::WorkloadNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(WorkloadNode, runtime::Object)</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a7d7d50ae9b6c43e064b38db91bc8123d"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a7d7d50ae9b6c43e064b38db91bc8123d">tvm::meta_schedule::PyDatabaseNode::f_commit_tuning_record</a></div><div class="ttdeci">FCommitTuningRecord f_commit_tuning_record</div><div class="ttdoc">The packed function to the CommitTuningRecord function. </div><div class="ttdef"><b>Definition:</b> database.h:237</d [...]
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a7d7d50ae9b6c43e064b38db91bc8123d"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a7d7d50ae9b6c43e064b38db91bc8123d">tvm::meta_schedule::PyDatabaseNode::f_commit_tuning_record</a></div><div class="ttdeci">FCommitTuningRecord f_commit_tuning_record</div><div class="ttdoc">The packed function to the CommitTuningRecord function. </div><div class="ttdef"><b>Definition:</b> database.h:238</d [...]
<div class="ttc" id="trace_8h_html"><div class="ttname"><a href="trace_8h.html">trace.h</a></div></div>
<div class="ttc" id="object_8h_html_a98fa3013ab23958a9f05200330e35805"><div class="ttname"><a href="object_8h.html#a98fa3013ab23958a9f05200330e35805">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:758</div></div>
<div class="ttc" id="structtvm_1_1meta__schedule_1_1WorkloadHash_html"><div class="ttname"><a href="structtvm_1_1meta__schedule_1_1WorkloadHash.html">tvm::meta_schedule::WorkloadHash</a></div><div class="ttdoc">The hash method for Workload. </div><div class="ttdef"><b>Definition:</b> database.h:90</div></div>
<div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Runtime String container types. </div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html_abd204834fbe398290cdd419e26851b6a"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#abd204834fbe398290cdd419e26851b6a">tvm::meta_schedule::TuningRecordNode::args_info</a></div><div class="ttdeci">Array< ArgInfo > args_info</div><div class="ttdoc">The argument information. </div><div class="ttdef"><b>Definition:</b> database.h:113</div></div>
<div class="ttc" id="ir_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM. </div></div>
<div class="ttc" id="ir_2module_8h_html"><div class="ttname"><a href="ir_2module_8h.html">module.h</a></div><div class="ttdoc">IRModule that holds the functions and type definitions. </div></div>
<div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">runtime implementation for LibTorch/TorchScript. </div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html_a45a380cfa2edfd63056fb1a00f9aac35"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a45a380cfa2edfd63056fb1a00f9aac35">tvm::meta_schedule::TuningRecordNode::target</a></div><div class="ttdeci">Optional< Target > target</div><div class="ttdoc">The target for tuning. </div><div class="ttdef"><b>Definition:</b> database.h:111</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_aad19a5cb8e2c623e355ca5e2a98c4c18"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#aad19a5cb8e2c623e355ca5e2a98c4c18">tvm::meta_schedule::WorkloadNode::THashCode</a></div><div class="ttdeci">size_t THashCode</div><div class="ttdoc">The type of structural hash. </div><div class="ttdef"><b>Definition:</b> database.h:40</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1DatabaseNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">tvm::meta_schedule::DatabaseNode</a></div><div class="ttdef"><b>Definition:</b> database.h:161</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a52fb1116090619e95fb6b28352308eed"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a52fb1116090619e95fb6b28352308eed">tvm::meta_schedule::PyDatabaseNode::f_get_top_k</a></div><div class="ttdeci">FGetTopK f_get_top_k</div><div class="ttdoc">The packed function to the GetTopK function. </div><div class="ttdef"><b>Definition:</b> database.h:239</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1DatabaseNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">tvm::meta_schedule::DatabaseNode</a></div><div class="ttdef"><b>Definition:</b> database.h:162</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a52fb1116090619e95fb6b28352308eed"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a52fb1116090619e95fb6b28352308eed">tvm::meta_schedule::PyDatabaseNode::f_get_top_k</a></div><div class="ttdeci">FGetTopK f_get_top_k</div><div class="ttdoc">The packed function to the GetTopK function. </div><div class="ttdef"><b>Definition:</b> database.h:240</div></div>
<div class="ttc" id="structtvm_1_1meta__schedule_1_1WorkloadHash_html_a7cb09ddc6c76d9d00ddbeab8502d97cb"><div class="ttname"><a href="structtvm_1_1meta__schedule_1_1WorkloadHash.html#a7cb09ddc6c76d9d00ddbeab8502d97cb">tvm::meta_schedule::WorkloadHash::operator()</a></div><div class="ttdeci">size_t operator()(const Workload &a) const</div><div class="ttdef"><b>Definition:</b> database.h:91</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="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html">tvm::meta_schedule::PyDatabaseNode</a></div><div class="ttdoc">The database with customized methods on the python-side. </div><div class="ttdef"><b>Definition:</b> database.h:200</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html">tvm::meta_schedule::PyDatabaseNode</a></div><div class="ttdoc">The database with customized methods on the python-side. </div><div class="ttdef"><b>Definition:</b> database.h:201</div></div>
<div class="ttc" id="classtvm_1_1StructuralEqual_html"><div class="ttname"><a href="classtvm_1_1StructuralEqual.html">tvm::StructuralEqual</a></div><div class="ttdoc">Content-aware structural equality comparator for objects. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:81</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html_a8cc2d64f796593a1a774eef259f17b29"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a8cc2d64f796593a1a774eef259f17b29">tvm::meta_schedule::TuningRecordNode::trace</a></div><div class="ttdeci">tir::Trace trace</div><div class="ttdoc">The trace tuned. </div><div class="ttdef"><b>Definition:</b> database.h:105</div></div>
<div class="ttc" id="arg__info_8h_html"><div class="ttname"><a href="arg__info_8h.html">arg_info.h</a></div></div>
<div class="ttc" id="array_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div><div class="ttdoc">Runtime Array container types. </div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_ac7ae1a05fe5c7858f5860133a82bc7b7"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#ac7ae1a05fe5c7858f5860133a82bc7b7">tvm::meta_schedule::PyDatabaseNode::f_size</a></div><div class="ttdeci">FSize f_size</div><div class="ttdoc">The packed function to the Size function. </div><div class="ttdef"><b>Definition:</b> database.h:241</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_ac7ae1a05fe5c7858f5860133a82bc7b7"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#ac7ae1a05fe5c7858f5860133a82bc7b7">tvm::meta_schedule::PyDatabaseNode::f_size</a></div><div class="ttdeci">FSize f_size</div><div class="ttdoc">The packed function to the Size function. </div><div class="ttdef"><b>Definition:</b> database.h:242</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_1TuningRecordNode_html_a09f1921d607d7ef4397876c15d2f0b08"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a09f1921d607d7ef4397876c15d2f0b08">tvm::meta_schedule::TuningRecordNode::args_info</a></div><div class="ttdeci">Optional< Array< ArgInfo > > args_info</div><div class="ttdoc">The argument information. </div><div class="ttdef"><b>Definition:</b> database.h:113</div></div>
<div class="ttc" id="structtvm_1_1meta__schedule_1_1WorkloadEqual_html_aa29256c62e52bef8c9a0f7881d3fc601"><div class="ttname"><a href="structtvm_1_1meta__schedule_1_1WorkloadEqual.html#aa29256c62e52bef8c9a0f7881d3fc601">tvm::meta_schedule::WorkloadEqual::operator()</a></div><div class="ttdeci">bool operator()(const Workload &a, const Workload &b) const</div><div class="ttdef"><b>Definition:</b> database.h:96</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1Database_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Database.html">tvm::meta_schedule::Database</a></div><div class="ttdoc">Managed reference to DatabaseNode. </div><div class="ttdef"><b>Definition:</b> database.h:288</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1Database_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Database.html">tvm::meta_schedule::Database</a></div><div class="ttdoc">Managed reference to DatabaseNode. </div><div class="ttdef"><b>Definition:</b> database.h:289</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1Array_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array</a></div><div class="ttdoc">Array, container representing a contiguous sequence of ObjectRefs. </div><div class="ttdef"><b>Definition:</b> array.h:270</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a38195f2c3aea9ae4890477393ab2c624"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a38195f2c3aea9ae4890477393ab2c624">tvm::meta_schedule::PyDatabaseNode::HasWorkload</a></div><div class="ttdeci">bool HasWorkload(const IRModule &mod) final</div><div class="ttdoc">Check if the database has the given workload. </div><div class="ttdef"><b>Definition:</b> database.h:254</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a38195f2c3aea9ae4890477393ab2c624"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a38195f2c3aea9ae4890477393ab2c624">tvm::meta_schedule::PyDatabaseNode::HasWorkload</a></div><div class="ttdeci">bool HasWorkload(const IRModule &mod) final</div><div class="ttdoc">Check if the database has the given workload. </div><div class="ttdef"><b>Definition:</b> database.h:255</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_a3929f2761c168c25de6be2247b913911"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#a3929f2761c168c25de6be2247b913911">tvm::meta_schedule::WorkloadNode::mod</a></div><div class="ttdeci">IRModule mod</div><div class="ttdoc">The workload&#39;s IRModule. </div><div class="ttdef"><b>Definition:</b> database.h:42</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html_a00aeeedbe4d1d6008224d98c62739581"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a00aeeedbe4d1d6008224d98c62739581">tvm::meta_schedule::TuningRecordNode::run_secs</a></div><div class="ttdeci">Optional< Array< FloatImm > > run_secs</div><div class="ttdoc">The profiling result in seconds. </div><div class="ttdef"><b>Definition:</b> database.h:109</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1String_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1String.html">tvm::runtime::String</a></div><div class="ttdoc">Reference to string objects. </div><div class="ttdef"><b>Definition:</b> string.h:129</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1TypedPackedFunc_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1TypedPackedFunc.html">tvm::runtime::TypedPackedFunc< bool(const IRModule &)></a></div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a36817d04978253571fef7d01427ce9c0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a36817d04978253571fef7d01427ce9c0">tvm::meta_schedule::PyDatabaseNode::Size</a></div><div class="ttdeci">int64_t Size() final</div><div class="ttdoc">Get the size of the database. </div><div class="ttdef"><b>Definition:</b> database.h:275</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a36817d04978253571fef7d01427ce9c0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a36817d04978253571fef7d01427ce9c0">tvm::meta_schedule::PyDatabaseNode::Size</a></div><div class="ttdeci">int64_t Size() final</div><div class="ttdoc">Get the size of the database. </div><div class="ttdef"><b>Definition:</b> database.h:276</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_ab533ae06bb310ffbd8acb954e253b7db"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#ab533ae06bb310ffbd8acb954e253b7db">tvm::meta_schedule::WorkloadNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> database.h:46</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html_ab9cbbf8eb7941995e9c7552948eac02b"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#ab9cbbf8eb7941995e9c7552948eac02b">tvm::meta_schedule::TuningRecordNode::target</a></div><div class="ttdeci">Target target</div><div class="ttdoc">The target for tuning. </div><div class="ttdef"><b>Definition:</b> database.h:111</div></div>
-<div class="ttc" id="classtvm_1_1Target_html"><div class="ttname"><a href="classtvm_1_1Target.html">tvm::Target</a></div><div class="ttdoc">Managed reference class to TargetNode. </div><div class="ttdef"><b>Definition:</b> target.h:141</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference. </div><div class="ttdef"><b>Definition:</b> object.h:511</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html">tvm::meta_schedule::TuningRecordNode</a></div><div class="ttdoc">The class of tuning records. </div><div class="ttdef"><b>Definition:</b> database.h:102</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_ad6ac6e9052f30846d72489ced86a7690"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#ad6ac6e9052f30846d72489ced86a7690">tvm::meta_schedule::WorkloadNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> database.h:51</div></div>
<div class="ttc" id="object_8h_html"><div class="ttname"><a href="object_8h.html">object.h</a></div><div class="ttdoc">A managed object in the TVM runtime. </div></div>
<div class="ttc" id="classtvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode. </div><div class="ttdef"><b>Definition:</b> module.h:360</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_aa0ee452b287813b9509e649397846a3c"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#aa0ee452b287813b9509e649397846a3c">tvm::meta_schedule::WorkloadNode::AsJSON</a></div><div class="ttdeci">ObjectRef AsJSON() const</div><div class="ttdoc">Export the workload to a JSON string. </div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_add146bf1e2006f72ed1534b2004bcb06"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#add146bf1e2006f72ed1534b2004bcb06">tvm::meta_schedule::PyDatabaseNode::f_has_workload</a></div><div class="ttdeci">FHasWorkload f_has_workload</div><div class="ttdoc">The packed function to the HasWorkload function. </div><div class="ttdef"><b>Definition:</b> database.h:233</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a00614b22bd1cae147dc0d83cdd071187"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a00614b22bd1cae147dc0d83cdd071187">tvm::meta_schedule::PyDatabaseNode::CommitTuningRecord</a></div><div class="ttdeci">void CommitTuningRecord(const TuningRecord &record) final</div><div class="ttdoc">Add a tuning record to the database. </div><div class="ttdef"><b>Definition:</b> database.h:264</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_aa0bd64983cde2fc6ef1547448352981c"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#aa0bd64983cde2fc6ef1547448352981c">tvm::meta_schedule::PyDatabaseNode::f_commit_workload</a></div><div class="ttdeci">FCommitWorkload f_commit_workload</div><div class="ttdoc">The packed function to the CommitWorkload function. </div><div class="ttdef"><b>Definition:</b> database.h:235</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_add146bf1e2006f72ed1534b2004bcb06"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#add146bf1e2006f72ed1534b2004bcb06">tvm::meta_schedule::PyDatabaseNode::f_has_workload</a></div><div class="ttdeci">FHasWorkload f_has_workload</div><div class="ttdoc">The packed function to the HasWorkload function. </div><div class="ttdef"><b>Definition:</b> database.h:234</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a00614b22bd1cae147dc0d83cdd071187"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a00614b22bd1cae147dc0d83cdd071187">tvm::meta_schedule::PyDatabaseNode::CommitTuningRecord</a></div><div class="ttdeci">void CommitTuningRecord(const TuningRecord &record) final</div><div class="ttdoc">Add a tuning record to the database. </div><div class="ttdef"><b>Definition:</b> database.h:265</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_aa0bd64983cde2fc6ef1547448352981c"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#aa0bd64983cde2fc6ef1547448352981c">tvm::meta_schedule::PyDatabaseNode::f_commit_workload</a></div><div class="ttdeci">FCommitWorkload f_commit_workload</div><div class="ttdoc">The packed function to the CommitWorkload function. </div><div class="ttdef"><b>Definition:</b> database.h:236</div></div>
<div class="ttc" id="target_8h_html"><div class="ttname"><a href="target_8h.html">target.h</a></div><div class="ttdoc">Compilation target object. </div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a12d64aa44d3d2ab37a6600d17be3e708"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a12d64aa44d3d2ab37a6600d17be3e708">tvm::meta_schedule::PyDatabaseNode::CommitWorkload</a></div><div class="ttdeci">Workload CommitWorkload(const IRModule &mod) final</div><div class="ttdoc">Look up or add workload to the database if missing. </div><div class="ttdef"><b>Definition:</b> database.h:259</d [...]
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a12d64aa44d3d2ab37a6600d17be3e708"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a12d64aa44d3d2ab37a6600d17be3e708">tvm::meta_schedule::PyDatabaseNode::CommitWorkload</a></div><div class="ttdeci">Workload CommitWorkload(const IRModule &mod) final</div><div class="ttdoc">Look up or add workload to the database if missing. </div><div class="ttdef"><b>Definition:</b> database.h:260</d [...]
<div class="ttc" id="classtvm_1_1tir_1_1Trace_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Trace.html">tvm::tir::Trace</a></div><div class="ttdoc">Managed reference to TraceNode. </div><div class="ttdef"><b>Definition:</b> trace.h:141</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1WorkloadNode_html_a96812f1418c68d5aeb11331fd76aab1c"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1WorkloadNode.html#a96812f1418c68d5aeb11331fd76aab1c">tvm::meta_schedule::WorkloadNode::shash</a></div><div class="ttdeci">THashCode shash</div><div class="ttdoc">The workload&#39;s structural hash. </div><div class="ttdef"><b>Definition:</b> database.h:44</div></div>
+<div class="ttc" id="classtvm_1_1runtime_1_1Optional_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Optional.html">tvm::runtime::Optional</a></div><div class="ttdoc">Optional container that to represent to a Nullable variant of T. </div><div class="ttdef"><b>Definition:</b> optional.h:51</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1Workload_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Workload.html">tvm::meta_schedule::Workload</a></div><div class="ttdoc">Managed reference to WorkloadNode. </div><div class="ttdef"><b>Definition:</b> database.h:65</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_adebe3a6bfb55e5ce0807b97f12a6c39e"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#adebe3a6bfb55e5ce0807b97f12a6c39e">tvm::meta_schedule::PyDatabaseNode::GetTopK</a></div><div class="ttdeci">Array< TuningRecord > GetTopK(const Workload &workload, int top_k) final</div><div class="ttdoc">Get the top K tuning records of given workload from the database. </div><div class="ttdef">< [...]
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_adebe3a6bfb55e5ce0807b97f12a6c39e"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#adebe3a6bfb55e5ce0807b97f12a6c39e">tvm::meta_schedule::PyDatabaseNode::GetTopK</a></div><div class="ttdeci">Array< TuningRecord > GetTopK(const Workload &workload, int top_k) final</div><div class="ttdoc">Get the top K tuning records of given workload from the database. </div><div class="ttdef">< [...]
<div class="ttc" id="reflection_8h_html"><div class="ttname"><a href="reflection_8h.html">reflection.h</a></div><div class="ttdoc">Reflection and serialization of compiler IR/AST nodes. </div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a1a24b977e3d25a7ffab704e12457fb66"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a1a24b977e3d25a7ffab704e12457fb66">tvm::meta_schedule::PyDatabaseNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> database.h:243</div></div>
+<div class="ttc" id="classtvm_1_1meta__schedule_1_1PyDatabaseNode_html_a1a24b977e3d25a7ffab704e12457fb66"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a1a24b977e3d25a7ffab704e12457fb66">tvm::meta_schedule::PyDatabaseNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(tvm::AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> database.h:244</div></div>
<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecord_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecord.html">tvm::meta_schedule::TuningRecord</a></div><div class="ttdoc">The managed reference of TuningRecordNode. </div><div class="ttdef"><b>Definition:</b> database.h:138</div></div>
-<div class="ttc" id="classtvm_1_1meta__schedule_1_1TuningRecordNode_html_a5ee669c272da1447f3f666d9faf5e449"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a5ee669c272da1447f3f666d9faf5e449">tvm::meta_schedule::TuningRecordNode::run_secs</a></div><div class="ttdeci">Array< FloatImm > run_secs</div><div class="ttdoc">The profiling result in seconds. </div><div class="ttdef"><b>Definition:</b> database.h:107</div></div>
<div class="ttc" id="object_8h_html_ac2b7418e9549512b5db0126cf2a716f1"><div class="ttname"><a href="object_8h.html#ac2b7418e9549512b5db0126cf2a716f1">TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">#define TVM_DECLARE_BASE_OBJECT_INFO(TypeName, ParentType)</div><div class="ttdoc">helper macro to declare a base object type that can be inherited. </div><div class="ttdef"><b>Definition:</b> object.h:648</div></div>
<div class="ttc" id="object_8h_html_a782d0de62fbf75736e29c1e79c22c7f1"><div class="ttname"><a href="object_8h.html#a782d0de62fbf75736e29c1e79c22c7f1">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:728</div></div>
<div class="ttc" id="packed__func_8h_html"><div class="ttname"><a href="packed__func_8h.html">packed_func.h</a></div><div class="ttdoc">Type-erased function used across TVM API. </div></div>
diff --git a/docs/reference/api/doxygen/functions_a.html b/docs/reference/api/doxygen/functions_a.html
index f56b8c699..ea6e57558 100644
--- a/docs/reference/api/doxygen/functions_a.html
+++ b/docs/reference/api/doxygen/functions_a.html
@@ -355,7 +355,7 @@ $(function() {
<li>args_info
: <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html#a6891e92cac8712bb690401ed121ae7e8">tvm::meta_schedule::MeasureCandidateNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html#a85b26e2093d125aa38d8d658c4fe154b">tvm::meta_schedule::RunnerInputNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#abd204834fbe398290cdd419e26851b6a">tvm::meta_schedule::TuningRecordNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a09f1921d607d7ef4397876c15d2f0b08">tvm::meta_schedule::TuningRecordNode</a>
</li>
<li>arguments
: <a class="el" href="classtvm_1_1OpNode.html#af753e9ea21f09017bb61d5722b2ce181">tvm::OpNode</a>
diff --git a/docs/reference/api/doxygen/functions_func_t.html b/docs/reference/api/doxygen/functions_func_t.html
index 9e517e95a..af4bd3ccc 100644
--- a/docs/reference/api/doxygen/functions_func_t.html
+++ b/docs/reference/api/doxygen/functions_func_t.html
@@ -198,7 +198,7 @@ $(function() {
: <a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptions.html#ac869d3a3e888c77677b62d064fec0f6e">tvm::auto_scheduler::TuningOptions</a>
</li>
<li>TuningRecord()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#a8495d5cbf2d11eaca3a5c1f6a25e5ea7">tvm::meta_schedule::TuningRecord</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#aa4699af50f91bda306e6c199766c4757">tvm::meta_schedule::TuningRecord</a>
</li>
<li>Tuple()
: <a class="el" href="classtvm_1_1relay_1_1Tuple.html#a284e236318986fd385a02aa68bd3e938">tvm::relay::Tuple</a>
diff --git a/docs/reference/api/doxygen/functions_func_v.html b/docs/reference/api/doxygen/functions_func_v.html
index 43d073fda..5af06eef9 100644
--- a/docs/reference/api/doxygen/functions_func_v.html
+++ b/docs/reference/api/doxygen/functions_func_v.html
@@ -426,7 +426,7 @@ $(function() {
<li>VisitType_()
: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a9f728a703d68743e8b305acb68e5eb87">tvm::TypeFunctor< R(const Type &n, Args...)></a>
, <a class="el" href="classtvm_1_1TypeMutator.html#a89bd7a76f5a736defc7f3b0dda664761">tvm::TypeMutator</a>
-, <a class="el" href="classtvm_1_1TypeVisitor.html#a292b19b578526ea74b1434dc50514a18">tvm::TypeVisitor</a>
+, <a class="el" href="classtvm_1_1TypeVisitor.html#a11378b4db6f704c04a97bec1c8ea8261">tvm::TypeVisitor</a>
</li>
<li>VisitTypeDefault_()
: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a91553f9e04c39b3821a70ae4f7b0c597">tvm::TypeFunctor< R(const Type &n, Args...)></a>
diff --git a/docs/reference/api/doxygen/functions_r.html b/docs/reference/api/doxygen/functions_r.html
index 856ad158e..bdc644b0c 100644
--- a/docs/reference/api/doxygen/functions_r.html
+++ b/docs/reference/api/doxygen/functions_r.html
@@ -569,7 +569,7 @@ $(function() {
</li>
<li>run_secs
: <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html#a23d5a15c8d72c17c59ec4e7f2d3fabf3">tvm::meta_schedule::RunnerResultNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a5ee669c272da1447f3f666d9faf5e449">tvm::meta_schedule::TuningRecordNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a00aeeedbe4d1d6008224d98c62739581">tvm::meta_schedule::TuningRecordNode</a>
</li>
<li>RunAfterPass()
: <a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html#a49332b9ab696afefa427b676dbaba1b0">tvm::instrument::PassInstrumentNode</a>
diff --git a/docs/reference/api/doxygen/functions_t.html b/docs/reference/api/doxygen/functions_t.html
index c33f92b59..8e2b4b14e 100644
--- a/docs/reference/api/doxygen/functions_t.html
+++ b/docs/reference/api/doxygen/functions_t.html
@@ -74,7 +74,7 @@ $(function() {
, <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#afc001f3e427cfc8c05236b615cfd2868">tvm::meta_schedule::BuilderInputNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html#acd4fdc1e71a2368bc0c8cf213b04a4bd">tvm::meta_schedule::ExtractedTaskNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#ae2a4edfbc9e6246748fd0e10202cdb66">tvm::meta_schedule::TuneContextNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#ab9cbbf8eb7941995e9c7552948eac02b">tvm::meta_schedule::TuningRecordNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a45a380cfa2edfd63056fb1a00f9aac35">tvm::meta_schedule::TuningRecordNode</a>
, <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a46879dbe84105fb621a6167f8d73b223">tvm::runtime::vm::Instruction</a>
</li>
<li>Target()
@@ -364,7 +364,7 @@ $(function() {
: <a class="el" href="classtvm_1_1auto__scheduler_1_1TuningOptions.html#ac869d3a3e888c77677b62d064fec0f6e">tvm::auto_scheduler::TuningOptions</a>
</li>
<li>TuningRecord()
-: <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#a8495d5cbf2d11eaca3a5c1f6a25e5ea7">tvm::meta_schedule::TuningRecord</a>
+: <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecord.html#aa4699af50f91bda306e6c199766c4757">tvm::meta_schedule::TuningRecord</a>
</li>
<li>Tuple()
: <a class="el" href="classtvm_1_1relay_1_1Tuple.html#a284e236318986fd385a02aa68bd3e938">tvm::relay::Tuple</a>
diff --git a/docs/reference/api/doxygen/functions_v.html b/docs/reference/api/doxygen/functions_v.html
index 0590d5e1f..2d1c39247 100644
--- a/docs/reference/api/doxygen/functions_v.html
+++ b/docs/reference/api/doxygen/functions_v.html
@@ -154,7 +154,7 @@ $(function() {
, <a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html#acfa1269806fbf19e7badd424c19c64bf">tvm::relay::PatternVarNode</a>
</li>
<li>Var()
-: <a class="el" href="classtvm_1_1relay_1_1Var.html#a06ef8ae1d07a5b8a3c25ca7775d17762">tvm::relay::Var</a>
+: <a class="el" href="classtvm_1_1relay_1_1Var.html#a45372a62057ee9332a391e29845505ff">tvm::relay::Var</a>
</li>
<li>var
: <a class="el" href="classtvm_1_1tir_1_1IterVarNode.html#a09036ef2df09e7caf21e66dcb62675a6">tvm::tir::IterVarNode</a>
@@ -551,7 +551,7 @@ $(function() {
</li>
<li>VisitStmt_()
: <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8_01args_08_4.html#a5943b89b1ee4b775e84d71eb43055f48">tvm::tir::StmtFunctor< R(const Stmt &n, Args... args)></a>
-, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a3b116212aaf79bc898f3446a35f7fd3e">tvm::tir::StmtMutator</a>
+, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a7fefa4227a37b988b91141f746181394">tvm::tir::StmtMutator</a>
, <a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#afcb1a0ec03b7a7da4304c5b790b27210">tvm::tir::StmtVisitor</a>
</li>
<li>VisitStmtDefault_()
@@ -566,9 +566,9 @@ $(function() {
, <a class="el" href="classtvm_1_1TypeMutator.html#a84e824911927d98e20a338eab8b75a45">tvm::TypeMutator</a>
</li>
<li>VisitType_()
-: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#ae4061c0c04da5b6c889842506c2d5091">tvm::TypeFunctor< R(const Type &n, Args...)></a>
-, <a class="el" href="classtvm_1_1TypeMutator.html#ad4ad7209f8789568e5e57870f0b758f0">tvm::TypeMutator</a>
-, <a class="el" href="classtvm_1_1TypeVisitor.html#ac8845fbf58c1a1f0ebc23c7ee403aaab">tvm::TypeVisitor</a>
+: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a05485baebc1e25710714f65b68124f73">tvm::TypeFunctor< R(const Type &n, Args...)></a>
+, <a class="el" href="classtvm_1_1TypeMutator.html#a8171dc89a947d6224e83e86ce5d06d11">tvm::TypeMutator</a>
+, <a class="el" href="classtvm_1_1TypeVisitor.html#ae699be9a6ed94a635c315506e0c2a6d2">tvm::TypeVisitor</a>
</li>
<li>VisitTypeDefault_()
: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a91553f9e04c39b3821a70ae4f7b0c597">tvm::TypeFunctor< R(const Type &n, Args...)></a>
diff --git a/docs/reference/api/doxygen/functions_vars_a.html b/docs/reference/api/doxygen/functions_vars_a.html
index e7aeccee0..10c37cdce 100644
--- a/docs/reference/api/doxygen/functions_vars_a.html
+++ b/docs/reference/api/doxygen/functions_vars_a.html
@@ -165,7 +165,7 @@ $(function() {
<li>args_info
: <a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html#a6891e92cac8712bb690401ed121ae7e8">tvm::meta_schedule::MeasureCandidateNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerInputNode.html#a85b26e2093d125aa38d8d658c4fe154b">tvm::meta_schedule::RunnerInputNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#abd204834fbe398290cdd419e26851b6a">tvm::meta_schedule::TuningRecordNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a09f1921d607d7ef4397876c15d2f0b08">tvm::meta_schedule::TuningRecordNode</a>
</li>
<li>arguments
: <a class="el" href="classtvm_1_1OpNode.html#af753e9ea21f09017bb61d5722b2ce181">tvm::OpNode</a>
diff --git a/docs/reference/api/doxygen/functions_vars_r.html b/docs/reference/api/doxygen/functions_vars_r.html
index 4dcd191dc..0bd810faf 100644
--- a/docs/reference/api/doxygen/functions_vars_r.html
+++ b/docs/reference/api/doxygen/functions_vars_r.html
@@ -263,7 +263,7 @@ $(function() {
</li>
<li>run_secs
: <a class="el" href="classtvm_1_1meta__schedule_1_1RunnerResultNode.html#a23d5a15c8d72c17c59ec4e7f2d3fabf3">tvm::meta_schedule::RunnerResultNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a5ee669c272da1447f3f666d9faf5e449">tvm::meta_schedule::TuningRecordNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a00aeeedbe4d1d6008224d98c62739581">tvm::meta_schedule::TuningRecordNode</a>
</li>
<li>runner
: <a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html#a0f7a4a84637fd0309b52f61b65bee158">tvm::auto_scheduler::ProgramMeasurerNode</a>
diff --git a/docs/reference/api/doxygen/functions_vars_t.html b/docs/reference/api/doxygen/functions_vars_t.html
index 9bc1762c4..7cc653083 100644
--- a/docs/reference/api/doxygen/functions_vars_t.html
+++ b/docs/reference/api/doxygen/functions_vars_t.html
@@ -73,7 +73,7 @@ $(function() {
, <a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#afc001f3e427cfc8c05236b615cfd2868">tvm::meta_schedule::BuilderInputNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html#acd4fdc1e71a2368bc0c8cf213b04a4bd">tvm::meta_schedule::ExtractedTaskNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1TuneContextNode.html#ae2a4edfbc9e6246748fd0e10202cdb66">tvm::meta_schedule::TuneContextNode</a>
-, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#ab9cbbf8eb7941995e9c7552948eac02b">tvm::meta_schedule::TuningRecordNode</a>
+, <a class="el" href="classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a45a380cfa2edfd63056fb1a00f9aac35">tvm::meta_schedule::TuningRecordNode</a>
, <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a46879dbe84105fb621a6167f8d73b223">tvm::runtime::vm::Instruction</a>
, <a class="el" href="classtvm_1_1VirtualDeviceNode.html#a8b2d427d9e21886ccaeaae5e9cc55aaf">tvm::VirtualDeviceNode</a>
</li>
diff --git a/docs/reference/api/doxygen/hierarchy.html b/docs/reference/api/doxygen/hierarchy.html
index 96e5dc8e8..70caffbb6 100644
--- a/docs/reference/api/doxygen/hierarchy.html
+++ b/docs/reference/api/doxygen/hierarchy.html
@@ -902,317 +902,318 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_107_81_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< tvm::runtime::Array< tvm::auto_scheduler::MeasureCallback > ></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;"> </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< tvm::runtime::Array< tvm::FloatImm > ></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;"> </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< tvm::runtime::Array< tvm::Integer > ></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;"> </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< tvm::runtime::Array< tvm::meta_schedule::BuilderResult > ></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;"> </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< tvm::runtime::Array< tvm::meta_schedule::MeasureCandidate > ></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;"> </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< tvm::runtime::Array< tvm::meta_schedule::RunnerFuture > ></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;"> </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< tvm::runtime::Map< tvm::runtime::String, tvm::runtime::NDArray > ></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;"> </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< tvm::runtime::NDArray ></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;"> </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< tvm::runtime::ObjectRef ></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;"> </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< tvm::runtime::String ></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;"> </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< tvm::Target ></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;"> </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< tvm::tir::IterVar ></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;"> </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< tvm::tir::Stmt ></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;"> </span><span id="arr_107_94_" class="arrow" onclick="toggleFolder('107_94_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_104_" class="arrow" onclick="toggleFolder('107_104_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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'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;"> </span><span id="arr_107_109_" class="arrow" onclick="toggleFolder('107_109_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_112_" class="arrow" onclick="toggleFolder('107_112_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_115_" class="arrow" onclick="toggleFolder('107_115_')">►</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;"> </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;"> </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;"> </span><span id="arr_107_117_" class="arrow" onclick="toggleFolder('107_117_')">►</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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_119_" class="arrow" onclick="toggleFolder('107_119_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_124_" class="arrow" onclick="toggleFolder('107_124_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_126_" class="arrow" onclick="toggleFolder('107_126_')">►</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;"> </span><span id="arr_107_126_0_" class="arrow" onclick="toggleFolder('107_126_0_')">►</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;"> </span><span id="arr_107_126_0_0_" class="arrow" onclick="toggleFolder('107_126_0_0_')">►</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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_126_0_2_" class="arrow" onclick="toggleFolder('107_126_0_2_')">►</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;"> </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;"> </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;"> </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;"> </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 && 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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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 >= 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;"> </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 > 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;"> </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 <= 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;"> </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;"> </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;"> </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 < 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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_126_0_34_" class="arrow" onclick="toggleFolder('107_126_0_34_')">►</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;"> </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;"> </span><span id="arr_107_126_1_" class="arrow" onclick="toggleFolder('107_126_1_')">►</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;"> </span><span id="arr_107_126_1_0_" class="arrow" onclick="toggleFolder('107_126_1_0_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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'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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_137_" class="arrow" onclick="toggleFolder('107_137_')">►</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;"> </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;"> </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;"> </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'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;"> </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'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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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's output. ">Runne [...]
-<tr id="row_107_151_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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'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;"> </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'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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_166_" class="arrow" onclick="toggleFolder('107_166_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_173_" class="arrow" onclick="toggleFolder('107_173_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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< T, typename ></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;"> </span><span id="arr_107_179_" class="arrow" onclick="toggleFolder('107_179_')">►</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;"> </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;"> </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;"> </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< K, V, typename, typename ></a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Map.html" title="Map container of NodeRef->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;"> </span><span id="arr_107_181_" class="arrow" onclick="toggleFolder('107_181_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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< T ></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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_199_" class="arrow" onclick="toggleFolder('107_199_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_200_" class="arrow" onclick="toggleFolder('107_200_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_212_" class="arrow" onclick="toggleFolder('107_212_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_223_" class="arrow" onclick="toggleFolder('107_223_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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 "sref". ">Stmt [...]
-<tr id="row_107_225_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_231_" class="arrow" onclick="toggleFolder('107_231_')">►</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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_234_" class="arrow" onclick="toggleFolder('107_234_')">►</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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </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;"> </span><span id="arr_107_234_10_" class="arrow" onclick="toggleFolder('107_234_10_')">►</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;"> </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;"> </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;"> </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;"> </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< R(Args...)></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;"> </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;"> </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;"> </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_84_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< tvm::runtime::Array< tvm::meta_schedule::ArgInfo > ></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;"> </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< tvm::runtime::Array< tvm::meta_schedule::BuilderResult > ></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;"> </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< tvm::runtime::Array< tvm::meta_schedule::MeasureCandidate > ></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;"> </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< tvm::runtime::Array< tvm::meta_schedule::RunnerFuture > ></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;"> </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< tvm::runtime::Map< tvm::runtime::String, tvm::runtime::NDArray > ></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;"> </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< tvm::runtime::NDArray ></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;"> </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< tvm::runtime::ObjectRef ></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;"> </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< tvm::runtime::String ></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;"> </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< tvm::Target ></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;"> </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< tvm::tir::IterVar ></a></td><td class="desc"></td></tr>
+<tr id="row_107_94_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< tvm::tir::Stmt ></a></td><td class="desc"></td></tr>
+<tr id="row_107_95_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_95_" class="arrow" onclick="toggleFolder('107_95_')">►</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_95_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_95_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_96_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_97_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_98_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_99_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_100_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_101_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_102_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_103_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_104_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_105_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_105_" class="arrow" onclick="toggleFolder('107_105_')">►</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_105_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_106_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_107_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_108_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_109_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's computational graph and related progra [...]
+<tr id="row_107_110_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_110_" class="arrow" onclick="toggleFolder('107_110_')">►</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_110_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_110_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_111_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_112_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_113_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_113_" class="arrow" onclick="toggleFolder('107_113_')">►</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_113_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_113_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_114_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_115_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_116_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_116_" class="arrow" onclick="toggleFolder('107_116_')">►</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_116_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_117_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_118_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_118_" class="arrow" onclick="toggleFolder('107_118_')">►</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_118_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_118_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_119_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_120_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_120_" class="arrow" onclick="toggleFolder('107_120_')">►</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_120_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_121_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_122_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_123_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_124_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_125_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_125_" class="arrow" onclick="toggleFolder('107_125_')">►</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_125_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_125_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_126_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_127_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_127_" class="arrow" onclick="toggleFolder('107_127_')">►</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_127_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_107_127_0_" class="arrow" onclick="toggleFolder('107_127_0_')">►</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_127_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_107_127_0_0_" class="arrow" onclick="toggleFolder('107_127_0_0_')">►</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_127_0_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_0_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_107_127_0_2_" class="arrow" onclick="toggleFolder('107_127_0_2_')">►</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_127_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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 && b ">AndNode</a> </td></tr>
+<tr id="row_107_127_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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 >= b ">GENode</a> </td></tr>
+<tr id="row_107_127_0_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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 > b ">GTNode</a> </td></tr>
+<tr id="row_107_127_0_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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 <= b ">LENode</a> </td></tr>
+<tr id="row_107_127_0_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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 < b ">LTNode</a> </td></tr>
+<tr id="row_107_127_0_20_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_21_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_22_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_23_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_24_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_25_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_26_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_27_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_28_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_29_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_30_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_31_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_32_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_33_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_0_34_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_107_127_0_34_" class="arrow" onclick="toggleFolder('107_127_0_34_')">►</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_127_0_34_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_107_127_1_" class="arrow" onclick="toggleFolder('107_127_1_')">►</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_127_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_107_127_1_0_" class="arrow" onclick="toggleFolder('107_127_1_0_')">►</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_127_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_1_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </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_127_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_127_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_128_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_129_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_130_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_131_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_132_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's global environment. ">EnvFuncNode</a> </td></tr>
+<tr id="row_107_133_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_134_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_135_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_136_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_137_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_138_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_138_" class="arrow" onclick="toggleFolder('107_138_')">►</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_138_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_139_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_140_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's input, containing an IRModule and the targ [...]
+<tr id="row_107_141_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's output, containing the artifact path or [...]
+<tr id="row_107_142_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_143_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_144_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_145_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_146_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_147_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_148_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_149_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_150_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_151_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's output. ">Runne [...]
+<tr id="row_107_152_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's input containing path of artifact, type of device [...]
+<tr id="row_107_153_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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's output containing measurement result of Measure [...]
+<tr id="row_107_154_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_155_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_156_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_157_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_158_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_159_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_160_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_161_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_162_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_163_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_164_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_165_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_166_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_167_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_167_" class="arrow" onclick="toggleFolder('107_167_')">►</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_167_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_167_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_168_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_169_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_170_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_171_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_172_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_173_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_174_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_174_" class="arrow" onclick="toggleFolder('107_174_')">►</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_174_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_174_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_174_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_174_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_175_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_176_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_177_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_178_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_179_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< T, typename ></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_180_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_180_" class="arrow" onclick="toggleFolder('107_180_')">►</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_180_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_180_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_181_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< K, V, typename, typename ></a></td><td class="desc"><a class="el" href="classtvm_1_1runtime_1_1Map.html" title="Map container of NodeRef->NodeRef in DSL graph. Map implements copy on write semantics, which m [...]
+<tr id="row_107_182_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_182_" class="arrow" onclick="toggleFolder('107_182_')">►</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_182_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_182_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_182_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_183_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_184_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_185_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< T ></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_186_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_187_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_188_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_189_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_190_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_191_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_192_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_193_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_194_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_195_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_196_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_197_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_198_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_199_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_200_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_200_" class="arrow" onclick="toggleFolder('107_200_')">►</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_200_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_200_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_200_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_200_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_200_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_201_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_201_" class="arrow" onclick="toggleFolder('107_201_')">►</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_201_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_201_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_201_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_201_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_201_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_201_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_202_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_203_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_204_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_205_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_206_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_207_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_208_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_209_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_210_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_211_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_212_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_213_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_213_" class="arrow" onclick="toggleFolder('107_213_')">►</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_213_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_214_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_215_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_216_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_217_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_218_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_219_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_220_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_221_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_222_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_223_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_224_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_224_" class="arrow" onclick="toggleFolder('107_224_')">►</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_224_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_13_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_14_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_15_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_16_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_224_17_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_225_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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 "sref". ">Stmt [...]
+<tr id="row_107_226_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_227_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_228_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_229_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_230_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_231_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_232_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_232_" class="arrow" onclick="toggleFolder('107_232_')">►</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_232_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_233_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_234_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_235_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_107_235_" class="arrow" onclick="toggleFolder('107_235_')">►</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_235_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_6_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_7_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_8_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_9_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_107_235_10_" class="arrow" onclick="toggleFolder('107_235_10_')">►</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_235_10_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </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_235_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_235_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </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_236_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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< R(Args...)></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_237_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_238_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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_239_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </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;"> </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< T ></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;"> </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< Array< T > ></a></td><td class="desc"></td></tr>
<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </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< Map< K, V > ></a></td><td class="desc"></td></tr>
@@ -1268,8 +1269,8 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_153_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1detail_1_1is__specialized_3_01Container_3_01Args_8_8_8_01_4_00_01Container_01_4.html" target="_self">tvm::detail::is_specialized< Container< Args... >, Container ></a></td><td class="desc"></td></tr>
<tr id="row_154_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm__workspace__t.html" target="_self">tvm_workspace_t</a></td><td class="desc"></td></tr>
<tr id="row_155_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMAotExecutor.html" target="_self">TVMAotExecutor</a></td><td class="desc"></td></tr>
-<tr id="row_156_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html" target="_self">tvm::runtime::TVMArgs</a></td><td class="desc">Arguments into TVM functions </td></tr>
-<tr id="row_157_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMArgs.html" target="_self">TVMArgs</a></td><td class="desc"></td></tr>
+<tr id="row_156_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMArgs.html" target="_self">TVMArgs</a></td><td class="desc"></td></tr>
+<tr id="row_157_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgs.html" target="_self">tvm::runtime::TVMArgs</a></td><td class="desc">Arguments into TVM functions </td></tr>
<tr id="row_158_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1TVMArgsSetter.html" target="_self">tvm::runtime::TVMArgsSetter</a></td><td class="desc"></td></tr>
<tr id="row_159_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMByteArray.html" target="_self">TVMByteArray</a></td><td class="desc">Byte array type used to pass in byte array When kTVMBytes is used as data type </td></tr>
<tr id="row_160_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structTVMFuncRegistry.html" target="_self">TVMFuncRegistry</a></td><td class="desc">A data structure that facilitates function lookup by C-string name </td></tr>
diff --git a/docs/reference/api/doxygen/inherit_graph_10.svg b/docs/reference/api/doxygen/inherit_graph_10.svg
index 6c2153917..bae2058ce 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"/>
-<!-- Node1217 -->
+<!-- Node1218 -->
<g id="node1" class="node">
-<title>Node1217</title>
+<title>Node1218</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>
-<!-- Node1217->Node0 -->
+<!-- Node1218->Node0 -->
<g id="edge1" class="edge">
-<title>Node1217->Node0</title>
+<title>Node1218->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>
-<!-- Node1219 -->
+<!-- Node1220 -->
<g id="node3" class="node">
-<title>Node1219</title>
+<title>Node1220</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>
-<!-- Node1217->Node1219 -->
+<!-- Node1218->Node1220 -->
<g id="edge2" class="edge">
-<title>Node1217->Node1219</title>
+<title>Node1218->Node1220</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 c9fb8f120..08c74a04f 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"/>
-<!-- Node1227 -->
+<!-- Node1228 -->
<g id="node1" class="node">
-<title>Node1227</title>
+<title>Node1228</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>
-<!-- Node1227->Node504 -->
+<!-- Node1228->Node504 -->
<g id="edge1" class="edge">
-<title>Node1227->Node504</title>
+<title>Node1228->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>
-<!-- Node1174 -->
+<!-- Node1175 -->
<g id="node3" class="node">
-<title>Node1174</title>
+<title>Node1175</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>
-<!-- Node1174->Node496 -->
+<!-- Node1175->Node496 -->
<g id="edge2" class="edge">
-<title>Node1174->Node496</title>
+<title>Node1175->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>
-<!-- Node1173 -->
+<!-- Node1174 -->
<g id="node5" class="node">
-<title>Node1173</title>
+<title>Node1174</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_top" xlink:title="tvm::runtime::InplaceArray\lBase\< ADTObj, ObjectRef \>">
<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>
-<!-- Node1173->Node489 -->
+<!-- Node1174->Node489 -->
<g id="edge3" class="edge">
-<title>Node1173->Node489</title>
+<title>Node1174->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>
-<!-- Node1172 -->
+<!-- Node1173 -->
<g id="node7" class="node">
-<title>Node1172</title>
+<title>Node1173</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1InplaceArrayBase.html" target="_top" xlink:title="tvm::runtime::InplaceArray\lBase\< ArrayNode, ObjectRef \>">
<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>
-<!-- Node1172->Node490 -->
+<!-- Node1173->Node490 -->
<g id="edge4" class="edge">
-<title>Node1172->Node490</title>
+<title>Node1173->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 4324d4dec..b03248afe 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="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)">
+<svg width="971pt" height="11476pt"
+ viewBox="0.00 0.00 971.00 11475.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 11471.5)">
<title>Graphical Class Hierarchy</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11411.5 967,-11411.5 967,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-11471.5 967,-11471.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,-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>
+<polygon fill="#ffffff" stroke="#000000" points="0,-5180.5 0,-5199.5 134,-5199.5 134,-5180.5 0,-5180.5"/>
+<text text-anchor="middle" x="67" y="-5187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
</a>
</g>
</g>
@@ -22,6145 +22,6162 @@
<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\< Range \>">
-<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">< Range ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-11437 237,-11467 350,-11467 350,-11437 237,-11437"/>
+<text text-anchor="start" x="245" y="-11455" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11444" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< Range ></text>
</a>
</g>
</g>
<!-- Node0->Node1 -->
<g id="edge1" class="edge">
<title>Node0->Node1</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.1529,-5209.6834C70.1299,-5590.2924 116.167,-11363.7859 170,-11428 186.067,-11447.1653 212.4673,-11453.9878 236.7433,-11455.6745"/>
+<polygon fill="#191970" stroke="#191970" points="70.6523,-5209.5751 67.0743,-5199.6027 63.6525,-5209.6298 70.6523,-5209.5751"/>
</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\< Region \>">
-<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">< Region ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-11388 237,-11418 350,-11418 350,-11388 237,-11388"/>
+<text text-anchor="start" x="245" y="-11406" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11395" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< Region ></text>
</a>
</g>
</g>
<!-- Node0->Node2 -->
<g id="edge2" class="edge">
<title>Node0->Node2</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.1543,-5209.5288C70.1575,-5587.1483 116.5856,-11315.2937 170,-11379 186.0683,-11398.1643 212.4687,-11404.9866 236.7445,-11406.6736"/>
+<polygon fill="#191970" stroke="#191970" points="70.6543,-5209.4992 67.075,-5199.5273 63.6545,-5209.5548 70.6543,-5209.4992"/>
</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\< tvm::arith::IterSplitExpr \>">
-<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">< tvm::arith::IterSplitExpr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="217,-11339 217,-11369 370,-11369 370,-11339 217,-11339"/>
+<text text-anchor="start" x="225" y="-11357" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11346" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::arith::IterSplitExpr ></text>
</a>
</g>
</g>
<!-- Node0->Node3 -->
<g id="edge3" class="edge">
<title>Node0->Node3</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.1602,-5209.9398C70.2319,-5589.6828 117.0307,-11266.833 170,-11330 181.7188,-11343.9749 198.9319,-11351.3867 216.8083,-11355.03"/>
+<polygon fill="#191970" stroke="#191970" points="70.6595,-5209.8265 67.0789,-5199.8551 63.6598,-5209.8831 70.6595,-5209.8265"/>
</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\< tvm::arith::IterSumExpr \>">
-<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">< tvm::arith::IterSumExpr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="217,-11290 217,-11320 370,-11320 370,-11290 217,-11290"/>
+<text text-anchor="start" x="225" y="-11308" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11297" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::arith::IterSumExpr ></text>
</a>
</g>
</g>
<!-- Node0->Node4 -->
<g id="edge4" class="edge">
<title>Node0->Node4</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.1616,-5209.7807C70.2599,-5586.4933 117.449,-11218.3405 170,-11281 181.7198,-11294.9741 198.9331,-11302.3857 216.8096,-11306.0289"/>
+<polygon fill="#191970" stroke="#191970" points="70.6616,-5209.7474 67.0796,-5199.7765 63.6618,-5209.8049 70.6616,-5209.7474"/>
</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\< tvm::AttrFieldInfo \>">
-<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">< tvm::AttrFieldInfo ></text>
+<polygon fill="#ffffff" stroke="#000000" points="231.5,-11241 231.5,-11271 355.5,-11271 355.5,-11241 231.5,-11241"/>
+<text text-anchor="start" x="239.5" y="-11259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11248" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::AttrFieldInfo ></text>
</a>
</g>
</g>
<!-- Node0->Node5 -->
<g id="edge5" class="edge">
<title>Node0->Node5</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.1662,-5209.8951C70.3283,-5585.9804 118.1312,-11168.6712 170,-11231 184.8327,-11248.8239 208.5559,-11256.1736 231.2641,-11258.6672"/>
+<polygon fill="#191970" stroke="#191970" points="70.6645,-5209.6662 67.0807,-5199.6959 63.6648,-5209.7249 70.6645,-5209.6662"/>
</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\< tvm::auto_scheduler\l::Iterator \>">
-<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">< 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 ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-11180.5 229.5,-11221.5 357.5,-11221.5 357.5,-11180.5 229.5,-11180.5"/>
+<text text-anchor="start" x="237.5" y="-11209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-11198.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-11187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Iterator ></text>
</a>
</g>
</g>
<!-- Node0->Node6 -->
<g id="edge6" class="edge">
<title>Node0->Node6</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.172,-5209.6942C70.4434,-5581.9818 119.8404,-11108.3156 170,-11171 184.2681,-11188.8308 207.1859,-11197.1474 229.4271,-11200.7284"/>
+<polygon fill="#191970" stroke="#191970" points="70.6712,-5209.5669 67.0835,-5199.598 63.6714,-5209.6283 70.6712,-5209.5669"/>
</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\< tvm::auto_scheduler\l::Stage \>">
-<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">< 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 ></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">< 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">::Stage ></text>
</a>
</g>
</g>
<!-- Node0->Node7 -->
<g id="edge7" class="edge">
<title>Node0->Node7</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0048,-5209.836C67.1344,-5579.2806 70.7257,-10986.9591 170,-11111 184.2697,-11128.8296 207.1878,-11137.146 229.4288,-11140.7271"/>
+<polygon fill="#191970" stroke="#191970" points="70.5049,-5209.7897 67.0018,-5199.7908 63.5049,-5209.7919 70.5049,-5209.7897"/>
</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\< tvm::auto_scheduler\l::Step \>">
-<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">< 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 ></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">< 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">::Step ></text>
</a>
</g>
</g>
<!-- Node0->Node8 -->
<g id="edge8" class="edge">
<title>Node0->Node8</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0085,-5209.9066C67.2046,-5577.9775 71.7447,-10928.2548 170,-11051 184.2712,-11068.8283 207.1897,-11077.1445 229.4305,-11080.7257"/>
+<polygon fill="#191970" stroke="#191970" points="70.5085,-5209.6899 67.0035,-5199.6916 63.5085,-5209.6934 70.5085,-5209.6899"/>
</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\< tvm::Constructor \>">
-<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">< tvm::Constructor ></text>
+<polygon fill="#ffffff" stroke="#000000" points="233,-11011 233,-11041 354,-11041 354,-11011 233,-11011"/>
+<text text-anchor="start" x="241" y="-11029" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-11018" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Constructor ></text>
</a>
</g>
</g>
<!-- Node0->Node9 -->
<g id="edge9" class="edge">
<title>Node0->Node9</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.1795,-5209.9605C70.5174,-5579.0015 119.881,-10942.2895 170,-11002 185.236,-11020.1518 209.7415,-11027.2283 232.9222,-11029.3568"/>
+<polygon fill="#191970" stroke="#191970" points="70.6772,-5209.6862 67.0871,-5199.7183 63.6775,-5209.7495 70.6772,-5209.6862"/>
</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\< tvm::Diagnostic \>">
-<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">< tvm::Diagnostic ></text>
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-10962 235.5,-10992 351.5,-10992 351.5,-10962 235.5,-10962"/>
+<text text-anchor="start" x="243.5" y="-10980" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10969" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Diagnostic ></text>
</a>
</g>
</g>
<!-- Node0->Node10 -->
<g id="edge10" class="edge">
<title>Node0->Node10</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0044,-5209.5819C67.1257,-5571.6476 70.5979,-10834.593 170,-10953 185.7992,-10971.8198 211.5625,-10978.7337 235.4814,-10980.5713"/>
+<polygon fill="#191970" stroke="#191970" points="70.5045,-5209.5325 67.0015,-5199.5336 63.5045,-5209.5346 70.5045,-5209.5325"/>
</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\< tvm::FloatImm \>">
-<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">< tvm::FloatImm ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10913 237,-10943 350,-10943 350,-10913 237,-10913"/>
+<text text-anchor="start" x="245" y="-10931" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10920" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm ></text>
</a>
</g>
</g>
<!-- Node0->Node11 -->
<g id="edge11" class="edge">
<title>Node0->Node11</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0076,-5209.9578C67.1875,-5573.6227 71.4832,-10786.6658 170,-10904 186.0815,-10923.1532 212.4833,-10929.9744 236.7566,-10931.6634"/>
+<polygon fill="#191970" stroke="#191970" points="70.5077,-5209.8374 67.0031,-5199.839 63.5077,-5209.8406 70.5077,-5209.8374"/>
</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\< tvm::instrument::PassInstrument \>">
-<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">< tvm::instrument::PassInstrument ></text>
+<polygon fill="#ffffff" stroke="#000000" points="194,-10864 194,-10894 393,-10894 393,-10864 194,-10864"/>
+<text text-anchor="start" x="202" y="-10882" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::instrument::PassInstrument ></text>
</a>
</g>
</g>
<!-- Node0->Node12 -->
<g id="edge12" class="edge">
<title>Node0->Node12</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0107,-5209.7867C67.2458,-5570.3335 72.3186,-10738.6792 170,-10855 176.5315,-10862.7779 184.7649,-10868.522 193.8665,-10872.7146"/>
+<polygon fill="#191970" stroke="#191970" points="70.5108,-5209.7525 67.0046,-5199.7547 63.5108,-5209.7568 70.5108,-5209.7525"/>
</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\< tvm::Integer \>">
-<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">< tvm::Integer ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10815 237,-10845 350,-10845 350,-10815 237,-10815"/>
+<text text-anchor="start" x="245" y="-10833" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10822" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer ></text>
</a>
</g>
</g>
<!-- Node0->Node13 -->
<g id="edge13" class="edge">
<title>Node0->Node13</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0139,-5209.8811C67.307,-5569.5729 73.178,-10690.7212 170,-10806 186.0845,-10825.1507 212.4867,-10831.9716 236.7594,-10833.6611"/>
+<polygon fill="#191970" stroke="#191970" points="70.5139,-5209.6676 67.0061,-5199.6703 63.5139,-5209.673 70.5139,-5209.6676"/>
</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\< tvm::IntImm \>">
-<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">< tvm::IntImm ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10766 237,-10796 350,-10796 350,-10766 237,-10766"/>
+<text text-anchor="start" x="245" y="-10784" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10773" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::IntImm ></text>
</a>
</g>
</g>
<!-- Node0->Node14 -->
<g id="edge14" class="edge">
<title>Node0->Node14</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.017,-5209.7076C67.3657,-5566.2616 74.0133,-10642.7344 170,-10757 186.0861,-10776.1494 212.4884,-10782.9701 236.7608,-10784.6599"/>
+<polygon fill="#191970" stroke="#191970" points="70.517,-5209.5827 67.0076,-5199.586 63.517,-5209.5892 70.517,-5209.5827"/>
</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\< tvm::IRModule \>">
-<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">< tvm::IRModule ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10717 237,-10747 350,-10747 350,-10717 237,-10717"/>
+<text text-anchor="start" x="245" y="-10735" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10724" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::IRModule ></text>
</a>
</g>
</g>
<!-- Node0->Node15 -->
<g id="edge15" class="edge">
<title>Node0->Node15</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0225,-5210.0633C67.4645,-5567.8911 75.3548,-10593.4554 170,-10707 186.0377,-10726.2402 212.4349,-10733.2706 236.7165,-10735.1644"/>
+<polygon fill="#191970" stroke="#191970" points="70.5224,-5209.8755 67.0104,-5199.8797 63.5224,-5209.8839 70.5224,-5209.8755"/>
</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\< tvm::meta_schedule\l::ArgInfo \>">
-<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">< 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 ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10656.5 229.5,-10697.5 357.5,-10697.5 357.5,-10656.5 229.5,-10656.5"/>
+<text text-anchor="start" x="237.5" y="-10685.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="237.5" y="-10674.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-10663.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfo ></text>
</a>
</g>
</g>
<!-- Node0->Node16 -->
<g id="edge16" class="edge">
<title>Node0->Node16</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0347,-5209.8384C67.6924,-5563.6549 78.5552,-10532.9149 170,-10647 184.2828,-10664.819 207.2035,-10673.1334 229.4428,-10676.7159"/>
+<polygon fill="#191970" stroke="#191970" points="70.5346,-5209.7626 67.0164,-5199.769 63.5346,-5209.7753 70.5346,-5209.7626"/>
</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\< tvm::meta_schedule\l::MeasureCallback \>">
-<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">< 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 ></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">< 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">::MeasureCallback ></text>
</a>
</g>
</g>
<!-- Node0->Node17 -->
<g id="edge17" class="edge">
<title>Node0->Node17</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.039,-5209.8803C67.769,-5561.9733 79.5707,-10474.2061 170,-10587 184.2847,-10604.8175 207.2057,-10613.1316 229.4448,-10616.7143"/>
+<polygon fill="#191970" stroke="#191970" points="70.5386,-5209.6544 67.0183,-5199.6616 63.5386,-5209.6687 70.5386,-5209.6544"/>
</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\< tvm::meta_schedule\l::Postproc \>">
-<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">< 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 ></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">< 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">::Postproc ></text>
</a>
</g>
</g>
<!-- Node0->Node18 -->
<g id="edge18" class="edge">
<title>Node0->Node18</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0428,-5209.6593C67.8402,-5557.8386 80.5637,-10415.4692 170,-10527 184.2866,-10544.816 207.208,-10553.1298 229.4468,-10556.7126"/>
+<polygon fill="#191970" stroke="#191970" points="70.5427,-5209.5463 67.0202,-5199.5542 63.5427,-5209.562 70.5427,-5209.5463"/>
</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\< tvm::meta_schedule\l::ScheduleRule \>">
-<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">< 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 ></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">< 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">::ScheduleRule ></text>
</a>
</g>
</g>
<!-- Node0->Node19 -->
<g id="edge19" class="edge">
<title>Node0->Node19</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.048,-5209.9588C67.9251,-5558.513 81.601,-10356.7875 170,-10467 184.2886,-10484.8144 207.2103,-10493.1279 229.4489,-10496.711"/>
+<polygon fill="#191970" stroke="#191970" points="70.5477,-5209.809 67.0229,-5199.8177 63.5477,-5209.8263 70.5477,-5209.809"/>
</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\< tvm::meta_schedule\l::TuneContext \>">
-<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">< 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 ></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">< 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">::TuneContext ></text>
</a>
</g>
</g>
<!-- Node0->Node20 -->
<g id="edge20" class="edge">
<title>Node0->Node20</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0519,-5209.7319C67.9972,-5554.3236 82.5935,-10298.05 170,-10407 184.2906,-10424.8128 207.2127,-10433.126 229.451,-10436.7093"/>
+<polygon fill="#191970" stroke="#191970" points="70.5519,-5209.6965 67.0249,-5199.706 63.5519,-5209.7155 70.5519,-5209.6965"/>
</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\< tvm::PoolInfo \>">
-<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">< tvm::PoolInfo ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10367 237,-10397 350,-10397 350,-10367 237,-10367"/>
+<text text-anchor="start" x="245" y="-10385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10374" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::PoolInfo ></text>
</a>
</g>
</g>
<!-- Node0->Node21 -->
<g id="edge21" class="edge">
<title>Node0->Node21</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0459,-5209.8084C67.8825,-5553.3715 80.948,-10252.1432 170,-10358 186.0997,-10377.1379 212.5035,-10383.9574 236.7733,-10385.6493"/>
+<polygon fill="#191970" stroke="#191970" points="70.5455,-5209.6105 67.0216,-5199.6189 63.5456,-5209.6272 70.5455,-5209.6105"/>
</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\< tvm::PrimExpr \>">
-<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">< tvm::PrimExpr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10318 237,-10348 350,-10348 350,-10318 237,-10318"/>
+<text text-anchor="start" x="245" y="-10336" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::PrimExpr ></text>
</a>
</g>
</g>
<!-- Node0->Node22 -->
<g id="edge22" class="edge">
<title>Node0->Node22</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0499,-5209.8736C67.9503,-5552.2255 81.8038,-10204.1808 170,-10309 186.1016,-10328.1363 212.5055,-10334.9557 236.775,-10336.6479"/>
+<polygon fill="#191970" stroke="#191970" points="70.5491,-5209.5186 67.0232,-5199.5277 63.5491,-5209.5367 70.5491,-5209.5186"/>
</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\< tvm::Range \>">
-<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">< tvm::Range ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-10269 237,-10299 350,-10299 350,-10269 237,-10269"/>
+<text text-anchor="start" x="245" y="-10287" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10276" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Range ></text>
</a>
</g>
</g>
<!-- Node0->Node23 -->
<g id="edge23" class="edge">
<title>Node0->Node23</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0547,-5210.1962C68.0264,-5553.3744 82.6814,-10156.2442 170,-10260 186.1034,-10279.1348 212.5076,-10285.954 236.7767,-10287.6465"/>
+<polygon fill="#191970" stroke="#191970" points="70.5537,-5209.7899 67.0259,-5199.7997 63.5538,-5209.8095 70.5537,-5209.7899"/>
</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\< tvm::relay::Clause \>">
-<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">< tvm::relay::Clause ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-10220 229.5,-10250 357.5,-10250 357.5,-10220 229.5,-10220"/>
+<text text-anchor="start" x="237.5" y="-10238" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10227" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::relay::Clause ></text>
</a>
</g>
</g>
<!-- Node0->Node24 -->
<g id="edge24" class="edge">
<title>Node0->Node24</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0582,-5210.0011C68.0886,-5549.8631 83.5147,-10108.2552 170,-10211 184.4877,-10228.2115 207.3096,-10235.4582 229.414,-10237.9726"/>
+<polygon fill="#191970" stroke="#191970" points="70.5574,-5209.6945 67.0275,-5199.705 63.5575,-5209.7155 70.5574,-5209.6945"/>
</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\< tvm::relay::DFPattern \>">
-<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">< tvm::relay::DFPattern ></text>
+<polygon fill="#ffffff" stroke="#000000" points="222.5,-10171 222.5,-10201 364.5,-10201 364.5,-10171 222.5,-10171"/>
+<text text-anchor="start" x="230.5" y="-10189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10178" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::relay::DFPattern ></text>
</a>
</g>
</g>
<!-- Node0->Node25 -->
<g id="edge25" class="edge">
<title>Node0->Node25</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0617,-5209.8059C68.1507,-5546.3518 84.3481,-10060.2661 170,-10162 182.9421,-10177.3721 202.5321,-10184.7951 222.3204,-10187.9971"/>
+<polygon fill="#191970" stroke="#191970" points="70.5612,-5209.5991 67.0292,-5199.6103 63.5612,-5209.6215 70.5612,-5209.5991"/>
</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\< tvm::relay::OpImplementation \>">
-<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">< tvm::relay::OpImplementation ></text>
+<polygon fill="#ffffff" stroke="#000000" points="200.5,-10122 200.5,-10152 386.5,-10152 386.5,-10122 200.5,-10122"/>
+<text text-anchor="start" x="208.5" y="-10140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10129" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::relay::OpImplementation ></text>
</a>
</g>
</g>
<!-- Node0->Node26 -->
<g id="edge26" class="edge">
<title>Node0->Node26</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0652,-5209.6108C68.2129,-5542.8405 85.1815,-10012.277 170,-10113 178.0898,-10122.6067 188.776,-10129.1087 200.4841,-10133.416"/>
+<polygon fill="#191970" stroke="#191970" points="70.5649,-5209.5037 67.0309,-5199.5156 63.565,-5209.5275 70.5649,-5209.5037"/>
</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\< tvm::relay::OpSpecialization \>">
-<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">< tvm::relay::OpSpecialization ></text>
+<polygon fill="#ffffff" stroke="#000000" points="205.5,-10073 205.5,-10103 381.5,-10103 381.5,-10073 205.5,-10073"/>
+<text text-anchor="start" x="213.5" y="-10091" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10080" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::relay::OpSpecialization ></text>
</a>
</g>
</g>
<!-- Node0->Node27 -->
<g id="edge27" class="edge">
<title>Node0->Node27</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0705,-5209.9148C68.2928,-5543.7641 86.0569,-9964.3379 170,-10064 179.2165,-10074.9423 191.8015,-10081.8564 205.428,-10086.0872"/>
+<polygon fill="#191970" stroke="#191970" points="70.5701,-5209.7639 67.0339,-5199.7766 63.5701,-5209.7892 70.5701,-5209.7639"/>
</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\< tvm::relay::Pattern \>">
-<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">< tvm::relay::Pattern ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229,-10024 229,-10054 358,-10054 358,-10024 229,-10024"/>
+<text text-anchor="start" x="237" y="-10042" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-10031" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::relay::Pattern ></text>
</a>
</g>
</g>
<!-- Node0->Node28 -->
<g id="edge28" class="edge">
<title>Node0->Node28</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.074,-5209.7146C68.3558,-5540.2083 86.8899,-9916.3483 170,-10015 184.3542,-10032.0384 206.8758,-10039.3094 228.7777,-10041.8915"/>
+<polygon fill="#191970" stroke="#191970" points="70.574,-5209.6648 67.0357,-5199.6783 63.574,-5209.6917 70.574,-5209.6648"/>
</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\< tvm::relay::Var \>">
-<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">< tvm::relay::Var ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9975 237,-10005 350,-10005 350,-9975 237,-9975"/>
+<text text-anchor="start" x="245" y="-9993" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9982" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::relay::Var ></text>
</a>
</g>
</g>
<!-- Node0->Node29 -->
<g id="edge29" class="edge">
<title>Node0->Node29</title>
-<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"/>
+<path fill="none" stroke="#191970" d="M67.0796,-5210.0023C68.4378,-5540.9317 87.7635,-9868.4069 170,-9966 186.1154,-9985.1247 212.5208,-9991.9429 236.7877,-9993.6373"/>
+<polygon fill="#191970" stroke="#191970" points="70.578,-5209.5658 67.0374,-5199.5801 63.578,-5209.5942 70.578,-5209.5658"/>
</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\< tvm::RelayExpr \>">
-<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">< tvm::RelayExpr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9926 237,-9956 350,-9956 350,-9926 237,-9926"/>
+<text text-anchor="start" x="245" y="-9944" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9933" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::RelayExpr ></text>
</a>
</g>
</g>
<!-- Node0->Node30 -->
<g id="edge30" class="edge">
<title>Node0->Node30</title>
-<path fill="none" stroke="#191970" d="M67.0899,-5186.1326C68.5993,-5514.8507 89.6388,-9759.9137 170,-9856 186.0694,-9875.2138 212.4699,-9882.2414 236.7455,-9884.1401"/>
-<polygon fill="#191970" stroke="#191970" points="70.5883,-5185.7394 67.0428,-5175.7554 63.5883,-5185.7712 70.5883,-5185.7394"/>
+<path fill="none" stroke="#191970" d="M67.0872,-5210.2872C68.5521,-5541.528 89.0304,-9819.1697 170,-9916 186.0678,-9935.2152 212.4681,-9942.2429 236.744,-9944.1414"/>
+<polygon fill="#191970" stroke="#191970" points="70.5853,-5209.8148 67.0415,-5199.8302 63.5853,-5209.8455 70.5853,-5209.8148"/>
</g>
<!-- Node31 -->
<g id="node32" class="node">
<title>Node31</title>
<g id="a_node32"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::runtime::Array\l\< tvm::Integer \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="231.5,-9805.5 231.5,-9846.5 355.5,-9846.5 355.5,-9805.5 231.5,-9805.5"/>
-<text text-anchor="start" x="239.5" y="-9834.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="239.5" y="-9823.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9812.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="231.5,-9865.5 231.5,-9906.5 355.5,-9906.5 355.5,-9865.5 231.5,-9865.5"/>
+<text text-anchor="start" x="239.5" y="-9894.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="239.5" y="-9883.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9872.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer > ></text>
</a>
</g>
</g>
<!-- Node0->Node31 -->
<g id="edge31" class="edge">
<title>Node0->Node31</title>
-<path fill="none" stroke="#191970" d="M67.1028,-5185.8683C68.8207,-5510.2715 92.4966,-9699.6412 170,-9796 184.7277,-9814.3107 208.5755,-9822.5784 231.4063,-9825.9902"/>
-<polygon fill="#191970" stroke="#191970" points="70.6016,-5185.6088 67.0491,-5175.6273 63.6017,-5185.6455 70.6016,-5185.6088"/>
+<path fill="none" stroke="#191970" d="M67.1001,-5210.0228C68.7747,-5536.9478 91.9026,-9758.8856 170,-9856 184.7261,-9874.312 208.5737,-9882.5799 231.4047,-9885.9915"/>
+<polygon fill="#191970" stroke="#191970" points="70.5985,-5209.6842 67.0478,-5199.7021 63.5986,-5209.7198 70.5985,-5209.6842"/>
</g>
<!-- Node32 -->
<g id="node33" class="node">
<title>Node32</title>
<g id="a_node33"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::runtime::Array\l\< tvm::PrimExpr \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="231.5,-9745.5 231.5,-9786.5 355.5,-9786.5 355.5,-9745.5 231.5,-9745.5"/>
-<text text-anchor="start" x="239.5" y="-9774.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="239.5" y="-9763.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9752.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::PrimExpr > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="231.5,-9805.5 231.5,-9846.5 355.5,-9846.5 355.5,-9805.5 231.5,-9805.5"/>
+<text text-anchor="start" x="239.5" y="-9834.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="239.5" y="-9823.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9812.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::PrimExpr > ></text>
</a>
</g>
</g>
<!-- Node0->Node32 -->
<g id="edge32" class="edge">
<title>Node0->Node32</title>
-<path fill="none" stroke="#191970" d="M67.1072,-5185.6109C68.8974,-5505.8109 93.4866,-9640.9004 170,-9736 184.7304,-9754.3086 208.5786,-9762.5759 231.4091,-9765.988"/>
-<polygon fill="#191970" stroke="#191970" points="70.6067,-5185.483 67.0513,-5175.5025 63.6068,-5185.5218 70.6067,-5185.483"/>
+<path fill="none" stroke="#191970" d="M67.1046,-5209.7654C68.8513,-5532.4873 92.8926,-9700.1449 170,-9796 184.7288,-9814.3099 208.5768,-9822.5774 231.4074,-9825.9893"/>
+<polygon fill="#191970" stroke="#191970" points="70.6036,-5209.5584 67.05,-5199.5774 63.6037,-5209.596 70.6036,-5209.5584"/>
</g>
<!-- Node33 -->
<g id="node34" class="node">
<title>Node33</title>
<g id="a_node34"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::runtime::Map\l\< tvm::runtime::String,\l tvm::runtime::ObjectRef \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="214,-9674 214,-9726 373,-9726 373,-9674 214,-9674"/>
-<text text-anchor="start" x="222" y="-9714" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="222" y="-9703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Map</text>
-<text text-anchor="start" x="222" y="-9692" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::String,</text>
-<text text-anchor="middle" x="293.5" y="-9681" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::ObjectRef > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="214,-9734 214,-9786 373,-9786 373,-9734 214,-9734"/>
+<text text-anchor="start" x="222" y="-9774" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="222" y="-9763" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Map</text>
+<text text-anchor="start" x="222" y="-9752" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::String,</text>
+<text text-anchor="middle" x="293.5" y="-9741" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::ObjectRef > ></text>
</a>
</g>
</g>
<!-- Node0->Node33 -->
<g id="edge33" class="edge">
<title>Node0->Node33</title>
-<path fill="none" stroke="#191970" d="M67.1236,-5185.7771C69.1539,-5504.5062 96.4804,-9570.0289 170,-9665 180.8452,-9679.0096 196.8648,-9687.6933 213.799,-9693.0079"/>
-<polygon fill="#191970" stroke="#191970" points="70.6231,-5185.6695 67.0599,-5175.6918 63.6232,-5185.7138 70.6231,-5185.6695"/>
+<path fill="none" stroke="#191970" d="M67.1209,-5209.9353C69.1084,-5531.2144 95.9011,-9629.2626 170,-9725 180.8439,-9739.0106 196.863,-9747.6947 213.7972,-9753.0093"/>
+<polygon fill="#191970" stroke="#191970" points="70.6199,-5209.7477 67.0586,-5199.7694 63.6201,-5209.7907 70.6199,-5209.7477"/>
</g>
<!-- Node34 -->
<g id="node35" class="node">
<title>Node34</title>
<g id="a_node35"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::runtime::ObjectRef \>">
-<polygon fill="#ffffff" stroke="#000000" points="215.5,-9625 215.5,-9655 371.5,-9655 371.5,-9625 215.5,-9625"/>
-<text text-anchor="start" x="223.5" y="-9643" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9632" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::ObjectRef ></text>
+<polygon fill="#ffffff" stroke="#000000" points="215.5,-9685 215.5,-9715 371.5,-9715 371.5,-9685 215.5,-9685"/>
+<text text-anchor="start" x="223.5" y="-9703" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9692" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::ObjectRef ></text>
</a>
</g>
</g>
<!-- Node0->Node34 -->
<g id="edge34" class="edge">
<title>Node0->Node34</title>
-<path fill="none" stroke="#191970" d="M67.1137,-5186.0409C68.9643,-5504.9444 93.788,-9523.9848 170,-9615 181.3759,-9628.5856 197.917,-9636.0768 215.2157,-9639.9703"/>
-<polygon fill="#191970" stroke="#191970" points="70.6112,-5185.5703 67.0537,-5175.5906 63.6113,-5185.6106 70.6112,-5185.5703"/>
+<path fill="none" stroke="#191970" d="M67.1082,-5209.7288C68.892,-5527.6781 93.1422,-9583.1962 170,-9675 181.3747,-9688.5866 197.9152,-9696.0783 215.2139,-9699.9717"/>
+<polygon fill="#191970" stroke="#191970" points="70.6079,-5209.6486 67.0523,-5199.6682 63.608,-5209.6875 70.6079,-5209.6486"/>
</g>
<!-- Node35 -->
<g id="node36" class="node">
<title>Node35</title>
<g id="a_node36"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::runtime::Optional\l\< tvm::Integer \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="224,-9564.5 224,-9605.5 363,-9605.5 363,-9564.5 224,-9564.5"/>
-<text text-anchor="start" x="232" y="-9593.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="start" x="232" y="-9582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-9571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="224,-9624.5 224,-9665.5 363,-9665.5 363,-9624.5 224,-9624.5"/>
+<text text-anchor="start" x="232" y="-9653.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="start" x="232" y="-9642.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-9631.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer > ></text>
</a>
</g>
</g>
<!-- Node0->Node35 -->
<g id="edge35" class="edge">
<title>Node0->Node35</title>
-<path fill="none" stroke="#191970" d="M67.1299,-5186.2403C69.2107,-5504.2389 96.5831,-9463.8359 170,-9555 183.1474,-9571.3255 203.5442,-9579.6657 223.9994,-9583.6991"/>
-<polygon fill="#191970" stroke="#191970" points="70.627,-5185.7727 67.0621,-5175.7956 63.6272,-5185.8182 70.627,-5185.7727"/>
+<path fill="none" stroke="#191970" d="M67.124,-5209.926C69.1361,-5527.0017 95.9529,-9523.0353 170,-9615 183.1458,-9631.3268 203.5422,-9639.6673 223.9976,-9643.7006"/>
+<polygon fill="#191970" stroke="#191970" points="70.6215,-5209.5133 67.0586,-5199.5356 63.6217,-5209.5574 70.6215,-5209.5133"/>
</g>
<!-- Node36 -->
<g id="node37" class="node">
<title>Node36</title>
<g id="a_node37"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::runtime::String \>">
-<polygon fill="#ffffff" stroke="#000000" points="225,-9515 225,-9545 362,-9545 362,-9515 225,-9515"/>
-<text text-anchor="start" x="233" y="-9533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9522" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::String ></text>
+<polygon fill="#ffffff" stroke="#000000" points="225,-9575 225,-9605 362,-9605 362,-9575 225,-9575"/>
+<text text-anchor="start" x="233" y="-9593" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9582" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::String ></text>
</a>
</g>
</g>
<!-- Node0->Node36 -->
<g id="edge36" class="edge">
<title>Node0->Node36</title>
-<path fill="none" stroke="#191970" d="M67.1238,-5186.0227C69.1093,-5500.6006 95.3207,-9417.5698 170,-9506 183.5289,-9522.02 204.2783,-9529.4001 224.9304,-9532.3672"/>
-<polygon fill="#191970" stroke="#191970" points="70.6217,-5185.6682 67.0591,-5175.6903 63.6219,-5185.712 70.6217,-5185.6682"/>
+<path fill="none" stroke="#191970" d="M67.1208,-5210.1887C69.0602,-5527.3756 94.7103,-9476.8294 170,-9566 183.5274,-9582.0214 204.2764,-9589.4017 224.9286,-9592.3688"/>
+<polygon fill="#191970" stroke="#191970" points="70.6183,-5209.7492 67.0577,-5199.7707 63.6184,-5209.7917 70.6183,-5209.7492"/>
</g>
<!-- Node37 -->
<g id="node38" class="node">
<title>Node37</title>
<g id="a_node38"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::Target \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-9466 237,-9496 350,-9496 350,-9466 237,-9466"/>
-<text text-anchor="start" x="245" y="-9484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9473" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Target ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9526 237,-9556 350,-9556 350,-9526 237,-9526"/>
+<text text-anchor="start" x="245" y="-9544" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9533" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Target ></text>
</a>
</g>
</g>
<!-- Node0->Node37 -->
<g id="edge37" class="edge">
<title>Node0->Node37</title>
-<path fill="none" stroke="#191970" d="M67.1278,-5185.7967C69.176,-5496.8237 96.1515,-9369.5777 170,-9457 186.1387,-9476.1051 212.5465,-9482.9212 236.809,-9484.6193"/>
-<polygon fill="#191970" stroke="#191970" points="70.6264,-5185.5578 67.0611,-5175.5809 63.6266,-5185.6036 70.6264,-5185.5578"/>
+<path fill="none" stroke="#191970" d="M67.1248,-5209.9627C69.127,-5523.5986 95.5411,-9428.8372 170,-9517 186.1367,-9536.1067 212.5444,-9542.9229 236.8072,-9544.6207"/>
+<polygon fill="#191970" stroke="#191970" points="70.623,-5209.6389 67.0597,-5199.6613 63.6231,-5209.6833 70.623,-5209.6389"/>
</g>
<!-- Node38 -->
<g id="node39" class="node">
<title>Node38</title>
<g id="a_node39"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::te::IterVarRelation \>">
-<polygon fill="#ffffff" stroke="#000000" points="217.5,-9417 217.5,-9447 369.5,-9447 369.5,-9417 217.5,-9417"/>
-<text text-anchor="start" x="225.5" y="-9435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9424" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::IterVarRelation ></text>
+<polygon fill="#ffffff" stroke="#000000" points="217.5,-9477 217.5,-9507 369.5,-9507 369.5,-9477 217.5,-9477"/>
+<text text-anchor="start" x="225.5" y="-9495" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9484" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::IterVarRelation ></text>
</a>
</g>
</g>
<!-- Node0->Node38 -->
<g id="edge38" class="edge">
<title>Node0->Node38</title>
-<path fill="none" stroke="#191970" d="M67.135,-5186.0366C69.2707,-5496.8916 97.019,-9321.6289 170,-9408 181.8417,-9422.0143 199.209,-9429.4157 217.2008,-9433.035"/>
-<polygon fill="#191970" stroke="#191970" points="70.6334,-5185.7795 67.0653,-5175.8036 63.6336,-5185.8272 70.6334,-5185.7795"/>
+<path fill="none" stroke="#191970" d="M67.1289,-5209.7367C69.1937,-5519.8216 96.372,-9380.8451 170,-9468 181.8402,-9482.0155 199.2071,-9489.4173 217.1989,-9493.0367"/>
+<polygon fill="#191970" stroke="#191970" points="70.6277,-5209.5285 67.0616,-5199.5519 63.6278,-5209.5748 70.6277,-5209.5285"/>
</g>
<!-- Node39 -->
<g id="node40" class="node">
<title>Node39</title>
<g id="a_node40"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::te::Operation \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-9368 229.5,-9398 357.5,-9398 357.5,-9368 229.5,-9368"/>
-<text text-anchor="start" x="237.5" y="-9386" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9375" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::Operation ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-9428 229.5,-9458 357.5,-9458 357.5,-9428 229.5,-9428"/>
+<text text-anchor="start" x="237.5" y="-9446" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9435" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::Operation ></text>
</a>
</g>
</g>
<!-- Node0->Node39 -->
<g id="edge39" class="edge">
<title>Node0->Node39</title>
-<path fill="none" stroke="#191970" d="M67.1391,-5185.8052C69.3382,-5493.0702 97.8495,-9273.6362 170,-9359 184.5226,-9376.1821 207.3512,-9383.4231 229.4513,-9385.9411"/>
-<polygon fill="#191970" stroke="#191970" points="70.6383,-5185.6652 67.0673,-5175.6903 63.6385,-5185.715 70.6383,-5185.6652"/>
+<path fill="none" stroke="#191970" d="M67.1361,-5209.9752C69.2886,-5519.8777 97.2394,-9332.8962 170,-9419 184.5208,-9436.1836 207.3491,-9443.425 229.4494,-9445.9427"/>
+<polygon fill="#191970" stroke="#191970" points="70.6347,-5209.7491 67.0658,-5199.7735 63.6349,-5209.7974 70.6347,-5209.7491"/>
</g>
<!-- Node40 -->
<g id="node41" class="node">
<title>Node40</title>
<g id="a_node41"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::te::Stage \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-9319 237,-9349 350,-9349 350,-9319 237,-9319"/>
-<text text-anchor="start" x="245" y="-9337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9326" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::Stage ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9379 237,-9409 350,-9409 350,-9379 237,-9379"/>
+<text text-anchor="start" x="245" y="-9397" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9386" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::Stage ></text>
</a>
</g>
</g>
<!-- Node0->Node40 -->
<g id="edge40" class="edge">
<title>Node0->Node40</title>
-<path fill="none" stroke="#191970" d="M67.1466,-5186.0269C69.4347,-5492.9436 98.7151,-9225.6853 170,-9310 186.1468,-9329.0982 212.5555,-9335.9136 236.8164,-9337.613"/>
-<polygon fill="#191970" stroke="#191970" points="70.6433,-5185.5509 67.0693,-5175.5771 63.6435,-5185.6028 70.6433,-5185.5509"/>
+<path fill="none" stroke="#191970" d="M67.1402,-5209.7438C69.3561,-5516.0563 98.0698,-9284.9035 170,-9370 186.1447,-9389.0999 212.5533,-9395.9155 236.8146,-9397.6145"/>
+<polygon fill="#191970" stroke="#191970" points="70.6396,-5209.6349 67.0679,-5199.6603 63.6398,-5209.6852 70.6396,-5209.6349"/>
</g>
<!-- Node41 -->
<g id="node42" class="node">
<title>Node41</title>
<g id="a_node42"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::te::Tensor \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-9270 237,-9300 350,-9300 350,-9270 237,-9270"/>
-<text text-anchor="start" x="245" y="-9288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::Tensor ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9330 237,-9360 350,-9360 350,-9330 237,-9330"/>
+<text text-anchor="start" x="245" y="-9348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::te::Tensor ></text>
</a>
</g>
</g>
<!-- Node0->Node41 -->
<g id="edge41" class="edge">
<title>Node0->Node41</title>
-<path fill="none" stroke="#191970" d="M67.1509,-5185.7974C69.5034,-5489.1372 99.5457,-9177.6928 170,-9261 186.1496,-9280.0958 212.5586,-9286.9109 236.819,-9288.6108"/>
-<polygon fill="#191970" stroke="#191970" points="70.6508,-5185.7626 67.0739,-5175.7898 63.651,-5185.8165 70.6508,-5185.7626"/>
+<path fill="none" stroke="#191970" d="M67.1477,-5209.9641C69.4528,-5515.9182 98.9353,-9236.9524 170,-9321 186.1475,-9340.0976 212.5563,-9346.9129 236.8171,-9348.6124"/>
+<polygon fill="#191970" stroke="#191970" points="70.6446,-5209.5206 67.0699,-5199.5471 63.6448,-5209.573 70.6446,-5209.5206"/>
</g>
<!-- Node42 -->
<g id="node43" class="node">
<title>Node42</title>
<g id="a_node43"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::TensorAffineType \>">
-<polygon fill="#ffffff" stroke="#000000" points="220,-9221 220,-9251 367,-9251 367,-9221 220,-9221"/>
-<text text-anchor="start" x="228" y="-9239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::TensorAffineType ></text>
+<polygon fill="#ffffff" stroke="#000000" points="220,-9281 220,-9311 367,-9311 367,-9281 220,-9281"/>
+<text text-anchor="start" x="228" y="-9299" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::TensorAffineType ></text>
</a>
</g>
</g>
<!-- Node0->Node42 -->
<g id="edge42" class="edge">
<title>Node0->Node42</title>
-<path fill="none" stroke="#191970" d="M67.1587,-5186.0077C69.6022,-5488.8754 100.4101,-9129.7403 170,-9212 182.4142,-9226.6743 200.8869,-9234.096 219.7859,-9237.5172"/>
-<polygon fill="#191970" stroke="#191970" points="70.656,-5185.6443 67.0759,-5175.6727 63.6562,-5185.7005 70.656,-5185.6443"/>
+<path fill="none" stroke="#191970" d="M67.1555,-5210.1856C69.5515,-5515.7476 99.8006,-9189.0009 170,-9272 182.4125,-9286.6757 200.8847,-9294.0978 219.7838,-9297.519"/>
+<polygon fill="#191970" stroke="#191970" points="70.6522,-5209.7312 67.0744,-5199.7588 63.6524,-5209.7857 70.6522,-5209.7312"/>
</g>
<!-- Node43 -->
<g id="node44" class="node">
<title>Node43</title>
<g id="a_node44"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::Buffer \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-9172 237,-9202 350,-9202 350,-9172 237,-9172"/>
-<text text-anchor="start" x="245" y="-9190" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9179" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Buffer ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9232 237,-9262 350,-9262 350,-9232 237,-9232"/>
+<text text-anchor="start" x="245" y="-9250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Buffer ></text>
</a>
</g>
</g>
<!-- Node0->Node43 -->
<g id="edge43" class="edge">
<title>Node0->Node43</title>
-<path fill="none" stroke="#191970" d="M67.163,-5185.7654C69.6712,-5484.966 101.2397,-9081.7466 170,-9163 186.1555,-9182.0908 212.5652,-9188.9054 236.8244,-9190.6062"/>
-<polygon fill="#191970" stroke="#191970" points="70.6613,-5185.5261 67.078,-5175.5556 63.6615,-5185.5844 70.6613,-5185.5261"/>
+<path fill="none" stroke="#191970" d="M67.1599,-5209.9434C69.6205,-5511.8382 100.6302,-9141.0072 170,-9223 186.1533,-9242.0927 212.5627,-9248.9075 236.8224,-9250.6079"/>
+<polygon fill="#191970" stroke="#191970" points="70.6574,-5209.613 67.0765,-5199.6417 63.6576,-5209.6697 70.6574,-5209.613"/>
</g>
<!-- Node44 -->
<g id="node45" class="node">
<title>Node44</title>
<g id="a_node45"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::BufferRegion \>">
-<polygon fill="#ffffff" stroke="#000000" points="222,-9123 222,-9153 365,-9153 365,-9123 222,-9123"/>
-<text text-anchor="start" x="230" y="-9141" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9130" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::BufferRegion ></text>
+<polygon fill="#ffffff" stroke="#000000" points="222,-9183 222,-9213 365,-9213 365,-9183 222,-9183"/>
+<text text-anchor="start" x="230" y="-9201" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9190" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::BufferRegion ></text>
</a>
</g>
</g>
<!-- Node0->Node44 -->
<g id="edge44" class="edge">
<title>Node0->Node44</title>
-<path fill="none" stroke="#191970" d="M67.1712,-5185.9714C69.7728,-5484.628 102.1034,-9033.7932 170,-9114 182.8422,-9129.1706 202.1596,-9136.5884 221.726,-9139.8483"/>
-<polygon fill="#191970" stroke="#191970" points="70.6694,-5185.7273 67.0829,-5175.758 63.6696,-5185.7879 70.6694,-5185.7273"/>
+<path fill="none" stroke="#191970" d="M67.1642,-5209.7011C69.6896,-5507.9288 101.4598,-9093.0135 170,-9174 182.8404,-9189.1721 202.1573,-9196.5903 221.7238,-9199.8502"/>
+<polygon fill="#191970" stroke="#191970" points="70.6627,-5209.4947 67.0786,-5199.5245 63.6629,-5209.5537 70.6627,-5209.4947"/>
</g>
<!-- Node45 -->
<g id="node46" class="node">
<title>Node45</title>
<g id="a_node46"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::IndexMap \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-9074 229.5,-9104 357.5,-9104 357.5,-9074 229.5,-9074"/>
-<text text-anchor="start" x="237.5" y="-9092" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9081" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::IndexMap ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-9134 229.5,-9164 357.5,-9164 357.5,-9134 229.5,-9134"/>
+<text text-anchor="start" x="237.5" y="-9152" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9141" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::IndexMap ></text>
</a>
</g>
</g>
<!-- Node0->Node45 -->
<g id="edge45" class="edge">
<title>Node0->Node45</title>
-<path fill="none" stroke="#191970" d="M67.1756,-5185.7235C69.8426,-5480.6743 102.9325,-8985.799 170,-9065 184.5385,-9082.1687 207.3702,-9089.4071 229.4683,-9091.9267"/>
-<polygon fill="#191970" stroke="#191970" points="70.6748,-5185.605 67.085,-5175.6369 63.6751,-5185.6679 70.6748,-5185.605"/>
+<path fill="none" stroke="#191970" d="M67.1724,-5209.9056C69.7913,-5507.5791 102.3234,-9045.06 170,-9125 184.5364,-9142.1704 207.3678,-9149.4092 229.4661,-9151.9286"/>
+<polygon fill="#191970" stroke="#191970" points="70.6708,-5209.6948 67.0834,-5199.7258 63.6711,-5209.7561 70.6708,-5209.6948"/>
</g>
<!-- Node46 -->
<g id="node47" class="node">
<title>Node46</title>
<g id="a_node47"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::Instruction \>">
-<polygon fill="#ffffff" stroke="#000000" points="227,-9025 227,-9055 360,-9055 360,-9025 227,-9025"/>
-<text text-anchor="start" x="235" y="-9043" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-9032" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Instruction ></text>
+<polygon fill="#ffffff" stroke="#000000" points="227,-9085 227,-9115 360,-9115 360,-9085 227,-9085"/>
+<text text-anchor="start" x="235" y="-9103" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9092" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Instruction ></text>
</a>
</g>
</g>
<!-- Node0->Node46 -->
<g id="edge46" class="edge">
<title>Node0->Node46</title>
-<path fill="none" stroke="#191970" d="M67.1841,-5185.9104C69.9459,-5480.1448 103.7944,-8937.8434 170,-9016 183.9766,-9032.4996 205.6128,-9039.827 226.8941,-9042.6088"/>
-<polygon fill="#191970" stroke="#191970" points="70.6804,-5185.4827 67.0872,-5175.5158 63.6807,-5185.548 70.6804,-5185.4827"/>
+<path fill="none" stroke="#191970" d="M67.1768,-5209.6578C69.8611,-5503.6253 103.1525,-8997.0658 170,-9076 183.9746,-9092.5013 205.6103,-9099.8291 226.8918,-9102.6108"/>
+<polygon fill="#191970" stroke="#191970" points="70.6763,-5209.5725 67.0856,-5199.6047 63.6766,-5209.6361 70.6763,-5209.5725"/>
</g>
<!-- Node47 -->
<g id="node48" class="node">
<title>Node47</title>
<g id="a_node48"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::IterVar \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-8976 237,-9006 350,-9006 350,-8976 237,-8976"/>
-<text text-anchor="start" x="245" y="-8994" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8983" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::IterVar ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-9036 237,-9066 350,-9066 350,-9036 237,-9036"/>
+<text text-anchor="start" x="245" y="-9054" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-9043" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::IterVar ></text>
</a>
</g>
</g>
<!-- Node0->Node47 -->
<g id="edge47" class="edge">
<title>Node0->Node47</title>
-<path fill="none" stroke="#191970" d="M67.1929,-5186.0978C70.0513,-5479.581 104.656,-8889.8875 170,-8967 186.1682,-8986.0801 212.5792,-8992.8935 236.8361,-8994.5964"/>
-<polygon fill="#191970" stroke="#191970" points="70.6891,-5185.6729 67.0924,-5175.7073 63.6894,-5185.7407 70.6891,-5185.6729"/>
+<path fill="none" stroke="#191970" d="M67.1854,-5209.8504C69.9652,-5503.1409 104.0148,-8949.1108 170,-9027 186.1657,-9046.0821 212.5765,-9052.8958 236.8338,-9054.5982"/>
+<polygon fill="#191970" stroke="#191970" points="70.6849,-5209.7658 67.0907,-5199.7992 63.6852,-5209.8318 70.6849,-5209.7658"/>
</g>
<!-- Node48 -->
<g id="node49" class="node">
<title>Node48</title>
<g id="a_node49"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::MatchBufferRegion \>">
-<polygon fill="#ffffff" stroke="#000000" points="207,-8927 207,-8957 380,-8957 380,-8927 207,-8927"/>
-<text text-anchor="start" x="215" y="-8945" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8934" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::MatchBufferRegion ></text>
+<polygon fill="#ffffff" stroke="#000000" points="207,-8987 207,-9017 380,-9017 380,-8987 207,-8987"/>
+<text text-anchor="start" x="215" y="-9005" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8994" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::MatchBufferRegion ></text>
</a>
</g>
</g>
<!-- Node0->Node48 -->
<g id="edge48" class="edge">
<title>Node0->Node48</title>
-<path fill="none" stroke="#191970" d="M67.1975,-5185.8387C70.1226,-5475.5394 105.4843,-8841.8923 170,-8918 179.5334,-8929.2464 192.6256,-8936.2306 206.7369,-8940.4184"/>
-<polygon fill="#191970" stroke="#191970" points="70.6949,-5185.5465 67.0946,-5175.5822 63.6952,-5185.6168 70.6949,-5185.5465"/>
+<path fill="none" stroke="#191970" d="M67.1941,-5210.0291C70.0702,-5502.5087 104.8758,-8901.1541 170,-8978 179.532,-8989.2476 192.6234,-8996.2325 206.7345,-9000.4204"/>
+<polygon fill="#191970" stroke="#191970" points="70.6906,-5209.6394 67.093,-5199.6741 63.6909,-5209.7078 70.6906,-5209.6394"/>
</g>
<!-- Node49 -->
<g id="node50" class="node">
<title>Node49</title>
<g id="a_node50"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::Stmt \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-8878 237,-8908 350,-8908 350,-8878 237,-8878"/>
-<text text-anchor="start" x="245" y="-8896" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8885" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Stmt ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-8938 237,-8968 350,-8968 350,-8938 237,-8938"/>
+<text text-anchor="start" x="245" y="-8956" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8945" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Stmt ></text>
</a>
</g>
</g>
<!-- Node0->Node49 -->
<g id="edge49" class="edge">
<title>Node0->Node49</title>
-<path fill="none" stroke="#191970" d="M67.2067,-5186.0137C70.2303,-5474.8412 106.3446,-8793.9348 170,-8869 186.175,-8888.0743 212.5867,-8894.8871 236.8423,-8896.5911"/>
-<polygon fill="#191970" stroke="#191970" points="70.704,-5185.7295 67.1,-5175.7665 63.7044,-5185.8024 70.704,-5185.7295"/>
+<path fill="none" stroke="#191970" d="M67.1988,-5209.77C70.1415,-5498.4672 105.7041,-8853.1588 170,-8929 186.1725,-8948.0764 212.5839,-8954.8895 236.84,-8956.593"/>
+<polygon fill="#191970" stroke="#191970" points="70.6964,-5209.513 67.0952,-5199.549 63.6968,-5209.584 70.6964,-5209.513"/>
</g>
<!-- Node50 -->
<g id="node51" class="node">
<title>Node50</title>
<g id="a_node51"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::tir::Var \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-8829 237,-8859 350,-8859 350,-8829 237,-8829"/>
-<text text-anchor="start" x="245" y="-8847" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8836" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Var ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-8889 237,-8919 350,-8919 350,-8889 237,-8889"/>
+<text text-anchor="start" x="245" y="-8907" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8896" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Var ></text>
</a>
</g>
</g>
<!-- Node0->Node50 -->
<g id="edge50" class="edge">
<title>Node0->Node50</title>
-<path fill="none" stroke="#191970" d="M67.2114,-5185.7489C70.3023,-5470.7554 107.1725,-8745.939 170,-8820 186.1786,-8839.0713 212.5906,-8845.8838 236.8456,-8847.5883"/>
-<polygon fill="#191970" stroke="#191970" points="70.7101,-5185.5989 67.1023,-5175.6373 63.7105,-5185.6744 70.7101,-5185.5989"/>
+<path fill="none" stroke="#191970" d="M67.2079,-5209.9435C70.2494,-5497.7572 106.5643,-8805.2012 170,-8880 186.1759,-8899.0735 212.5877,-8905.8863 236.8432,-8907.5903"/>
+<polygon fill="#191970" stroke="#191970" points="70.7056,-5209.6948 67.1006,-5199.7322 63.706,-5209.7684 70.7056,-5209.6948"/>
</g>
<!-- Node51 -->
<g id="node52" class="node">
<title>Node51</title>
<g id="a_node52"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::transform::Pass \>">
-<polygon fill="#ffffff" stroke="#000000" points="223.5,-8780 223.5,-8810 363.5,-8810 363.5,-8780 223.5,-8780"/>
-<text text-anchor="start" x="231.5" y="-8798" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8787" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::transform::Pass ></text>
+<polygon fill="#ffffff" stroke="#000000" points="223.5,-8840 223.5,-8870 363.5,-8870 363.5,-8840 223.5,-8840"/>
+<text text-anchor="start" x="231.5" y="-8858" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8847" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::transform::Pass ></text>
</a>
</g>
</g>
<!-- Node0->Node51 -->
<g id="edge51" class="edge">
<title>Node0->Node51</title>
-<path fill="none" stroke="#191970" d="M67.2208,-5185.9039C70.4117,-5469.8681 108.0311,-8697.9794 170,-8771 183.2143,-8786.5709 203.2504,-8793.9693 223.3624,-8797.0878"/>
-<polygon fill="#191970" stroke="#191970" points="70.7163,-5185.4683 67.1046,-5175.5081 63.7167,-5185.5466 70.7163,-5185.4683"/>
+<path fill="none" stroke="#191970" d="M67.2126,-5209.6787C70.3215,-5493.6714 107.3921,-8757.2055 170,-8831 183.2121,-8846.5728 203.2476,-8853.9717 223.3598,-8857.0901"/>
+<polygon fill="#191970" stroke="#191970" points="70.7117,-5209.5643 67.103,-5199.603 63.7121,-5209.6405 70.7117,-5209.5643"/>
</g>
<!-- Node52 -->
<g id="node53" class="node">
<title>Node52</title>
<g id="a_node53"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::Type \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-8731 237,-8761 350,-8761 350,-8731 237,-8731"/>
-<text text-anchor="start" x="245" y="-8749" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8738" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Type ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-8791 237,-8821 350,-8821 350,-8791 237,-8791"/>
+<text text-anchor="start" x="245" y="-8809" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8798" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Type ></text>
</a>
</g>
</g>
<!-- Node0->Node52 -->
<g id="edge52" class="edge">
<title>Node0->Node52</title>
-<path fill="none" stroke="#191970" d="M67.2306,-5186.0588C70.5232,-5468.9447 108.8893,-8650.0194 170,-8722 186.186,-8741.065 212.5988,-8747.8769 236.8524,-8749.5825"/>
-<polygon fill="#191970" stroke="#191970" points="70.726,-5185.6394 67.1104,-5175.6806 63.7265,-5185.7205 70.726,-5185.6394"/>
+<path fill="none" stroke="#191970" d="M67.2222,-5209.8394C70.4316,-5492.8271 108.2511,-8709.2464 170,-8782 186.1832,-8801.0673 212.5958,-8807.8795 236.8498,-8809.5847"/>
+<polygon fill="#191970" stroke="#191970" points="70.7213,-5209.7385 67.1087,-5199.7786 63.7218,-5209.8175 70.7213,-5209.7385"/>
</g>
<!-- Node53 -->
<g id="node54" class="node">
<title>Node53</title>
<g id="a_node54"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::TypeConstraint \>">
-<polygon fill="#ffffff" stroke="#000000" points="225,-8682 225,-8712 362,-8712 362,-8682 225,-8682"/>
-<text text-anchor="start" x="233" y="-8700" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8689" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::TypeConstraint ></text>
+<polygon fill="#ffffff" stroke="#000000" points="225,-8742 225,-8772 362,-8772 362,-8742 225,-8742"/>
+<text text-anchor="start" x="233" y="-8760" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8749" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::TypeConstraint ></text>
</a>
</g>
</g>
<!-- Node0->Node53 -->
<g id="edge53" class="edge">
<title>Node0->Node53</title>
-<path fill="none" stroke="#191970" d="M67.2355,-5185.7825C70.5967,-5464.7713 109.7163,-8602.0226 170,-8673 183.574,-8688.9819 204.3347,-8696.3523 224.9832,-8699.3225"/>
-<polygon fill="#191970" stroke="#191970" points="70.7325,-5185.5046 67.1128,-5175.5473 63.733,-5185.5885 70.7325,-5185.5046"/>
+<path fill="none" stroke="#191970" d="M67.2319,-5209.9855C70.5427,-5491.8375 109.1087,-8661.2856 170,-8733 183.5716,-8748.9839 204.3317,-8756.3549 224.9804,-8759.3249"/>
+<polygon fill="#191970" stroke="#191970" points="70.7277,-5209.6037 67.1111,-5199.6453 63.7282,-5209.6855 70.7277,-5209.6037"/>
</g>
<!-- Node54 -->
<g id="node55" class="node">
<title>Node54</title>
<g id="a_node55"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="tvm::runtime::Array\l\< tvm::TypeVar \>">
-<polygon fill="#ffffff" stroke="#000000" points="237,-8633 237,-8663 350,-8663 350,-8633 237,-8633"/>
-<text text-anchor="start" x="245" y="-8651" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-8640" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::TypeVar ></text>
+<polygon fill="#ffffff" stroke="#000000" points="237,-8693 237,-8723 350,-8723 350,-8693 237,-8693"/>
+<text text-anchor="start" x="245" y="-8711" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-8700" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::TypeVar ></text>
</a>
</g>
</g>
<!-- Node0->Node54 -->
<g id="edge54" class="edge">
<title>Node0->Node54</title>
-<path fill="none" stroke="#191970" d="M67.2474,-5185.9169C70.7366,-5463.6071 110.8629,-8552.8507 170,-8623 186.1444,-8642.1508 212.5529,-8649.1718 236.8143,-8651.0824"/>
-<polygon fill="#191970" stroke="#191970" points="70.7446,-5185.6639 67.1197,-5175.7085 63.7451,-5185.7515 70.7446,-5185.6639"/>
+<path fill="none" stroke="#191970" d="M67.2385,-5209.7021C70.6423,-5487.5581 110.2284,-8612.0759 170,-8683 186.1415,-8702.1533 212.5497,-8709.1745 236.8116,-8711.0846"/>
+<polygon fill="#191970" stroke="#191970" points="70.736,-5209.4651 67.1143,-5199.5085 63.7365,-5209.5505 70.736,-5209.4651"/>
</g>
<!-- Node55 -->
<g id="node56" class="node">
<title>Node55</title>
<g id="a_node56"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::GlobalTypeVar,\l tvm::TypeData \>">
-<polygon fill="#ffffff" stroke="#000000" points="234.5,-8572.5 234.5,-8613.5 352.5,-8613.5 352.5,-8572.5 234.5,-8572.5"/>
-<text text-anchor="start" x="242.5" y="-8601.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="242.5" y="-8590.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalTypeVar,</text>
-<text text-anchor="middle" x="293.5" y="-8579.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::TypeData ></text>
+<polygon fill="#ffffff" stroke="#000000" points="234.5,-8632.5 234.5,-8673.5 352.5,-8673.5 352.5,-8632.5 234.5,-8632.5"/>
+<text text-anchor="start" x="242.5" y="-8661.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="242.5" y="-8650.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalTypeVar,</text>
+<text text-anchor="middle" x="293.5" y="-8639.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::TypeData ></text>
</a>
</g>
</g>
<!-- Node0->Node55 -->
<g id="edge55" class="edge">
<title>Node0->Node55</title>
-<path fill="none" stroke="#191970" d="M67.2616,-5185.5646C70.9476,-5458.3434 113.2101,-8492.9742 170,-8563 185.4269,-8582.0223 210.6942,-8590.1889 234.3681,-8593.3373"/>
-<polygon fill="#191970" stroke="#191970" points="70.761,-5185.4887 67.1267,-5175.5367 63.7616,-5185.5829 70.761,-5185.4887"/>
+<path fill="none" stroke="#191970" d="M67.258,-5209.7718C70.8946,-5485.4408 112.62,-8552.2237 170,-8623 185.4238,-8642.0248 210.6908,-8650.1916 234.3652,-8653.3397"/>
+<polygon fill="#191970" stroke="#191970" points="70.756,-5209.5909 67.125,-5199.6378 63.7566,-5209.6829 70.756,-5209.5909"/>
</g>
<!-- Node56 -->
<g id="node57" class="node">
<title>Node56</title>
<g id="a_node57"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::GlobalVar, tvm\l::BaseFunc \>">
-<polygon fill="#ffffff" stroke="#000000" points="234.5,-8512.5 234.5,-8553.5 352.5,-8553.5 352.5,-8512.5 234.5,-8512.5"/>
-<text text-anchor="start" x="242.5" y="-8541.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="242.5" y="-8530.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalVar, tvm</text>
-<text text-anchor="middle" x="293.5" y="-8519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BaseFunc ></text>
+<polygon fill="#ffffff" stroke="#000000" points="234.5,-8572.5 234.5,-8613.5 352.5,-8613.5 352.5,-8572.5 234.5,-8572.5"/>
+<text text-anchor="start" x="242.5" y="-8601.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="242.5" y="-8590.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalVar, tvm</text>
+<text text-anchor="middle" x="293.5" y="-8579.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BaseFunc ></text>
</a>
</g>
</g>
<!-- Node0->Node56 -->
<g id="edge56" class="edge">
<title>Node0->Node56</title>
-<path fill="none" stroke="#191970" d="M67.279,-5186.0303C71.1223,-5459.1348 114.2492,-8434.2938 170,-8503 185.432,-8522.0181 210.7001,-8530.1841 234.3731,-8533.3333"/>
-<polygon fill="#191970" stroke="#191970" points="70.7735,-5185.6101 67.1337,-5175.6602 63.7742,-5185.7083 70.7735,-5185.6101"/>
+<path fill="none" stroke="#191970" d="M67.2696,-5209.838C71.026,-5483.3152 113.6318,-8493.5096 170,-8563 185.4289,-8582.0207 210.6965,-8590.187 234.3701,-8593.3357"/>
+<polygon fill="#191970" stroke="#191970" points="70.7684,-5209.7155 67.1319,-5199.7644 63.769,-5209.8113 70.7684,-5209.7155"/>
</g>
<!-- Node57 -->
<g id="node58" class="node">
<title>Node57</title>
<g id="a_node58"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::meta_schedule\l::Mutator, tvm::FloatImm \>">
-<polygon fill="#ffffff" stroke="#000000" points="219,-8452.5 219,-8493.5 368,-8493.5 368,-8452.5 219,-8452.5"/>
-<text text-anchor="start" x="227" y="-8481.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="227" y="-8470.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-8459.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Mutator, tvm::FloatImm ></text>
+<polygon fill="#ffffff" stroke="#000000" points="219,-8512.5 219,-8553.5 368,-8553.5 368,-8512.5 219,-8512.5"/>
+<text text-anchor="start" x="227" y="-8541.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="227" y="-8530.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-8519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Mutator, tvm::FloatImm ></text>
</a>
</g>
</g>
<!-- Node0->Node57 -->
<g id="edge57" class="edge">
<title>Node0->Node57</title>
-<path fill="none" stroke="#191970" d="M67.2912,-5186.078C71.257,-5456.8115 115.2592,-8375.5775 170,-8443 182.0996,-8457.9027 200.2387,-8466.141 218.915,-8470.5235"/>
-<polygon fill="#191970" stroke="#191970" points="70.7865,-5185.7253 67.1409,-5175.7775 63.7872,-5185.8275 70.7865,-5185.7253"/>
+<path fill="none" stroke="#191970" d="M67.2815,-5209.8863C71.1584,-5481.0271 114.6422,-8434.7937 170,-8503 182.0971,-8517.9048 200.2354,-8526.1438 218.9117,-8530.5262"/>
+<polygon fill="#191970" stroke="#191970" points="70.777,-5209.5399 67.1349,-5199.5907 63.7777,-5209.6396 70.777,-5209.5399"/>
</g>
<!-- Node58 -->
<g id="node59" class="node">
<title>Node58</title>
<g id="a_node59"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::relay::Var, tvm\l::runtime::ObjectRef \>">
-<polygon fill="#ffffff" stroke="#000000" points="231,-8392.5 231,-8433.5 356,-8433.5 356,-8392.5 231,-8392.5"/>
-<text text-anchor="start" x="239" y="-8421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="239" y="-8410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::relay::Var, tvm</text>
-<text text-anchor="middle" x="293.5" y="-8399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::runtime::ObjectRef ></text>
+<polygon fill="#ffffff" stroke="#000000" points="231,-8452.5 231,-8493.5 356,-8493.5 356,-8452.5 231,-8452.5"/>
+<text text-anchor="start" x="239" y="-8481.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="239" y="-8470.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::relay::Var, tvm</text>
+<text text-anchor="middle" x="293.5" y="-8459.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::runtime::ObjectRef ></text>
</a>
</g>
</g>
<!-- Node0->Node58 -->
<g id="edge58" class="edge">
<title>Node0->Node58</title>
-<path fill="none" stroke="#191970" d="M67.2975,-5185.7105C71.3481,-5451.4882 116.2411,-8316.8265 170,-8383 184.6778,-8401.0674 208.2324,-8409.3383 230.8546,-8412.8187"/>
-<polygon fill="#191970" stroke="#191970" points="70.7955,-5185.5442 67.144,-5175.5985 63.7963,-5185.6505 70.7955,-5185.5442"/>
+<path fill="none" stroke="#191970" d="M67.2937,-5209.931C71.2934,-5478.6822 115.652,-8376.0771 170,-8443 184.6746,-8461.07 208.2286,-8469.3414 230.8513,-8472.8214"/>
+<polygon fill="#191970" stroke="#191970" points="70.7901,-5209.6529 67.1422,-5199.7059 63.7908,-5209.7567 70.7901,-5209.6529"/>
</g>
<!-- Node59 -->
<g id="node60" class="node">
<title>Node59</title>
<g id="a_node60"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::runtime::String,\l tvm::GlobalTypeVar \>">
-<polygon fill="#ffffff" stroke="#000000" points="230.5,-8332.5 230.5,-8373.5 356.5,-8373.5 356.5,-8332.5 230.5,-8332.5"/>
-<text text-anchor="start" x="238.5" y="-8361.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="238.5" y="-8350.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
-<text text-anchor="middle" x="293.5" y="-8339.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalTypeVar ></text>
+<polygon fill="#ffffff" stroke="#000000" points="230.5,-8392.5 230.5,-8433.5 356.5,-8433.5 356.5,-8392.5 230.5,-8392.5"/>
+<text text-anchor="start" x="238.5" y="-8421.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="238.5" y="-8410.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
+<text text-anchor="middle" x="293.5" y="-8399.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalTypeVar ></text>
</a>
</g>
</g>
<!-- Node0->Node59 -->
<g id="edge59" class="edge">
<title>Node0->Node59</title>
-<path fill="none" stroke="#191970" d="M67.3101,-5185.7397C71.4854,-5449.0017 117.2496,-8258.1082 170,-8323 184.5441,-8340.8917 207.7931,-8349.1754 230.2168,-8352.7138"/>
-<polygon fill="#191970" stroke="#191970" points="70.8092,-5185.6474 67.1516,-5175.7039 63.8101,-5185.758 70.8092,-5185.6474"/>
+<path fill="none" stroke="#191970" d="M67.3,-5209.5635C71.3845,-5473.3589 116.6339,-8317.326 170,-8383 184.5408,-8400.8944 207.7892,-8409.1786 230.2133,-8412.7166"/>
+<polygon fill="#191970" stroke="#191970" points="70.7991,-5209.4717 67.1453,-5199.5269 63.8,-5209.5797 70.7991,-5209.4717"/>
</g>
<!-- Node60 -->
<g id="node61" class="node">
<title>Node60</title>
<g id="a_node61"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::runtime::String,\l tvm::GlobalVar \>">
-<polygon fill="#ffffff" stroke="#000000" points="233,-8272.5 233,-8313.5 354,-8313.5 354,-8272.5 233,-8272.5"/>
-<text text-anchor="start" x="241" y="-8301.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="241" y="-8290.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
-<text text-anchor="middle" x="293.5" y="-8279.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalVar ></text>
+<polygon fill="#ffffff" stroke="#000000" points="233,-8332.5 233,-8373.5 354,-8373.5 354,-8332.5 233,-8332.5"/>
+<text text-anchor="start" x="241" y="-8361.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="241" y="-8350.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
+<text text-anchor="middle" x="293.5" y="-8339.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::GlobalVar ></text>
</a>
</g>
</g>
<!-- Node0->Node60 -->
<g id="edge60" class="edge">
<title>Node0->Node60</title>
-<path fill="none" stroke="#191970" d="M67.323,-5185.7504C71.6237,-5446.3551 118.2567,-8199.388 170,-8263 185.1067,-8281.5718 209.5924,-8289.79 232.7934,-8293.0948"/>
-<polygon fill="#191970" stroke="#191970" points="70.8188,-5185.4606 67.1548,-5175.5195 63.8197,-5185.5757 70.8188,-5185.4606"/>
+<path fill="none" stroke="#191970" d="M67.319,-5209.98C71.5679,-5473.6131 117.6681,-8258.6394 170,-8323 185.1031,-8341.5747 209.5883,-8349.7933 232.7899,-8353.0977"/>
+<polygon fill="#191970" stroke="#191970" points="70.813,-5209.5727 67.1529,-5199.6302 63.8139,-5209.6851 70.813,-5209.5727"/>
</g>
<!-- Node61 -->
<g id="node62" class="node">
<title>Node61</title>
<g id="a_node62"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::runtime::String,\l tvm::runtime::Map\< tvm\l::runtime::String, tvm::\lruntime::ObjectRef \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="223.5,-8190.5 223.5,-8253.5 363.5,-8253.5 363.5,-8190.5 223.5,-8190.5"/>
-<text text-anchor="start" x="231.5" y="-8241.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="231.5" y="-8230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
-<text text-anchor="start" x="231.5" y="-8219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::Map< tvm</text>
-<text text-anchor="start" x="231.5" y="-8208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::runtime::String, tvm::</text>
-<text text-anchor="middle" x="293.5" y="-8197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">runtime::ObjectRef > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="223.5,-8250.5 223.5,-8313.5 363.5,-8313.5 363.5,-8250.5 223.5,-8250.5"/>
+<text text-anchor="start" x="231.5" y="-8301.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="231.5" y="-8290.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
+<text text-anchor="start" x="231.5" y="-8279.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::Map< tvm</text>
+<text text-anchor="start" x="231.5" y="-8268.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::runtime::String, tvm::</text>
+<text text-anchor="middle" x="293.5" y="-8257.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">runtime::ObjectRef > ></text>
</a>
</g>
</g>
<!-- Node0->Node61 -->
<g id="edge61" class="edge">
<title>Node0->Node61</title>
-<path fill="none" stroke="#191970" d="M67.0297,-5185.9193C67.4879,-5440.5694 74.513,-8053.3396 170,-8181 182.7873,-8198.0959 202.9627,-8208.157 223.3292,-8214.0475"/>
-<polygon fill="#191970" stroke="#191970" points="70.5293,-5185.589 67.0125,-5175.5948 63.5293,-5185.6007 70.5293,-5185.589"/>
+<path fill="none" stroke="#191970" d="M67.0213,-5209.7753C67.3734,-5465.2225 73.3523,-8111.7336 170,-8241 182.7839,-8258.0984 202.9583,-8268.1603 223.3251,-8274.0506"/>
+<polygon fill="#191970" stroke="#191970" points="70.5213,-5209.7049 67.0087,-5199.7093 63.5213,-5209.7137 70.5213,-5209.7049"/>
</g>
<!-- Node62 -->
<g id="node63" class="node">
<title>Node62</title>
<g id="a_node63"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::runtime::String,\l tvm::runtime::ObjectRef \>">
-<polygon fill="#ffffff" stroke="#000000" points="219.5,-8130.5 219.5,-8171.5 367.5,-8171.5 367.5,-8130.5 219.5,-8130.5"/>
-<text text-anchor="start" x="227.5" y="-8159.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="227.5" y="-8148.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
-<text text-anchor="middle" x="293.5" y="-8137.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::ObjectRef ></text>
+<polygon fill="#ffffff" stroke="#000000" points="219.5,-8190.5 219.5,-8231.5 367.5,-8231.5 367.5,-8190.5 219.5,-8190.5"/>
+<text text-anchor="start" x="227.5" y="-8219.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="227.5" y="-8208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::String,</text>
+<text text-anchor="middle" x="293.5" y="-8197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::ObjectRef ></text>
</a>
</g>
</g>
<!-- Node0->Node62 -->
<g id="edge62" class="edge">
<title>Node0->Node62</title>
-<path fill="none" stroke="#191970" d="M67.3592,-5185.9839C71.9902,-5441.4043 120.6524,-8060.4321 170,-8121 182.1948,-8135.9675 200.4812,-8144.2081 219.2703,-8148.5716"/>
-<polygon fill="#191970" stroke="#191970" points="70.8523,-5185.5623 67.1722,-5175.6272 63.8534,-5185.6888 70.8523,-5185.5623"/>
+<path fill="none" stroke="#191970" d="M67.3483,-5209.8443C71.8851,-5466.128 120.04,-8119.6542 170,-8181 182.1916,-8195.9701 200.477,-8204.2114 219.2663,-8208.5749"/>
+<polygon fill="#191970" stroke="#191970" points="70.846,-5209.6812 67.1701,-5199.7445 63.8471,-5209.8047 70.846,-5209.6812"/>
</g>
<!-- Node63 -->
<g id="node64" class="node">
<title>Node63</title>
<g id="a_node64"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::SourceName, tvm\l::parser::Source \>">
-<polygon fill="#ffffff" stroke="#000000" points="227,-8070.5 227,-8111.5 360,-8111.5 360,-8070.5 227,-8070.5"/>
-<text text-anchor="start" x="235" y="-8099.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="235" y="-8088.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::SourceName, tvm</text>
-<text text-anchor="middle" x="293.5" y="-8077.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::parser::Source ></text>
+<polygon fill="#ffffff" stroke="#000000" points="227,-8130.5 227,-8171.5 360,-8171.5 360,-8130.5 227,-8130.5"/>
+<text text-anchor="start" x="235" y="-8159.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="235" y="-8148.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::SourceName, tvm</text>
+<text text-anchor="middle" x="293.5" y="-8137.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::parser::Source ></text>
</a>
</g>
</g>
<!-- Node0->Node63 -->
<g id="edge63" class="edge">
<title>Node0->Node63</title>
-<path fill="none" stroke="#191970" d="M67.0219,-5185.9039C67.378,-5435.1008 73.3612,-7942.4756 170,-8061 183.8036,-8077.9297 205.4006,-8086.2519 226.6989,-8090.092"/>
-<polygon fill="#191970" stroke="#191970" points="70.5218,-5185.7583 67.0088,-5175.7628 63.5218,-5185.7674 70.5218,-5185.7583"/>
+<path fill="none" stroke="#191970" d="M67.0128,-5209.7702C67.2562,-5459.8765 72.1377,-8000.9215 170,-8121 183.7999,-8137.9327 205.396,-8146.2556 226.6947,-8150.0954"/>
+<polygon fill="#191970" stroke="#191970" points="70.5127,-5209.6079 67.0043,-5199.6108 63.5127,-5209.6138 70.5127,-5209.6079"/>
</g>
<!-- Node64 -->
<g id="node65" class="node">
<title>Node64</title>
<g id="a_node65"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::Target, tvm::Integer \>">
-<polygon fill="#ffffff" stroke="#000000" points="217.5,-8021 217.5,-8051 369.5,-8051 369.5,-8021 217.5,-8021"/>
-<text text-anchor="start" x="225.5" y="-8039" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="middle" x="293.5" y="-8028" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::Target, tvm::Integer ></text>
+<polygon fill="#ffffff" stroke="#000000" points="217.5,-8081 217.5,-8111 369.5,-8111 369.5,-8081 217.5,-8081"/>
+<text text-anchor="start" x="225.5" y="-8099" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="middle" x="293.5" y="-8088" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::Target, tvm::Integer ></text>
</a>
</g>
</g>
<!-- Node0->Node64 -->
<g id="edge64" class="edge">
<title>Node0->Node64</title>
-<path fill="none" stroke="#191970" d="M67.0179,-5185.9404C67.324,-5433.0858 72.8122,-7896.4603 170,-8011 181.8889,-8025.0115 199.2724,-8032.5196 217.2647,-8036.2836"/>
-<polygon fill="#191970" stroke="#191970" points="70.5176,-5185.5973 67.0066,-5175.6011 63.5176,-5185.605 70.5176,-5185.5973"/>
+<path fill="none" stroke="#191970" d="M67.3669,-5209.8697C72.0471,-5461.1819 120.7558,-8012.9371 170,-8071 181.8857,-8085.0142 199.2682,-8092.5232 217.2605,-8096.2872"/>
+<polygon fill="#191970" stroke="#191970" points="70.8624,-5209.5937 67.1774,-5199.6604 63.8636,-5209.7236 70.8624,-5209.5937"/>
</g>
<!-- Node65 -->
<g id="node66" class="node">
<title>Node65</title>
<g id="a_node66"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::Target, tvm::runtime\l::String \>">
-<polygon fill="#ffffff" stroke="#000000" points="221,-7960.5 221,-8001.5 366,-8001.5 366,-7960.5 221,-7960.5"/>
-<text text-anchor="start" x="229" y="-7989.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="229" y="-7978.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::Target, tvm::runtime</text>
-<text text-anchor="middle" x="293.5" y="-7967.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::String ></text>
+<polygon fill="#ffffff" stroke="#000000" points="221,-8020.5 221,-8061.5 366,-8061.5 366,-8020.5 221,-8020.5"/>
+<text text-anchor="start" x="229" y="-8049.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="229" y="-8038.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::Target, tvm::runtime</text>
+<text text-anchor="middle" x="293.5" y="-8027.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::String ></text>
</a>
</g>
</g>
<!-- Node0->Node65 -->
<g id="edge65" class="edge">
<title>Node0->Node65</title>
-<path fill="none" stroke="#191970" d="M67.0506,-5185.875C67.7535,-5429.7115 77.0417,-7837.1527 170,-7951 182.5595,-7966.3818 201.5523,-7974.6562 220.9026,-7978.9194"/>
-<polygon fill="#191970" stroke="#191970" points="70.5501,-5185.6457 67.0226,-5175.6554 63.5501,-5185.665 70.5501,-5185.6457"/>
+<path fill="none" stroke="#191970" d="M67.0407,-5209.7584C67.6263,-5454.6495 75.8212,-7895.6025 170,-8011 182.5559,-8026.3848 201.5476,-8034.66 220.898,-8038.9231"/>
+<polygon fill="#191970" stroke="#191970" points="70.5402,-5209.5055 67.0177,-5199.5134 63.5402,-5209.5213 70.5402,-5209.5055"/>
</g>
<!-- Node66 -->
<g id="node67" class="node">
<title>Node66</title>
<g id="a_node67"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::te::Operation,\l tvm::te::Stage \>">
-<polygon fill="#ffffff" stroke="#000000" points="236,-7900.5 236,-7941.5 351,-7941.5 351,-7900.5 236,-7900.5"/>
-<text text-anchor="start" x="244" y="-7929.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="244" y="-7918.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::te::Operation,</text>
-<text text-anchor="middle" x="293.5" y="-7907.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::te::Stage ></text>
+<polygon fill="#ffffff" stroke="#000000" points="236,-7960.5 236,-8001.5 351,-8001.5 351,-7960.5 236,-7960.5"/>
+<text text-anchor="start" x="244" y="-7989.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="244" y="-7978.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::te::Operation,</text>
+<text text-anchor="middle" x="293.5" y="-7967.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::te::Stage ></text>
</a>
</g>
</g>
<!-- Node0->Node66 -->
<g id="edge66" class="edge">
<title>Node0->Node66</title>
-<path fill="none" stroke="#191970" d="M67.067,-5185.8109C67.9629,-5426.4171 79.0424,-7779.6954 170,-7891 185.777,-7910.3063 211.6886,-7918.414 235.7138,-7921.4476"/>
-<polygon fill="#191970" stroke="#191970" points="70.5667,-5185.696 67.0309,-5175.7086 63.5668,-5185.7211 70.5667,-5185.696"/>
+<path fill="none" stroke="#191970" d="M67.0566,-5209.7038C67.8328,-5451.4403 77.8235,-7838.1473 170,-7951 185.7723,-7970.3102 211.6833,-7978.4183 235.7093,-7981.4513"/>
+<polygon fill="#191970" stroke="#191970" points="70.5563,-5209.5614 67.0256,-5199.5722 63.5563,-5209.5829 70.5563,-5209.5614"/>
</g>
<!-- Node67 -->
<g id="node68" class="node">
<title>Node67</title>
<g id="a_node68"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::tir::Instruction,\l tvm::runtime::ObjectRef \>">
-<polygon fill="#ffffff" stroke="#000000" points="219.5,-7840.5 219.5,-7881.5 367.5,-7881.5 367.5,-7840.5 219.5,-7840.5"/>
-<text text-anchor="start" x="227.5" y="-7869.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="227.5" y="-7858.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Instruction,</text>
-<text text-anchor="middle" x="293.5" y="-7847.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::ObjectRef ></text>
+<polygon fill="#ffffff" stroke="#000000" points="219.5,-7900.5 219.5,-7941.5 367.5,-7941.5 367.5,-7900.5 219.5,-7900.5"/>
+<text text-anchor="start" x="227.5" y="-7929.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="227.5" y="-7918.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Instruction,</text>
+<text text-anchor="middle" x="293.5" y="-7907.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::runtime::ObjectRef ></text>
</a>
</g>
</g>
<!-- Node0->Node67 -->
<g id="edge67" class="edge">
<title>Node0->Node67</title>
-<path fill="none" stroke="#191970" d="M67.0857,-5186.0888C68.1887,-5425.2983 81.0852,-7722.2895 170,-7831 182.2231,-7845.9444 200.5184,-7854.1776 219.3071,-7858.5416"/>
-<polygon fill="#191970" stroke="#191970" points="70.5842,-5185.738 67.0396,-5175.7537 63.5843,-5185.7692 70.5842,-5185.738"/>
+<path fill="none" stroke="#191970" d="M67.0732,-5209.6365C68.0429,-5448.125 79.8238,-7780.6894 170,-7891 182.2192,-7905.9475 200.5134,-7914.1818 219.3022,-7918.5456"/>
+<polygon fill="#191970" stroke="#191970" points="70.5732,-5209.6093 67.0339,-5199.6231 63.5732,-5209.6368 70.5732,-5209.6093"/>
</g>
<!-- Node68 -->
<g id="node69" class="node">
<title>Node68</title>
<g id="a_node69"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::tir::IterVar,\l tvm::te::IterVarAttr \>">
-<polygon fill="#ffffff" stroke="#000000" points="232.5,-7780.5 232.5,-7821.5 354.5,-7821.5 354.5,-7780.5 232.5,-7780.5"/>
-<text text-anchor="start" x="240.5" y="-7809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="240.5" y="-7798.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::IterVar,</text>
-<text text-anchor="middle" x="293.5" y="-7787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::te::IterVarAttr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="232.5,-7840.5 232.5,-7881.5 354.5,-7881.5 354.5,-7840.5 232.5,-7840.5"/>
+<text text-anchor="start" x="240.5" y="-7869.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="240.5" y="-7858.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::IterVar,</text>
+<text text-anchor="middle" x="293.5" y="-7847.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::te::IterVarAttr ></text>
</a>
</g>
</g>
<!-- Node0->Node68 -->
<g id="edge68" class="edge">
<title>Node0->Node68</title>
-<path fill="none" stroke="#191970" d="M67.1016,-5185.6368C68.3922,-5419.4641 83.0368,-7664.7719 170,-7771 185.0251,-7789.3536 209.2087,-7797.583 232.2098,-7800.9547"/>
-<polygon fill="#191970" stroke="#191970" points="70.6011,-5185.5153 67.0473,-5175.5342 63.6012,-5185.5529 70.6011,-5185.5153"/>
+<path fill="none" stroke="#191970" d="M67.092,-5209.908C68.2701,-5446.9646 81.8658,-7723.2825 170,-7831 185.0201,-7849.3576 209.203,-7857.5877 232.2048,-7860.9588"/>
+<polygon fill="#191970" stroke="#191970" points="70.5909,-5209.6489 67.0427,-5199.6659 63.591,-5209.6827 70.5909,-5209.6489"/>
</g>
<!-- Node69 -->
<g id="node70" class="node">
<title>Node69</title>
<g id="a_node70"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::tir::usmp::BufferInfo,\l tvm::tir::Stmt \>">
-<polygon fill="#ffffff" stroke="#000000" points="220.5,-7720.5 220.5,-7761.5 366.5,-7761.5 366.5,-7720.5 220.5,-7720.5"/>
-<text text-anchor="start" x="228.5" y="-7749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="228.5" y="-7738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::usmp::BufferInfo,</text>
-<text text-anchor="middle" x="293.5" y="-7727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Stmt ></text>
+<polygon fill="#ffffff" stroke="#000000" points="220.5,-7780.5 220.5,-7821.5 366.5,-7821.5 366.5,-7780.5 220.5,-7780.5"/>
+<text text-anchor="start" x="228.5" y="-7809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="228.5" y="-7798.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::usmp::BufferInfo,</text>
+<text text-anchor="middle" x="293.5" y="-7787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Stmt ></text>
</a>
</g>
</g>
<!-- Node0->Node69 -->
<g id="edge69" class="edge">
<title>Node0->Node69</title>
-<path fill="none" stroke="#191970" d="M67.122,-5185.878C68.6286,-5418.0276 85.0736,-7607.3584 170,-7711 182.4464,-7726.1893 201.1655,-7734.4432 220.2915,-7738.7481"/>
-<polygon fill="#191970" stroke="#191970" points="70.62,-5185.5427 67.0567,-5175.5651 63.6202,-5185.5871 70.62,-5185.5427"/>
+<path fill="none" stroke="#191970" d="M67.11,-5209.8096C68.4891,-5443.3838 83.861,-7665.8182 170,-7771 182.4422,-7786.1928 201.1599,-7794.4478 220.286,-7798.7526"/>
+<polygon fill="#191970" stroke="#191970" points="70.6094,-5209.68 67.0519,-5199.7003 63.6096,-5209.7203 70.6094,-5209.68"/>
</g>
<!-- Node70 -->
<g id="node71" class="node">
<title>Node70</title>
<g id="a_node71"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::tir::Var, tvm\l::PrimExpr \>">
-<polygon fill="#ffffff" stroke="#000000" points="236,-7660.5 236,-7701.5 351,-7701.5 351,-7660.5 236,-7660.5"/>
-<text text-anchor="start" x="244" y="-7689.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="244" y="-7678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Var, tvm</text>
-<text text-anchor="middle" x="293.5" y="-7667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PrimExpr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="236,-7720.5 236,-7761.5 351,-7761.5 351,-7720.5 236,-7720.5"/>
+<text text-anchor="start" x="244" y="-7749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="244" y="-7738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Var, tvm</text>
+<text text-anchor="middle" x="293.5" y="-7727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::PrimExpr ></text>
</a>
</g>
</g>
<!-- Node0->Node70 -->
<g id="edge70" class="edge">
<title>Node0->Node70</title>
-<path fill="none" stroke="#191970" d="M67.1411,-5185.7558C68.8541,-5414.2562 87.0651,-7549.8895 170,-7651 185.8122,-7670.2775 211.7279,-7678.3818 235.7467,-7681.4207"/>
-<polygon fill="#191970" stroke="#191970" points="70.6398,-5185.5614 67.0664,-5175.5874 63.64,-5185.6128 70.6398,-5185.5614"/>
+<path fill="none" stroke="#191970" d="M67.131,-5210.0418C68.7288,-5441.8503 85.896,-7608.4024 170,-7711 185.8065,-7730.2822 211.7215,-7738.387 235.7414,-7741.4251"/>
+<polygon fill="#191970" stroke="#191970" points="70.6289,-5209.7023 67.0615,-5199.7262 63.629,-5209.7495 70.6289,-5209.7023"/>
</g>
<!-- Node71 -->
<g id="node72" class="node">
<title>Node71</title>
<g id="a_node72"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::tir::Var, tvm\l::Range \>">
-<polygon fill="#ffffff" stroke="#000000" points="236,-7600.5 236,-7641.5 351,-7641.5 351,-7600.5 236,-7600.5"/>
-<text text-anchor="start" x="244" y="-7629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="244" y="-7618.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Var, tvm</text>
-<text text-anchor="middle" x="293.5" y="-7607.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Range ></text>
+<polygon fill="#ffffff" stroke="#000000" points="236,-7660.5 236,-7701.5 351,-7701.5 351,-7660.5 236,-7660.5"/>
+<text text-anchor="start" x="244" y="-7689.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="244" y="-7678.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Var, tvm</text>
+<text text-anchor="middle" x="293.5" y="-7667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Range ></text>
</a>
</g>
</g>
<!-- Node0->Node71 -->
<g id="edge71" class="edge">
<title>Node0->Node71</title>
-<path fill="none" stroke="#191970" d="M67.1637,-5185.9633C69.1033,-5412.4914 89.0958,-7492.468 170,-7591 185.8221,-7610.2694 211.7389,-7618.3728 235.7559,-7621.4131"/>
-<polygon fill="#191970" stroke="#191970" points="70.6627,-5185.8187 67.0787,-5175.8485 63.6629,-5185.8776 70.6627,-5185.8187"/>
+<path fill="none" stroke="#191970" d="M67.1533,-5210.2595C68.976,-5440.1482 87.9279,-7550.9824 170,-7651 185.8161,-7670.2743 211.7322,-7678.3782 235.7503,-7681.4177"/>
+<polygon fill="#191970" stroke="#191970" points="70.6512,-5209.9671 67.0735,-5199.9946 63.6514,-5210.0215 70.6512,-5209.9671"/>
</g>
<!-- Node72 -->
<g id="node73" class="node">
<title>Node72</title>
<g id="a_node73"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title="tvm::runtime::Map\<\l tvm::tir::Var, tvm\l::tir::Buffer \>">
-<polygon fill="#ffffff" stroke="#000000" points="236,-7540.5 236,-7581.5 351,-7581.5 351,-7540.5 236,-7540.5"/>
-<text text-anchor="start" x="244" y="-7569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
-<text text-anchor="start" x="244" y="-7558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Var, tvm</text>
-<text text-anchor="middle" x="293.5" y="-7547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::Buffer ></text>
+<polygon fill="#ffffff" stroke="#000000" points="236,-7600.5 236,-7641.5 351,-7641.5 351,-7600.5 236,-7600.5"/>
+<text text-anchor="start" x="244" y="-7629.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Map<</text>
+<text text-anchor="start" x="244" y="-7618.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> tvm::tir::Var, tvm</text>
+<text text-anchor="middle" x="293.5" y="-7607.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::Buffer ></text>
</a>
</g>
</g>
<!-- Node0->Node72 -->
<g id="edge72" class="edge">
<title>Node0->Node72</title>
-<path fill="none" stroke="#191970" d="M67.1842,-5185.8003C69.3372,-5408.4118 91.0814,-7434.9917 170,-7531 185.8324,-7550.2609 211.7505,-7558.3632 235.7656,-7561.4051"/>
-<polygon fill="#191970" stroke="#191970" points="70.6823,-5185.5712 67.0873,-5175.605 63.6826,-5185.6379 70.6823,-5185.5712"/>
+<path fill="none" stroke="#191970" d="M67.1706,-5209.7659C69.1882,-5434.0536 89.8743,-7493.4584 170,-7591 185.8261,-7610.2661 211.7434,-7618.369 235.7597,-7621.41"/>
+<polygon fill="#191970" stroke="#191970" points="70.6704,-5209.7197 67.0821,-5199.7511 63.6707,-5209.7817 70.6704,-5209.7197"/>
</g>
<!-- Node73 -->
<g id="node74" class="node">
<title>Node73</title>
<g id="a_node74"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::DiagnosticContext \>">
-<polygon fill="#ffffff" stroke="#000000" points="216,-7491 216,-7521 371,-7521 371,-7491 216,-7491"/>
-<text text-anchor="start" x="224" y="-7509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-7498" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::DiagnosticContext ></text>
+<polygon fill="#ffffff" stroke="#000000" points="216,-7551 216,-7581 371,-7581 371,-7551 216,-7551"/>
+<text text-anchor="start" x="224" y="-7569" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-7558" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::DiagnosticContext ></text>
</a>
</g>
</g>
<!-- Node0->Node73 -->
<g id="edge73" class="edge">
<title>Node0->Node73</title>
-<path fill="none" stroke="#191970" d="M67.1855,-5186.0769C69.3178,-5407.6237 90.5932,-7389.9237 170,-7482 181.6257,-7495.4807 198.3662,-7502.8104 215.7865,-7506.5393"/>
-<polygon fill="#191970" stroke="#191970" points="70.6837,-5185.8631 67.0892,-5175.8967 63.6841,-5185.9294 70.6837,-5185.8631"/>
+<path fill="none" stroke="#191970" d="M67.1682,-5209.7083C69.1425,-5431.2831 89.3112,-7448.3729 170,-7542 181.6212,-7555.4846 198.36,-7562.8158 215.7801,-7566.5448"/>
+<polygon fill="#191970" stroke="#191970" points="70.6668,-5209.5294 67.0794,-5199.5604 63.6671,-5209.5907 70.6668,-5209.5294"/>
</g>
<!-- Node74 -->
<g id="node75" class="node">
<title>Node74</title>
<g id="a_node75"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::FloatImm \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-7442 229.5,-7472 357.5,-7472 357.5,-7442 229.5,-7442"/>
-<text text-anchor="start" x="237.5" y="-7460" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-7449" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-7502 229.5,-7532 357.5,-7532 357.5,-7502 229.5,-7502"/>
+<text text-anchor="start" x="237.5" y="-7520" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-7509" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm ></text>
</a>
</g>
</g>
<!-- Node0->Node74 -->
<g id="edge74" class="edge">
<title>Node0->Node74</title>
-<path fill="none" stroke="#191970" d="M67.2043,-5185.977C69.5232,-5404.4437 92.2653,-7342.95 170,-7433 184.6295,-7449.9472 207.3425,-7457.1709 229.3207,-7459.7406"/>
-<polygon fill="#191970" stroke="#191970" points="70.7012,-5185.6503 67.0968,-5175.6875 63.7016,-5185.7235 70.7012,-5185.6503"/>
+<path fill="none" stroke="#191970" d="M67.1896,-5209.9642C69.3663,-5430.2685 91.0266,-7401.4494 170,-7493 184.6235,-7509.9524 207.3353,-7517.1771 229.3143,-7519.7462"/>
+<polygon fill="#191970" stroke="#191970" points="70.6883,-5209.8067 67.0912,-5199.8412 63.6886,-5209.8747 70.6883,-5209.8067"/>
</g>
<!-- Node75 -->
<g id="node76" class="node">
<title>Node75</title>
<g id="a_node76"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::Integer \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-7393 229.5,-7423 357.5,-7423 357.5,-7393 229.5,-7393"/>
-<text text-anchor="start" x="237.5" y="-7411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-7400" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-7453 229.5,-7483 357.5,-7483 357.5,-7453 229.5,-7453"/>
+<text text-anchor="start" x="237.5" y="-7471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-7460" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer ></text>
</a>
</g>
</g>
<!-- Node0->Node75 -->
<g id="edge75" class="edge">
<title>Node0->Node75</title>
-<path fill="none" stroke="#191970" d="M67.2275,-5186.2024C69.7566,-5403.1468 93.9752,-7296.0199 170,-7384 184.638,-7400.9399 207.3527,-7408.1621 229.3299,-7410.7327"/>
-<polygon fill="#191970" stroke="#191970" points="70.7245,-5185.9107 67.1098,-5175.9516 63.725,-5185.9911 70.7245,-5185.9107"/>
+<path fill="none" stroke="#191970" d="M67.2084,-5209.8626C69.5721,-5427.0774 92.6985,-7354.4754 170,-7444 184.6317,-7460.9453 207.3452,-7468.1686 229.3231,-7470.7386"/>
+<polygon fill="#191970" stroke="#191970" points="70.7059,-5209.5938 67.0988,-5199.6319 63.7063,-5209.6689 70.7059,-5209.5938"/>
</g>
<!-- Node76 -->
<g id="node77" class="node">
<title>Node76</title>
<g id="a_node77"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::IRModule \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-7344 229.5,-7374 357.5,-7374 357.5,-7344 229.5,-7344"/>
-<text text-anchor="start" x="237.5" y="-7362" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-7351" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::IRModule ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-7404 229.5,-7434 357.5,-7434 357.5,-7404 229.5,-7404"/>
+<text text-anchor="start" x="237.5" y="-7422" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-7411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::IRModule ></text>
</a>
</g>
</g>
<!-- Node0->Node76 -->
<g id="edge76" class="edge">
<title>Node0->Node76</title>
-<path fill="none" stroke="#191970" d="M67.2473,-5185.7445C69.9861,-5397.7718 95.9748,-7247.7496 170,-7334 184.6035,-7351.0152 207.3114,-7358.4128 229.2927,-7361.1666"/>
-<polygon fill="#191970" stroke="#191970" points="70.7469,-5185.6805 67.1196,-5175.726 63.7474,-5185.7698 70.7469,-5185.6805"/>
+<path fill="none" stroke="#191970" d="M67.2355,-5210.0721C69.8493,-5425.6174 94.7823,-7306.2915 170,-7394 184.5969,-7411.0209 207.3035,-7418.4196 229.2856,-7421.1727"/>
+<polygon fill="#191970" stroke="#191970" points="70.7331,-5209.8448 67.1137,-5199.8873 63.7336,-5209.9285 70.7331,-5209.8448"/>
</g>
<!-- Node77 -->
<g id="node78" class="node">
<title>Node77</title>
<g id="a_node78"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::meta_schedule::\lCostModel \>">
-<polygon fill="#ffffff" stroke="#000000" points="226.5,-7283.5 226.5,-7324.5 360.5,-7324.5 360.5,-7283.5 226.5,-7283.5"/>
-<text text-anchor="start" x="234.5" y="-7312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="234.5" y="-7301.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
-<text text-anchor="middle" x="293.5" y="-7290.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel ></text>
+<polygon fill="#ffffff" stroke="#000000" points="226.5,-7343.5 226.5,-7384.5 360.5,-7384.5 360.5,-7343.5 226.5,-7343.5"/>
+<text text-anchor="start" x="234.5" y="-7372.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="234.5" y="-7361.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
+<text text-anchor="middle" x="293.5" y="-7350.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">CostModel ></text>
</a>
</g>
</g>
<!-- Node0->Node77 -->
<g id="edge77" class="edge">
<title>Node0->Node77</title>
-<path fill="none" stroke="#191970" d="M67.2974,-5186.1316C70.4897,-5396.6441 99.6986,-7188.9352 170,-7274 183.775,-7290.6677 205.1018,-7298.9706 226.18,-7302.8704"/>
-<polygon fill="#191970" stroke="#191970" points="70.7937,-5185.8568 67.1441,-5175.9104 63.7945,-5185.9618 70.7937,-5185.8568"/>
+<path fill="none" stroke="#191970" d="M67.276,-5209.8261C70.2957,-5420.8656 98.4634,-7247.3685 170,-7334 183.8384,-7350.7584 205.3112,-7359.0621 226.4948,-7362.9361"/>
+<polygon fill="#191970" stroke="#191970" points="70.7727,-5209.561 67.1316,-5199.6116 63.7734,-5209.6601 70.7727,-5209.561"/>
</g>
<!-- Node78 -->
<g id="node79" class="node">
<title>Node78</title>
<g id="a_node79"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::meta_schedule::\lDatabase \>">
-<polygon fill="#ffffff" stroke="#000000" points="226.5,-7223.5 226.5,-7264.5 360.5,-7264.5 360.5,-7223.5 226.5,-7223.5"/>
-<text text-anchor="start" x="234.5" y="-7252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="234.5" y="-7241.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
-<text text-anchor="middle" x="293.5" y="-7230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Database ></text>
+<polygon fill="#ffffff" stroke="#000000" points="226.5,-7283.5 226.5,-7324.5 360.5,-7324.5 360.5,-7283.5 226.5,-7283.5"/>
+<text text-anchor="start" x="234.5" y="-7312.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="234.5" y="-7301.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
+<text text-anchor="middle" x="293.5" y="-7290.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Database ></text>
</a>
</g>
</g>
<!-- Node0->Node78 -->
<g id="edge78" class="edge">
<title>Node0->Node78</title>
-<path fill="none" stroke="#191970" d="M67.3226,-5185.8655C70.7483,-5391.8166 101.6697,-7131.4404 170,-7214 183.7869,-7230.6579 205.1165,-7238.9584 226.1936,-7242.8591"/>
-<polygon fill="#191970" stroke="#191970" points="70.8183,-5185.5696 67.1541,-5175.6286 63.8192,-5185.6848 70.8183,-5185.5696"/>
+<path fill="none" stroke="#191970" d="M67.3054,-5209.9026C70.5809,-5418.0202 100.4734,-7189.9209 170,-7274 183.7797,-7290.6639 205.1076,-7298.9658 226.1854,-7302.8659"/>
+<polygon fill="#191970" stroke="#191970" points="70.8034,-5209.7419 67.1481,-5199.7977 63.8043,-5209.851 70.8034,-5209.7419"/>
</g>
<!-- Node79 -->
<g id="node80" class="node">
<title>Node79</title>
<g id="a_node80"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::meta_schedule::\lSearchStrategy \>">
-<polygon fill="#ffffff" stroke="#000000" points="226.5,-7163.5 226.5,-7204.5 360.5,-7204.5 360.5,-7163.5 226.5,-7163.5"/>
-<text text-anchor="start" x="234.5" y="-7192.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="234.5" y="-7181.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
-<text text-anchor="middle" x="293.5" y="-7170.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SearchStrategy ></text>
+<polygon fill="#ffffff" stroke="#000000" points="226.5,-7223.5 226.5,-7264.5 360.5,-7264.5 360.5,-7223.5 226.5,-7223.5"/>
+<text text-anchor="start" x="234.5" y="-7252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="234.5" y="-7241.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
+<text text-anchor="middle" x="293.5" y="-7230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SearchStrategy ></text>
</a>
</g>
</g>
<!-- Node0->Node79 -->
<g id="edge79" class="edge">
<title>Node0->Node79</title>
-<path fill="none" stroke="#191970" d="M67.3542,-5185.8993C71.0444,-5388.6437 103.6734,-7073.9848 170,-7154 183.7995,-7170.6474 205.1321,-7178.9456 226.208,-7182.8472"/>
-<polygon fill="#191970" stroke="#191970" points="70.8517,-5185.7259 67.1719,-5175.7907 63.8528,-5185.8522 70.8517,-5185.7259"/>
+<path fill="none" stroke="#191970" d="M67.3307,-5209.6329C70.8402,-5413.1724 102.4442,-7132.4256 170,-7214 183.7918,-7230.6538 205.1226,-7238.9534 226.1993,-7242.8544"/>
+<polygon fill="#191970" stroke="#191970" points="70.8283,-5209.4546 67.158,-5199.5158 63.8293,-5209.5741 70.8283,-5209.4546"/>
</g>
<!-- Node80 -->
<g id="node81" class="node">
<title>Node80</title>
<g id="a_node81"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::meta_schedule::\lSpaceGenerator \>">
-<polygon fill="#ffffff" stroke="#000000" points="226.5,-7103.5 226.5,-7144.5 360.5,-7144.5 360.5,-7103.5 226.5,-7103.5"/>
-<text text-anchor="start" x="234.5" y="-7132.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="234.5" y="-7121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
-<text text-anchor="middle" x="293.5" y="-7110.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SpaceGenerator ></text>
+<polygon fill="#ffffff" stroke="#000000" points="226.5,-7163.5 226.5,-7204.5 360.5,-7204.5 360.5,-7163.5 226.5,-7163.5"/>
+<text text-anchor="start" x="234.5" y="-7192.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="234.5" y="-7181.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::</text>
+<text text-anchor="middle" x="293.5" y="-7170.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">SpaceGenerator ></text>
</a>
</g>
</g>
<!-- Node0->Node80 -->
<g id="edge80" class="edge">
<title>Node0->Node80</title>
-<path fill="none" stroke="#191970" d="M67.3932,-5186.2038C71.3816,-5386.8839 105.7051,-7016.5625 170,-7094 183.8129,-7110.6363 205.1486,-7118.9319 226.2233,-7122.8345"/>
-<polygon fill="#191970" stroke="#191970" points="70.8873,-5185.8648 67.1909,-5175.9357 63.8886,-5186.0027 70.8873,-5185.8648"/>
+<path fill="none" stroke="#191970" d="M67.3682,-5209.9595C71.1707,-5411.6152 104.4797,-7075.0082 170,-7154 183.8047,-7170.6431 205.1386,-7178.9402 226.214,-7182.8422"/>
+<polygon fill="#191970" stroke="#191970" points="70.8623,-5209.6054 67.1761,-5199.6726 63.8636,-5209.7362 70.8623,-5209.6054"/>
</g>
<!-- Node81 -->
<g id="node82" class="node">
<title>Node81</title>
<g id="a_node82"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::PrimExpr \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-7054 229.5,-7084 357.5,-7084 357.5,-7054 229.5,-7054"/>
-<text text-anchor="start" x="237.5" y="-7072" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-7061" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::PrimExpr ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-7114 229.5,-7144 357.5,-7144 357.5,-7114 229.5,-7114"/>
+<text text-anchor="start" x="237.5" y="-7132" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-7121" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::PrimExpr ></text>
</a>
</g>
</g>
<!-- Node0->Node81 -->
<g id="edge81" class="edge">
<title>Node0->Node81</title>
-<path fill="none" stroke="#191970" d="M67.759,-5186.1294C75.3365,-5386.0168 137.7753,-7008.0212 170,-7045 184.7086,-7061.8785 207.4375,-7069.0886 229.4061,-7071.6666"/>
-<polygon fill="#191970" stroke="#191970" points="71.2477,-5185.7612 67.3721,-5175.9006 64.2527,-5186.0258 71.2477,-5185.7612"/>
+<path fill="none" stroke="#191970" d="M67.3778,-5210.0848C71.2154,-5409.5809 104.3581,-7029.5959 170,-7105 184.6999,-7121.8861 207.4271,-7129.0976 229.3967,-7131.6747"/>
+<polygon fill="#191970" stroke="#191970" points="70.8733,-5209.8087 67.1833,-5199.8772 63.8746,-5209.9421 70.8733,-5209.8087"/>
</g>
<!-- Node82 -->
<g id="node83" class="node">
<title>Node82</title>
<g id="a_node83"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::auto_scheduler::\lMeasureCallback \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="226.5,-6983 226.5,-7035 360.5,-7035 360.5,-6983 226.5,-6983"/>
-<text text-anchor="start" x="234.5" y="-7023" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="234.5" y="-7012" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="start" x="234.5" y="-7001" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::auto_scheduler::</text>
-<text text-anchor="middle" x="293.5" y="-6990" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">MeasureCallback > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="226.5,-7043 226.5,-7095 360.5,-7095 360.5,-7043 226.5,-7043"/>
+<text text-anchor="start" x="234.5" y="-7083" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="234.5" y="-7072" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="start" x="234.5" y="-7061" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::auto_scheduler::</text>
+<text text-anchor="middle" x="293.5" y="-7050" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">MeasureCallback > ></text>
</a>
</g>
</g>
<!-- Node0->Node82 -->
<g id="edge82" class="edge">
<title>Node0->Node82</title>
-<path fill="none" stroke="#191970" d="M67.4777,-5185.7866C72.1853,-5377.4965 111.3467,-6899.2773 170,-6973 183.6959,-6990.2148 205.1359,-6999.5118 226.3331,-7004.4356"/>
-<polygon fill="#191970" stroke="#191970" points="70.9753,-5185.6381 67.2325,-5175.7264 63.9773,-5185.8088 70.9753,-5185.6381"/>
+<path fill="none" stroke="#191970" d="M67.4643,-5210.1804C72.0436,-5405.7065 110.2237,-6957.7801 170,-7033 183.6864,-7050.2224 205.1242,-7059.5212 226.3222,-7064.4442"/>
+<polygon fill="#191970" stroke="#191970" points="70.9574,-5209.836 67.2259,-5199.92 63.9593,-5209.9987 70.9574,-5209.836"/>
</g>
<!-- Node83 -->
<g id="node84" class="node">
<title>Node83</title>
<g id="a_node84"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::FloatImm \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-6922.5 229.5,-6963.5 357.5,-6963.5 357.5,-6922.5 229.5,-6922.5"/>
-<text text-anchor="start" x="237.5" y="-6951.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="237.5" y="-6940.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-6929.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-6982.5 229.5,-7023.5 357.5,-7023.5 357.5,-6982.5 229.5,-6982.5"/>
+<text text-anchor="start" x="237.5" y="-7011.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="237.5" y="-7000.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-6989.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::FloatImm > ></text>
</a>
</g>
</g>
<!-- Node0->Node83 -->
<g id="edge83" class="edge">
<title>Node0->Node83</title>
-<path fill="none" stroke="#191970" d="M67.5028,-5186.0001C72.3393,-5375.1152 111.707,-6843.1841 170,-6913 184.5658,-6930.445 207.4029,-6938.7087 229.4976,-6942.3551"/>
-<polygon fill="#191970" stroke="#191970" points="70.9973,-5185.7359 67.2446,-5175.828 63.9996,-5185.9136 70.9973,-5185.7359"/>
+<path fill="none" stroke="#191970" d="M67.4741,-5209.8239C72.1119,-5400.355 110.4914,-6901.6422 170,-6973 184.5554,-6990.4537 207.3905,-6998.719 229.4865,-7002.3643"/>
+<polygon fill="#191970" stroke="#191970" points="70.9678,-5209.5178 67.2273,-5199.6052 63.9699,-5209.6869 70.9678,-5209.5178"/>
</g>
<!-- Node84 -->
<g id="node85" class="node">
<title>Node84</title>
<g id="a_node85"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::Integer \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-6862.5 229.5,-6903.5 357.5,-6903.5 357.5,-6862.5 229.5,-6862.5"/>
-<text text-anchor="start" x="237.5" y="-6891.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="237.5" y="-6880.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-6869.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer > ></text>
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-6922.5 229.5,-6963.5 357.5,-6963.5 357.5,-6922.5 229.5,-6922.5"/>
+<text text-anchor="start" x="237.5" y="-6951.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="237.5" y="-6940.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-6929.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Integer > ></text>
</a>
</g>
</g>
<!-- Node0->Node84 -->
<g id="edge84" class="edge">
<title>Node0->Node84</title>
-<path fill="none" stroke="#191970" d="M67.5502,-5186.1554C72.7125,-5372.2478 113.7173,-6785.7348 170,-6853 184.5132,-6870.3452 207.2031,-6878.6101 229.1953,-6882.2853"/>
-<polygon fill="#191970" stroke="#191970" points="71.0418,-5185.8012 67.2677,-5175.9014 64.0445,-5185.994 71.0418,-5185.8012"/>
+<path fill="none" stroke="#191970" d="M67.5124,-5209.7256C72.4387,-5396.245 112.4769,-6844.1634 170,-6913 184.5022,-6930.3544 207.1899,-6938.6211 229.1834,-6942.2952"/>
+<polygon fill="#191970" stroke="#191970" points="71.0104,-5209.5979 67.2493,-5199.6931 64.0128,-5209.7814 71.0104,-5209.5979"/>
</g>
<!-- Node85 -->
<g id="node86" class="node">
<title>Node85</title>
-<g id="a_node86"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::BuilderResult \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="183,-6802.5 183,-6843.5 404,-6843.5 404,-6802.5 183,-6802.5"/>
-<text text-anchor="start" x="191" y="-6831.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="191" y="-6820.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-6809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::BuilderResult > ></text>
+<g id="a_node86"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::ArgInfo \> \>">
+<polygon fill="#ffffff" stroke="#000000" points="198,-6862.5 198,-6903.5 389,-6903.5 389,-6862.5 198,-6862.5"/>
+<text text-anchor="start" x="206" y="-6891.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="206" y="-6880.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-6869.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::ArgInfo > ></text>
</a>
</g>
</g>
<!-- Node0->Node85 -->
<g id="edge85" class="edge">
<title>Node0->Node85</title>
-<path fill="none" stroke="#191970" d="M67.5833,-5185.7087C73.0084,-5366.2787 115.6659,-6728.2113 170,-6793 173.7572,-6797.4802 178.0599,-6801.3542 182.755,-6804.6997"/>
-<polygon fill="#191970" stroke="#191970" points="71.077,-5185.4406 67.2801,-5175.5495 64.0801,-5185.6495 71.077,-5185.4406"/>
+<path fill="none" stroke="#191970" d="M67.5602,-5209.8689C72.8138,-5393.3163 114.4859,-6786.7125 170,-6853 177.5083,-6861.9654 187.2012,-6868.5045 197.8522,-6873.2375"/>
+<polygon fill="#191970" stroke="#191970" points="71.0557,-5209.657 67.2727,-5199.7606 64.0585,-5209.8561 71.0557,-5209.657"/>
</g>
<!-- Node86 -->
<g id="node87" class="node">
<title>Node86</title>
-<g id="a_node87"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::MeasureCandidate \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="170,-6742.5 170,-6783.5 417,-6783.5 417,-6742.5 170,-6742.5"/>
-<text text-anchor="start" x="178" y="-6771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="178" y="-6760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-6749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::MeasureCandidate > ></text>
+<g id="a_node87"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::BuilderResult \> \>">
+<polygon fill="#ffffff" stroke="#000000" points="183,-6802.5 183,-6843.5 404,-6843.5 404,-6802.5 183,-6802.5"/>
+<text text-anchor="start" x="191" y="-6831.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="191" y="-6820.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-6809.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::BuilderResult > ></text>
</a>
</g>
</g>
<!-- Node0->Node86 -->
<g id="edge86" class="edge">
<title>Node0->Node86</title>
-<path fill="none" stroke="#191970" d="M67.6348,-5185.7846C73.3984,-5362.8902 117.6659,-6670.749 170,-6733 172.9107,-6736.4623 176.1472,-6739.5624 179.6386,-6742.3362"/>
-<polygon fill="#191970" stroke="#191970" points="71.1265,-5185.4686 67.305,-5175.587 64.1302,-5185.6949 71.1265,-5185.4686"/>
+<path fill="none" stroke="#191970" d="M67.6106,-5209.9682C73.1991,-5390.0728 116.4889,-6729.2538 170,-6793 173.7593,-6797.4784 178.0637,-6801.3511 182.7601,-6804.6955"/>
+<polygon fill="#191970" stroke="#191970" points="71.1039,-5209.6944 67.2973,-5199.807 64.1072,-5209.9102 71.1039,-5209.6944"/>
</g>
<!-- Node87 -->
<g id="node88" class="node">
<title>Node87</title>
-<g id="a_node88"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::RunnerFuture \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="183.5,-6682.5 183.5,-6723.5 403.5,-6723.5 403.5,-6682.5 183.5,-6682.5"/>
-<text text-anchor="start" x="191.5" y="-6711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="191.5" y="-6700.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
-<text text-anchor="middle" x="293.5" y="-6689.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::RunnerFuture > ></text>
+<g id="a_node88"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::MeasureCandidate \> \>">
+<polygon fill="#ffffff" stroke="#000000" points="170,-6742.5 170,-6783.5 417,-6783.5 417,-6742.5 170,-6742.5"/>
+<text text-anchor="start" x="178" y="-6771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="178" y="-6760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-6749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::MeasureCandidate > ></text>
</a>
</g>
</g>
<!-- Node0->Node87 -->
<g id="edge87" class="edge">
<title>Node0->Node87</title>
-<path fill="none" stroke="#191970" d="M67.689,-5185.8138C73.7983,-5359.1882 119.6598,-6613.2788 170,-6673 173.9107,-6677.6394 178.4063,-6681.6283 183.316,-6685.0528"/>
-<polygon fill="#191970" stroke="#191970" points="71.1793,-5185.4734 67.3312,-5175.6021 64.1836,-5185.7186 71.1793,-5185.4734"/>
+<path fill="none" stroke="#191970" d="M67.6635,-5210.0214C73.5945,-5386.5154 118.4856,-6671.7873 170,-6733 172.9125,-6736.4608 176.1504,-6739.5597 179.6431,-6742.3325"/>
+<polygon fill="#191970" stroke="#191970" points="71.1551,-5209.7088 67.3231,-5199.8313 64.159,-5209.9426 71.1551,-5209.7088"/>
</g>
<!-- Node88 -->
<g id="node89" class="node">
<title>Node88</title>
-<g id="a_node89"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Map\< tvm\l::runtime::String, tvm::\lruntime::NDArray \> \>">
-<polygon fill="#ffffff" stroke="#000000" points="219,-6611 219,-6663 368,-6663 368,-6611 219,-6611"/>
-<text text-anchor="start" x="227" y="-6651" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="start" x="227" y="-6640" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Map< tvm</text>
-<text text-anchor="start" x="227" y="-6629" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::runtime::String, tvm::</text>
-<text text-anchor="middle" x="293.5" y="-6618" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">runtime::NDArray > ></text>
+<g id="a_node89"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Array\l\< tvm::meta_schedule::RunnerFuture \> \>">
+<polygon fill="#ffffff" stroke="#000000" points="183.5,-6682.5 183.5,-6723.5 403.5,-6723.5 403.5,-6682.5 183.5,-6682.5"/>
+<text text-anchor="start" x="191.5" y="-6711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="191.5" y="-6700.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Array</text>
+<text text-anchor="middle" x="293.5" y="-6689.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::meta_schedule::RunnerFuture > ></text>
</a>
</g>
</g>
<!-- Node0->Node88 -->
<g id="edge88" class="edge">
<title>Node0->Node88</title>
-<path fill="none" stroke="#191970" d="M67.0702,-5186.0166C67.8238,-5351.2816 76.4011,-6486.9904 170,-6602 182.1679,-6616.9513 200.2129,-6625.7947 218.7743,-6630.9509"/>
-<polygon fill="#191970" stroke="#191970" points="70.5695,-5185.8075 67.0284,-5175.822 63.5695,-5185.8363 70.5695,-5185.8075"/>
+<path fill="none" stroke="#191970" d="M67.7192,-5210.0269C73.9998,-5382.645 120.4763,-6614.313 170,-6673 173.9132,-6677.6373 178.4108,-6681.6244 183.3221,-6685.0476"/>
+<polygon fill="#191970" stroke="#191970" points="71.2097,-5209.6994 67.3504,-5199.8325 64.2143,-5209.9526 71.2097,-5209.6994"/>
</g>
<!-- Node89 -->
<g id="node90" class="node">
<title>Node89</title>
-<g id="a_node90"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::NDArray \>">
-<polygon fill="#ffffff" stroke="#000000" points="218.5,-6562 218.5,-6592 368.5,-6592 368.5,-6562 218.5,-6562"/>
-<text text-anchor="start" x="226.5" y="-6580" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-6569" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::NDArray ></text>
+<g id="a_node90"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::Map\< tvm\l::runtime::String, tvm::\lruntime::NDArray \> \>">
+<polygon fill="#ffffff" stroke="#000000" points="219,-6611 219,-6663 368,-6663 368,-6611 219,-6611"/>
+<text text-anchor="start" x="227" y="-6651" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="start" x="227" y="-6640" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Map< tvm</text>
+<text text-anchor="start" x="227" y="-6629" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::runtime::String, tvm::</text>
+<text text-anchor="middle" x="293.5" y="-6618" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">runtime::NDArray > ></text>
</a>
</g>
</g>
<!-- Node0->Node89 -->
<g id="edge89" class="edge">
<title>Node0->Node89</title>
-<path fill="none" stroke="#191970" d="M67.047,-5185.8809C67.6113,-5347.744 74.9413,-6446.0263 170,-6553 182.3323,-6566.8781 200.0904,-6574.1861 218.3117,-6577.7571"/>
-<polygon fill="#191970" stroke="#191970" points="70.546,-5185.5081 67.0161,-5175.5186 63.546,-5185.529 70.546,-5185.5081"/>
+<path fill="none" stroke="#191970" d="M67.094,-5209.6828C68.0411,-5372.1917 77.8888,-6488.9585 170,-6602 182.1769,-6616.9439 200.2249,-6625.7849 218.7862,-6630.9411"/>
+<polygon fill="#191970" stroke="#191970" points="70.5939,-5209.6392 67.0402,-5199.6582 63.594,-5209.6769 70.5939,-5209.6392"/>
</g>
<!-- Node90 -->
<g id="node91" class="node">
<title>Node90</title>
-<g id="a_node91"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::ObjectRef \>">
-<polygon fill="#ffffff" stroke="#000000" points="215.5,-6513 215.5,-6543 371.5,-6543 371.5,-6513 215.5,-6513"/>
-<text text-anchor="start" x="223.5" y="-6531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-6520" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::ObjectRef ></text>
+<g id="a_node91"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::NDArray \>">
+<polygon fill="#ffffff" stroke="#000000" points="218.5,-6562 218.5,-6592 368.5,-6592 368.5,-6562 218.5,-6562"/>
+<text text-anchor="start" x="226.5" y="-6580" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-6569" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::NDArray ></text>
</a>
</g>
</g>
<!-- Node0->Node90 -->
<g id="edge90" class="edge">
<title>Node0->Node90</title>
-<path fill="none" stroke="#191970" d="M67.1026,-5185.6651C68.1054,-5343.5177 78.2358,-6401.0145 170,-6504 181.6972,-6517.1276 198.2497,-6524.3723 215.4474,-6528.1358"/>
-<polygon fill="#191970" stroke="#191970" points="70.6018,-5185.5129 67.0433,-5175.5336 63.6019,-5185.5539 70.6018,-5185.5129"/>
+<path fill="none" stroke="#191970" d="M67.0751,-5210.0316C67.861,-5370.8264 76.6049,-6448.0359 170,-6553 182.3413,-6566.8701 200.1025,-6574.1754 218.3238,-6577.7463"/>
+<polygon fill="#191970" stroke="#191970" points="70.5738,-5209.6958 67.0298,-5199.7113 63.5738,-5209.7266 70.5738,-5209.6958"/>
</g>
<!-- Node91 -->
<g id="node92" class="node">
<title>Node91</title>
-<g id="a_node92"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::String \>">
-<polygon fill="#ffffff" stroke="#000000" points="225,-6464 225,-6494 362,-6494 362,-6464 225,-6464"/>
-<text text-anchor="start" x="233" y="-6482" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-6471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::String ></text>
+<g id="a_node92"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::ObjectRef \>">
+<polygon fill="#ffffff" stroke="#000000" points="215.5,-6513 215.5,-6543 371.5,-6543 371.5,-6513 215.5,-6513"/>
+<text text-anchor="start" x="223.5" y="-6531" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-6520" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::ObjectRef ></text>
</a>
</g>
</g>
<!-- Node0->Node91 -->
<g id="edge91" class="edge">
<title>Node0->Node91</title>
-<path fill="none" stroke="#191970" d="M67.1652,-5185.8836C68.6367,-5341.165 81.6118,-6356.0933 170,-6455 183.8267,-6470.4721 204.3986,-6477.766 224.8055,-6480.8209"/>
-<polygon fill="#191970" stroke="#191970" points="70.662,-5185.4973 67.0725,-5175.5291 63.6623,-5185.5601 70.662,-5185.4973"/>
+<path fill="none" stroke="#191970" d="M67.1327,-5209.795C68.3636,-5366.4795 79.8942,-6403.0179 170,-6504 181.7064,-6517.1194 198.2623,-6524.3611 215.4603,-6528.1243"/>
+<polygon fill="#191970" stroke="#191970" points="70.6321,-5209.6874 67.0586,-5199.7134 63.6323,-5209.7389 70.6321,-5209.6874"/>
</g>
<!-- Node92 -->
<g id="node93" class="node">
<title>Node92</title>
-<g id="a_node93"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::Target \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-6415 229.5,-6445 357.5,-6445 357.5,-6415 229.5,-6415"/>
-<text text-anchor="start" x="237.5" y="-6433" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-6422" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Target ></text>
+<g id="a_node93"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::runtime::String \>">
+<polygon fill="#ffffff" stroke="#000000" points="225,-6464 225,-6494 362,-6494 362,-6464 225,-6464"/>
+<text text-anchor="start" x="233" y="-6482" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-6471" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::String ></text>
</a>
</g>
</g>
<!-- Node0->Node92 -->
<g id="edge92" class="edge">
<title>Node0->Node92</title>
-<path fill="none" stroke="#191970" d="M67.2275,-5185.5943C69.1588,-5336.5354 84.8887,-6311.0603 170,-6406 184.8715,-6422.5888 207.4982,-6429.7685 229.3393,-6432.4034"/>
-<polygon fill="#191970" stroke="#191970" points="70.7263,-5185.4606 67.1037,-5175.5044 63.7268,-5185.5466 70.7263,-5185.4606"/>
+<path fill="none" stroke="#191970" d="M67.1981,-5209.9883C68.9061,-5363.9647 83.2634,-6358.0884 170,-6455 183.8383,-6470.4617 204.4132,-6477.7529 224.8193,-6480.8085"/>
+<polygon fill="#191970" stroke="#191970" points="70.6949,-5209.6579 67.0893,-5199.6955 63.6953,-5209.7319 70.6949,-5209.6579"/>
</g>
<!-- Node93 -->
<g id="node94" class="node">
<title>Node93</title>
-<g id="a_node94"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::tir::IterVar \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-6366 229.5,-6396 357.5,-6396 357.5,-6366 229.5,-6366"/>
-<text text-anchor="start" x="237.5" y="-6384" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-6373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::IterVar ></text>
+<g id="a_node94"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::Target \>">
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-6415 229.5,-6445 357.5,-6445 357.5,-6415 229.5,-6415"/>
+<text text-anchor="start" x="237.5" y="-6433" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-6422" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::Target ></text>
</a>
</g>
</g>
<!-- Node0->Node93 -->
<g id="edge93" class="edge">
<title>Node0->Node93</title>
-<path fill="none" stroke="#191970" d="M67.3075,-5186.177C69.7675,-5335.5424 88.3248,-6266.2036 170,-6357 184.8996,-6373.5636 207.532,-6380.7381 229.3698,-6383.376"/>
-<polygon fill="#191970" stroke="#191970" points="70.801,-5185.7362 67.1421,-5175.7932 63.8019,-5185.8477 70.801,-5185.7362"/>
+<path fill="none" stroke="#191970" d="M67.2625,-5209.6769C69.4366,-5359.215 86.5351,-6313.0491 170,-6406 184.885,-6422.5767 207.5144,-6429.7539 229.3539,-6432.3902"/>
+<polygon fill="#191970" stroke="#191970" points="70.762,-5209.6066 67.1221,-5199.6567 63.7627,-5209.7048 70.762,-5209.6066"/>
</g>
<!-- Node94 -->
<g id="node95" class="node">
<title>Node94</title>
-<g id="a_node95"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::tir::Stmt \>">
-<polygon fill="#ffffff" stroke="#000000" points="229.5,-6317 229.5,-6347 357.5,-6347 357.5,-6317 229.5,-6317"/>
-<text text-anchor="start" x="237.5" y="-6335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="293.5" y="-6324" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Stmt ></text>
+<g id="a_node95"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::tir::IterVar \>">
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-6366 229.5,-6396 357.5,-6396 357.5,-6366 229.5,-6366"/>
+<text text-anchor="start" x="237.5" y="-6384" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-6373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::IterVar ></text>
</a>
</g>
</g>
<!-- Node0->Node94 -->
<g id="edge94" class="edge">
<title>Node0->Node94</title>
-<path fill="none" stroke="#191970" d="M67.3864,-5185.7726C70.3887,-5330.2376 91.9839,-6219.9191 170,-6307 184.8892,-6323.6192 207.5195,-6330.9638 229.3585,-6333.7861"/>
-<polygon fill="#191970" stroke="#191970" points="70.8844,-5185.6331 67.1827,-5175.7061 63.8859,-5185.7749 70.8844,-5185.6331"/>
+<path fill="none" stroke="#191970" d="M67.3378,-5209.7715C70.018,-5356.1351 89.8798,-6268.0902 170,-6357 184.9142,-6373.5504 207.5496,-6380.7223 229.3857,-6383.3617"/>
+<polygon fill="#191970" stroke="#191970" points="70.8342,-5209.5326 67.157,-5199.5964 63.8353,-5209.6571 70.8342,-5209.5326"/>
</g>
<!-- Node95 -->
<g id="node96" class="node">
<title>Node95</title>
-<g id="a_node96"><a xlink:href="classtvm_1_1AffineType.html" target="_top" xlink:title="Managed reference to AffineTypeNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="247,-6278.5 247,-6297.5 340,-6297.5 340,-6278.5 247,-6278.5"/>
-<text text-anchor="middle" x="293.5" y="-6285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AffineType</text>
+<g id="a_node96"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="tvm::runtime::Optional\l\< tvm::tir::Stmt \>">
+<polygon fill="#ffffff" stroke="#000000" points="229.5,-6317 229.5,-6347 357.5,-6347 357.5,-6317 229.5,-6317"/>
+<text text-anchor="start" x="237.5" y="-6335" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="293.5" y="-6324" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::tir::Stmt ></text>
</a>
</g>
</g>
<!-- Node0->Node95 -->
<g id="edge95" class="edge">
<title>Node0->Node95</title>
-<path fill="none" stroke="#191970" d="M67.4152,-5186.016C70.5583,-5328.5841 92.6307,-6186.8815 170,-6269 189.2645,-6289.447 220.6416,-6294.0694 246.9471,-6293.6449"/>
-<polygon fill="#191970" stroke="#191970" points="70.9081,-5185.6448 67.1942,-5175.7222 63.9097,-5185.7951 70.9081,-5185.6448"/>
+<path fill="none" stroke="#191970" d="M67.427,-5209.7856C70.6867,-5352.539 93.6063,-6221.8947 170,-6307 184.9052,-6323.6049 207.5387,-6330.9466 229.3759,-6333.7706"/>
+<polygon fill="#191970" stroke="#191970" points="70.9199,-5209.422 67.198,-5199.5025 63.9216,-5209.578 70.9199,-5209.422"/>
</g>
-<!-- Node98 -->
-<g id="node99" class="node">
-<title>Node98</title>
-<g id="a_node99"><a xlink:href="classtvm_1_1arith_1_1ConstIntBound.html" target="_top" xlink:title="reference class to ConstIntBoundNode ">
-<polygon fill="#ffffff" stroke="#000000" points="222.5,-6240.5 222.5,-6259.5 364.5,-6259.5 364.5,-6240.5 222.5,-6240.5"/>
-<text text-anchor="middle" x="293.5" y="-6247.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ConstIntBound</text>
+<!-- Node96 -->
+<g id="node97" class="node">
+<title>Node96</title>
+<g id="a_node97"><a xlink:href="classtvm_1_1AffineType.html" target="_top" xlink:title="Managed reference to AffineTypeNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="247,-6278.5 247,-6297.5 340,-6297.5 340,-6278.5 247,-6278.5"/>
+<text text-anchor="middle" x="293.5" y="-6285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AffineType</text>
</a>
</g>
</g>
-<!-- Node0->Node98 -->
-<g id="edge98" class="edge">
-<title>Node0->Node98</title>
-<path fill="none" stroke="#191970" d="M67.4786,-5185.7587C71.0272,-5324.7162 95.2194,-6151.8913 170,-6231 183.4864,-6245.267 202.8717,-6251.8213 222.2998,-6254.333"/>
-<polygon fill="#191970" stroke="#191970" points="70.9761,-5185.6125 67.2276,-5175.703 63.9783,-5185.7872 70.9761,-5185.6125"/>
+<!-- Node0->Node96 -->
+<g id="edge96" class="edge">
+<title>Node0->Node96</title>
+<path fill="none" stroke="#191970" d="M67.4483,-5209.5817C70.8228,-5349.0568 94.2167,-6188.7306 170,-6269 189.2855,-6289.4272 220.6624,-6294.0498 246.9625,-6293.6304"/>
+<polygon fill="#191970" stroke="#191970" points="70.9457,-5209.4259 67.2104,-5199.5113 63.9476,-5209.5912 70.9457,-5209.4259"/>
</g>
<!-- Node99 -->
<g id="node100" class="node">
<title>Node99</title>
-<g id="a_node100"><a xlink:href="classtvm_1_1arith_1_1IntConstraints.html" target="_top" xlink:title="Managed reference to IntConstraintsNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="224,-6202.5 224,-6221.5 363,-6221.5 363,-6202.5 224,-6202.5"/>
-<text text-anchor="middle" x="293.5" y="-6209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraints</text>
+<g id="a_node100"><a xlink:href="classtvm_1_1arith_1_1ConstIntBound.html" target="_top" xlink:title="reference class to ConstIntBoundNode ">
+<polygon fill="#ffffff" stroke="#000000" points="222.5,-6240.5 222.5,-6259.5 364.5,-6259.5 364.5,-6240.5 222.5,-6240.5"/>
+<text text-anchor="middle" x="293.5" y="-6247.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ConstIntBound</text>
</a>
</g>
</g>
<!-- Node0->Node99 -->
<g id="edge99" class="edge">
<title>Node0->Node99</title>
-<path fill="none" stroke="#191970" d="M67.5563,-5185.8844C71.5576,-5322.3224 97.8748,-6116.9707 170,-6193 183.8849,-6207.6365 203.9803,-6214.1462 223.9414,-6216.502"/>
-<polygon fill="#191970" stroke="#191970" points="71.0486,-5185.5614 67.2628,-5175.6661 64.0515,-5185.7625 71.0486,-5185.5614"/>
+<path fill="none" stroke="#191970" d="M67.5358,-5210.1546C71.3987,-5348.4468 96.9528,-6153.8957 170,-6231 183.5022,-6245.2521 202.8921,-6251.802 222.3195,-6254.3143"/>
+<polygon fill="#191970" stroke="#191970" points="71.0247,-5209.6981 67.2527,-5199.7975 64.0273,-5209.8894 71.0247,-5209.6981"/>
</g>
<!-- Node100 -->
<g id="node101" class="node">
<title>Node100</title>
-<g id="a_node101"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsTransform.html" target="_top" xlink:title="Managed reference to IntConstraintsTransformNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="224,-6153 224,-6183 363,-6183 363,-6153 224,-6153"/>
-<text text-anchor="start" x="232" y="-6171" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraints</text>
-<text text-anchor="middle" x="293.5" y="-6160" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Transform</text>
+<g id="a_node101"><a xlink:href="classtvm_1_1arith_1_1IntConstraints.html" target="_top" xlink:title="Managed reference to IntConstraintsNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="224,-6202.5 224,-6221.5 363,-6221.5 363,-6202.5 224,-6202.5"/>
+<text text-anchor="middle" x="293.5" y="-6209.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraints</text>
</a>
</g>
</g>
<!-- Node0->Node100 -->
<g id="edge100" class="edge">
<title>Node0->Node100</title>
-<path fill="none" stroke="#191970" d="M67.7127,-5186.0986C72.6095,-5319.102 103.0919,-6069.436 170,-6143 183.6888,-6158.0505 203.7305,-6165.4652 223.7028,-6168.8057"/>
-<polygon fill="#191970" stroke="#191970" points="71.1987,-5185.6454 67.3389,-5175.7786 64.2032,-5185.8988 71.1987,-5185.6454"/>
+<path fill="none" stroke="#191970" d="M67.6048,-5209.8384C71.8875,-5344.2918 99.5284,-6118.8903 170,-6193 183.9023,-6207.62 204.0024,-6214.1252 223.9625,-6216.482"/>
+<polygon fill="#191970" stroke="#191970" points="71.1002,-5209.6325 67.2894,-5199.7467 64.1036,-5209.8512 71.1002,-5209.6325"/>
</g>
<!-- Node101 -->
<g id="node102" class="node">
<title>Node101</title>
-<g id="a_node102"><a xlink:href="classtvm_1_1arith_1_1IntGroupBounds.html" target="_top" xlink:title="Managed reference to IntGroupBoundsNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="219,-6114.5 219,-6133.5 368,-6133.5 368,-6114.5 219,-6114.5"/>
-<text text-anchor="middle" x="293.5" y="-6121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntGroupBounds</text>
+<g id="a_node102"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsTransform.html" target="_top" xlink:title="Managed reference to IntConstraintsTransformNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="224,-6153 224,-6183 363,-6183 363,-6153 224,-6153"/>
+<text text-anchor="start" x="232" y="-6171" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntConstraints</text>
+<text text-anchor="middle" x="293.5" y="-6160" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">Transform</text>
</a>
</g>
</g>
<!-- Node0->Node101 -->
<g id="edge101" class="edge">
<title>Node0->Node101</title>
-<path fill="none" stroke="#191970" d="M67.747,-5185.7577C72.8132,-5314.9423 103.9409,-6036.0103 170,-6105 182.7526,-6118.3183 200.6519,-6124.8871 218.8742,-6127.7202"/>
-<polygon fill="#191970" stroke="#191970" points="71.2424,-5185.5701 67.3592,-5175.7125 64.2477,-5185.8401 71.2424,-5185.5701"/>
+<path fill="none" stroke="#191970" d="M67.7491,-5209.6065C72.8821,-5339.3527 104.623,-6071.3087 170,-6143 183.7085,-6158.0325 203.7557,-6165.4423 223.7268,-6168.7839"/>
+<polygon fill="#191970" stroke="#191970" points="71.2436,-5209.3953 67.3568,-5199.5392 64.2489,-5209.6679 71.2436,-5209.3953"/>
</g>
<!-- Node102 -->
<g id="node103" class="node">
<title>Node102</title>
-<g id="a_node103"><a xlink:href="classtvm_1_1arith_1_1IntSet.html" target="_top" xlink:title="Managed reference to IntSetNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="244,-6076.5 244,-6095.5 343,-6095.5 343,-6076.5 244,-6076.5"/>
-<text text-anchor="middle" x="293.5" y="-6083.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntSet</text>
+<g id="a_node103"><a xlink:href="classtvm_1_1arith_1_1IntGroupBounds.html" target="_top" xlink:title="Managed reference to IntGroupBoundsNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="219,-6114.5 219,-6133.5 368,-6133.5 368,-6114.5 219,-6114.5"/>
+<text text-anchor="middle" x="293.5" y="-6121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntGroupBounds</text>
</a>
</g>
</g>
<!-- Node0->Node102 -->
<g id="edge102" class="edge">
<title>Node0->Node102</title>
-<path fill="none" stroke="#191970" d="M67.8413,-5185.7291C73.3971,-5311.7646 106.5608,-6001.0486 170,-6067 188.6481,-6086.3865 218.2063,-6091.4501 243.7303,-6091.5177"/>
-<polygon fill="#191970" stroke="#191970" points="71.3324,-5185.4468 67.4016,-5175.6081 64.339,-5185.7507 71.3324,-5185.4468"/>
+<path fill="none" stroke="#191970" d="M67.8181,-5210.0346C73.229,-5338.0218 105.6455,-6037.9814 170,-6105 182.7715,-6118.3002 200.6771,-6124.8629 218.8995,-6127.6959"/>
+<polygon fill="#191970" stroke="#191970" points="71.3033,-5209.6026 67.3902,-5199.7569 64.3093,-5209.8939 71.3033,-5209.6026"/>
</g>
<!-- Node103 -->
<g id="node104" class="node">
<title>Node103</title>
-<g id="a_node104"><a xlink:href="classtvm_1_1arith_1_1IterMapResult.html" target="_top" xlink:title="Managed reference to IterMapResultNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="225,-6038.5 225,-6057.5 362,-6057.5 362,-6038.5 225,-6038.5"/>
-<text text-anchor="middle" x="293.5" y="-6045.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IterMapResult</text>
+<g id="a_node104"><a xlink:href="classtvm_1_1arith_1_1IntSet.html" target="_top" xlink:title="Managed reference to IntSetNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="244,-6076.5 244,-6095.5 343,-6095.5 343,-6076.5 244,-6076.5"/>
+<text text-anchor="middle" x="293.5" y="-6083.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IntSet</text>
</a>
</g>
</g>
<!-- Node0->Node103 -->
<g id="edge103" class="edge">
<title>Node0->Node103</title>
-<path fill="none" stroke="#191970" d="M67.9601,-5186.0348C74.0709,-5309.7136 109.2327,-5966.1395 170,-6029 184.1729,-6043.6611 204.5887,-6050.1172 224.7518,-6052.4171"/>
-<polygon fill="#191970" stroke="#191970" points="71.4424,-5185.5845 67.4595,-5175.7668 64.4507,-5185.9254 71.4424,-5185.5845"/>
+<path fill="none" stroke="#191970" d="M67.917,-5209.9664C73.8264,-5334.642 108.2562,-6003.0092 170,-6067 188.678,-6086.3577 218.2371,-6091.4204 243.7541,-6091.4947"/>
+<polygon fill="#191970" stroke="#191970" points="71.3973,-5209.4625 67.4342,-5199.6369 64.405,-5209.7894 71.3973,-5209.4625"/>
</g>
<!-- Node104 -->
<g id="node105" class="node">
<title>Node104</title>
-<g id="a_node105"><a xlink:href="classtvm_1_1arith_1_1IterMark.html" target="_top" xlink:title="Managed reference to IterMarkExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="238,-6000.5 238,-6019.5 349,-6019.5 349,-6000.5 238,-6000.5"/>
-<text text-anchor="middle" x="293.5" y="-6007.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IterMark</text>
+<g id="a_node105"><a xlink:href="classtvm_1_1arith_1_1IterMapResult.html" target="_top" xlink:title="Managed reference to IterMapResultNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="225,-6038.5 225,-6057.5 362,-6057.5 362,-6038.5 225,-6038.5"/>
+<text text-anchor="middle" x="293.5" y="-6045.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IterMapResult</text>
</a>
</g>
</g>
<!-- Node0->Node104 -->
<g id="edge104" class="edge">
<title>Node0->Node104</title>
-<path fill="none" stroke="#191970" d="M68.0671,-5185.8901C74.6919,-5305.9811 111.827,-5931.1484 170,-5991 187.3121,-6008.8116 213.8437,-6014.4911 237.8845,-6015.3278"/>
-<polygon fill="#191970" stroke="#191970" points="71.546,-5185.4076 67.5071,-5175.6129 64.5564,-5185.7885 71.546,-5185.4076"/>
+<path fill="none" stroke="#191970" d="M68.0221,-5209.8583C74.4429,-5331.0642 110.8577,-5968.026 170,-6029 184.1975,-6043.6372 204.6199,-6050.087 224.7814,-6052.3884"/>
+<polygon fill="#191970" stroke="#191970" points="71.5124,-5209.5788 67.4946,-5199.7754 64.522,-5209.9446 71.5124,-5209.5788"/>
</g>
<!-- Node105 -->
<g id="node106" class="node">
<title>Node105</title>
-<g id="a_node106"><a xlink:href="classtvm_1_1arith_1_1ModularSet.html" target="_top" xlink:title="reference of ModularSetNode ">
-<polygon fill="#ffffff" stroke="#000000" points="231,-5962.5 231,-5981.5 356,-5981.5 356,-5962.5 231,-5962.5"/>
-<text text-anchor="middle" x="293.5" y="-5969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ModularSet</text>
+<g id="a_node106"><a xlink:href="classtvm_1_1arith_1_1IterMark.html" target="_top" xlink:title="Managed reference to IterMarkExprNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="238,-6000.5 238,-6019.5 349,-6019.5 349,-6000.5 238,-6000.5"/>
+<text text-anchor="middle" x="293.5" y="-6007.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::IterMark</text>
</a>
</g>
</g>
<!-- Node0->Node105 -->
<g id="edge105" class="edge">
<title>Node0->Node105</title>
-<path fill="none" stroke="#191970" d="M68.1806,-5185.7028C75.332,-5302.0503 114.4117,-5896.146 170,-5953 185.6966,-5969.054 208.8878,-5975.2325 230.9479,-5976.8966"/>
-<polygon fill="#191970" stroke="#191970" points="71.6733,-5185.4758 67.5729,-5175.7066 64.6862,-5185.9006 71.6733,-5185.4758"/>
+<path fill="none" stroke="#191970" d="M68.1323,-5209.6812C75.0732,-5327.1932 113.4452,-5933.0272 170,-5991 187.3449,-6008.7797 213.8799,-6014.4558 237.9145,-6015.2986"/>
+<polygon fill="#191970" stroke="#191970" points="71.621,-5209.3836 67.544,-5199.6046 64.6329,-5209.7916 71.621,-5209.3836"/>
</g>
<!-- Node106 -->
<g id="node107" class="node">
<title>Node106</title>
-<g id="a_node107"><a xlink:href="classtvm_1_1AttrFieldInfo.html" target="_top" xlink:title="AttrFieldInfo. ">
-<polygon fill="#ffffff" stroke="#000000" points="243,-5924.5 243,-5943.5 344,-5943.5 344,-5924.5 243,-5924.5"/>
-<text text-anchor="middle" x="293.5" y="-5931.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrFieldInfo</text>
+<g id="a_node107"><a xlink:href="classtvm_1_1arith_1_1ModularSet.html" target="_top" xlink:title="reference of ModularSetNode ">
+<polygon fill="#ffffff" stroke="#000000" points="231,-5962.5 231,-5981.5 356,-5981.5 356,-5962.5 231,-5962.5"/>
+<text text-anchor="middle" x="293.5" y="-5969.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::arith::ModularSet</text>
</a>
</g>
</g>
<!-- Node0->Node106 -->
<g id="edge106" class="edge">
<title>Node0->Node106</title>
-<path fill="none" stroke="#191970" d="M68.3234,-5185.7994C76.0713,-5299.011 117.038,-5861.1843 170,-5915 188.64,-5933.9404 217.7196,-5939.1048 242.9797,-5939.3404"/>
-<polygon fill="#191970" stroke="#191970" points="71.8115,-5185.5031 67.6436,-5175.7625 64.8275,-5185.9762 71.8115,-5185.5031"/>
+<path fill="none" stroke="#191970" d="M68.2718,-5209.8061C75.8039,-5324.2838 116.0776,-5898.0725 170,-5953 185.729,-5969.0222 208.9265,-5975.1946 230.9824,-5976.8628"/>
+<polygon fill="#191970" stroke="#191970" points="71.7547,-5209.4277 67.6124,-5199.6762 64.7695,-5209.8825 71.7547,-5209.4277"/>
</g>
<!-- Node107 -->
<g id="node108" class="node">
<title>Node107</title>
-<g id="a_node108"><a xlink:href="classtvm_1_1Attrs.html" target="_top" xlink:title="Managed reference to BaseAttrsNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="261,-5886.5 261,-5905.5 326,-5905.5 326,-5886.5 261,-5886.5"/>
-<text text-anchor="middle" x="293.5" y="-5893.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::Attrs</text>
+<g id="a_node108"><a xlink:href="classtvm_1_1AttrFieldInfo.html" target="_top" xlink:title="AttrFieldInfo. ">
+<polygon fill="#ffffff" stroke="#000000" points="243,-5924.5 243,-5943.5 344,-5943.5 344,-5924.5 243,-5924.5"/>
+<text text-anchor="middle" x="293.5" y="-5931.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::AttrFieldInfo</text>
</a>
</g>
</g>
<!-- Node0->Node107 -->
<g id="edge107" class="edge">
<title>Node0->Node107</title>
-<path fill="none" stroke="#191970" d="M68.4749,-5185.8003C76.831,-5295.5601 119.6449,-5826.2006 170,-5877 193.366,-5900.5722 232.9157,-5902.7549 260.9583,-5900.6954"/>
-<polygon fill="#191970" stroke="#191970" points="71.942,-5185.2308 67.7,-5175.5223 64.9618,-5185.7571 71.942,-5185.2308"/>
+<path fill="none" stroke="#191970" d="M68.4209,-5209.8501C76.5586,-5321.0051 118.6927,-5863.0979 170,-5915 188.606,-5933.8216 217.5264,-5939.019 242.7047,-5939.3032"/>
+<polygon fill="#191970" stroke="#191970" points="71.8997,-5209.4297 67.6858,-5199.709 64.9181,-5209.9359 71.8997,-5209.4297"/>
</g>
-<!-- Node109 -->
-<g id="node110" class="node">
-<title>Node109</title>
-<g id="a_node110"><a xlink:href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html" target="_top" xlink:title="Managed reference to AccessAnalyzerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5837 235.5,-5867 351.5,-5867 351.5,-5837 235.5,-5837"/>
-<text text-anchor="start" x="243.5" y="-5855" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5844" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AccessAnalyzer</text>
+<!-- Node108 -->
+<g id="node109" class="node">
+<title>Node108</title>
+<g id="a_node109"><a xlink:href="classtvm_1_1Attrs.html" target="_top" xlink:title="Managed reference to BaseAttrsNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="261,-5886.5 261,-5905.5 326,-5905.5 326,-5886.5 261,-5886.5"/>
+<text text-anchor="middle" x="293.5" y="-5893.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::Attrs</text>
</a>
</g>
</g>
-<!-- Node0->Node109 -->
-<g id="edge109" class="edge">
-<title>Node0->Node109</title>
-<path fill="none" stroke="#191970" d="M68.7225,-5185.7067C78.0633,-5290.5776 123.921,-5780.1556 170,-5828 186.7426,-5845.3841 212.0414,-5852.2323 235.3906,-5854.4013"/>
-<polygon fill="#191970" stroke="#191970" points="72.1942,-5185.2314 67.8279,-5175.5782 65.2214,-5185.8474 72.1942,-5185.2314"/>
+<!-- Node0->Node108 -->
+<g id="edge108" class="edge">
+<title>Node0->Node108</title>
+<path fill="none" stroke="#191970" d="M68.5798,-5209.8093C77.3369,-5317.3592 121.2902,-5828.1033 170,-5877 193.4243,-5900.5142 232.9626,-5902.7083 260.9866,-5900.6673"/>
+<polygon fill="#191970" stroke="#191970" points="72.0572,-5209.3867 67.7642,-5199.7006 65.0798,-5209.9498 72.0572,-5209.3867"/>
</g>
<!-- Node110 -->
<g id="node111" class="node">
<title>Node110</title>
-<g id="a_node111"><a xlink:href="classtvm_1_1auto__scheduler_1_1AttachMap.html" target="_top" xlink:title="Managed reference to AttachMapNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5788 235.5,-5818 351.5,-5818 351.5,-5788 235.5,-5788"/>
-<text text-anchor="start" x="243.5" y="-5806" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5795" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttachMap</text>
+<g id="a_node111"><a xlink:href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html" target="_top" xlink:title="Managed reference to AccessAnalyzerNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5837 235.5,-5867 351.5,-5867 351.5,-5837 235.5,-5837"/>
+<text text-anchor="start" x="243.5" y="-5855" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5844" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AccessAnalyzer</text>
</a>
</g>
</g>
<!-- Node0->Node110 -->
<g id="edge110" class="edge">
<title>Node0->Node110</title>
-<path fill="none" stroke="#191970" d="M67.4107,-5185.9118C69.7995,-5281.4414 84.9449,-5691.7506 170,-5779 186.8477,-5796.2823 212.1608,-5803.1167 235.4924,-5805.3026"/>
-<polygon fill="#191970" stroke="#191970" points="70.9087,-5185.7817 67.1788,-5175.8652 63.9106,-5185.9433 70.9087,-5185.7817"/>
+<path fill="none" stroke="#191970" d="M67.2708,-5210.0861C69.0183,-5308.2873 81.6732,-5736.8116 170,-5828 186.7922,-5845.3362 212.0977,-5852.1779 235.4386,-5854.3549"/>
+<polygon fill="#191970" stroke="#191970" points="70.7658,-5209.7359 67.1074,-5199.7928 63.7667,-5209.8471 70.7658,-5209.7359"/>
</g>
<!-- Node111 -->
<g id="node112" class="node">
<title>Node111</title>
-<g id="a_node112"><a xlink:href="classtvm_1_1auto__scheduler_1_1BuildResult.html" target="_top" xlink:title="Managed reference to BuildResultNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5739 235.5,-5769 351.5,-5769 351.5,-5739 235.5,-5739"/>
-<text text-anchor="start" x="243.5" y="-5757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5746" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuildResult</text>
+<g id="a_node112"><a xlink:href="classtvm_1_1auto__scheduler_1_1AttachMap.html" target="_top" xlink:title="Managed reference to AttachMapNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5788 235.5,-5818 351.5,-5818 351.5,-5788 235.5,-5788"/>
+<text text-anchor="start" x="243.5" y="-5806" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5795" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::AttachMap</text>
</a>
</g>
</g>
<!-- Node0->Node111 -->
<g id="edge111" class="edge">
<title>Node0->Node111</title>
-<path fill="none" stroke="#191970" d="M67.7189,-5185.7225C71.4287,-5276.1964 91.3899,-5650.496 170,-5730 186.8928,-5747.0849 212.0704,-5753.9186 235.294,-5756.1564"/>
-<polygon fill="#191970" stroke="#191970" points="71.2078,-5185.3662 67.3212,-5175.5101 64.2131,-5185.6387 71.2078,-5185.3662"/>
+<path fill="none" stroke="#191970" d="M67.5624,-5210.014C70.607,-5303.4384 88.161,-5695.6063 170,-5779 186.8286,-5796.1482 211.997,-5802.9909 235.2313,-5805.2182"/>
+<polygon fill="#191970" stroke="#191970" points="71.058,-5209.8154 67.2535,-5199.9273 64.0613,-5210.0297 71.058,-5209.8154"/>
</g>
<!-- Node112 -->
<g id="node113" class="node">
<title>Node112</title>
-<g id="a_node113"><a xlink:href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html" target="_top" xlink:title="Managed reference to ComputeDAGNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5690 235.5,-5720 351.5,-5720 351.5,-5690 235.5,-5690"/>
-<text text-anchor="start" x="243.5" y="-5708" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5697" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeDAG</text>
+<g id="a_node113"><a xlink:href="classtvm_1_1auto__scheduler_1_1BuildResult.html" target="_top" xlink:title="Managed reference to BuildResultNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5739 235.5,-5769 351.5,-5769 351.5,-5739 235.5,-5739"/>
+<text text-anchor="start" x="243.5" y="-5757" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5746" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuildResult</text>
</a>
</g>
</g>
<!-- Node0->Node112 -->
<g id="edge112" class="edge">
<title>Node0->Node112</title>
-<path fill="none" stroke="#191970" d="M68.1007,-5185.9064C73.2614,-5271.768 97.9191,-5609.3113 170,-5681 187.0354,-5697.9427 212.233,-5704.7565 235.4331,-5707.0176"/>
-<polygon fill="#191970" stroke="#191970" points="71.5942,-5185.6907 67.521,-5175.9102 64.6059,-5186.0961 71.5942,-5185.6907"/>
+<path fill="none" stroke="#191970" d="M67.8921,-5209.7184C72.2881,-5297.8078 94.5646,-5654.303 170,-5730 186.9597,-5747.0185 212.1466,-5753.8429 235.3592,-5756.0916"/>
+<polygon fill="#191970" stroke="#191970" points="71.3785,-5209.3477 67.4049,-5199.5262 64.3865,-5209.682 71.3785,-5209.3477"/>
</g>
<!-- Node113 -->
<g id="node114" class="node">
<title>Node113</title>
-<g id="a_node114"><a xlink:href="classtvm_1_1auto__scheduler_1_1CostModel.html" target="_top" xlink:title="Managed reference to CostModelNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5641 235.5,-5671 351.5,-5671 351.5,-5641 235.5,-5641"/>
-<text text-anchor="start" x="243.5" y="-5659" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5648" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModel</text>
+<g id="a_node114"><a xlink:href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html" target="_top" xlink:title="Managed reference to ComputeDAGNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5690 235.5,-5720 351.5,-5720 351.5,-5690 235.5,-5690"/>
+<text text-anchor="start" x="243.5" y="-5708" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5697" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ComputeDAG</text>
</a>
</g>
</g>
<!-- Node0->Node113 -->
<g id="edge113" class="edge">
<title>Node0->Node113</title>
-<path fill="none" stroke="#191970" d="M68.5615,-5186.0287C75.2786,-5266.8968 104.4005,-5568.0582 170,-5632 187.1269,-5648.6941 212.1975,-5655.4979 235.2826,-5657.8179"/>
-<polygon fill="#191970" stroke="#191970" points="72.0251,-5185.436 67.7313,-5175.7503 65.0478,-5185.9996 72.0251,-5185.436"/>
+<path fill="none" stroke="#191970" d="M68.3191,-5210.0284C74.236,-5293.5773 101.1149,-5613.1295 170,-5681 187.0369,-5697.786 212.0945,-5704.6031 235.1942,-5706.9082"/>
+<polygon fill="#191970" stroke="#191970" points="71.7976,-5209.5933 67.6212,-5199.8564 64.814,-5210.0726 71.7976,-5209.5933"/>
</g>
-<!-- Node116 -->
-<g id="node117" class="node">
-<title>Node116</title>
-<g id="a_node117"><a xlink:href="classtvm_1_1auto__scheduler_1_1HardwareParams.html" target="_top" xlink:title="Managed reference to HardwareParamsNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5592 235.5,-5622 351.5,-5622 351.5,-5592 235.5,-5592"/>
-<text text-anchor="start" x="243.5" y="-5610" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5599" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::HardwareParams</text>
+<!-- Node114 -->
+<g id="node115" class="node">
+<title>Node114</title>
+<g id="a_node115"><a xlink:href="classtvm_1_1auto__scheduler_1_1CostModel.html" target="_top" xlink:title="Managed reference to CostModelNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5641 235.5,-5671 351.5,-5671 351.5,-5641 235.5,-5641"/>
+<text text-anchor="start" x="243.5" y="-5659" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5648" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModel</text>
</a>
</g>
</g>
-<!-- Node0->Node116 -->
-<g id="edge116" class="edge">
-<title>Node0->Node116</title>
-<path fill="none" stroke="#191970" d="M69.0966,-5185.8354C77.4432,-5260.9684 110.763,-5526.6654 170,-5583 187.3312,-5599.482 212.4312,-5606.2551 235.4833,-5608.6095"/>
-<polygon fill="#191970" stroke="#191970" points="72.5688,-5185.3884 68.0085,-5175.8252 65.6098,-5186.1449 72.5688,-5185.3884"/>
+<!-- Node0->Node114 -->
+<g id="edge114" class="edge">
+<title>Node0->Node114</title>
+<path fill="none" stroke="#191970" d="M68.8151,-5209.9864C76.3236,-5288.1515 107.535,-5571.8049 170,-5632 187.2219,-5648.5961 212.3062,-5655.3857 235.3759,-5657.7216"/>
+<polygon fill="#191970" stroke="#191970" points="72.2626,-5209.2611 67.8451,-5199.6312 65.2931,-5209.914 72.2626,-5209.2611"/>
</g>
<!-- Node117 -->
<g id="node118" class="node">
<title>Node117</title>
-<g id="a_node118"><a xlink:href="classtvm_1_1auto__scheduler_1_1Iterator.html" target="_top" xlink:title="Managed reference to IteratorNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5543 235.5,-5573 351.5,-5573 351.5,-5543 235.5,-5543"/>
-<text text-anchor="start" x="243.5" y="-5561" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5550" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Iterator</text>
+<g id="a_node118"><a xlink:href="classtvm_1_1auto__scheduler_1_1HardwareParams.html" target="_top" xlink:title="Managed reference to HardwareParamsNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5592 235.5,-5622 351.5,-5622 351.5,-5592 235.5,-5592"/>
+<text text-anchor="start" x="243.5" y="-5610" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5599" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::HardwareParams</text>
</a>
</g>
</g>
<!-- Node0->Node117 -->
<g id="edge117" class="edge">
<title>Node0->Node117</title>
-<path fill="none" stroke="#191970" d="M69.7693,-5185.6953C79.8949,-5254.8778 117.1002,-5485.2189 170,-5534 187.5023,-5550.1396 212.4895,-5556.8862 235.4149,-5559.3127"/>
-<polygon fill="#191970" stroke="#191970" points="73.2196,-5185.0986 68.3319,-5175.6985 66.2908,-5186.0949 73.2196,-5185.0986"/>
+<path fill="none" stroke="#191970" d="M69.3869,-5209.6127C78.5548,-5281.672 113.8326,-5530.3371 170,-5583 187.3678,-5599.2842 212.3351,-5606.0523 235.2819,-5608.4557"/>
+<polygon fill="#191970" stroke="#191970" points="72.8515,-5209.1109 68.1404,-5199.6211 65.9053,-5209.9774 72.8515,-5209.1109"/>
</g>
<!-- Node118 -->
<g id="node119" class="node">
<title>Node118</title>
-<g id="a_node119"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html" target="_top" xlink:title="Managed reference to MeasureCallbackNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5494 235.5,-5524 351.5,-5524 351.5,-5494 235.5,-5494"/>
-<text text-anchor="start" x="243.5" y="-5512" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5501" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback</text>
+<g id="a_node119"><a xlink:href="classtvm_1_1auto__scheduler_1_1Iterator.html" target="_top" xlink:title="Managed reference to IteratorNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5543 235.5,-5573 351.5,-5573 351.5,-5543 235.5,-5543"/>
+<text text-anchor="start" x="243.5" y="-5561" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5550" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Iterator</text>
</a>
</g>
</g>
<!-- Node0->Node118 -->
<g id="edge118" class="edge">
<title>Node0->Node118</title>
-<path fill="none" stroke="#191970" d="M70.6956,-5185.8725C82.8478,-5249.081 123.4643,-5443.7541 170,-5485 187.7351,-5500.7191 212.6213,-5507.425 235.4111,-5509.9341"/>
-<polygon fill="#191970" stroke="#191970" points="74.0625,-5184.8407 68.7628,-5175.6667 67.1848,-5186.1433 74.0625,-5184.8407"/>
+<path fill="none" stroke="#191970" d="M70.1747,-5209.6905C81.2466,-5275.9053 120.2024,-5488.9027 170,-5534 187.566,-5549.9079 212.4264,-5556.6425 235.2427,-5559.1221"/>
+<polygon fill="#191970" stroke="#191970" points="73.6136,-5209.0324 68.5364,-5199.7334 66.7065,-5210.169 73.6136,-5209.0324"/>
</g>
-<!-- Node121 -->
-<g id="node122" class="node">
-<title>Node121</title>
-<g id="a_node122"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureInput.html" target="_top" xlink:title="Managed reference to MeasureInputNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5445 235.5,-5475 351.5,-5475 351.5,-5445 235.5,-5445"/>
-<text text-anchor="start" x="243.5" y="-5463" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5452" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureInput</text>
+<!-- Node119 -->
+<g id="node120" class="node">
+<title>Node119</title>
+<g id="a_node120"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureCallback.html" target="_top" xlink:title="Managed reference to MeasureCallbackNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5494 235.5,-5524 351.5,-5524 351.5,-5494 235.5,-5494"/>
+<text text-anchor="start" x="243.5" y="-5512" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5501" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback</text>
</a>
</g>
</g>
-<!-- Node0->Node121 -->
-<g id="edge121" class="edge">
-<title>Node0->Node121</title>
-<path fill="none" stroke="#191970" d="M68.2603,-5185.9753C72.5811,-5236.4517 91.2694,-5369.8008 170,-5436 188.0552,-5451.1814 212.8566,-5457.8249 235.4988,-5460.4325"/>
-<polygon fill="#191970" stroke="#191970" points="71.7321,-5185.4679 67.4906,-5175.7592 64.7519,-5185.9939 71.7321,-5185.4679"/>
+<!-- Node0->Node119 -->
+<g id="edge119" class="edge">
+<title>Node0->Node119</title>
+<path fill="none" stroke="#191970" d="M71.1701,-5209.5456C84.2918,-5269.2258 126.4557,-5447.3136 170,-5485 187.8368,-5500.4373 212.6042,-5507.1208 235.2799,-5509.6891"/>
+<polygon fill="#191970" stroke="#191970" points="74.5426,-5208.5823 69.0024,-5199.5514 67.7017,-5210.0661 74.5426,-5208.5823"/>
</g>
<!-- Node122 -->
<g id="node123" class="node">
<title>Node122</title>
-<g id="a_node123"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureResult.html" target="_top" xlink:title="Managed reference to MeasureResultNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5396 235.5,-5426 351.5,-5426 351.5,-5396 235.5,-5396"/>
-<text text-anchor="start" x="243.5" y="-5414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureResult</text>
+<g id="a_node123"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureInput.html" target="_top" xlink:title="Managed reference to MeasureInputNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5445 235.5,-5475 351.5,-5475 351.5,-5445 235.5,-5445"/>
+<text text-anchor="start" x="243.5" y="-5463" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5452" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureInput</text>
</a>
</g>
</g>
<!-- Node0->Node122 -->
<g id="edge122" class="edge">
<title>Node0->Node122</title>
-<path fill="none" stroke="#191970" d="M70.0981,-5185.8635C78.0439,-5229.7042 103.416,-5334.9706 170,-5387 188.4155,-5401.3901 213.012,-5407.9437 235.4054,-5410.6977"/>
-<polygon fill="#191970" stroke="#191970" points="73.5288,-5185.1593 68.4036,-5175.8866 66.6276,-5186.3315 73.5288,-5185.1593"/>
+<path fill="none" stroke="#191970" d="M69.0619,-5209.7908C75.0961,-5257.0096 97.1783,-5376.7367 170,-5436 188.2116,-5450.8209 212.9056,-5457.4265 235.4265,-5460.1031"/>
+<polygon fill="#191970" stroke="#191970" points="72.5156,-5209.1898 67.8772,-5199.6642 65.563,-5210.0032 72.5156,-5209.1898"/>
</g>
<!-- Node123 -->
<g id="node124" class="node">
<title>Node123</title>
-<g id="a_node124"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" target="_top" xlink:title="Managed reference to ProgramBuilderNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5347 235.5,-5377 351.5,-5377 351.5,-5347 235.5,-5347"/>
-<text text-anchor="start" x="243.5" y="-5365" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5354" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramBuilder</text>
+<g id="a_node124"><a xlink:href="classtvm_1_1auto__scheduler_1_1MeasureResult.html" target="_top" xlink:title="Managed reference to MeasureResultNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5396 235.5,-5426 351.5,-5426 351.5,-5396 235.5,-5396"/>
+<text text-anchor="start" x="243.5" y="-5414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureResult</text>
</a>
</g>
</g>
<!-- Node0->Node123 -->
<g id="edge123" class="edge">
<title>Node0->Node123</title>
-<path fill="none" stroke="#191970" d="M72.8117,-5185.6096C84.6656,-5221.964 115.2503,-5299.605 170,-5338 188.8665,-5351.2307 213.1574,-5357.6325 235.1976,-5360.5868"/>
-<polygon fill="#191970" stroke="#191970" points="76.0516,-5184.2428 69.7282,-5175.7419 69.3702,-5186.3307 76.0516,-5184.2428"/>
+<path fill="none" stroke="#191970" d="M71.2479,-5209.6201C81.0426,-5249.8439 109.1862,-5341.6751 170,-5387 188.6514,-5400.901 213.1583,-5407.3896 235.4207,-5410.2273"/>
+<polygon fill="#191970" stroke="#191970" points="74.6229,-5208.6794 68.96,-5199.7249 67.8028,-5210.2564 74.6229,-5208.6794"/>
</g>
-<!-- Node125 -->
-<g id="node126" class="node">
-<title>Node125</title>
-<g id="a_node126"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramMeasurer.html" target="_top" xlink:title="Managed reference to ProgramMeasurerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5298 235.5,-5328 351.5,-5328 351.5,-5298 235.5,-5298"/>
-<text text-anchor="start" x="243.5" y="-5316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramMeasurer</text>
+<!-- Node124 -->
+<g id="node125" class="node">
+<title>Node124</title>
+<g id="a_node125"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html" target="_top" xlink:title="Managed reference to ProgramBuilderNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5347 235.5,-5377 351.5,-5377 351.5,-5347 235.5,-5347"/>
+<text text-anchor="start" x="243.5" y="-5365" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5354" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramBuilder</text>
</a>
</g>
</g>
-<!-- Node0->Node125 -->
-<g id="edge125" class="edge">
-<title>Node0->Node125</title>
-<path fill="none" stroke="#191970" d="M76.9795,-5184.5783C92.8121,-5212.122 126.4098,-5263.2955 170,-5289 189.5671,-5300.5384 213.6182,-5306.6628 235.2808,-5309.8678"/>
-<polygon fill="#191970" stroke="#191970" points="79.8937,-5182.6179 71.9646,-5175.5907 73.7809,-5186.0287 79.8937,-5182.6179"/>
+<!-- Node0->Node124 -->
+<g id="edge124" class="edge">
+<title>Node0->Node124</title>
+<path fill="none" stroke="#191970" d="M74.553,-5209.0965C88.3323,-5241.2734 120.7469,-5305.9159 170,-5338 189.2166,-5350.5179 213.4458,-5356.8047 235.3428,-5359.866"/>
+<polygon fill="#191970" stroke="#191970" points="77.6508,-5207.4283 70.5971,-5199.5229 71.1814,-5210.1016 77.6508,-5207.4283"/>
</g>
<!-- Node126 -->
<g id="node127" class="node">
<title>Node126</title>
-<g id="a_node127"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html" target="_top" xlink:title="Managed reference to ProgramRunnerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5249 235.5,-5279 351.5,-5279 351.5,-5249 235.5,-5249"/>
-<text text-anchor="start" x="243.5" y="-5267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5256" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramRunner</text>
+<g id="a_node127"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramMeasurer.html" target="_top" xlink:title="Managed reference to ProgramMeasurerNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5298 235.5,-5328 351.5,-5328 351.5,-5298 235.5,-5298"/>
+<text text-anchor="start" x="243.5" y="-5316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5305" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramMeasurer</text>
</a>
</g>
</g>
<!-- Node0->Node126 -->
<g id="edge126" class="edge">
<title>Node0->Node126</title>
-<path fill="none" stroke="#191970" d="M84.6341,-5182.3751C104.0501,-5199.4654 136.9219,-5225.7226 170,-5240 190.4549,-5248.8289 214.2157,-5254.4323 235.4008,-5257.9789"/>
-<polygon fill="#191970" stroke="#191970" points="86.9532,-5179.7535 77.1754,-5175.6736 82.2747,-5184.9605 86.9532,-5179.7535"/>
+<path fill="none" stroke="#191970" d="M80.1696,-5207.8792C97.9113,-5230.5658 131.7146,-5269.1281 170,-5289 189.9678,-5299.3642 213.86,-5305.2736 235.2863,-5308.6352"/>
+<polygon fill="#191970" stroke="#191970" points="82.8281,-5205.5933 73.9805,-5199.7647 77.2622,-5209.8385 82.8281,-5205.5933"/>
</g>
-<!-- Node129 -->
-<g id="node130" class="node">
-<title>Node129</title>
-<g id="a_node130"><a xlink:href="classtvm_1_1auto__scheduler_1_1RecordReader.html" target="_top" xlink:title="Managed reference to RecordReaderNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5200 235.5,-5230 351.5,-5230 351.5,-5200 235.5,-5200"/>
-<text text-anchor="start" x="243.5" y="-5218" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RecordReader</text>
+<!-- Node127 -->
+<g id="node128" class="node">
+<title>Node127</title>
+<g id="a_node128"><a xlink:href="classtvm_1_1auto__scheduler_1_1ProgramRunner.html" target="_top" xlink:title="Managed reference to ProgramRunnerNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5249 235.5,-5279 351.5,-5279 351.5,-5249 235.5,-5249"/>
+<text text-anchor="start" x="243.5" y="-5267" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5256" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ProgramRunner</text>
</a>
</g>
</g>
-<!-- Node0->Node129 -->
-<g id="edge129" class="edge">
-<title>Node0->Node129</title>
-<path fill="none" stroke="#191970" d="M114.5077,-5178.0163C131.922,-5182.2927 151.8162,-5187.0286 170,-5191 191.2324,-5195.6372 214.6165,-5200.2953 235.2723,-5204.2575"/>
-<polygon fill="#191970" stroke="#191970" points="115.1204,-5174.5625 104.5727,-5175.5609 113.4408,-5181.358 115.1204,-5174.5625"/>
+<!-- Node0->Node127 -->
+<g id="edge127" class="edge">
+<title>Node0->Node127</title>
+<path fill="none" stroke="#191970" d="M92.1429,-5204.5016C112.5322,-5215.6905 142.3269,-5230.77 170,-5240 190.8235,-5246.9454 214.3309,-5252.1364 235.2055,-5255.8801"/>
+<polygon fill="#191970" stroke="#191970" points="93.6472,-5201.3331 83.2092,-5199.5171 90.2365,-5207.446 93.6472,-5201.3331"/>
</g>
<!-- Node130 -->
<g id="node131" class="node">
<title>Node130</title>
-<g id="a_node131"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchCallback.html" target="_top" xlink:title="Managed reference to SearchCallbackNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5151 235.5,-5181 351.5,-5181 351.5,-5151 235.5,-5151"/>
-<text text-anchor="start" x="243.5" y="-5169" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5158" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchCallback</text>
+<g id="a_node131"><a xlink:href="classtvm_1_1auto__scheduler_1_1RecordReader.html" target="_top" xlink:title="Managed reference to RecordReaderNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5200 235.5,-5230 351.5,-5230 351.5,-5200 235.5,-5200"/>
+<text text-anchor="start" x="243.5" y="-5218" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5207" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RecordReader</text>
</a>
</g>
</g>
<!-- Node0->Node130 -->
<g id="edge130" class="edge">
<title>Node0->Node130</title>
-<path fill="none" stroke="#191970" d="M144.4184,-5166C174.2449,-5166 207.7683,-5166 235.4607,-5166"/>
-<polygon fill="#191970" stroke="#191970" points="144.0382,-5162.5001 134.0381,-5166 144.0381,-5169.5001 144.0382,-5162.5001"/>
+<path fill="none" stroke="#191970" d="M144.0278,-5198.502C173.952,-5201.8049 207.6474,-5205.524 235.4607,-5208.5939"/>
+<polygon fill="#191970" stroke="#191970" points="144.3618,-5195.0177 134.0381,-5197.3994 143.5938,-5201.9754 144.3618,-5195.0177"/>
</g>
-<!-- Node132 -->
-<g id="node133" class="node">
-<title>Node132</title>
-<g id="a_node133"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchPolicy.html" target="_top" xlink:title="Managed reference to SearchPolicyNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5102 235.5,-5132 351.5,-5132 351.5,-5102 235.5,-5102"/>
-<text text-anchor="start" x="243.5" y="-5120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchPolicy</text>
+<!-- Node131 -->
+<g id="node132" class="node">
+<title>Node131</title>
+<g id="a_node132"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchCallback.html" target="_top" xlink:title="Managed reference to SearchCallbackNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5151 235.5,-5181 351.5,-5181 351.5,-5151 235.5,-5151"/>
+<text text-anchor="start" x="243.5" y="-5169" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5158" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchCallback</text>
</a>
</g>
</g>
-<!-- Node0->Node132 -->
-<g id="edge132" class="edge">
-<title>Node0->Node132</title>
-<path fill="none" stroke="#191970" d="M116.7608,-5154.0963C133.6378,-5150.1413 152.617,-5145.7838 170,-5142 191.2685,-5137.3705 214.6606,-5132.563 235.3127,-5128.4154"/>
-<polygon fill="#191970" stroke="#191970" points="115.4891,-5150.7999 106.5571,-5156.498 117.093,-5157.6136 115.4891,-5150.7999"/>
+<!-- Node0->Node131 -->
+<g id="edge131" class="edge">
+<title>Node0->Node131</title>
+<path fill="none" stroke="#191970" d="M144.0278,-5181.8381C173.952,-5178.6673 207.6474,-5175.097 235.4607,-5172.1499"/>
+<polygon fill="#191970" stroke="#191970" points="143.6136,-5178.3623 134.0381,-5182.8966 144.3513,-5185.3233 143.6136,-5178.3623"/>
</g>
<!-- Node133 -->
<g id="node134" class="node">
<title>Node133</title>
-<g id="a_node134"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchTask.html" target="_top" xlink:title="Managed reference to SearchTaskNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5053 235.5,-5083 351.5,-5083 351.5,-5053 235.5,-5053"/>
-<text text-anchor="start" x="243.5" y="-5071" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5060" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchTask</text>
+<g id="a_node134"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchPolicy.html" target="_top" xlink:title="Managed reference to SearchPolicyNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5102 235.5,-5132 351.5,-5132 351.5,-5102 235.5,-5102"/>
+<text text-anchor="start" x="243.5" y="-5120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchPolicy</text>
</a>
</g>
</g>
<!-- Node0->Node133 -->
<g id="edge133" class="edge">
<title>Node0->Node133</title>
-<path fill="none" stroke="#191970" d="M84.9586,-5149.6791C104.4603,-5132.8643 137.23,-5107.1708 170,-5093 190.4805,-5084.1436 214.2465,-5078.3758 235.4286,-5074.6414"/>
-<polygon fill="#191970" stroke="#191970" points="82.4094,-5147.2601 77.2155,-5156.4945 87.0345,-5152.5146 82.4094,-5147.2601"/>
+<path fill="none" stroke="#191970" d="M93.3272,-5175.6129C113.7299,-5164.9905 142.9832,-5150.8905 170,-5142 190.8836,-5135.1278 214.4038,-5129.7984 235.272,-5125.8596"/>
+<polygon fill="#191970" stroke="#191970" points="91.5476,-5172.5947 84.3437,-5180.3635 94.8199,-5178.7827 91.5476,-5172.5947"/>
</g>
<!-- Node134 -->
<g id="node135" class="node">
<title>Node134</title>
-<g id="a_node135"><a xlink:href="classtvm_1_1auto__scheduler_1_1Stage.html" target="_top" xlink:title="Managed reference to StageNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-5004 235.5,-5034 351.5,-5034 351.5,-5004 235.5,-5004"/>
-<text text-anchor="start" x="243.5" y="-5022" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-5011" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Stage</text>
+<g id="a_node135"><a xlink:href="classtvm_1_1auto__scheduler_1_1SearchTask.html" target="_top" xlink:title="Managed reference to SearchTaskNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5053 235.5,-5083 351.5,-5083 351.5,-5053 235.5,-5053"/>
+<text text-anchor="start" x="243.5" y="-5071" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5060" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchTask</text>
</a>
</g>
</g>
<!-- Node0->Node134 -->
<g id="edge134" class="edge">
<title>Node0->Node134</title>
-<path fill="none" stroke="#191970" d="M77.2797,-5147.2126C93.2916,-5119.8543 126.8785,-5069.5378 170,-5044 189.5755,-5032.4068 213.6283,-5026.1071 235.2897,-5022.7133"/>
-<polygon fill="#191970" stroke="#191970" points="74.0899,-5145.7416 72.1906,-5156.1648 80.1753,-5149.201 74.0899,-5145.7416"/>
+<path fill="none" stroke="#191970" d="M80.2763,-5172.5327C98.1331,-5150.3589 132.0605,-5112.6346 170,-5093 190.0111,-5082.6438 213.9118,-5076.574 235.3327,-5073.018"/>
+<polygon fill="#191970" stroke="#191970" points="77.4715,-5170.4374 74.043,-5180.4622 82.9747,-5174.7635 77.4715,-5170.4374"/>
</g>
<!-- Node135 -->
<g id="node136" class="node">
<title>Node135</title>
-<g id="a_node136"><a xlink:href="classtvm_1_1auto__scheduler_1_1State.html" target="_top" xlink:title="Managed reference to StateNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4955 235.5,-4985 351.5,-4985 351.5,-4955 235.5,-4955"/>
-<text text-anchor="start" x="243.5" y="-4973" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-4962" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::State</text>
+<g id="a_node136"><a xlink:href="classtvm_1_1auto__scheduler_1_1Stage.html" target="_top" xlink:title="Managed reference to StageNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-5004 235.5,-5034 351.5,-5034 351.5,-5004 235.5,-5004"/>
+<text text-anchor="start" x="243.5" y="-5022" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-5011" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Stage</text>
</a>
</g>
</g>
<!-- Node0->Node135 -->
<g id="edge135" class="edge">
<title>Node0->Node135</title>
-<path fill="none" stroke="#191970" d="M72.8741,-5146.542C84.8323,-5110.4618 115.5843,-5033.3729 170,-4995 188.8611,-4981.6995 213.151,-4975.1157 235.192,-4971.9714"/>
-<polygon fill="#191970" stroke="#191970" points="69.4552,-5145.744 69.7609,-5156.3344 76.1262,-5147.8649 69.4552,-5145.744"/>
+<path fill="none" stroke="#191970" d="M74.8543,-5170.7421C88.8953,-5138.9047 121.4499,-5075.6745 170,-5044 189.2376,-5031.4493 213.4705,-5024.9883 235.3647,-5021.7331"/>
+<polygon fill="#191970" stroke="#191970" points="71.5055,-5169.6729 70.806,-5180.2447 77.9454,-5172.4166 71.5055,-5169.6729"/>
</g>
<!-- Node136 -->
<g id="node137" class="node">
<title>Node136</title>
-<g id="a_node137"><a xlink:href="classtvm_1_1auto__scheduler_1_1Step.html" target="_top" xlink:title="Managed reference to StepNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4906 235.5,-4936 351.5,-4936 351.5,-4906 235.5,-4906"/>
-<text text-anchor="start" x="243.5" y="-4924" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-4913" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Step</text>
+<g id="a_node137"><a xlink:href="classtvm_1_1auto__scheduler_1_1State.html" target="_top" xlink:title="Managed reference to StateNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4955 235.5,-4985 351.5,-4985 351.5,-4955 235.5,-4955"/>
+<text text-anchor="start" x="243.5" y="-4973" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-4962" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::State</text>
</a>
</g>
</g>
<!-- Node0->Node136 -->
<g id="edge136" class="edge">
<title>Node0->Node136</title>
-<path fill="none" stroke="#191970" d="M70.157,-5146.2617C78.2221,-5102.6909 103.8205,-4998.0366 170,-4946 188.4003,-4931.5319 212.9943,-4924.7908 235.3899,-4921.845"/>
-<polygon fill="#191970" stroke="#191970" points="66.6979,-5145.7249 68.4342,-5156.1765 73.5946,-5146.9233 66.6979,-5145.7249"/>
+<path fill="none" stroke="#191970" d="M71.3395,-5170.6127C81.3052,-5130.86 109.7513,-5040.0721 170,-4995 188.6552,-4981.044 213.1627,-4974.3731 235.4246,-4971.3412"/>
+<polygon fill="#191970" stroke="#191970" points="67.9228,-5169.8521 69.0076,-5180.3912 74.7318,-5171.4759 67.9228,-5169.8521"/>
</g>
-<!-- Node151 -->
-<g id="node152" class="node">
-<title>Node151</title>
-<g id="a_node152"><a xlink:href="classtvm_1_1auto__scheduler_1_1TuningOptions.html" target="_top" xlink:title="Managed reference to TuningOptionsNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4857 235.5,-4887 351.5,-4887 351.5,-4857 235.5,-4857"/>
-<text text-anchor="start" x="243.5" y="-4875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
-<text text-anchor="middle" x="293.5" y="-4864" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningOptions</text>
+<!-- Node137 -->
+<g id="node138" class="node">
+<title>Node137</title>
+<g id="a_node138"><a xlink:href="classtvm_1_1auto__scheduler_1_1Step.html" target="_top" xlink:title="Managed reference to StepNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4906 235.5,-4936 351.5,-4936 351.5,-4906 235.5,-4906"/>
+<text text-anchor="start" x="243.5" y="-4924" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-4913" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Step</text>
</a>
</g>
</g>
-<!-- Node0->Node151 -->
-<g id="edge151" class="edge">
-<title>Node0->Node151</title>
-<path fill="none" stroke="#191970" d="M68.3164,-5146.1329C72.7687,-5095.9239 91.7405,-4963.242 170,-4897 188.0332,-4881.736 212.8312,-4874.9015 235.4767,-4872.1009"/>
-<polygon fill="#191970" stroke="#191970" points="64.8121,-5146.0512 67.5191,-5156.2944 71.7907,-5146.5988 64.8121,-5146.0512"/>
+<!-- Node0->Node137 -->
+<g id="edge137" class="edge">
+<title>Node0->Node137</title>
+<path fill="none" stroke="#191970" d="M69.1458,-5170.4023C75.3651,-5123.6384 97.8254,-5005.0296 170,-4946 188.2036,-4931.1118 212.8963,-4924.319 235.4184,-4921.448"/>
+<polygon fill="#191970" stroke="#191970" points="65.6593,-5170.0799 67.9199,-5180.4307 72.6075,-5170.9293 65.6593,-5170.0799"/>
</g>
<!-- Node152 -->
<g id="node153" class="node">
<title>Node152</title>
-<g id="a_node153"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="249.5,-4818.5 249.5,-4837.5 337.5,-4837.5 337.5,-4818.5 249.5,-4818.5"/>
-<text text-anchor="middle" x="293.5" y="-4825.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<g id="a_node153"><a xlink:href="classtvm_1_1auto__scheduler_1_1TuningOptions.html" target="_top" xlink:title="Managed reference to TuningOptionsNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4857 235.5,-4887 351.5,-4887 351.5,-4857 235.5,-4857"/>
+<text text-anchor="start" x="243.5" y="-4875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::auto_scheduler</text>
+<text text-anchor="middle" x="293.5" y="-4864" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningOptions</text>
</a>
</g>
</g>
<!-- Node0->Node152 -->
<g id="edge152" class="edge">
<title>Node0->Node152</title>
-<path fill="none" stroke="#191970" d="M70.6525,-5146.1289C82.6739,-5082.934 122.938,-4888.3738 170,-4848 191.5956,-4829.4734 223.4287,-4824.6705 249.3669,-4824.3972"/>
-<polygon fill="#191970" stroke="#191970" points="67.1421,-5145.8598 68.7413,-5156.3333 74.0225,-5147.1485 67.1421,-5145.8598"/>
+<path fill="none" stroke="#191970" d="M71.2905,-5170.2051C84.6055,-5110.5811 126.9206,-4934.4981 170,-4897 187.8205,-4881.4883 212.5853,-4874.6151 235.2635,-4871.8525"/>
+<polygon fill="#191970" stroke="#191970" points="67.8191,-5169.6948 69.085,-5180.2138 74.655,-5171.2013 67.8191,-5169.6948"/>
</g>
-<!-- Node213 -->
-<g id="node214" class="node">
-<title>Node213</title>
-<g id="a_node214"><a xlink:href="classtvm_1_1CompilationConfig.html" target="_top" xlink:title="Managed reference class to CompilationConfig. ">
-<polygon fill="#ffffff" stroke="#000000" points="227.5,-4780.5 227.5,-4799.5 359.5,-4799.5 359.5,-4780.5 227.5,-4780.5"/>
-<text text-anchor="middle" x="293.5" y="-4787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::CompilationConfig</text>
+<!-- Node153 -->
+<g id="node154" class="node">
+<title>Node153</title>
+<g id="a_node154"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="249.5,-4818.5 249.5,-4837.5 337.5,-4837.5 337.5,-4818.5 249.5,-4818.5"/>
+<text text-anchor="middle" x="293.5" y="-4825.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
</a>
</g>
</g>
-<!-- Node0->Node213 -->
-<g id="edge213" class="edge">
-<title>Node0->Node213</title>
-<path fill="none" stroke="#191970" d="M69.9257,-5145.9494C80.3222,-5077.5379 117.6812,-4855.0057 170,-4809 185.6392,-4795.248 206.9161,-4789.1381 227.4033,-4786.8726"/>
-<polygon fill="#191970" stroke="#191970" points="66.4087,-5145.804 68.3944,-5156.2111 73.332,-5146.8372 66.4087,-5145.804"/>
+<!-- Node0->Node153 -->
+<g id="edge153" class="edge">
+<title>Node0->Node153</title>
+<path fill="none" stroke="#191970" d="M70.1397,-5170.3639C81.0988,-5104.3407 119.7347,-4892.0335 170,-4848 191.4027,-4829.2508 223.2403,-4824.4531 249.2289,-4824.238"/>
+<polygon fill="#191970" stroke="#191970" points="66.6758,-5169.8595 68.5187,-5180.2928 73.5843,-5170.9874 66.6758,-5169.8595"/>
</g>
<!-- Node214 -->
<g id="node215" class="node">
<title>Node214</title>
-<g id="a_node215"><a xlink:href="classtvm_1_1Diagnostic.html" target="_top" xlink:title="tvm::Diagnostic">
-<polygon fill="#ffffff" stroke="#000000" points="246.5,-4742.5 246.5,-4761.5 340.5,-4761.5 340.5,-4742.5 246.5,-4742.5"/>
-<text text-anchor="middle" x="293.5" y="-4749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::Diagnostic</text>
+<g id="a_node215"><a xlink:href="classtvm_1_1CompilationConfig.html" target="_top" xlink:title="Managed reference class to CompilationConfig. ">
+<polygon fill="#ffffff" stroke="#000000" points="227.5,-4780.5 227.5,-4799.5 359.5,-4799.5 359.5,-4780.5 227.5,-4780.5"/>
+<text text-anchor="middle" x="293.5" y="-4787.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::CompilationConfig</text>
</a>
</g>
</g>
<!-- Node0->Node214 -->
<g id="edge214" class="edge">
<title>Node0->Node214</title>
-<path fill="none" stroke="#191970" d="M69.3047,-5146.2159C78.1828,-5073.5375 112.5687,-4822.8306 170,-4771 190.3723,-4752.6144 220.7666,-4747.7596 246.304,-4747.5527"/>
-<polygon fill="#191970" stroke="#191970" points="65.8118,-5145.9492 68.0992,-5156.2941 72.7622,-5146.7806 65.8118,-5145.9492"/>
+<path fill="none" stroke="#191970" d="M69.5328,-5170.0102C78.9784,-5098.7347 114.4844,-4858.6527 170,-4809 185.5227,-4795.1166 206.7705,-4788.9739 227.2668,-4786.7187"/>
+<polygon fill="#191970" stroke="#191970" points="66.0158,-5169.9149 68.1986,-5180.2824 72.9575,-5170.8166 66.0158,-5169.9149"/>
</g>
<!-- Node215 -->
<g id="node216" class="node">
<title>Node215</title>
-<g id="a_node216"><a xlink:href="classtvm_1_1DiagnosticContext.html" target="_top" xlink:title="tvm::DiagnosticContext">
-<polygon fill="#ffffff" stroke="#000000" points="227.5,-4704.5 227.5,-4723.5 359.5,-4723.5 359.5,-4704.5 227.5,-4704.5"/>
-<text text-anchor="middle" x="293.5" y="-4711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticContext</text>
+<g id="a_node216"><a xlink:href="classtvm_1_1Diagnostic.html" target="_top" xlink:title="tvm::Diagnostic">
+<polygon fill="#ffffff" stroke="#000000" points="246.5,-4742.5 246.5,-4761.5 340.5,-4761.5 340.5,-4742.5 246.5,-4742.5"/>
+<text text-anchor="middle" x="293.5" y="-4749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::Diagnostic</text>
</a>
</g>
</g>
<!-- Node0->Node215 -->
<g id="edge215" class="edge">
<title>Node0->Node215</title>
-<path fill="none" stroke="#191970" d="M68.8596,-5145.8438C76.4375,-5068.2817 107.5955,-4790.5505 170,-4733 185.3889,-4718.808 206.7246,-4712.6157 227.3371,-4710.4086"/>
-<polygon fill="#191970" stroke="#191970" points="65.342,-5145.8625 67.8779,-5156.1494 72.3105,-5146.5263 65.342,-5145.8625"/>
+<path fill="none" stroke="#191970" d="M68.9619,-5170.4879C76.919,-5095.4054 109.2944,-4826.5635 170,-4771 190.2428,-4752.4719 220.6356,-4747.6155 246.2046,-4747.4433"/>
+<polygon fill="#191970" stroke="#191970" points="65.4776,-5170.1567 67.929,-5180.4641 72.4404,-5170.8777 65.4776,-5170.1567"/>
</g>
<!-- Node216 -->
<g id="node217" class="node">
<title>Node216</title>
-<g id="a_node217"><a xlink:href="classtvm_1_1DiagnosticRenderer.html" target="_top" xlink:title="tvm::DiagnosticRenderer">
-<polygon fill="#ffffff" stroke="#000000" points="225,-4666.5 225,-4685.5 362,-4685.5 362,-4666.5 225,-4666.5"/>
-<text text-anchor="middle" x="293.5" y="-4673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticRenderer</text>
+<g id="a_node217"><a xlink:href="classtvm_1_1DiagnosticContext.html" target="_top" xlink:title="tvm::DiagnosticContext">
+<polygon fill="#ffffff" stroke="#000000" points="227.5,-4704.5 227.5,-4723.5 359.5,-4723.5 359.5,-4704.5 227.5,-4704.5"/>
+<text text-anchor="middle" x="293.5" y="-4711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticContext</text>
</a>
</g>
</g>
<!-- Node0->Node216 -->
<g id="edge216" class="edge">
<title>Node0->Node216</title>
-<path fill="none" stroke="#191970" d="M68.4581,-5145.6856C74.7728,-5063.6745 102.544,-4758.3573 170,-4695 184.7054,-4681.1881 205.0252,-4674.9039 224.9393,-4672.5009"/>
-<polygon fill="#191970" stroke="#191970" points="64.9342,-5145.8771 67.68,-5156.11 71.9148,-5146.3983 64.9342,-5145.8771"/>
+<path fill="none" stroke="#191970" d="M68.5537,-5170.2826C75.2403,-5090.6826 104.26,-4794.3517 170,-4733 185.3045,-4718.7171 206.6195,-4712.5024 227.2388,-4710.3027"/>
+<polygon fill="#191970" stroke="#191970" points="65.053,-5170.1488 67.7275,-5180.4005 72.0298,-5170.7186 65.053,-5170.1488"/>
</g>
<!-- Node217 -->
<g id="node218" class="node">
<title>Node217</title>
-<g id="a_node218"><a xlink:href="classtvm_1_1EnvFunc.html" target="_top" xlink:title="Managed reference to EnvFuncNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="252.5,-4628.5 252.5,-4647.5 334.5,-4647.5 334.5,-4628.5 252.5,-4628.5"/>
-<text text-anchor="middle" x="293.5" y="-4635.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::EnvFunc</text>
+<g id="a_node218"><a xlink:href="classtvm_1_1DiagnosticRenderer.html" target="_top" xlink:title="tvm::DiagnosticRenderer">
+<polygon fill="#ffffff" stroke="#000000" points="225,-4666.5 225,-4685.5 362,-4685.5 362,-4666.5 225,-4666.5"/>
+<text text-anchor="middle" x="293.5" y="-4673.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::DiagnosticRenderer</text>
</a>
</g>
</g>
<!-- Node0->Node217 -->
<g id="edge217" class="edge">
<title>Node0->Node217</title>
-<path fill="none" stroke="#191970" d="M68.0837,-5145.9911C73.1432,-5060.4039 97.3433,-4726.3188 170,-4657 191.5816,-4636.4098 225.6079,-4632.4568 252.4846,-4633.2089"/>
-<polygon fill="#191970" stroke="#191970" points="64.5785,-5145.9855 67.5045,-5156.1682 71.5672,-5146.3833 64.5785,-5145.9855"/>
+<path fill="none" stroke="#191970" d="M68.1881,-5170.2795C73.6455,-5086.6139 99.1494,-4762.225 170,-4695 184.6352,-4681.1137 204.9357,-4674.8092 224.8539,-4672.4104"/>
+<polygon fill="#191970" stroke="#191970" points="64.684,-5170.2354 67.5484,-5180.4357 71.6702,-5170.6755 64.684,-5170.2354"/>
</g>
<!-- Node218 -->
<g id="node219" class="node">
<title>Node218</title>
-<g id="a_node219"><a xlink:href="classtvm_1_1GenericFunc.html" target="_top" xlink:title="Generic function that can be specialized on a per-target basis. ">
-<polygon fill="#ffffff" stroke="#000000" points="243,-4590.5 243,-4609.5 344,-4609.5 344,-4590.5 243,-4590.5"/>
-<text text-anchor="middle" x="293.5" y="-4597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::GenericFunc</text>
+<g id="a_node219"><a xlink:href="classtvm_1_1EnvFunc.html" target="_top" xlink:title="Managed reference to EnvFuncNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="252.5,-4628.5 252.5,-4647.5 334.5,-4647.5 334.5,-4628.5 252.5,-4628.5"/>
+<text text-anchor="middle" x="293.5" y="-4635.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::EnvFunc</text>
</a>
</g>
</g>
<!-- Node0->Node218 -->
<g id="edge218" class="edge">
<title>Node0->Node218</title>
-<path fill="none" stroke="#191970" d="M67.7698,-5146.2306C71.6587,-5057.1692 92.1392,-4694.2973 170,-4619 188.9467,-4600.6771 217.7277,-4595.4668 242.7403,-4595.0497"/>
-<polygon fill="#191970" stroke="#191970" points="64.269,-5146.1798 67.3506,-5156.3165 71.263,-5146.4705 64.269,-5146.1798"/>
+<path fill="none" stroke="#191970" d="M67.8916,-5169.902C72.2315,-5081.698 94.128,-4730.0245 170,-4657 191.4911,-4636.3154 225.5242,-4632.3694 252.4265,-4633.1482"/>
+<polygon fill="#191970" stroke="#191970" points="64.3838,-5169.9866 67.4099,-5180.1401 71.3761,-5170.3157 64.3838,-5169.9866"/>
</g>
<!-- Node219 -->
<g id="node220" class="node">
<title>Node219</title>
-<g id="a_node220"><a xlink:href="classtvm_1_1instrument_1_1PassInstrument.html" target="_top" xlink:title="Managed reference class for PassInstrumentNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="205.5,-4552.5 205.5,-4571.5 381.5,-4571.5 381.5,-4552.5 205.5,-4552.5"/>
-<text text-anchor="middle" x="293.5" y="-4559.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::instrument::PassInstrument</text>
+<g id="a_node220"><a xlink:href="classtvm_1_1GenericFunc.html" target="_top" xlink:title="Generic function that can be specialized on a per-target basis. ">
+<polygon fill="#ffffff" stroke="#000000" points="243,-4590.5 243,-4609.5 344,-4609.5 344,-4590.5 243,-4590.5"/>
+<text text-anchor="middle" x="293.5" y="-4597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::GenericFunc</text>
</a>
</g>
</g>
<!-- Node0->Node219 -->
<g id="edge219" class="edge">
<title>Node0->Node219</title>
-<path fill="none" stroke="#191970" d="M67.5135,-5146.0501C70.3369,-5052.9351 87.0414,-4662.1831 170,-4581 179.7678,-4571.4413 192.2074,-4565.4365 205.4123,-4561.8155"/>
-<polygon fill="#191970" stroke="#191970" points="64.0133,-5146.0088 67.2288,-5156.1039 71.0105,-5146.207 64.0133,-5146.0088"/>
+<path fill="none" stroke="#191970" d="M67.6,-5170.2444C70.7982,-5078.8384 88.8833,-4698.0491 170,-4619 188.9541,-4600.529 217.8909,-4595.3481 242.9909,-4594.9851"/>
+<polygon fill="#191970" stroke="#191970" points="64.0988,-5170.2285 67.2676,-5180.3383 71.095,-5170.4589 64.0988,-5170.2285"/>
</g>
<!-- Node220 -->
<g id="node221" class="node">
<title>Node220</title>
-<g id="a_node221"><a xlink:href="classtvm_1_1IRModule.html" target="_top" xlink:title="Managed reference class to IRModuleNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="250,-4514.5 250,-4533.5 337,-4533.5 337,-4514.5 250,-4514.5"/>
-<text text-anchor="middle" x="293.5" y="-4521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IRModule</text>
+<g id="a_node221"><a xlink:href="classtvm_1_1instrument_1_1PassInstrument.html" target="_top" xlink:title="Managed reference class for PassInstrumentNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="205.5,-4552.5 205.5,-4571.5 381.5,-4571.5 381.5,-4552.5 205.5,-4552.5"/>
+<text text-anchor="middle" x="293.5" y="-4559.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::instrument::PassInstrument</text>
</a>
</g>
</g>
<!-- Node0->Node220 -->
<g id="edge220" class="edge">
<title>Node0->Node220</title>
-<path fill="none" stroke="#191970" d="M67.2758,-5146.3125C69.0471,-5050.0705 81.7976,-4630.2202 170,-4543 190.5925,-4522.6368 223.293,-4518.3448 249.8731,-4518.9"/>
-<polygon fill="#191970" stroke="#191970" points="63.7749,-5146.3447 67.1099,-5156.401 70.774,-5146.4599 63.7749,-5146.3447"/>
+<path fill="none" stroke="#191970" d="M67.361,-5170.1469C69.5184,-5074.9093 83.7523,-4665.9725 170,-4581 179.7355,-4571.4084 192.1588,-4565.387 205.3573,-4561.7594"/>
+<polygon fill="#191970" stroke="#191970" points="63.8614,-5170.093 67.1537,-5180.1633 70.8599,-5170.2379 63.8614,-5170.093"/>
</g>
<!-- Node221 -->
<g id="node222" class="node">
<title>Node221</title>
-<g id="a_node222"><a xlink:href="classtvm_1_1MemoryInfo.html" target="_top" xlink:title="Defines memory info. ">
-<polygon fill="#ffffff" stroke="#000000" points="243,-4476.5 243,-4495.5 344,-4495.5 344,-4476.5 243,-4476.5"/>
-<text text-anchor="middle" x="293.5" y="-4483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::MemoryInfo</text>
+<g id="a_node222"><a xlink:href="classtvm_1_1IRModule.html" target="_top" xlink:title="Managed reference class to IRModuleNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="250,-4514.5 250,-4533.5 337,-4533.5 337,-4514.5 250,-4514.5"/>
+<text text-anchor="middle" x="293.5" y="-4521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::IRModule</text>
</a>
</g>
</g>
<!-- Node0->Node221 -->
<g id="edge221" class="edge">
<title>Node0->Node221</title>
-<path fill="none" stroke="#191970" d="M68.6923,-5146.2912C77.8766,-5041.4131 123.054,-4551.8554 170,-4505 188.7322,-4486.304 217.6586,-4481.1125 242.8085,-4480.8001"/>
-<polygon fill="#191970" stroke="#191970" points="65.1911,-5146.1553 67.813,-5156.4206 72.1648,-5146.7608 65.1911,-5146.1553"/>
+<path fill="none" stroke="#191970" d="M68.7831,-5170.052C78.2629,-5066.0206 124.0463,-4588.7144 170,-4543 190.5315,-4522.5754 223.2346,-4518.286 249.8313,-4518.8578"/>
+<polygon fill="#191970" stroke="#191970" points="65.2862,-5169.861 67.8719,-5180.1355 72.2578,-5170.4911 65.2862,-5169.861"/>
</g>
<!-- Node222 -->
<g id="node223" class="node">
<title>Node222</title>
-<g id="a_node223"><a xlink:href="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html" target="_top" xlink:title="Managed reference to ApplyHistoryBestNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4427 235.5,-4457 351.5,-4457 351.5,-4427 235.5,-4427"/>
-<text text-anchor="start" x="243.5" y="-4445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4434" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ApplyHistoryBest</text>
+<g id="a_node223"><a xlink:href="classtvm_1_1MemoryInfo.html" target="_top" xlink:title="Defines memory info. ">
+<polygon fill="#ffffff" stroke="#000000" points="243,-4476.5 243,-4495.5 344,-4495.5 344,-4476.5 243,-4476.5"/>
+<text text-anchor="middle" x="293.5" y="-4483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::MemoryInfo</text>
</a>
</g>
</g>
<!-- Node0->Node222 -->
<g id="edge222" class="edge">
<title>Node0->Node222</title>
-<path fill="none" stroke="#191970" d="M68.566,-5146.2287C77.3317,-5037.7627 121.6555,-4517.9991 170,-4467 186.6301,-4449.4568 211.9135,-4442.4004 235.2815,-4440.0464"/>
-<polygon fill="#191970" stroke="#191970" points="65.0606,-5146.157 67.7509,-5156.4045 72.0383,-5146.7159 65.0606,-5146.157"/>
+<path fill="none" stroke="#191970" d="M68.5841,-5170.2481C77.3641,-5063.01 121.4185,-4553.7471 170,-4505 188.6822,-4486.2541 217.6063,-4481.0602 242.7674,-4480.7591"/>
+<polygon fill="#191970" stroke="#191970" points="65.0866,-5170.0772 67.7663,-5180.3275 72.0636,-5170.6433 65.0866,-5170.0772"/>
</g>
<!-- Node223 -->
<g id="node224" class="node">
<title>Node223</title>
-<g id="a_node224"><a xlink:href="classtvm_1_1meta__schedule_1_1ArgInfo.html" target="_top" xlink:title="Managed reference to ArgInfoNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4378 235.5,-4408 351.5,-4408 351.5,-4378 235.5,-4378"/>
-<text text-anchor="start" x="243.5" y="-4396" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfo</text>
+<g id="a_node224"><a xlink:href="classtvm_1_1meta__schedule_1_1ApplyHistoryBest.html" target="_top" xlink:title="Managed reference to ApplyHistoryBestNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4427 235.5,-4457 351.5,-4457 351.5,-4427 235.5,-4427"/>
+<text text-anchor="start" x="243.5" y="-4445" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4434" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ApplyHistoryBest</text>
</a>
</g>
</g>
<!-- Node0->Node223 -->
<g id="edge223" class="edge">
<title>Node0->Node223</title>
-<path fill="none" stroke="#191970" d="M68.3647,-5146.2648C76.3433,-5033.4149 118.3821,-4472.9707 170,-4418 186.5469,-4400.3783 211.8189,-4393.3112 235.2009,-4390.9704"/>
-<polygon fill="#191970" stroke="#191970" points="64.8713,-5146.0493 67.6642,-5156.2693 71.8542,-5146.5383 64.8713,-5146.0493"/>
+<path fill="none" stroke="#191970" d="M68.4643,-5170.2423C76.8391,-5059.6001 120.0538,-4519.9422 170,-4467 186.588,-4449.417 211.8657,-4442.3552 235.2407,-4440.0078"/>
+<polygon fill="#191970" stroke="#191970" points="64.965,-5170.1027 67.7073,-5180.3365 71.9454,-5170.6263 64.965,-5170.1027"/>
</g>
-<!-- Node225 -->
-<g id="node226" class="node">
-<title>Node225</title>
-<g id="a_node226"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4329 235.5,-4359 351.5,-4359 351.5,-4329 235.5,-4329"/>
-<text text-anchor="start" x="243.5" y="-4347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4336" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
+<!-- Node224 -->
+<g id="node225" class="node">
+<title>Node224</title>
+<g id="a_node225"><a xlink:href="classtvm_1_1meta__schedule_1_1ArgInfo.html" target="_top" xlink:title="Managed reference to ArgInfoNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4378 235.5,-4408 351.5,-4408 351.5,-4378 235.5,-4378"/>
+<text text-anchor="start" x="243.5" y="-4396" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4385" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ArgInfo</text>
</a>
</g>
</g>
-<!-- Node0->Node225 -->
-<g id="edge225" class="edge">
-<title>Node0->Node225</title>
-<path fill="none" stroke="#191970" d="M68.1788,-5146.454C75.3913,-5029.7445 115.0778,-4427.9793 170,-4369 186.548,-4351.2296 211.9643,-4344.1694 235.4472,-4341.8725"/>
-<polygon fill="#191970" stroke="#191970" points="64.6838,-5146.2666 67.5669,-5156.4616 71.6708,-5146.6939 64.6838,-5146.2666"/>
+<!-- Node0->Node224 -->
+<g id="edge224" class="edge">
+<title>Node0->Node224</title>
+<path fill="none" stroke="#191970" d="M68.2702,-5170.3618C75.8669,-5055.6093 116.764,-4474.9332 170,-4418 186.5846,-4400.2637 212.0056,-4393.208 235.4823,-4390.9053"/>
+<polygon fill="#191970" stroke="#191970" points="64.7676,-5170.2886 67.6062,-5180.4961 71.7526,-5170.7464 64.7676,-5170.2886"/>
</g>
<!-- Node226 -->
<g id="node227" class="node">
<title>Node226</title>
-<g id="a_node227"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderInput.html" target="_top" xlink:title="Managed reference to BuilderInputNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4280 235.5,-4310 351.5,-4310 351.5,-4280 235.5,-4280"/>
-<text text-anchor="start" x="243.5" y="-4298" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4287" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderInput</text>
+<g id="a_node227"><a xlink:href="classtvm_1_1meta__schedule_1_1Builder.html" target="_top" xlink:title="Managed reference to BuilderNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4329 235.5,-4359 351.5,-4359 351.5,-4329 235.5,-4329"/>
+<text text-anchor="start" x="243.5" y="-4347" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4336" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Builder</text>
</a>
</g>
</g>
<!-- Node0->Node226 -->
<g id="edge226" class="edge">
<title>Node0->Node226</title>
-<path fill="none" stroke="#191970" d="M68.0292,-5146.3957C74.5579,-5025.3699 111.8057,-4382.9566 170,-4320 186.4824,-4302.1687 211.89,-4295.1004 235.3841,-4292.8139"/>
-<polygon fill="#191970" stroke="#191970" points="64.531,-5146.2711 67.4936,-5156.4433 71.5211,-5146.6438 64.531,-5146.2711"/>
+<path fill="none" stroke="#191970" d="M68.1139,-5170.2435C75.0157,-5050.955 113.5046,-4429.8953 170,-4369 186.515,-4351.1988 211.9268,-4344.1345 235.4154,-4341.8429"/>
+<polygon fill="#191970" stroke="#191970" points="64.6069,-5170.2684 67.53,-5180.452 71.5954,-5170.6682 64.6069,-5170.2684"/>
</g>
<!-- Node227 -->
<g id="node228" class="node">
<title>Node227</title>
-<g id="a_node228"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderResult.html" target="_top" xlink:title="Managed reference to BuilderResultNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4231 235.5,-4261 351.5,-4261 351.5,-4231 235.5,-4231"/>
-<text text-anchor="start" x="243.5" y="-4249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4238" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderResult</text>
+<g id="a_node228"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderInput.html" target="_top" xlink:title="Managed reference to BuilderInputNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4280 235.5,-4310 351.5,-4310 351.5,-4280 235.5,-4280"/>
+<text text-anchor="start" x="243.5" y="-4298" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4287" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderInput</text>
</a>
</g>
</g>
<!-- Node0->Node227 -->
<g id="edge227" class="edge">
<title>Node0->Node227</title>
-<path fill="none" stroke="#191970" d="M67.8906,-5146.4389C73.7554,-5021.4719 108.5121,-4337.9599 170,-4271 186.4238,-4253.1146 211.8235,-4246.0392 235.3276,-4243.7619"/>
-<polygon fill="#191970" stroke="#191970" points="64.3924,-5146.3226 67.4259,-5156.4739 71.3849,-5146.6465 64.3924,-5146.3226"/>
+<path fill="none" stroke="#191970" d="M67.9688,-5170.2299C74.195,-5046.7755 110.2234,-4384.8835 170,-4320 186.4529,-4302.1415 211.8565,-4295.0695 235.3556,-4292.7877"/>
+<polygon fill="#191970" stroke="#191970" points="64.4612,-5170.2964 67.4595,-5180.4581 71.4526,-5170.6446 64.4612,-5170.2964"/>
</g>
<!-- Node228 -->
<g id="node229" class="node">
<title>Node228</title>
-<g id="a_node229"><a xlink:href="classtvm_1_1meta__schedule_1_1CostModel.html" target="_top" xlink:title="Managed reference to CostModelNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4182 235.5,-4212 351.5,-4212 351.5,-4182 235.5,-4182"/>
-<text text-anchor="start" x="243.5" y="-4200" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModel</text>
+<g id="a_node229"><a xlink:href="classtvm_1_1meta__schedule_1_1BuilderResult.html" target="_top" xlink:title="Managed reference to BuilderResultNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4231 235.5,-4261 351.5,-4261 351.5,-4231 235.5,-4231"/>
+<text text-anchor="start" x="243.5" y="-4249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4238" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::BuilderResult</text>
</a>
</g>
</g>
<!-- Node0->Node228 -->
<g id="edge228" class="edge">
<title>Node0->Node228</title>
-<path fill="none" stroke="#191970" d="M67.7791,-5146.1749C73.0513,-5016.545 105.2646,-4292.9152 170,-4222 186.3709,-4204.0663 211.7636,-4196.9844 235.2767,-4194.7153"/>
-<polygon fill="#191970" stroke="#191970" points="64.2785,-5146.1224 67.3752,-5156.2546 71.2729,-5146.4027 64.2785,-5146.1224"/>
+<path fill="none" stroke="#191970" d="M67.852,-5169.9161C73.4753,-5041.6093 106.9866,-4339.8259 170,-4271 186.3972,-4253.0903 211.7934,-4246.0116 235.302,-4243.7384"/>
+<polygon fill="#191970" stroke="#191970" points="64.3419,-5170.0775 67.4069,-5180.2193 71.3354,-5170.3797 64.3419,-5170.0775"/>
</g>
<!-- Node229 -->
<g id="node230" class="node">
<title>Node229</title>
-<g id="a_node230"><a xlink:href="classtvm_1_1meta__schedule_1_1Database.html" target="_top" xlink:title="Managed reference to DatabaseNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4133 235.5,-4163 351.5,-4163 351.5,-4133 235.5,-4133"/>
-<text text-anchor="start" x="243.5" y="-4151" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Database</text>
+<g id="a_node230"><a xlink:href="classtvm_1_1meta__schedule_1_1CostModel.html" target="_top" xlink:title="Managed reference to CostModelNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4182 235.5,-4212 351.5,-4212 351.5,-4182 235.5,-4182"/>
+<text text-anchor="start" x="243.5" y="-4200" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::CostModel</text>
</a>
</g>
</g>
<!-- Node0->Node229 -->
<g id="edge229" class="edge">
<title>Node0->Node229</title>
-<path fill="none" stroke="#191970" d="M67.6737,-5145.9932C72.366,-5011.9864 102.0002,-4247.8905 170,-4173 186.3231,-4155.0228 211.7095,-4147.9351 235.2307,-4145.6734"/>
-<polygon fill="#191970" stroke="#191970" points="64.1627,-5146.254 67.3166,-5156.3685 71.1586,-5146.4948 64.1627,-5146.254"/>
+<path fill="none" stroke="#191970" d="M67.7263,-5170.0859C72.7117,-5038.304 103.6661,-4294.8617 170,-4222 186.3469,-4204.0444 211.7364,-4196.9596 235.2536,-4194.6943"/>
+<polygon fill="#191970" stroke="#191970" points="64.2202,-5170.1878 67.3457,-5180.3112 71.2154,-5170.4483 64.2202,-5170.1878"/>
</g>
<!-- Node230 -->
<g id="node231" class="node">
<title>Node230</title>
-<g id="a_node231"><a xlink:href="classtvm_1_1meta__schedule_1_1ExtractedTask.html" target="_top" xlink:title="Managed reference to ExtractedTaskNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4084 235.5,-4114 351.5,-4114 351.5,-4084 235.5,-4084"/>
-<text text-anchor="start" x="243.5" y="-4102" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4091" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExtractedTask</text>
+<g id="a_node231"><a xlink:href="classtvm_1_1meta__schedule_1_1Database.html" target="_top" xlink:title="Managed reference to DatabaseNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4133 235.5,-4163 351.5,-4163 351.5,-4133 235.5,-4133"/>
+<text text-anchor="start" x="243.5" y="-4151" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Database</text>
</a>
</g>
</g>
<!-- Node0->Node230 -->
<g id="edge230" class="edge">
<title>Node0->Node230</title>
-<path fill="none" stroke="#191970" d="M67.5753,-5145.864C71.704,-5007.6945 98.7239,-4202.8807 170,-4124 186.2797,-4105.9834 211.6603,-4098.8905 235.1889,-4096.6356"/>
-<polygon fill="#191970" stroke="#191970" points="64.0665,-5146.1135 67.2721,-5156.2118 71.0635,-5146.3186 64.0665,-5146.1135"/>
+<path fill="none" stroke="#191970" d="M67.611,-5170.3456C71.98,-5035.4814 100.3247,-4249.9229 170,-4173 186.3013,-4155.003 211.6848,-4147.9127 235.2098,-4145.6544"/>
+<polygon fill="#191970" stroke="#191970" points="64.1095,-5170.3396 67.2896,-5180.4459 71.1059,-5170.5623 64.1095,-5170.3396"/>
</g>
<!-- Node231 -->
<g id="node232" class="node">
<title>Node231</title>
-<g id="a_node232"><a xlink:href="classtvm_1_1meta__schedule_1_1FeatureExtractor.html" target="_top" xlink:title="Managed reference to FeatureExtractorNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-4035 235.5,-4065 351.5,-4065 351.5,-4035 235.5,-4035"/>
-<text text-anchor="start" x="243.5" y="-4053" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-4042" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FeatureExtractor</text>
+<g id="a_node232"><a xlink:href="classtvm_1_1meta__schedule_1_1ExtractedTask.html" target="_top" xlink:title="Managed reference to ExtractedTaskNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4084 235.5,-4114 351.5,-4114 351.5,-4084 235.5,-4084"/>
+<text text-anchor="start" x="243.5" y="-4102" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4091" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ExtractedTask</text>
</a>
</g>
</g>
<!-- Node0->Node231 -->
<g id="edge231" class="edge">
<title>Node0->Node231</title>
-<path fill="none" stroke="#191970" d="M67.4721,-5146.2383C71.0128,-5005.4764 95.3561,-4157.9739 170,-4075 186.3132,-4056.8663 211.8441,-4049.7863 235.4687,-4047.571"/>
-<polygon fill="#191970" stroke="#191970" points="63.9691,-5146.3184 67.2221,-5156.4014 70.967,-5146.4905 63.9691,-5146.3184"/>
+<path fill="none" stroke="#191970" d="M67.5174,-5170.26C71.334,-5031.4287 97.038,-4204.9255 170,-4124 186.3331,-4105.8842 211.8666,-4098.8065 235.4877,-4096.5882"/>
+<polygon fill="#191970" stroke="#191970" points="64.0174,-5170.2157 67.2468,-5180.3064 71.0148,-5170.4042 64.0174,-5170.2157"/>
</g>
<!-- Node232 -->
<g id="node233" class="node">
<title>Node232</title>
-<g id="a_node233"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCallback.html" target="_top" xlink:title="Managed reference to MeasureCallbackNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3986 235.5,-4016 351.5,-4016 351.5,-3986 235.5,-3986"/>
-<text text-anchor="start" x="243.5" y="-4004" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3993" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback</text>
+<g id="a_node233"><a xlink:href="classtvm_1_1meta__schedule_1_1FeatureExtractor.html" target="_top" xlink:title="Managed reference to FeatureExtractorNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-4035 235.5,-4065 351.5,-4065 351.5,-4035 235.5,-4035"/>
+<text text-anchor="start" x="243.5" y="-4053" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-4042" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::FeatureExtractor</text>
</a>
</g>
</g>
<!-- Node0->Node232 -->
<g id="edge232" class="edge">
<title>Node0->Node232</title>
-<path fill="none" stroke="#191970" d="M67.3877,-5146.2447C70.3992,-5001.9059 92.0483,-4113.0022 170,-4026 186.2767,-4007.8336 211.8029,-4000.7493 235.4338,-3998.5397"/>
-<polygon fill="#191970" stroke="#191970" points="63.8873,-5146.2333 67.1833,-5156.3024 70.8859,-5146.3756 63.8873,-5146.2333"/>
+<path fill="none" stroke="#191970" d="M67.4399,-5169.8048C70.7556,-5025.9553 93.8139,-4159.86 170,-4075 186.2949,-4056.8499 211.8235,-4049.7677 235.4512,-4047.5554"/>
+<polygon fill="#191970" stroke="#191970" points="63.9321,-5170.1147 67.2063,-5180.1909 70.9304,-5170.2722 63.9321,-5170.1147"/>
</g>
<!-- Node233 -->
<g id="node234" class="node">
<title>Node233</title>
-<g id="a_node234"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" target="_top" xlink:title="Managed reference to MeasureCandidateNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3937 235.5,-3967 351.5,-3967 351.5,-3937 235.5,-3937"/>
-<text text-anchor="start" x="243.5" y="-3955" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3944" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCandidate</text>
+<g id="a_node234"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCallback.html" target="_top" xlink:title="Managed reference to MeasureCallbackNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3986 235.5,-4016 351.5,-4016 351.5,-3986 235.5,-3986"/>
+<text text-anchor="start" x="243.5" y="-4004" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3993" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCallback</text>
</a>
</g>
</g>
<!-- Node0->Node233 -->
<g id="edge233" class="edge">
<title>Node0->Node233</title>
-<path fill="none" stroke="#191970" d="M67.3169,-5145.8629C69.8454,-4996.7926 88.8081,-4067.9561 170,-3977 186.2431,-3958.8035 211.765,-3951.7153 235.4017,-3949.511"/>
-<polygon fill="#191970" stroke="#191970" points="63.8115,-5146.1701 67.1467,-5156.2262 70.8106,-5146.2851 63.8115,-5146.1701"/>
+<path fill="none" stroke="#191970" d="M67.3483,-5170.2852C70.1051,-5024.3408 90.4202,-4114.9846 170,-4026 186.2599,-4007.8185 211.7839,-4000.7323 235.4177,-3998.5253"/>
+<polygon fill="#191970" stroke="#191970" points="63.8463,-5170.3686 67.1621,-5180.4312 70.8451,-5170.4971 63.8463,-5170.3686"/>
</g>
<!-- Node234 -->
<g id="node235" class="node">
<title>Node234</title>
-<g id="a_node235"><a xlink:href="classtvm_1_1meta__schedule_1_1Mutator.html" target="_top" xlink:title="Managed reference to MutatorNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3888 235.5,-3918 351.5,-3918 351.5,-3888 235.5,-3888"/>
-<text text-anchor="start" x="243.5" y="-3906" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3895" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Mutator</text>
-</a>
-</g>
+<g id="a_node235"><a xlink:href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" target="_top" xlink:title="Managed reference to MeasureCandidateNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3937 235.5,-3967 351.5,-3967 351.5,-3937 235.5,-3937"/>
+<text text-anchor="start" x="243.5" y="-3955" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3944" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::MeasureCandidate</text>
+</a>
+</g>
</g>
<!-- Node0->Node234 -->
<g id="edge234" class="edge">
<title>Node0->Node234</title>
-<path fill="none" stroke="#191970" d="M67.2428,-5145.9742C69.2699,-4993.7836 85.4759,-4023.0141 170,-3928 186.2121,-3909.7759 211.73,-3902.6842 235.3721,-3900.4846"/>
-<polygon fill="#191970" stroke="#191970" points="63.7407,-5146.1281 67.1123,-5156.1721 70.7401,-5146.2178 63.7407,-5146.1281"/>
+<path fill="none" stroke="#191970" d="M67.2797,-5169.9268C69.5595,-5019.3469 87.1747,-4069.945 170,-3977 186.2276,-3958.7897 211.7475,-3951.6998 235.3869,-3949.4978"/>
+<polygon fill="#191970" stroke="#191970" points="63.7736,-5170.32 67.1272,-5180.37 70.7729,-5170.4222 63.7736,-5170.32"/>
</g>
<!-- Node235 -->
<g id="node236" class="node">
<title>Node235</title>
-<g id="a_node236"><a xlink:href="classtvm_1_1meta__schedule_1_1Postproc.html" target="_top" xlink:title="Managed reference to PostprocNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3839 235.5,-3869 351.5,-3869 351.5,-3839 235.5,-3839"/>
-<text text-anchor="start" x="243.5" y="-3857" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3846" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Postproc</text>
+<g id="a_node236"><a xlink:href="classtvm_1_1meta__schedule_1_1Mutator.html" target="_top" xlink:title="Managed reference to MutatorNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3888 235.5,-3918 351.5,-3918 351.5,-3888 235.5,-3888"/>
+<text text-anchor="start" x="243.5" y="-3906" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3895" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Mutator</text>
</a>
</g>
</g>
<!-- Node0->Node235 -->
<g id="edge235" class="edge">
<title>Node0->Node235</title>
-<path fill="none" stroke="#191970" d="M67.1743,-5146.1533C68.7158,-4991.1587 82.1273,-3978.0918 170,-3879 186.1834,-3860.7504 211.6976,-3853.6554 235.3446,-3851.4602"/>
-<polygon fill="#191970" stroke="#191970" points="63.6714,-5146.456 67.0769,-5156.4886 70.6711,-5146.5221 63.6714,-5146.456"/>
+<path fill="none" stroke="#191970" d="M67.2084,-5170.0651C68.9951,-5016.4991 83.8356,-4025.0113 170,-3928 186.1978,-3909.7632 211.7138,-3902.6698 235.3584,-3900.4724"/>
+<polygon fill="#191970" stroke="#191970" points="63.7058,-5170.2921 67.0944,-5180.3305 70.7054,-5170.37 63.7058,-5170.2921"/>
</g>
<!-- Node236 -->
<g id="node237" class="node">
<title>Node236</title>
-<g id="a_node237"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3790 235.5,-3820 351.5,-3820 351.5,-3790 235.5,-3790"/>
-<text text-anchor="start" x="243.5" y="-3808" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3797" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
+<g id="a_node237"><a xlink:href="classtvm_1_1meta__schedule_1_1Postproc.html" target="_top" xlink:title="Managed reference to PostprocNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3839 235.5,-3869 351.5,-3869 351.5,-3839 235.5,-3839"/>
+<text text-anchor="start" x="243.5" y="-3857" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3846" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Postproc</text>
</a>
</g>
</g>
<!-- Node0->Node236 -->
<g id="edge236" class="edge">
<title>Node0->Node236</title>
-<path fill="none" stroke="#191970" d="M67.1115,-5146.3702C68.185,-4988.8003 78.7675,-3933.1833 170,-3830 186.1567,-3811.7268 211.6675,-3804.6288 235.3192,-3802.4377"/>
-<polygon fill="#191970" stroke="#191970" points="63.611,-5146.4616 67.0477,-5156.4836 70.6108,-5146.5059 63.611,-5146.4616"/>
+<path fill="none" stroke="#191970" d="M67.1428,-5170.2561C68.4529,-5013.9754 80.4828,-3980.0944 170,-3879 186.1701,-3860.7386 211.6826,-3853.6421 235.3319,-3851.449"/>
+<polygon fill="#191970" stroke="#191970" points="63.6426,-5170.2844 67.0636,-5180.3117 70.6424,-5170.3396 63.6426,-5170.2844"/>
</g>
<!-- Node237 -->
<g id="node238" class="node">
<title>Node237</title>
-<g id="a_node238"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerFuture.html" target="_top" xlink:title="Managed reference to RunnerFutureNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3741 235.5,-3771 351.5,-3771 351.5,-3741 235.5,-3741"/>
-<text text-anchor="start" x="243.5" y="-3759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3748" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerFuture</text>
+<g id="a_node238"><a xlink:href="classtvm_1_1meta__schedule_1_1Runner.html" target="_top" xlink:title="Managed reference to RunnerNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3790 235.5,-3820 351.5,-3820 351.5,-3790 235.5,-3790"/>
+<text text-anchor="start" x="243.5" y="-3808" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3797" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Runner</text>
</a>
</g>
</g>
<!-- Node0->Node237 -->
<g id="edge237" class="edge">
<title>Node0->Node237</title>
-<path fill="none" stroke="#191970" d="M67.056,-5146.1537C67.6922,-4984.572 75.4887,-3888.1842 170,-3781 186.132,-3762.7049 211.6395,-3755.6041 235.2955,-3753.4168"/>
-<polygon fill="#191970" stroke="#191970" points="63.5549,-5146.486 67.0204,-5156.498 70.5549,-5146.5102 63.5549,-5146.486"/>
+<path fill="none" stroke="#191970" d="M67.0853,-5170.0184C67.9516,-5009.6249 77.2092,-3935.0889 170,-3830 186.1444,-3811.7159 211.6536,-3804.6164 235.3074,-3802.4273"/>
+<polygon fill="#191970" stroke="#191970" points="63.584,-5170.296 67.0348,-5180.313 70.5839,-5170.3303 63.584,-5170.296"/>
</g>
<!-- Node238 -->
<g id="node239" class="node">
<title>Node238</title>
-<g id="a_node239"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerInput.html" target="_top" xlink:title="Managed reference to RunnerInputNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3692 235.5,-3722 351.5,-3722 351.5,-3692 235.5,-3692"/>
-<text text-anchor="start" x="243.5" y="-3710" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3699" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerInput</text>
+<g id="a_node239"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerFuture.html" target="_top" xlink:title="Managed reference to RunnerFutureNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3741 235.5,-3771 351.5,-3771 351.5,-3741 235.5,-3741"/>
+<text text-anchor="start" x="243.5" y="-3759" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3748" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerFuture</text>
</a>
</g>
</g>
<!-- Node0->Node238 -->
<g id="edge238" class="edge">
<title>Node0->Node238</title>
-<path fill="none" stroke="#191970" d="M67.7454,-5146.1166C74.1604,-4977.2021 121.0022,-3787.7096 170,-3732 186.1088,-3713.6846 211.6134,-3706.5811 235.2734,-3704.3973"/>
-<polygon fill="#191970" stroke="#191970" points="64.2338,-5146.3602 67.3539,-5156.4851 71.2288,-5146.6244 64.2338,-5146.3602"/>
+<path fill="none" stroke="#191970" d="M67.7779,-5169.9485C74.374,-5002.0912 121.8667,-3835.6567 170,-3781 186.1204,-3762.6948 211.6265,-3755.5926 235.2845,-3753.4071"/>
+<polygon fill="#191970" stroke="#191970" points="64.2675,-5170.1505 67.3742,-5180.2795 71.2621,-5170.4238 64.2675,-5170.1505"/>
</g>
<!-- Node239 -->
<g id="node240" class="node">
<title>Node239</title>
-<g id="a_node240"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerResult.html" target="_top" xlink:title="Managed reference to RunnerResultNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3643 235.5,-3673 351.5,-3673 351.5,-3643 235.5,-3643"/>
-<text text-anchor="start" x="243.5" y="-3661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3650" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerResult</text>
+<g id="a_node240"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerInput.html" target="_top" xlink:title="Managed reference to RunnerInputNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3692 235.5,-3722 351.5,-3722 351.5,-3692 235.5,-3692"/>
+<text text-anchor="start" x="243.5" y="-3710" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3699" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerInput</text>
</a>
</g>
</g>
<!-- Node0->Node239 -->
<g id="edge239" class="edge">
<title>Node0->Node239</title>
-<path fill="none" stroke="#191970" d="M67.7026,-5145.9589C73.8422,-4973.2194 119.3538,-3740.7211 170,-3683 186.0872,-3664.6656 211.589,-3657.5596 235.2527,-3655.3791"/>
-<polygon fill="#191970" stroke="#191970" points="64.1975,-5146.043 67.3422,-5156.1604 71.1932,-5146.2902 64.1975,-5146.043"/>
+<path fill="none" stroke="#191970" d="M67.7147,-5170.2963C73.9568,-5000.4657 120.1698,-3788.7232 170,-3732 186.098,-3713.6751 211.6013,-3706.5704 235.2631,-3704.3883"/>
+<polygon fill="#191970" stroke="#191970" points="64.2158,-5170.2049 67.3481,-5180.3261 71.2111,-5170.4606 64.2158,-5170.2049"/>
</g>
<!-- Node240 -->
<g id="node241" class="node">
<title>Node240</title>
-<g id="a_node241"><a xlink:href="classtvm_1_1meta__schedule_1_1ScheduleRule.html" target="_top" xlink:title="Managed reference to ScheduleRuleNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3594 235.5,-3624 351.5,-3624 351.5,-3594 235.5,-3594"/>
-<text text-anchor="start" x="243.5" y="-3612" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3601" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRule</text>
+<g id="a_node241"><a xlink:href="classtvm_1_1meta__schedule_1_1RunnerResult.html" target="_top" xlink:title="Managed reference to RunnerResultNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3643 235.5,-3673 351.5,-3673 351.5,-3643 235.5,-3643"/>
+<text text-anchor="start" x="243.5" y="-3661" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3650" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::RunnerResult</text>
</a>
</g>
</g>
<!-- Node0->Node240 -->
<g id="edge240" class="edge">
<title>Node0->Node240</title>
-<path fill="none" stroke="#191970" d="M67.652,-5146.107C73.4829,-4970.7469 117.6745,-3693.7682 170,-3634 186.0669,-3615.6478 211.5661,-3608.5395 235.2333,-3606.3621"/>
-<polygon fill="#191970" stroke="#191970" points="64.1497,-5146.1215 67.3175,-5156.2317 71.1459,-5146.3528 64.1497,-5146.1215"/>
+<path fill="none" stroke="#191970" d="M67.6725,-5170.1721C73.6402,-4996.6758 118.5176,-3741.7393 170,-3683 186.0771,-3664.6567 211.5776,-3657.5496 235.243,-3655.3707"/>
+<polygon fill="#191970" stroke="#191970" points="64.167,-5170.2772 67.3232,-5180.391 71.1629,-5170.5164 64.167,-5170.2772"/>
</g>
<!-- Node241 -->
<g id="node242" class="node">
<title>Node241</title>
-<g id="a_node242"><a xlink:href="classtvm_1_1meta__schedule_1_1SearchStrategy.html" target="_top" xlink:title="Managed reference to SearchStrategyNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3545 235.5,-3575 351.5,-3575 351.5,-3545 235.5,-3545"/>
-<text text-anchor="start" x="243.5" y="-3563" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3552" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchStrategy</text>
+<g id="a_node242"><a xlink:href="classtvm_1_1meta__schedule_1_1ScheduleRule.html" target="_top" xlink:title="Managed reference to ScheduleRuleNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3594 235.5,-3624 351.5,-3624 351.5,-3594 235.5,-3594"/>
+<text text-anchor="start" x="243.5" y="-3612" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3601" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ScheduleRule</text>
</a>
</g>
</g>
<!-- Node0->Node241 -->
<g id="edge241" class="edge">
<title>Node0->Node241</title>
-<path fill="none" stroke="#191970" d="M67.6038,-5146.2916C73.1319,-4968.5316 115.9901,-3646.8215 170,-3585 186.0479,-3566.6311 211.5446,-3559.5207 235.2151,-3557.3462"/>
-<polygon fill="#191970" stroke="#191970" points="64.1045,-5146.2172 67.2939,-5156.3205 71.1012,-5146.4334 64.1045,-5146.2172"/>
+<path fill="none" stroke="#191970" d="M67.6234,-5170.3402C73.2857,-4994.353 116.8353,-3694.79 170,-3634 186.0574,-3615.6395 211.5554,-3608.5302 235.2242,-3606.3542"/>
+<polygon fill="#191970" stroke="#191970" points="64.1208,-5170.3666 67.2994,-5180.4734 71.1172,-5170.5904 64.1208,-5170.3666"/>
</g>
<!-- Node242 -->
<g id="node243" class="node">
<title>Node242</title>
-<g id="a_node243"><a xlink:href="classtvm_1_1meta__schedule_1_1SpaceGenerator.html" target="_top" xlink:title="Managed reference to SpaceGeneratorNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3496 235.5,-3526 351.5,-3526 351.5,-3496 235.5,-3496"/>
-<text text-anchor="start" x="243.5" y="-3514" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3503" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SpaceGenerator</text>
+<g id="a_node243"><a xlink:href="classtvm_1_1meta__schedule_1_1SearchStrategy.html" target="_top" xlink:title="Managed reference to SearchStrategyNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3545 235.5,-3575 351.5,-3575 351.5,-3545 235.5,-3545"/>
+<text text-anchor="start" x="243.5" y="-3563" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3552" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SearchStrategy</text>
</a>
</g>
</g>
<!-- Node0->Node242 -->
<g id="edge242" class="edge">
<title>Node0->Node242</title>
-<path fill="none" stroke="#191970" d="M67.5656,-5146.241C72.8308,-4965.2114 114.3283,-3599.8491 170,-3536 186.0299,-3517.6155 211.5244,-3510.5031 235.198,-3508.3313"/>
-<polygon fill="#191970" stroke="#191970" points="64.0617,-5146.3291 67.2715,-5156.426 71.0588,-5146.5313 64.0617,-5146.3291"/>
+<path fill="none" stroke="#191970" d="M67.5931,-5169.9927C73.0261,-4989.537 115.2041,-3647.7826 170,-3585 186.0389,-3566.6233 211.5345,-3559.5119 235.2066,-3557.3388"/>
+<polygon fill="#191970" stroke="#191970" points="64.0892,-5170.0735 67.2886,-5180.1737 71.0861,-5170.2828 64.0892,-5170.0735"/>
</g>
<!-- Node243 -->
<g id="node244" class="node">
<title>Node243</title>
-<g id="a_node244"><a xlink:href="classtvm_1_1meta__schedule_1_1TaskScheduler.html" target="_top" xlink:title="Managed reference to TaskSchedulerNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3447 235.5,-3477 351.5,-3477 351.5,-3447 235.5,-3447"/>
-<text text-anchor="start" x="243.5" y="-3465" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3454" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskScheduler</text>
+<g id="a_node244"><a xlink:href="classtvm_1_1meta__schedule_1_1SpaceGenerator.html" target="_top" xlink:title="Managed reference to SpaceGeneratorNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3496 235.5,-3526 351.5,-3526 351.5,-3496 235.5,-3496"/>
+<text text-anchor="start" x="243.5" y="-3514" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3503" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::SpaceGenerator</text>
</a>
</g>
</g>
<!-- Node0->Node243 -->
<g id="edge243" class="edge">
<title>Node0->Node243</title>
-<path fill="none" stroke="#191970" d="M67.5368,-5145.9258C72.5774,-4960.5853 112.6931,-3552.8465 170,-3487 186.013,-3468.6008 211.5053,-3461.4865 235.1818,-3459.3172"/>
-<polygon fill="#191970" stroke="#191970" points="64.0324,-5146.0476 67.2611,-5156.1385 71.0298,-5146.2366 64.0324,-5146.0476"/>
+<path fill="none" stroke="#191970" d="M67.5475,-5170.2245C72.6856,-4987.6409 113.5132,-3600.8437 170,-3536 186.0215,-3517.6082 211.5149,-3510.4948 235.1899,-3508.3243"/>
+<polygon fill="#191970" stroke="#191970" points="64.0472,-5170.1913 67.2664,-5180.2852 71.0444,-5170.3869 64.0472,-5170.1913"/>
</g>
<!-- Node244 -->
<g id="node245" class="node">
<title>Node244</title>
-<g id="a_node245"><a xlink:href="classtvm_1_1meta__schedule_1_1TuneContext.html" target="_top" xlink:title="Managed reference to TuneContextNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3398 235.5,-3428 351.5,-3428 351.5,-3398 235.5,-3398"/>
-<text text-anchor="start" x="243.5" y="-3416" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3405" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext</text>
+<g id="a_node245"><a xlink:href="classtvm_1_1meta__schedule_1_1TaskScheduler.html" target="_top" xlink:title="Managed reference to TaskSchedulerNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3447 235.5,-3477 351.5,-3477 351.5,-3447 235.5,-3447"/>
+<text text-anchor="start" x="243.5" y="-3465" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3454" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TaskScheduler</text>
</a>
</g>
</g>
<!-- Node0->Node244 -->
<g id="edge244" class="edge">
<title>Node0->Node244</title>
-<path fill="none" stroke="#191970" d="M67.4939,-5146.2032C72.2476,-4959.0119 110.9959,-3505.9154 170,-3438 186.0688,-3419.5043 211.7161,-3412.4072 235.485,-3410.2751"/>
-<polygon fill="#191970" stroke="#191970" points="63.9933,-5146.1868 67.2402,-5156.2719 70.9911,-5146.3633 63.9933,-5146.1868"/>
+<path fill="none" stroke="#191970" d="M67.5115,-5170.2125C72.3929,-4984.5762 111.8463,-3553.8776 170,-3487 186.0769,-3468.5113 211.7252,-3461.4151 235.4927,-3459.2818"/>
+<polygon fill="#191970" stroke="#191970" points="64.0075,-5170.3245 67.2453,-5180.4125 71.0051,-5170.5072 64.0075,-5170.3245"/>
</g>
<!-- Node245 -->
<g id="node246" class="node">
<title>Node245</title>
-<g id="a_node246"><a xlink:href="classtvm_1_1meta__schedule_1_1TuningRecord.html" target="_top" xlink:title="The managed reference of TuningRecordNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3349 235.5,-3379 351.5,-3379 351.5,-3349 235.5,-3349"/>
-<text text-anchor="start" x="243.5" y="-3367" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3356" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuningRecord</text>
+<g id="a_node246"><a xlink:href="classtvm_1_1meta__schedule_1_1TuneContext.html" target="_top" xlink:title="Managed reference to TuneContextNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="235.5,-3398 235.5,-3428 351.5,-3428 351.5,-3398 235.5,-3398"/>
+<text text-anchor="start" x="243.5" y="-3416" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
+<text text-anchor="middle" x="293.5" y="-3405" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::TuneContext</text>
</a>
</g>
</g>
<!-- Node0->Node245 -->
<g id="edge245" class="edge">
<title>Node0->Node245</title>
-<path fill="none" stroke="#191970" d="M67.4599,-5146.2288C71.9635,-4956.2052 109.3238,-3458.9556 170,-3389 186.0537,-3370.4912 211.6991,-3363.3924 235.4706,-3361.2626"/>
-<polygon fill="#191970" stroke="#191970" points="63.9564,-5146.3407 67.2204,-5156.4202 70.9545,-5146.5053 63.9564,-5146.3407"/>
+<path fill="none" stroke="#191970" d="M67.4841,-5169.9285C72.1459,-4980.1397 110.2073,-3506.8797 170,-3438 186.0613,-3419.4978 211.7076,-3412.3999 235.4779,-3410.2689"/>
+<polygon fill="#191970" stroke="#191970" points="63.9801,-5170.0546 67.2353,-5180.1369 70.978,-5170.2252 63.9801,-5170.0546"/>
</g>
<!-- Node246 -->
<g id="node247" class="node">
<title>Node246</title>
-<g id="a_node247"><a xlink:href="classtvm_1_1meta__schedule_1_1Workload.html" target="_top" xlink:title="Managed reference to WorkloadNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="235.5,-3300 235.5,-3330 351.5,-3330 351.5,-3300 235.5,-3300"/>
-<text text-anchor="start" x="243.5" y="-3318" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::meta_schedule</text>
-<text text-anchor="middle" x="293.5" y="-3307" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Workload</text>
+<g id="a_node247"><a xlink:href="classtvm_1_1meta__schedule_1_1TuningRecord.html" target="_top" xlink:title="The managed reference of TuningRecordNode. ">
... 8627 lines suppressed ...