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 2026/03/28 18:23:36 UTC

(tvm-site) branch asf-site updated: deploying docs (apache/tvm@52b5d55fc4e629bed002b6e4e0383088a52ad17b)

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 c761b9a59f9 deploying docs (apache/tvm@52b5d55fc4e629bed002b6e4e0383088a52ad17b)
c761b9a59f9 is described below

commit c761b9a59f9d4602d3d6d6fca92696df9eeb0f58
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Sat Mar 28 18:23:29 2026 +0000

    deploying docs (apache/tvm@52b5d55fc4e629bed002b6e4e0383088a52ad17b)
---
 .../11c11e53c7dace51a8be968ee169ed0d/ir_module.zip |  Bin 23790 -> 23790 bytes
 .../tir_transformation.zip                         |  Bin 15899 -> 15899 bytes
 .../relax_creation.zip                             |  Bin 22420 -> 22420 bytes
 .../relax_transformation.zip                       |  Bin 11480 -> 11480 bytes
 .../optimize_llm.zip                               |  Bin 54112 -> 54112 bytes
 .../e2e_opt_model.zip                              |  Bin 14501 -> 14501 bytes
 .../quick_start.zip                                |  Bin 16252 -> 16252 bytes
 .../export_and_load_executable.zip                 |  Bin 31492 -> 31492 bytes
 .../tir_creation.zip                               |  Bin 24415 -> 24415 bytes
 .../cross_compilation_and_rpc.zip                  |  Bin 49383 -> 49383 bytes
 .../customize_opt.zip                              |  Bin 20544 -> 20544 bytes
 .../relax/tutorials/sg_execution_times.rst.txt     |    6 +-
 .../tensor_ir/tutorials/sg_execution_times.rst.txt |    6 +-
 .../tensor_ir/tutorials/tir_creation.rst.txt       |   20 +-
 .../tensor_ir/tutorials/tir_transformation.rst.txt |    6 +-
 .../get_started/tutorials/ir_module.rst.txt        |    8 +-
 .../get_started/tutorials/quick_start.rst.txt      |    4 +-
 .../tutorials/sg_execution_times.rst.txt           |    6 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |    6 +-
 .../how_to/tutorials/customize_opt.rst.txt         |    4 +-
 .../how_to/tutorials/e2e_opt_model.rst.txt         |    2 +-
 .../how_to/tutorials/sg_execution_times.rst.txt    |   10 +-
 docs/_sources/sg_execution_times.rst.txt           |   22 +-
 docs/commit_hash                                   |    2 +-
 .../relax/tutorials/sg_execution_times.html        |    6 +-
 .../tensor_ir/tutorials/sg_execution_times.html    |    6 +-
 .../tensor_ir/tutorials/tir_creation.html          |   20 +-
 .../tensor_ir/tutorials/tir_transformation.html    |    6 +-
 docs/genindex.html                                 |   56 +-
 docs/get_started/tutorials/ir_module.html          |    8 +-
 docs/get_started/tutorials/quick_start.html        |    4 +-
 docs/get_started/tutorials/sg_execution_times.html |    6 +-
 .../tutorials/cross_compilation_and_rpc.html       |    6 +-
 docs/how_to/tutorials/customize_opt.html           |    4 +-
 docs/how_to/tutorials/e2e_opt_model.html           |    6 +-
 docs/how_to/tutorials/sg_execution_times.html      |   10 +-
 docs/objects.inv                                   |  Bin 18939 -> 19066 bytes
 docs/reference/api/doxygen/annotated.html          |  278 +-
 docs/reference/api/doxygen/classes.html            |    4 +-
 .../api/doxygen/classtvm_1_1BaseAttrsNode.html     |    4 +-
 .../classtvm_1_1BaseAttrsNode__inherit__graph.svg  | 2790 ++++----
 docs/reference/api/doxygen/functions_c.html        |    3 +
 docs/reference/api/doxygen/functions_f.html        |    3 +
 docs/reference/api/doxygen/functions_func_r.html   |    2 +
 docs/reference/api/doxygen/functions_func_t.html   |    2 +
 docs/reference/api/doxygen/functions_i.html        |   14 +-
 docs/reference/api/doxygen/functions_m.html        |    3 +
 docs/reference/api/doxygen/functions_r.html        |    7 +-
 docs/reference/api/doxygen/functions_s.html        |   15 +-
 docs/reference/api/doxygen/functions_t.html        |   17 +-
 docs/reference/api/doxygen/functions_v.html        |    4 +-
 docs/reference/api/doxygen/functions_vars_c.html   |    3 +
 docs/reference/api/doxygen/functions_vars_f.html   |    3 +
 docs/reference/api/doxygen/functions_vars_i.html   |   10 +
 docs/reference/api/doxygen/functions_vars_m.html   |    3 +
 docs/reference/api/doxygen/functions_vars_r.html   |    3 +
 docs/reference/api/doxygen/functions_vars_s.html   |    7 +
 docs/reference/api/doxygen/functions_vars_t.html   |    3 +
 docs/reference/api/doxygen/hierarchy.html          |  228 +-
 docs/reference/api/doxygen/inherit_graph_10.svg    | 7238 ++++++++++----------
 docs/reference/api/doxygen/inherit_graph_58.svg    |  512 +-
 docs/reference/api/doxygen/inherit_graph_9.svg     | 1768 ++---
 docs/reference/api/doxygen/inherits.html           |    2 +-
 docs/reference/api/doxygen/namespaces.html         |  278 +-
 .../api/doxygen/namespacetvm_1_1relax.html         |    6 +
 docs/reference/api/doxygen/search/all_10.js        |  174 +-
 docs/reference/api/doxygen/search/all_11.js        |  386 +-
 docs/reference/api/doxygen/search/all_12.js        |   14 +-
 docs/reference/api/doxygen/search/all_13.js        |  360 +-
 docs/reference/api/doxygen/search/all_14.js        |  736 +-
 docs/reference/api/doxygen/search/all_15.js        |  695 +-
 docs/reference/api/doxygen/search/all_16.js        |  133 +-
 docs/reference/api/doxygen/search/all_17.js        |  216 +-
 docs/reference/api/doxygen/search/all_18.js        |  116 +-
 docs/reference/api/doxygen/search/all_19.js        |    2 +-
 docs/reference/api/doxygen/search/all_1a.js        |   92 +-
 docs/reference/api/doxygen/search/all_2.js         |  526 +-
 docs/reference/api/doxygen/search/all_3.js         |  336 +-
 docs/reference/api/doxygen/search/all_4.js         |  437 +-
 docs/reference/api/doxygen/search/all_5.js         |  438 +-
 docs/reference/api/doxygen/search/all_6.js         |  286 +-
 docs/reference/api/doxygen/search/all_7.js         |  659 +-
 docs/reference/api/doxygen/search/all_8.js         |  244 +-
 docs/reference/api/doxygen/search/all_9.js         |   56 +-
 docs/reference/api/doxygen/search/all_a.js         |  557 +-
 docs/reference/api/doxygen/search/all_b.js         |    8 +-
 docs/reference/api/doxygen/search/all_c.js         |  542 +-
 docs/reference/api/doxygen/search/all_d.js         |  224 +-
 docs/reference/api/doxygen/search/all_e.js         |  323 +-
 docs/reference/api/doxygen/search/all_f.js         |  137 +-
 docs/reference/api/doxygen/search/classes_0.js     |  264 +-
 docs/reference/api/doxygen/search/classes_1.js     |  102 +-
 docs/reference/api/doxygen/search/classes_10.js    |  246 +-
 docs/reference/api/doxygen/search/classes_11.js    |  162 +-
 docs/reference/api/doxygen/search/classes_12.js    |    4 +-
 docs/reference/api/doxygen/search/classes_13.js    |   40 +-
 docs/reference/api/doxygen/search/classes_14.js    |   32 +-
 docs/reference/api/doxygen/search/classes_2.js     |   98 +-
 docs/reference/api/doxygen/search/classes_3.js     |  126 +-
 docs/reference/api/doxygen/search/classes_4.js     |   76 +-
 docs/reference/api/doxygen/search/classes_5.js     |   66 +-
 docs/reference/api/doxygen/search/classes_6.js     |   35 +-
 docs/reference/api/doxygen/search/classes_7.js     |    2 +-
 docs/reference/api/doxygen/search/classes_8.js     |  118 +-
 docs/reference/api/doxygen/search/classes_9.js     |   50 +-
 docs/reference/api/doxygen/search/classes_a.js     |   72 +-
 docs/reference/api/doxygen/search/classes_b.js     |   29 +-
 docs/reference/api/doxygen/search/classes_c.js     |   36 +-
 docs/reference/api/doxygen/search/classes_d.js     |  140 +-
 docs/reference/api/doxygen/search/classes_e.js     |    2 +-
 docs/reference/api/doxygen/search/classes_f.js     |   60 +-
 docs/reference/api/doxygen/search/defines_0.js     |    6 +-
 docs/reference/api/doxygen/search/defines_1.js     |    2 +-
 docs/reference/api/doxygen/search/defines_2.js     |    4 +-
 docs/reference/api/doxygen/search/defines_3.js     |    2 +-
 docs/reference/api/doxygen/search/defines_4.js     |    4 +-
 docs/reference/api/doxygen/search/defines_5.js     |   10 +-
 docs/reference/api/doxygen/search/defines_6.js     |    4 +-
 docs/reference/api/doxygen/search/defines_7.js     |    4 +-
 docs/reference/api/doxygen/search/defines_8.js     |  114 +-
 docs/reference/api/doxygen/search/defines_9.js     |    2 +-
 docs/reference/api/doxygen/search/enums_0.js       |    6 +-
 docs/reference/api/doxygen/search/enums_1.js       |    6 +-
 docs/reference/api/doxygen/search/enums_2.js       |    6 +-
 docs/reference/api/doxygen/search/enums_3.js       |   10 +-
 docs/reference/api/doxygen/search/enums_4.js       |    6 +-
 docs/reference/api/doxygen/search/enums_5.js       |    4 +-
 docs/reference/api/doxygen/search/enums_6.js       |    4 +-
 docs/reference/api/doxygen/search/enums_7.js       |    2 +-
 docs/reference/api/doxygen/search/enums_8.js       |    2 +-
 docs/reference/api/doxygen/search/enums_9.js       |    4 +-
 docs/reference/api/doxygen/search/enums_a.js       |    4 +-
 docs/reference/api/doxygen/search/enums_b.js       |    6 +-
 docs/reference/api/doxygen/search/enums_c.js       |    2 +-
 docs/reference/api/doxygen/search/enums_d.js       |    8 +-
 docs/reference/api/doxygen/search/enums_e.js       |   10 +-
 docs/reference/api/doxygen/search/enums_f.js       |    2 +-
 docs/reference/api/doxygen/search/enumvalues_0.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_1.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_2.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_3.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_4.js  |  414 +-
 docs/reference/api/doxygen/search/enumvalues_5.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_6.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_7.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_8.js  |    2 +-
 docs/reference/api/doxygen/search/files_0.js       |   14 +-
 docs/reference/api/doxygen/search/files_1.js       |   26 +-
 docs/reference/api/doxygen/search/files_10.js      |   32 +-
 docs/reference/api/doxygen/search/files_11.js      |    2 +-
 docs/reference/api/doxygen/search/files_12.js      |    8 +-
 docs/reference/api/doxygen/search/files_13.js      |    4 +-
 docs/reference/api/doxygen/search/files_2.js       |   20 +-
 docs/reference/api/doxygen/search/files_3.js       |   28 +-
 docs/reference/api/doxygen/search/files_4.js       |   18 +-
 docs/reference/api/doxygen/search/files_5.js       |   12 +-
 docs/reference/api/doxygen/search/files_6.js       |    6 +-
 docs/reference/api/doxygen/search/files_7.js       |   28 +-
 docs/reference/api/doxygen/search/files_8.js       |    6 +-
 docs/reference/api/doxygen/search/files_9.js       |   14 +-
 docs/reference/api/doxygen/search/files_a.js       |    8 +-
 docs/reference/api/doxygen/search/files_b.js       |    8 +-
 docs/reference/api/doxygen/search/files_c.js       |   14 +-
 docs/reference/api/doxygen/search/files_d.js       |    2 +-
 docs/reference/api/doxygen/search/files_e.js       |   16 +-
 docs/reference/api/doxygen/search/files_f.js       |   48 +-
 docs/reference/api/doxygen/search/functions_0.js   |   10 +-
 docs/reference/api/doxygen/search/functions_1.js   |  228 +-
 docs/reference/api/doxygen/search/functions_10.js  |  190 +-
 docs/reference/api/doxygen/search/functions_11.js  |    8 +-
 docs/reference/api/doxygen/search/functions_12.js  |  220 +-
 docs/reference/api/doxygen/search/functions_13.js  |  364 +-
 docs/reference/api/doxygen/search/functions_14.js  |  263 +-
 docs/reference/api/doxygen/search/functions_15.js  |  112 +-
 docs/reference/api/doxygen/search/functions_16.js  |  128 +-
 docs/reference/api/doxygen/search/functions_17.js  |   70 +-
 docs/reference/api/doxygen/search/functions_18.js  |    2 +-
 docs/reference/api/doxygen/search/functions_19.js  |   92 +-
 docs/reference/api/doxygen/search/functions_2.js   |  170 +-
 docs/reference/api/doxygen/search/functions_3.js   |  260 +-
 docs/reference/api/doxygen/search/functions_4.js   |  216 +-
 docs/reference/api/doxygen/search/functions_5.js   |  140 +-
 docs/reference/api/doxygen/search/functions_6.js   |  382 +-
 docs/reference/api/doxygen/search/functions_7.js   |  206 +-
 docs/reference/api/doxygen/search/functions_8.js   |   46 +-
 docs/reference/api/doxygen/search/functions_9.js   |  364 +-
 docs/reference/api/doxygen/search/functions_a.js   |    8 +-
 docs/reference/api/doxygen/search/functions_b.js   |    2 +-
 docs/reference/api/doxygen/search/functions_c.js   |  142 +-
 docs/reference/api/doxygen/search/functions_d.js   |  156 +-
 docs/reference/api/doxygen/search/functions_e.js   |   84 +-
 docs/reference/api/doxygen/search/functions_f.js   |  100 +-
 docs/reference/api/doxygen/search/namespaces_0.js  |   70 +-
 docs/reference/api/doxygen/search/related_0.js     |    2 +-
 docs/reference/api/doxygen/search/related_1.js     |    6 +-
 docs/reference/api/doxygen/search/related_2.js     |    2 +-
 docs/reference/api/doxygen/search/related_3.js     |    6 +-
 docs/reference/api/doxygen/search/related_4.js     |    8 +-
 docs/reference/api/doxygen/search/related_5.js     |    2 +-
 docs/reference/api/doxygen/search/related_6.js     |    6 +-
 docs/reference/api/doxygen/search/related_7.js     |    8 +-
 docs/reference/api/doxygen/search/related_8.js     |    2 +-
 docs/reference/api/doxygen/search/related_9.js     |    4 +-
 docs/reference/api/doxygen/search/related_a.js     |   10 +-
 docs/reference/api/doxygen/search/related_b.js     |    2 +-
 docs/reference/api/doxygen/search/related_c.js     |    8 +-
 docs/reference/api/doxygen/search/related_d.js     |    8 +-
 docs/reference/api/doxygen/search/typedefs_0.js    |    6 +-
 docs/reference/api/doxygen/search/typedefs_1.js    |    4 +-
 docs/reference/api/doxygen/search/typedefs_2.js    |    8 +-
 docs/reference/api/doxygen/search/typedefs_3.js    |    8 +-
 docs/reference/api/doxygen/search/typedefs_4.js    |   12 +-
 docs/reference/api/doxygen/search/typedefs_5.js    |  114 +-
 docs/reference/api/doxygen/search/typedefs_6.js    |    8 +-
 docs/reference/api/doxygen/search/typedefs_7.js    |    4 +-
 docs/reference/api/doxygen/search/typedefs_8.js    |    4 +-
 docs/reference/api/doxygen/search/typedefs_9.js    |   10 +-
 docs/reference/api/doxygen/search/typedefs_a.js    |    6 +-
 docs/reference/api/doxygen/search/typedefs_b.js    |    6 +-
 docs/reference/api/doxygen/search/typedefs_c.js    |   30 +-
 docs/reference/api/doxygen/search/variables_0.js   |   12 +-
 docs/reference/api/doxygen/search/variables_1.js   |   72 +-
 docs/reference/api/doxygen/search/variables_10.js  |    2 +-
 docs/reference/api/doxygen/search/variables_11.js  |   79 +-
 docs/reference/api/doxygen/search/variables_12.js  |  126 +-
 docs/reference/api/doxygen/search/variables_13.js  |   77 +-
 docs/reference/api/doxygen/search/variables_14.js  |   16 +-
 docs/reference/api/doxygen/search/variables_15.js  |   46 +-
 docs/reference/api/doxygen/search/variables_16.js  |   16 +-
 docs/reference/api/doxygen/search/variables_2.js   |   58 +-
 docs/reference/api/doxygen/search/variables_3.js   |   67 +-
 docs/reference/api/doxygen/search/variables_4.js   |  104 +-
 docs/reference/api/doxygen/search/variables_5.js   |   60 +-
 docs/reference/api/doxygen/search/variables_6.js   |  109 +-
 docs/reference/api/doxygen/search/variables_7.js   |   12 +-
 docs/reference/api/doxygen/search/variables_8.js   |    8 +-
 docs/reference/api/doxygen/search/variables_9.js   |   79 +-
 docs/reference/api/doxygen/search/variables_a.js   |  130 +-
 docs/reference/api/doxygen/search/variables_b.js   |   36 +-
 docs/reference/api/doxygen/search/variables_c.js   |   93 +-
 docs/reference/api/doxygen/search/variables_d.js   |   28 +-
 docs/reference/api/doxygen/search/variables_e.js   |   38 +-
 docs/reference/api/doxygen/search/variables_f.js   |   70 +-
 ...vm_1_1relax_1_1GetValidCountsAttrs-members.html |   91 +
 .../structtvm_1_1relax_1_1GetValidCountsAttrs.html |  248 +
 ..._1relax_1_1GetValidCountsAttrs__coll__graph.svg |   93 +
 ...elax_1_1GetValidCountsAttrs__inherit__graph.svg |   93 +
 ...elax_1_1NonMaximumSuppressionAttrs-members.html |   97 +
 ...tvm_1_1relax_1_1NonMaximumSuppressionAttrs.html |  344 +
 ..._1_1NonMaximumSuppressionAttrs__coll__graph.svg |   99 +
 ...1NonMaximumSuppressionAttrs__inherit__graph.svg |   99 +
 docs/reference/api/doxygen/vision_8h.html          |    6 +
 docs/reference/api/doxygen/vision_8h_source.html   |  142 +-
 docs/reference/api/python/relax/op.html            |  151 +
 .../api/typedoc/classes/ArtifactCache.html         |   14 +-
 .../classes/ArtifactCrossOriginStorageCache.html   |   12 +-
 .../typedoc/classes/ArtifactIndexedDBCache.html    |   12 +-
 docs/reference/api/typedoc/classes/CacheState.html |   10 +-
 docs/reference/api/typedoc/classes/DLDataType.html |   10 +-
 docs/reference/api/typedoc/classes/DLDevice.html   |   10 +-
 docs/reference/api/typedoc/classes/Instance.html   |  108 +-
 docs/reference/api/typedoc/classes/LRUCache.html   |   14 +-
 .../classes/LinearCongruentialGenerator.html       |   10 +-
 docs/reference/api/typedoc/classes/Module.html     |   16 +-
 docs/reference/api/typedoc/classes/RPCServer.html  |    4 +-
 docs/reference/api/typedoc/classes/Scalar.html     |    8 +-
 docs/reference/api/typedoc/classes/TVMArray.html   |   16 +-
 docs/reference/api/typedoc/classes/TVMObject.html  |   12 +-
 docs/reference/api/typedoc/classes/Tensor.html     |   34 +-
 .../api/typedoc/classes/VirtualMachine.html        |   10 +-
 .../classes/_internal_.AsyncifyHandler.html        |   14 +-
 .../classes/_internal_.CachedCallStack.html        |   24 +-
 .../classes/_internal_.CanvasRenderManager.html    |    6 +-
 .../classes/_internal_.CrossOriginStorage.html     |    4 +-
 .../typedoc/classes/_internal_.Environment.html    |   12 +-
 .../api/typedoc/classes/_internal_.FFILibrary.html |    6 +-
 .../api/typedoc/classes/_internal_.Memory.html     |   22 +-
 .../typedoc/classes/_internal_.PackedFuncCell.html |   12 +-
 .../typedoc/classes/_internal_.RuntimeContext.html |    8 +-
 .../typedoc/classes/_internal_.WebGPUContext.html  |   26 +-
 .../enums/_internal_.AsyncifyStateKind.html        |    4 +-
 .../typedoc/enums/_internal_.RPCServerState.html   |    4 +-
 docs/reference/api/typedoc/functions/assert.html   |    2 +-
 .../api/typedoc/functions/createArtifactCache.html |    2 +-
 .../api/typedoc/functions/createPolyfillWASI.html  |    2 +-
 .../api/typedoc/functions/deleteTensorCache.html   |    4 +-
 .../api/typedoc/functions/detectGPUDevice.html     |    2 +-
 .../api/typedoc/functions/hasTensorInCache.html    |    4 +-
 .../api/typedoc/functions/instantiate.html         |    2 +-
 docs/reference/api/typedoc/functions/wasmPath.html |    2 +-
 .../typedoc/interfaces/ArtifactCacheTemplate.html  |   10 +-
 .../api/typedoc/interfaces/Disposable.html         |    4 +-
 .../interfaces/FetchTensorCacheOptions.html        |    4 +-
 .../typedoc/interfaces/GPUDeviceDetectOutput.html  |    4 +-
 .../api/typedoc/interfaces/InitProgressReport.html |    4 +-
 .../api/typedoc/interfaces/LibraryProvider.html    |    6 +-
 .../interfaces/TensorCacheAccessOptions.html       |    4 +-
 .../_internal_.CrossOriginHashDescriptor.html      |    4 +-
 .../_internal_.CrossOriginStorageAPI.html          |    4 +-
 .../_internal_.CrossOriginStorageHandle.html       |    4 +-
 ...CrossOriginStorageRequestFileHandleOptions.html |    4 +-
 .../_internal_.CrossOriginStorageWritable.html     |    4 +-
 .../interfaces/_internal_.FunctionInfo.html        |    4 +-
 .../interfaces/_internal_.TensorCacheEntry.html    |    4 +-
 .../interfaces/_internal_.TensorShardEntry.html    |    4 +-
 .../api/typedoc/types/ArtifactCacheType.html       |    2 +-
 .../api/typedoc/types/InitProgressCallback.html    |    2 +-
 docs/reference/api/typedoc/types/PackedFunc.html   |    2 +-
 .../typedoc/types/_internal_.AsyncPackedFunc.html  |    2 +-
 .../types/_internal_.FObjectConstructor.html       |    2 +-
 .../types/_internal_.FTVMFFIWasmSafeCallType.html  |    2 +-
 .../types/_internal_.FTVMWasmAllocSpace.html       |    2 +-
 .../types/_internal_.FTVMWasmFreeSpace.html        |    2 +-
 .../api/typedoc/types/_internal_.Pointer.html      |    2 +-
 .../api/typedoc/types/_internal_.RequestLike.html  |    2 +-
 .../typedoc/types/_internal_.TVMObjectBase.html    |    2 +-
 docs/searchindex.js                                |    2 +-
 docs/sg_execution_times.html                       |   22 +-
 318 files changed, 16645 insertions(+), 14944 deletions(-)

diff --git a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip
index 41b58aa236c..c2f44f39286 100644
Binary files a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip and b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip differ
diff --git a/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip b/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip
index fa12523287e..1bc991659ea 100644
Binary files a/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip and b/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip differ
diff --git a/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip b/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip
index babf93d1b4d..e2f05470928 100644
Binary files a/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip and b/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip differ
diff --git a/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip b/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip
index b058344284b..efd5d9e65c3 100644
Binary files a/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip and b/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip differ
diff --git a/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip b/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip
index e9c48345f2e..5e69828206b 100644
Binary files a/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip and b/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip differ
diff --git a/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip b/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip
index f8b6e0f79ea..c793c62428c 100644
Binary files a/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip and b/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip differ
diff --git a/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip b/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip
index 6dcbed5b528..4f47666782f 100644
Binary files a/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip and b/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip differ
diff --git a/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip b/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip
index 8f1794ec303..29da13e8de9 100644
Binary files a/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip and b/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip differ
diff --git a/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip b/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip
index 62dc2631c38..433a450d79a 100644
Binary files a/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip and b/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip differ
diff --git a/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip b/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip
index 3bb62f0e9ff..10426669d1d 100644
Binary files a/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip and b/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip differ
diff --git a/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip b/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip
index 3cab92cf278..d661edaf332 100644
Binary files a/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip and b/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip differ
diff --git a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
index 13121fcbb1e..ca57e1e7fab 100644
--- a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:00.203** total execution time for 2 files **from deep_dive/relax/tutorials**:
+**00:00.197** total execution time for 2 files **from deep_dive/relax/tutorials**:
 
 .. container::
 
@@ -33,8 +33,8 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``relax_creation.py``)
-     - 00:00.132
+     - 00:00.129
      - 0.0
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``relax_transformation.py``)
-     - 00:00.071
+     - 00:00.068
      - 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
index bb06ba695cb..82d2744213e 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:00.520** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
+**00:00.515** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
 
 .. container::
 
@@ -33,8 +33,8 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``tir_transformation.py``)
-     - 00:00.315
+     - 00:00.313
      - 0.0
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``tir_creation.py``)
-     - 00:00.204
+     - 00:00.202
      - 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
index e098d703ffc..e556b747524 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
@@ -319,17 +319,17 @@ Now let's check the runtime dynamic shape inference:
 
  .. code-block:: none
 
-    [[0.68409204 1.0846634  0.82418954 1.3550504 ]
-     [0.5978366  0.5291145  0.8595178  0.9144956 ]
-     [0.45413673 1.0373529  0.6250269  0.9964866 ]
-     [0.7537211  1.3159986  1.0283307  1.5544537 ]]
-    [[33.70426  31.924307 33.937866 ... 34.984203 30.44086  31.243532]
-     [32.837086 33.096207 36.29516  ... 34.976654 29.498142 31.954334]
-     [30.944248 31.340292 32.259933 ... 33.299118 29.294558 30.636223]
+    [[1.4607116  1.8796989  0.6853194  2.2872963 ]
+     [1.3699341  1.8345175  1.0257185  2.1218371 ]
+     [0.5024595  1.2063309  0.44724435 1.2025007 ]
+     [1.257962   1.4042174  0.8876968  1.7321924 ]]
+    [[34.165257 35.651573 36.5389   ... 34.751514 36.40951  34.128284]
+     [30.34376  30.915823 32.244972 ... 31.921473 32.49001  31.287033]
+     [28.128963 28.026077 31.25281  ... 27.674007 30.007364 28.076538]
      ...
-     [32.69952  28.165737 33.3007   ... 32.139885 28.764967 29.230038]
-     [30.047626 31.167595 32.845943 ... 32.732273 27.843275 30.186605]
-     [33.99653  32.429325 32.889053 ... 32.798325 30.147057 29.214188]]
+     [31.668642 32.65713  33.551613 ... 32.68098  32.98927  30.984167]
+     [32.932808 33.325413 36.69763  ... 32.77319  34.03709  32.800426]
+     [27.238083 27.422066 30.64499  ... 29.270191 29.301998 26.767523]]
 
 
 
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
index 445fe5c1596..ae91a7fc9ac 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
@@ -120,7 +120,7 @@ original implementation.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       2.7544       2.7544       2.7544       2.7544       0.0000                  
+       2.7737       2.7737       2.7737       2.7737       0.0000                  
 
 
 
@@ -292,7 +292,7 @@ action involves reordering these two loops.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       0.8640       0.8640       0.8640       0.8640       0.0000                  
+       0.8676       0.8676       0.8676       0.8676       0.0000                  
 
 
 
@@ -420,7 +420,7 @@ from the reduction update via the **decompose_reduction** primitive.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       0.3382       0.3382       0.3382       0.3382       0.0000                  
+       0.3355       0.3355       0.3355       0.3355       0.0000                  
 
 
 
diff --git a/docs/_sources/get_started/tutorials/ir_module.rst.txt b/docs/_sources/get_started/tutorials/ir_module.rst.txt
index d1617a15603..e17edb07523 100644
--- a/docs/_sources/get_started/tutorials/ir_module.rst.txt
+++ b/docs/_sources/get_started/tutorials/ir_module.rst.txt
@@ -694,8 +694,8 @@ We can deploy the IRModule on CPU by specifying the target as ``llvm``.
 
  .. code-block:: none
 
-    [[-0.18282649  0.07464705 -0.22341537  0.0466667   0.0097351  -0.09745602
-      -0.09773871 -0.14742492  0.08786604 -0.26523253]]
+    [[-0.07790685 -0.15177293 -0.17373744  0.04504168  0.07806255 -0.07537536
+      -0.09914688 -0.01761421 -0.1288901  -0.01522247]]
 
 
 
@@ -761,8 +761,8 @@ Now we can compile the IRModule on GPU, the similar way as we did on CPU.
 
  .. code-block:: none
 
-    [[-0.18282652  0.07464705 -0.22341532  0.04666666  0.00973514 -0.09745597
-      -0.09773876 -0.14742488  0.08786605 -0.2652325 ]]
+    [[-0.07790685 -0.15177289 -0.17373744  0.04504164  0.07806258 -0.07537537
+      -0.09914688 -0.01761426 -0.1288901  -0.01522248]]
 
 
 
diff --git a/docs/_sources/get_started/tutorials/quick_start.rst.txt b/docs/_sources/get_started/tutorials/quick_start.rst.txt
index 4d6713ae839..ed0647e835b 100644
--- a/docs/_sources/get_started/tutorials/quick_start.rst.txt
+++ b/docs/_sources/get_started/tutorials/quick_start.rst.txt
@@ -224,8 +224,8 @@ different devices.
 
  .. code-block:: none
 
-    [[24202.832 24418.084 23808.89  22642.787 24318.287 25918.344 24786.324
-      24122.512 24806.186 24499.451]]
+    [[26430.422 25031.344 26769.482 24107.984 26596.605 26735.393 24290.738
+      25352.896 25306.049 24938.502]]
 
 
 
diff --git a/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt b/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
index 9a97757bee1..7760eb83412 100644
--- a/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:08.148** total execution time for 2 files **from get_started/tutorials**:
+**00:08.192** total execution time for 2 files **from get_started/tutorials**:
 
 .. container::
 
@@ -33,8 +33,8 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``ir_module.py``)
-     - 00:07.961
+     - 00:08.007
      - 0.0
    * - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``quick_start.py``)
-     - 00:00.186
+     - 00:00.185
      - 0.0
diff --git a/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt
index 6b1822b2aa2..27ee64aaf89 100644
--- a/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt
@@ -268,7 +268,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.17e-07 secs/op
+    1.92e-06 secs/op
 
 
 
@@ -670,8 +670,8 @@ This workflow is applicable to various deployment scenarios:
     Converted PyTorch model to Relax:
       - Number of parameters: 4
     Using local target for demonstration
-    Exported library to: /tmp/tmpi_t86tzp/model_deployed.so
-    Saved parameters to: /tmp/tmpi_t86tzp/model_params.npz
+    Exported library to: /tmp/tmp3hd1wz3u/model_deployed.so
+    Saved parameters to: /tmp/tmp3hd1wz3u/model_params.npz
 
     RPC workflow (works for any remote device):
     ==================================================
diff --git a/docs/_sources/how_to/tutorials/customize_opt.rst.txt b/docs/_sources/how_to/tutorials/customize_opt.rst.txt
index 5b8aeb8f6e3..e0f9e94ec77 100644
--- a/docs/_sources/how_to/tutorials/customize_opt.rst.txt
+++ b/docs/_sources/how_to/tutorials/customize_opt.rst.txt
@@ -425,8 +425,8 @@ We can build and deploy the optimized model to the TVM runtime.
 
  .. code-block:: none
 
-    [[24376.836 25294.375 24080.332 26115.168 26406.105 24803.615 26546.309
-      26974.918 24665.71  25390.54 ]]
+    [[24392.129 23376.184 23843.127 24249.176 25525.084 24629.783 24325.812
+      24629.473 23986.781 24105.46 ]]
 
 
 
diff --git a/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt b/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
index 4f8cd975467..c97c9596e6f 100644
--- a/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
+++ b/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
@@ -54,7 +54,7 @@ PyTorch.
  .. 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]      64%|██████▍   | 28.8M/44.7M [00:00<00:00, 301MB/s]     100%|██████████| 44.7M/44.7M [00:00<00:00, 307MB/s]
+       0%|          | 0.00/44.7M [00:00<?, ?B/s]      20%|██        | 9.00M/44.7M [00:00<00:00, 93.5MB/s]      46%|████▌     | 20.6M/44.7M [00:00<00:00, 109MB/s]       97%|█████████▋| 43.5M/44.7M [00:00<00:00, 168MB/s]     100%|██████████| 44.7M/44.7M [00:00<00:00, 152MB/s]
 
 
 
diff --git a/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt b/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
index 9746bab5702..35524ebbc91 100644
--- a/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:37.899** total execution time for 5 files **from how_to/tutorials**:
+**00:37.156** total execution time for 5 files **from how_to/tutorials**:
 
 .. container::
 
@@ -33,16 +33,16 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``optimize_llm.py``)
-     - 00:35.968
+     - 00:35.077
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``e2e_opt_model.py``)
-     - 00:00.706
+     - 00:00.859
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``customize_opt.py``)
-     - 00:00.648
+     - 00:00.639
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
-     - 00:00.575
+     - 00:00.578
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_export_and_load_executable.py` (``export_and_load_executable.py``)
      - 00:00.002
diff --git a/docs/_sources/sg_execution_times.rst.txt b/docs/_sources/sg_execution_times.rst.txt
index 717842a4709..07dd0a72fb8 100644
--- a/docs/_sources/sg_execution_times.rst.txt
+++ b/docs/_sources/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:46.769** total execution time for 11 files **from all galleries**:
+**00:46.061** total execution time for 11 files **from all galleries**:
 
 .. container::
 
@@ -33,34 +33,34 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``../how_to/tutorials/optimize_llm.py``)
-     - 00:35.968
+     - 00:35.077
      - 0.0
    * - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``../get_started/tutorials/ir_module.py``)
-     - 00:07.961
+     - 00:08.007
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``../how_to/tutorials/e2e_opt_model.py``)
-     - 00:00.706
+     - 00:00.859
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``../how_to/tutorials/customize_opt.py``)
-     - 00:00.648
+     - 00:00.639
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
-     - 00:00.575
+     - 00:00.578
      - 0.0
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``../deep_dive/tensor_ir/tutorials/tir_transformation.py``)
-     - 00:00.315
+     - 00:00.313
      - 0.0
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
-     - 00:00.204
+     - 00:00.202
      - 0.0
    * - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``../get_started/tutorials/quick_start.py``)
-     - 00:00.186
+     - 00:00.185
      - 0.0
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``../deep_dive/relax/tutorials/relax_creation.py``)
-     - 00:00.132
+     - 00:00.129
      - 0.0
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``../deep_dive/relax/tutorials/relax_transformation.py``)
-     - 00:00.071
+     - 00:00.068
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_export_and_load_executable.py` (``../how_to/tutorials/export_and_load_executable.py``)
      - 00:00.002
diff --git a/docs/commit_hash b/docs/commit_hash
index 1c8a3a42ca2..c8f90d9e32f 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-9dcc73131648b17fe2e500f81e94508e123e13de
+52b5d55fc4e629bed002b6e4e0383088a52ad17b
diff --git a/docs/deep_dive/relax/tutorials/sg_execution_times.html b/docs/deep_dive/relax/tutorials/sg_execution_times.html
index f79f9a87710..66182d28456 100644
--- a/docs/deep_dive/relax/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/relax/tutorials/sg_execution_times.html
@@ -294,7 +294,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-deep-dive-relax-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:00.203</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
+<p><strong>00:00.197</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -316,11 +316,11 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="relax_creation.html#sphx-glr-deep-dive-relax-tutorials-relax-creation-py"><span class="std std-ref">Relax Creation</span></a> (<code class="docutils literal notranslate"><span class="pre">relax_creation.py</span></code>)</p></td>
-<td><p>00:00.132</p></td>
+<td><p>00:00.129</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="relax_transformation.html#sphx-glr-deep-dive-relax-tutorials-relax-transformation-py"><span class="std std-ref">Transformation</span></a> (<code class="docutils literal notranslate"><span class="pre">relax_transformation.py</span></code>)</p></td>
-<td><p>00:00.071</p></td>
+<td><p>00:00.068</p></td>
 <td><p>0.0</p></td>
 </tr>
 </tbody>
diff --git a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
index 107e5869f73..f13dc0c8b29 100644
--- a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
@@ -294,7 +294,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-deep-dive-tensor-ir-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:00.520</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
+<p><strong>00:00.515</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -316,11 +316,11 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="tir_transformation.html#sphx-glr-deep-dive-tensor-ir-tutorials-tir-transformation-py"><span class="std std-ref">Transformation</span></a> (<code class="docutils literal notranslate"><span class="pre">tir_transformation.py</span></code>)</p></td>
-<td><p>00:00.315</p></td>
+<td><p>00:00.313</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tir_creation.html#sphx-glr-deep-dive-tensor-ir-tutorials-tir-creation-py"><span class="std std-ref">TensorIR Creation</span></a> (<code class="docutils literal notranslate"><span class="pre">tir_creation.py</span></code>)</p></td>
-<td><p>00:00.204</p></td>
+<td><p>00:00.202</p></td>
 <td><p>0.0</p></td>
 </tr>
 </tbody>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
index 06176567b0d..7d35d062f5a 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
@@ -490,17 +490,17 @@ be used to ascertain the shape and data type of a TensorIR.</p>
 <span class="nb">print</span><span class="p">(</span><span class="n">evaluate_dynamic_shape</span><span class="p">(</span><span class="n">dyn_shape_lib</span><span class="p">,</span> <span class="n">m</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <a href="../../../reference/api/python/tirx/tirx.html#tvm.tirx.IterVar" title="tvm.tirx.IterVar" class="sphx-gl [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[0.68409204 1.0846634  0.82418954 1.3550504 ]
- [0.5978366  0.5291145  0.8595178  0.9144956 ]
- [0.45413673 1.0373529  0.6250269  0.9964866 ]
- [0.7537211  1.3159986  1.0283307  1.5544537 ]]
-[[33.70426  31.924307 33.937866 ... 34.984203 30.44086  31.243532]
- [32.837086 33.096207 36.29516  ... 34.976654 29.498142 31.954334]
- [30.944248 31.340292 32.259933 ... 33.299118 29.294558 30.636223]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[1.4607116  1.8796989  0.6853194  2.2872963 ]
+ [1.3699341  1.8345175  1.0257185  2.1218371 ]
+ [0.5024595  1.2063309  0.44724435 1.2025007 ]
+ [1.257962   1.4042174  0.8876968  1.7321924 ]]
+[[34.165257 35.651573 36.5389   ... 34.751514 36.40951  34.128284]
+ [30.34376  30.915823 32.244972 ... 31.921473 32.49001  31.287033]
+ [28.128963 28.026077 31.25281  ... 27.674007 30.007364 28.076538]
  ...
- [32.69952  28.165737 33.3007   ... 32.139885 28.764967 29.230038]
- [30.047626 31.167595 32.845943 ... 32.732273 27.843275 30.186605]
- [33.99653  32.429325 32.889053 ... 32.798325 30.147057 29.214188]]
+ [31.668642 32.65713  33.551613 ... 32.68098  32.98927  30.984167]
+ [32.932808 33.325413 36.69763  ... 32.77319  34.03709  32.800426]
+ [27.238083 27.422066 30.64499  ... 29.270191 29.301998 26.767523]]
 </pre></div>
 </div>
 </section>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
index 405ab06abcd..e178f9114f3 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
@@ -371,7 +371,7 @@ original implementation.</p>
 </div>
 <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)
-   2.7544       2.7544       2.7544       2.7544       0.0000
+   2.7737       2.7737       2.7737       2.7737       0.0000
 </pre></div>
 </div>
 <section id="initialization-schedule">
@@ -467,7 +467,7 @@ class Module:
 
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   0.8640       0.8640       0.8640       0.8640       0.0000
+   0.8676       0.8676       0.8676       0.8676       0.0000
 </pre></div>
 </div>
 </section>
@@ -561,7 +561,7 @@ class Module:
 
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   0.3382       0.3382       0.3382       0.3382       0.0000
+   0.3355       0.3355       0.3355       0.3355       0.0000
 </pre></div>
 </div>
 </section>
diff --git a/docs/genindex.html b/docs/genindex.html
index 40b88d8a5b1..2ca80b3f936 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -1165,6 +1165,8 @@
       <li><a href="reference/api/python/contrib.html#tvm.contrib.nnpack.convolution_inference_weight_transform">convolution_inference_weight_transform() (in module tvm.contrib.nnpack)</a>
 </li>
       <li><a href="reference/api/python/contrib.html#tvm.contrib.nnpack.convolution_inference_without_weight_transform">convolution_inference_without_weight_transform() (in module tvm.contrib.nnpack)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.coord_start">coord_start (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
 </li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.Resize2DAttrs.coordinate_transformation_mode">coordinate_transformation_mode (tvm.relax.op.op_attrs.Resize2DAttrs property)</a>
 </li>
@@ -1756,10 +1758,12 @@
 </li>
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.For">For (class in tvm.tirx)</a>
 </li>
-      <li><a href="reference/api/python/tirx/transform.html#tvm.tirx.transform.ForceNarrowIndexToInt32">ForceNarrowIndexToInt32() (in module tvm.tirx.transform)</a>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.force_suppress">force_suppress (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="reference/api/python/tirx/transform.html#tvm.tirx.transform.ForceNarrowIndexToInt32">ForceNarrowIndexToInt32() (in module tvm.tirx.transform)</a>
+</li>
       <li><a href="reference/api/python/s_tir/schedule.html#tvm.s_tir.schedule.Schedule.fork_seed">fork_seed() (tvm.s_tir.schedule.Schedule method)</a>
 </li>
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.ForKind">ForKind (class in tvm.tirx)</a>
@@ -1962,10 +1966,10 @@
 </li>
       <li><a href="reference/api/python/ir.html#tvm.ir.Attrs.get_int_tuple">get_int_tuple() (tvm.ir.Attrs method)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/topi.html#tvm.topi.image.get_inx">get_inx() (in module tvm.topi.image)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/target.html#tvm.target.Target.get_kind_attr">get_kind_attr() (tvm.target.Target method)</a>
 </li>
       <li><a href="reference/api/python/s_tir/schedule.html#tvm.s_tir.schedule.Schedule.get_loops">get_loops() (tvm.s_tir.schedule.Schedule method)</a>
@@ -2021,12 +2025,16 @@
       <li><a href="reference/api/python/meta_schedule.html#tvm.s_tir.meta_schedule.Database.get_top_k">get_top_k() (tvm.s_tir.meta_schedule.Database method)</a>
 </li>
       <li><a href="reference/api/python/relax/block_builder.html#tvm.relax.block_builder.BlockBuilder.get_unique_name">get_unique_name() (tvm.relax.block_builder.BlockBuilder method)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.get_valid_counts">get_valid_counts() (in module tvm.relax.op)</a>
 </li>
       <li><a href="reference/api/python/relax/analysis.html#tvm.relax.analysis.get_var2val">get_var2val() (in module tvm.relax.analysis)</a>
 </li>
       <li><a href="reference/api/python/relax/relax.html#tvm.relax.PyExprMutator.get_var_remap">get_var_remap() (tvm.relax.PyExprMutator method)</a>
 </li>
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.get_vscale_expr">get_vscale_expr() (in module tvm.tirx)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.GetValidCountsAttrs">GetValidCountsAttrs (class in tvm.relax.op.op_attrs)</a>
 </li>
       <li><a href="reference/api/python/instrument.html#tvm.ir.instrument.Path.glob">glob() (tvm.ir.instrument.Path method)</a>
 </li>
@@ -2148,6 +2156,12 @@
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/relax/relax.html#tvm.relax.Id">Id (class in tvm.relax)</a>
 </li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.GetValidCountsAttrs.id_index">id_index (tvm.relax.op.op_attrs.GetValidCountsAttrs property)</a>
+
+      <ul>
+        <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.id_index">(tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
+</li>
+      </ul></li>
       <li><a href="reference/api/python/relax/relax.html#tvm.relax.If">If (class in tvm.relax)</a>
 </li>
       <li><a href="reference/api/python/te.html#tvm.te.if_then_else">if_then_else() (in module tvm.te)</a>
@@ -2250,10 +2264,12 @@
 </li>
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.IntImm">IntImm (class in tvm.tirx)</a>
 </li>
-      <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.IndexMap.inverse">inverse() (tvm.tirx.IndexMap method)</a>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.invalid_to_bottom">invalid_to_bottom (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.IndexMap.inverse">inverse() (tvm.tirx.IndexMap method)</a>
+</li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.invoke_closure">invoke_closure() (in module tvm.relax.op)</a>
 
       <ul>
@@ -2270,6 +2286,8 @@
         <li><a href="reference/api/python/runtime/vm.html#tvm.runtime.vm.VirtualMachine.invoke_stateful">(tvm.runtime.vm.VirtualMachine method)</a>
 </li>
       </ul></li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.iou_threshold">iou_threshold (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
+</li>
       <li><a href="reference/api/python/relax/transform.html#tvm.relax.transform.IPCAllReduceRewrite">IPCAllReduceRewrite (class in tvm.relax.transform)</a>
 </li>
       <li><a href="reference/api/python/tirx/stmt_functor.html#tvm.tirx.stmt_functor.ir_transform">ir_transform() (in module tvm.tirx.stmt_functor)</a>
@@ -2662,6 +2680,8 @@
         <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.max">(in module tvm.tirx)</a>
 </li>
       </ul></li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.max_output_size">max_output_size (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
+</li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.nn.max_pool1d">max_pool1d() (in module tvm.relax.op.nn)</a>
 </li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.nn.max_pool2d">max_pool2d() (in module tvm.relax.op.nn)</a>
@@ -2953,15 +2973,19 @@
       </ul></li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.grad.nll_loss_backward">nll_loss_backward() (in module tvm.relax.op.grad)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NLLLossAttrs">NLLLossAttrs (class in tvm.relax.op.op_attrs)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.grad.no_grad">no_grad() (in module tvm.relax.op.grad)</a>
 </li>
       <li><a href="reference/api/python/ir.html#tvm.ir.Node">Node (class in tvm.ir)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.non_max_suppression">non_max_suppression() (in module tvm.relax.op)</a>
 </li>
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.IndexMap.non_surjective_inverse">non_surjective_inverse() (tvm.tirx.IndexMap method)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs">NonMaximumSuppressionAttrs (class in tvm.relax.op.op_attrs)</a>
 </li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.nonzero">nonzero() (in module tvm.relax.op)</a>
 </li>
@@ -3586,6 +3610,8 @@
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.ret">ret() (in module tvm.tirx)</a>
 </li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.TopKAttrs.ret_type">ret_type (tvm.relax.op.op_attrs.TopKAttrs property)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.return_indices">return_indices (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
 </li>
       <li><a href="reference/api/python/s_tir/schedule.html#tvm.s_tir.schedule.Schedule.reverse_compute_at">reverse_compute_at() (tvm.s_tir.schedule.Schedule method)</a>
 </li>
@@ -3762,6 +3788,14 @@
       <li><a href="reference/api/python/s_tir/schedule.html#tvm.s_tir.schedule.ScheduleState">ScheduleState (class in tvm.s_tir.schedule)</a>
 </li>
       <li><a href="reference/api/python/tirx/tirx.html#tvm.tirx.Buffer.scope">scope() (tvm.tirx.Buffer method)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.GetValidCountsAttrs.score_index">score_index (tvm.relax.op.op_attrs.GetValidCountsAttrs property)</a>
+
+      <ul>
+        <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.score_index">(tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
+</li>
+      </ul></li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.GetValidCountsAttrs.score_threshold">score_threshold (tvm.relax.op.op_attrs.GetValidCountsAttrs property)</a>
 </li>
       <li><a href="reference/api/python/relax/relax.html#tvm.relax.BasePyModule.script">script() (tvm.relax.BasePyModule method)</a>
 </li>
@@ -3873,12 +3907,12 @@
       </ul></li>
       <li><a href="reference/api/python/tirx/transform.html#tvm.tirx.transform.SimplifyConfig">SimplifyConfig (class in tvm.tirx.transform)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/topi.html#tvm.topi.nn.simulated_dequantize">simulated_dequantize() (in module tvm.topi.nn)</a>
 </li>
       <li><a href="reference/api/python/topi.html#tvm.topi.nn.simulated_quantize">simulated_quantize() (in module tvm.topi.nn)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.sin">sin() (in module tvm.relax.op)</a>
 
       <ul>
@@ -4204,6 +4238,8 @@
       <li><a href="reference/api/python/relax/transform.html#tvm.relax.transform.ToMixedPrecision">ToMixedPrecision() (in module tvm.relax.transform)</a>
 </li>
       <li><a href="reference/api/python/relax/transform.html#tvm.relax.transform.ToNonDataflow">ToNonDataflow() (in module tvm.relax.transform)</a>
+</li>
+      <li><a href="reference/api/python/relax/op.html#tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs.top_k">top_k (tvm.relax.op.op_attrs.NonMaximumSuppressionAttrs property)</a>
 </li>
       <li><a href="reference/api/python/relax/op.html#tvm.relax.op.topk">topk() (in module tvm.relax.op)</a>
 </li>
@@ -4360,6 +4396,8 @@
         <li><a href="reference/api/python/contrib.html#module-tvm.contrib.pickle_memoize">module</a>
 </li>
       </ul></li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li>
     tvm.contrib.random
 
@@ -4367,8 +4405,6 @@
         <li><a href="reference/api/python/contrib.html#module-tvm.contrib.random">module</a>
 </li>
       </ul></li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li>
     tvm.contrib.rocm
 
diff --git a/docs/get_started/tutorials/ir_module.html b/docs/get_started/tutorials/ir_module.html
index 78f97bc2996..32bbf1d0c16 100644
--- a/docs/get_started/tutorials/ir_module.html
+++ b/docs/get_started/tutorials/ir_module.html
@@ -814,8 +814,8 @@ backends.</p>
 <span class="nb">print</span><span class="p">(</span><span class="n">cpu_out</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.18282649  0.07464705 -0.22341537  0.0466667   0.0097351  -0.09745602
-  -0.09773871 -0.14742492  0.08786604 -0.26523253]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.07790685 -0.15177293 -0.17373744  0.04504168  0.07806255 -0.07537536
+  -0.09914688 -0.01761421 -0.1288901  -0.01522247]]
 </pre></div>
 </div>
 </section>
@@ -849,8 +849,8 @@ the details of <code class="docutils literal notranslate"><span class="pre">DLig
 <span class="k">assert</span> <span class="n">np</span><span class="o">.</span><span class="n">allclose</span><span class="p">(</span><span class="n">cpu_out</span><span class="p">,</span> <span class="n">gpu_out</span><span class="p">,</span> <span class="n">atol</span><span class="o">=</span><span class="mf">1e-3</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.18282652  0.07464705 -0.22341532  0.04666666  0.00973514 -0.09745597
-  -0.09773876 -0.14742488  0.08786605 -0.2652325 ]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.07790685 -0.15177289 -0.17373744  0.04504164  0.07806258 -0.07537537
+  -0.09914688 -0.01761426 -0.1288901  -0.01522248]]
 </pre></div>
 </div>
 </section>
diff --git a/docs/get_started/tutorials/quick_start.html b/docs/get_started/tutorials/quick_start.html
index b8847819698..b744c90a925 100644
--- a/docs/get_started/tutorials/quick_start.html
+++ b/docs/get_started/tutorials/quick_start.html
@@ -457,8 +457,8 @@ different devices.</p>
 <span class="nb">print</span><span class="p">(</span><span class="n">vm</span><span class="p">[</span><span class="s2">&quot;forward&quot;</span><span class="p">](</span><span class="n">tvm_data</span><span class="p">,</span> <span class="o">*</span><a href="https://docs.python.org/3/library/stdtypes.html#list" title="builtins.list" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">params</span></a><span class="p">)</span><s [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24202.832 24418.084 23808.89  22642.787 24318.287 25918.344 24786.324
-  24122.512 24806.186 24499.451]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[26430.422 25031.344 26769.482 24107.984 26596.605 26735.393 24290.738
+  25352.896 25306.049 24938.502]]
 </pre></div>
 </div>
 <p>Our goal is to bring machine learning to the application with any language of interest,
diff --git a/docs/get_started/tutorials/sg_execution_times.html b/docs/get_started/tutorials/sg_execution_times.html
index 876968ea5d0..f40699cc924 100644
--- a/docs/get_started/tutorials/sg_execution_times.html
+++ b/docs/get_started/tutorials/sg_execution_times.html
@@ -294,7 +294,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-get-started-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:08.148</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
+<p><strong>00:08.192</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -316,11 +316,11 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="ir_module.html#sphx-glr-get-started-tutorials-ir-module-py"><span class="std std-ref">IRModule</span></a> (<code class="docutils literal notranslate"><span class="pre">ir_module.py</span></code>)</p></td>
-<td><p>00:07.961</p></td>
+<td><p>00:08.007</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="quick_start.html#sphx-glr-get-started-tutorials-quick-start-py"><span class="std std-ref">Quick Start</span></a> (<code class="docutils literal notranslate"><span class="pre">quick_start.py</span></code>)</p></td>
-<td><p>00:00.186</p></td>
+<td><p>00:00.185</p></td>
 <td><p>0.0</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tutorials/cross_compilation_and_rpc.html b/docs/how_to/tutorials/cross_compilation_and_rpc.html
index 1a9e08d1cb0..b34b9ab3dea 100644
--- a/docs/how_to/tutorials/cross_compilation_and_rpc.html
+++ b/docs/how_to/tutorials/cross_compilation_and_rpc.html
@@ -474,7 +474,7 @@ device and returns the measured cost. Network overhead is excluded.</p>
 <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">cost</span><span class="si">:</span><span class="s2">g</span><span class="si">}</span><span class="s2"> secs/op&quot;</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>1.17e-07 secs/op
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>1.92e-06 secs/op
 </pre></div>
 </div>
 </section>
@@ -842,8 +842,8 @@ for ONNX models. Simply replace <code class="docutils literal notranslate"><span
 Converted PyTorch model to Relax:
   - Number of parameters: 4
 Using local target for demonstration
-Exported library to: /tmp/tmpi_t86tzp/model_deployed.so
-Saved parameters to: /tmp/tmpi_t86tzp/model_params.npz
+Exported library to: /tmp/tmp3hd1wz3u/model_deployed.so
+Saved parameters to: /tmp/tmp3hd1wz3u/model_params.npz
 
 RPC workflow (works for any remote device):
 ==================================================
diff --git a/docs/how_to/tutorials/customize_opt.html b/docs/how_to/tutorials/customize_opt.html
index a5ec00b71f8..81c10e787e6 100644
--- a/docs/how_to/tutorials/customize_opt.html
+++ b/docs/how_to/tutorials/customize_opt.html
@@ -617,8 +617,8 @@ pushing the performance to the limit. The current optimization may not be the be
 <span class="nb">print</span><span class="p">(</span><span class="n">gpu_out</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24376.836 25294.375 24080.332 26115.168 26406.105 24803.615 26546.309
-  26974.918 24665.71  25390.54 ]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24392.129 23376.184 23843.127 24249.176 25525.084 24629.783 24325.812
+  24629.473 23986.781 24105.46 ]]
 </pre></div>
 </div>
 </section>
diff --git a/docs/how_to/tutorials/e2e_opt_model.html b/docs/how_to/tutorials/e2e_opt_model.html
index f7ad8b3731e..da364275381 100644
--- a/docs/how_to/tutorials/e2e_opt_model.html
+++ b/docs/how_to/tutorials/e2e_opt_model.html
@@ -329,8 +329,10 @@ PyTorch.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/resnet18-f37072fd.pth&quot; to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
 
   0%|          | 0.00/44.7M [00:00&lt;?, ?B/s]
- 64%|██████▍   | 28.8M/44.7M [00:00&lt;00:00, 301MB/s]
-100%|██████████| 44.7M/44.7M [00:00&lt;00:00, 307MB/s]
+ 20%|██        | 9.00M/44.7M [00:00&lt;00:00, 93.5MB/s]
+ 46%|████▌     | 20.6M/44.7M [00:00&lt;00:00, 109MB/s]
+ 97%|█████████▋| 43.5M/44.7M [00:00&lt;00:00, 168MB/s]
+100%|██████████| 44.7M/44.7M [00:00&lt;00:00, 152MB/s]
 </pre></div>
 </div>
 </section>
diff --git a/docs/how_to/tutorials/sg_execution_times.html b/docs/how_to/tutorials/sg_execution_times.html
index 3ac16470947..9b16f7472f7 100644
--- a/docs/how_to/tutorials/sg_execution_times.html
+++ b/docs/how_to/tutorials/sg_execution_times.html
@@ -294,7 +294,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-how-to-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:37.899</strong> total execution time for 5 files <strong>from how_to/tutorials</strong>:</p>
+<p><strong>00:37.156</strong> total execution time for 5 files <strong>from how_to/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -316,19 +316,19 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="optimize_llm.html#sphx-glr-how-to-tutorials-optimize-llm-py"><span class="std std-ref">Optimize Large Language Model</span></a> (<code class="docutils literal notranslate"><span class="pre">optimize_llm.py</span></code>)</p></td>
-<td><p>00:35.968</p></td>
+<td><p>00:35.077</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="e2e_opt_model.html#sphx-glr-how-to-tutorials-e2e-opt-model-py"><span class="std std-ref">End-to-End Optimize Model</span></a> (<code class="docutils literal notranslate"><span class="pre">e2e_opt_model.py</span></code>)</p></td>
-<td><p>00:00.706</p></td>
+<td><p>00:00.859</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="customize_opt.html#sphx-glr-how-to-tutorials-customize-opt-py"><span class="std std-ref">Customize Optimization</span></a> (<code class="docutils literal notranslate"><span class="pre">customize_opt.py</span></code>)</p></td>
-<td><p>00:00.648</p></td>
+<td><p>00:00.639</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="cross_compilation_and_rpc.html#sphx-glr-how-to-tutorials-cross-compilation-and-rpc-py"><span class="std std-ref">Cross Compilation and RPC</span></a> (<code class="docutils literal notranslate"><span class="pre">cross_compilation_and_rpc.py</span></code>)</p></td>
-<td><p>00:00.575</p></td>
+<td><p>00:00.578</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="export_and_load_executable.html#sphx-glr-how-to-tutorials-export-and-load-executable-py"><span class="std std-ref">Export and Load Relax Executables</span></a> (<code class="docutils literal notranslate"><span class="pre">export_and_load_executable.py</span></code>)</p></td>
diff --git a/docs/objects.inv b/docs/objects.inv
index 653f693380a..d3221f75ea6 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/reference/api/doxygen/annotated.html b/docs/reference/api/doxygen/annotated.html
index c6346b28005..2cd7632cf37 100644
--- a/docs/reference/api/doxygen/annotated.html
+++ b/docs/reference/api/doxygen/annotated.html
@@ -213,144 +213,146 @@ $(function() {
 <tr id="row_0_4_74_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ScanopAttrs.html" target="_self">ScanopAttrs</a></td><td class="desc">Attributes used in scan operators like cumsum, cumprod </td></tr>
 <tr id="row_0_4_75_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1AllClassNonMaximumSuppressionAttrs.html" target="_self">AllClassNonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in AllClassNonMaximumSuppression operator </td></tr>
 <tr id="row_0_4_76_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ROIAlignAttrs.html" target="_self">ROIAlignAttrs</a></td><td class="desc">Attributes used in ROIAlign operator </td></tr>
-<tr id="row_0_4_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html" target="_self">MultiboxTransformLocAttrs</a></td><td class="desc">Attributes for multibox_transform_loc (SSD / TFLite-style box decode) </td></tr>
-<tr id="row_0_4_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html" target="_self">DataflowBlockRewriteNode</a></td><td class="desc">Statement rewriter for <a class="el" href="classtvm_1_1relax_1_1DataflowBlock.html">relax.DataflowBlock</a> </td></tr>
-<tr id="row_0_4_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html" target="_self">DataflowBlockRewrite</a></td><td class="desc">A statement rewriter for <a class="el" href="classtvm_1_1relax_1_1DataflowBlock.html">relax.DataflowBlock</a> </td></tr>
-<tr id="row_0_4_80_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BlockBuilderNode.html" target="_self">BlockBuilderNode</a></td><td class="desc">A builder to build Relax binding blocks </td></tr>
-<tr id="row_0_4_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_4_81_" class="arrow" onclick="toggleFolder('0_4_81_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BlockBuilder.html" target="_self">BlockBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_81_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1BlockBuilder_1_1DisableOperatorSpecificNormalizationForTVMScript.html" target="_self">DisableOperatorSpecificNormalizationForTVMScript</a></td><td class="desc">A marker struct to disable FNormalize </td></tr>
-<tr id="row_0_4_82_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternNode.html" target="_self">DFPatternNode</a></td><td class="desc">Base type of all dataflow patterns </td></tr>
-<tr id="row_0_4_83_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPattern.html" target="_self">DFPattern</a></td><td class="desc">Managed reference to dataflow patterns </td></tr>
-<tr id="row_0_4_84_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PairCons.html" target="_self">PairCons</a></td><td class="desc">Constraint of a <a class="el" href="classtvm_1_1relax_1_1DFPattern.html" title="Managed reference to dataflow patterns.">DFPattern</a> edge (producer -&gt; consumer) in graph-level matching </td></tr>
-<tr id="row_0_4_85_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFConstraintNode.html" target="_self">DFConstraintNode</a></td><td class="desc">Additional constraints on the graph </td></tr>
-<tr id="row_0_4_86_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFConstraint.html" target="_self">DFConstraint</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_87_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternSeqNode.html" target="_self">PatternSeqNode</a></td><td class="desc">A sequence of DFPatterns that the previous <a class="el" href="classtvm_1_1relax_1_1DFPattern.html" title="Managed reference to dataflow patterns.">DFPattern</a> is connected to the next one </td></tr>
-<tr id="row_0_4_88_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternSeq.html" target="_self">PatternSeq</a></td><td class="desc">Managed reference to pattern sequences </td></tr>
-<tr id="row_0_4_89_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternContextNode.html" target="_self">PatternContextNode</a></td><td class="desc">A context to manage the graph-level pattern matching </td></tr>
-<tr id="row_0_4_90_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternContext.html" target="_self">PatternContext</a></td><td class="desc">Managed reference to a pattern context </td></tr>
-<tr id="row_0_4_91_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprPatternNode.html" target="_self">ExprPatternNode</a></td><td class="desc">Pattern for Relax Expression </td></tr>
-<tr id="row_0_4_92_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprPattern.html" target="_self">ExprPattern</a></td><td class="desc">Managed reference to an <a class="el" href="classtvm_1_1relax_1_1ExprPattern.html" title="Managed reference to an ExprPattern.">ExprPattern</a> </td></tr>
-<tr id="row_0_4_93_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarPatternNode.html" target="_self">VarPatternNode</a></td><td class="desc">A Pattern to Match a Relax Variable </td></tr>
-<tr id="row_0_4_94_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarPattern.html" target="_self">VarPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1VarPattern.html" title="Managed reference to a VarPattern.">VarPattern</a> </td></tr>
-<tr id="row_0_4_95_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVarPatternNode.html" target="_self">DataflowVarPatternNode</a></td><td class="desc">A Pattern to Match a Relax Dataflow Variable </td></tr>
-<tr id="row_0_4_96_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVarPattern.html" target="_self">DataflowVarPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1DataflowVarPattern.html" title="Managed reference to a DataflowVarPattern.">DataflowVarPattern</a> </td></tr>
-<tr id="row_0_4_97_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1GlobalVarPatternNode.html" target="_self">GlobalVarPatternNode</a></td><td class="desc">A Pattern to Match a Relax Global Variable </td></tr>
-<tr id="row_0_4_98_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1GlobalVarPattern.html" target="_self">GlobalVarPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1GlobalVarPattern.html" title="Managed reference to a GlobalVarPattern.">GlobalVarPattern</a> </td></tr>
-<tr id="row_0_4_99_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ConstantPatternNode.html" target="_self">ConstantPatternNode</a></td><td class="desc">A Pattern to Match a Relax <a class="el" href="classtvm_1_1relax_1_1Constant.html">Constant</a> </td></tr>
-<tr id="row_0_4_100_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ConstantPattern.html" target="_self">ConstantPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1ConstantPattern.html" title="Managed reference to a ConstantPattern.">ConstantPattern</a> </td></tr>
-<tr id="row_0_4_101_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1CallPatternNode.html" target="_self">CallPatternNode</a></td><td class="desc">A pattern to match a callable node in Relax </td></tr>
-<tr id="row_0_4_102_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1CallPattern.html" target="_self">CallPattern</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_103_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimArrPatternNode.html" target="_self">PrimArrPatternNode</a></td><td class="desc">A pattern to match an array of <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode.">PrimExpr</a> </td></tr>
-<tr id="row_0_4_104_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimArrPattern.html" target="_self">PrimArrPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1PrimArrPattern.html" title="Managed reference to a PrimArrPattern.">PrimArrPattern</a> </td></tr>
-<tr id="row_0_4_105_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html" target="_self">FunctionPatternNode</a></td><td class="desc">A pattern to match a Relax <a class="el" href="classtvm_1_1relax_1_1Function.html">Function</a> </td></tr>
-<tr id="row_0_4_106_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FunctionPattern.html" target="_self">FunctionPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html" title="A pattern to match a Relax Function.">FunctionPatternNode</a> </td></tr>
-<tr id="row_0_4_107_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TuplePatternNode.html" target="_self">TuplePatternNode</a></td><td class="desc">Pattern to match a tuple of ordered expressions </td></tr>
-<tr id="row_0_4_108_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TuplePattern.html" target="_self">TuplePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TuplePatternNode.html" title="Pattern to match a tuple of ordered expressions.">TuplePatternNode</a> </td></tr>
-<tr id="row_0_4_109_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1UnorderedTuplePatternNode.html" target="_self">UnorderedTuplePatternNode</a></td><td class="desc">A pattern to match multiple expressions unorderedly </td></tr>
-<tr id="row_0_4_110_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1UnorderedTuplePattern.html" target="_self">UnorderedTuplePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1UnorderedTuplePatternNode.html" title="A pattern to match multiple expressions unorderedly.">UnorderedTuplePatternNode</a>  [...]
-<tr id="row_0_4_111_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItemPatternNode.html" target="_self">TupleGetItemPatternNode</a></td><td class="desc">A pattern to match n'th indexing to a tuple </td></tr>
-<tr id="row_0_4_112_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItemPattern.html" target="_self">TupleGetItemPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TupleGetItemPatternNode.html" title="A pattern to match n&#39;th indexing to a tuple.">TupleGetItemPatternNode</a> </td></tr>
-<tr id="row_0_4_113_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AndPatternNode.html" target="_self">AndPatternNode</a></td><td class="desc">Match a conjunction of other patterns </td></tr>
-<tr id="row_0_4_114_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AndPattern.html" target="_self">AndPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1AndPatternNode.html" title="Match a conjunction of other patterns.">AndPatternNode</a> </td></tr>
-<tr id="row_0_4_115_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1OrPatternNode.html" target="_self">OrPatternNode</a></td><td class="desc">Match a disjunction of other patterns </td></tr>
-<tr id="row_0_4_116_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1OrPattern.html" target="_self">OrPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1OrPatternNode.html" title="Match a disjunction of other patterns.">OrPatternNode</a> </td></tr>
-<tr id="row_0_4_117_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html" target="_self">NotPatternNode</a></td><td class="desc">Pattern for rejecting a certain pattern </td></tr>
-<tr id="row_0_4_118_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1NotPattern.html" target="_self">NotPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html" title="Pattern for rejecting a certain pattern.">NotPatternNode</a> </td></tr>
-<tr id="row_0_4_119_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1WildcardPatternNode.html" target="_self">WildcardPatternNode</a></td><td class="desc">Wildcard Pattern is a pattern that can match anything </td></tr>
-<tr id="row_0_4_120_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1WildcardPattern.html" target="_self">WildcardPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1WildcardPatternNode.html" title="Wildcard Pattern is a pattern that can match anything.">WildcardPatternNode</a> </td></tr>
-<tr id="row_0_4_121_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoPatternNode.html" target="_self">StructInfoPatternNode</a></td><td class="desc">Pattern for matching a certain struct info </td></tr>
-<tr id="row_0_4_122_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoPattern.html" target="_self">StructInfoPattern</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_123_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapePatternNode.html" target="_self">ShapePatternNode</a></td><td class="desc">A pattern that asserting a root pattern has a certain shape </td></tr>
-<tr id="row_0_4_124_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapePattern.html" target="_self">ShapePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ShapePatternNode.html" title="A pattern that asserting a root pattern has a certain shape.">ShapePatternNode</a> </td></tr>
-<tr id="row_0_4_125_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SameShapeConstraintNode.html" target="_self">SameShapeConstraintNode</a></td><td class="desc">A pattern that asserting multiple root patterns have the same shape </td></tr>
-<tr id="row_0_4_126_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SameShapeConstraint.html" target="_self">SameShapeConstraint</a></td><td class="desc">Managed reference to SameShapePatternNode </td></tr>
-<tr id="row_0_4_127_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypePatternNode.html" target="_self">DataTypePatternNode</a></td><td class="desc">A pattern that asserting a root pattern has a certain data type </td></tr>
-<tr id="row_0_4_128_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypePattern.html" target="_self">DataTypePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1DataTypePatternNode.html" title="A pattern that asserting a root pattern has a certain data type.">DataTypePatternNode</a> </td></tr>
-<tr id="row_0_4_129_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AttrPatternNode.html" target="_self">AttrPatternNode</a></td><td class="desc">A pattern that asserting a root pattern has certain attributes </td></tr>
-<tr id="row_0_4_130_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AttrPattern.html" target="_self">AttrPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1AttrPatternNode.html" title="A pattern that asserting a root pattern has certain attributes.">AttrPatternNode</a> </td></tr>
-<tr id="row_0_4_131_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFuncPatternNode.html" target="_self">ExternFuncPatternNode</a></td><td class="desc">A pattern of external function </td></tr>
-<tr id="row_0_4_132_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFuncPattern.html" target="_self">ExternFuncPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ExternFuncPatternNode.html" title="A pattern of external function.">ExternFuncPatternNode</a> </td></tr>
-<tr id="row_0_4_133_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternFunctor.html" target="_self">DFPatternFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first <a class="el" href="classtvm_1_1relax_1_1DFPattern.html" title="Managed reference to dataflow patterns.">DFPattern</a> argument </td></tr>
-<tr id="row_0_4_134_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_135_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternVisitor.html" target="_self">DFPatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relax_1_1DFPatternFunctor.html" title="A dynamical functor that dispatches on in the first DFPattern argument.">DFPatternFunctor</a [...]
-<tr id="row_0_4_136_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExecBuilderNode.html" target="_self">ExecBuilderNode</a></td><td class="desc">A builder provides api to build VM executable with instructions </td></tr>
-<tr id="row_0_4_137_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExecBuilder.html" target="_self">ExecBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_138_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1IdNode.html" target="_self">IdNode</a></td><td class="desc">The unique identifier of variables </td></tr>
-<tr id="row_0_4_139_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Id.html" target="_self">Id</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_140_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoNode.html" target="_self">StructInfoNode</a></td><td class="desc">Base type of all structure information </td></tr>
-<tr id="row_0_4_141_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" target="_self">StructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1StructInfoNode.html" title="Base type of all structure information.">StructInfoNode</a> </td></tr>
-<tr id="row_0_4_142_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1CallNode.html" target="_self">CallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1Call.html">Call</a> corresponds to callable invocation. Corresponds to operation in computational graph terminology </td></tr>
-<tr id="row_0_4_143_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Call.html" target="_self">Call</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_144_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleNode.html" target="_self">TupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1Tuple.html">Tuple</a> container </td></tr>
-<tr id="row_0_4_145_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Tuple.html" target="_self">Tuple</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_146_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItemNode.html" target="_self">TupleGetItemNode</a></td><td class="desc">Get index-th field out of a tuple </td></tr>
-<tr id="row_0_4_147_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItem.html" target="_self">TupleGetItem</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_148_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1LeafExprNode.html" target="_self">LeafExprNode</a></td><td class="desc">Base type of all (non-function) leaf Exprs </td></tr>
-<tr id="row_0_4_149_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1LeafExpr.html" target="_self">LeafExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions.">BaseExprNode</a> </td></tr>
-<tr id="row_0_4_150_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeExprNode.html" target="_self">ShapeExprNode</a></td><td class="desc">A shape expression which allows users to construct a shape containing <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode.">PrimExpr</a> </td></tr>
-<tr id="row_0_4_151_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeExpr.html" target="_self">ShapeExpr</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_152_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">The variable class for all Relax bindings </td></tr>
-<tr id="row_0_4_153_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Var.html" target="_self">Var</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_154_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVarNode.html" target="_self">DataflowVarNode</a></td><td class="desc">A sub-type of the variable node used to mark dataflow variables from normal visible "function local" bindings </td></tr>
-<tr id="row_0_4_155_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVar.html" target="_self">DataflowVar</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_156_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ConstantNode.html" target="_self">ConstantNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1Constant.html">Constant</a> tensor </td></tr>
-<tr id="row_0_4_157_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Constant.html" target="_self">Constant</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_158_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimValueNode.html" target="_self">PrimValueNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1PrimValue.html" title="Managed reference to PrimValueNode.">PrimValue</a> </td></tr>
-<tr id="row_0_4_159_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimValue.html" target="_self">PrimValue</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1PrimValueNode.html" title="PrimValue.">PrimValueNode</a> </td></tr>
-<tr id="row_0_4_160_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StringImmNode.html" target="_self">StringImmNode</a></td><td class="desc">Represent a string literal constant </td></tr>
-<tr id="row_0_4_161_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StringImm.html" target="_self">StringImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1StringImm.html" title="Managed reference to StringImm.">StringImm</a> </td></tr>
-<tr id="row_0_4_162_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypeImmNode.html" target="_self">DataTypeImmNode</a></td><td class="desc">Represent a data type constant </td></tr>
-<tr id="row_0_4_163_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypeImm.html" target="_self">DataTypeImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1DataTypeImm.html" title="Managed reference to DataTypeImm.">DataTypeImm</a> </td></tr>
-<tr id="row_0_4_164_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BindingNode.html" target="_self">BindingNode</a></td><td class="desc">The base class of a variable binding in Relax </td></tr>
-<tr id="row_0_4_165_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Binding.html" target="_self">Binding</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_166_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchCastNode.html" target="_self">MatchCastNode</a></td><td class="desc">Runtime-match the value to the struct info </td></tr>
-<tr id="row_0_4_167_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchCast.html" target="_self">MatchCast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1MatchCastNode.html" title="Runtime-match the value to the struct info.">MatchCastNode</a> </td></tr>
-<tr id="row_0_4_168_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarBindingNode.html" target="_self">VarBindingNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_169_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarBinding.html" target="_self">VarBinding</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_170_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BindingBlockNode.html" target="_self">BindingBlockNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_171_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BindingBlock.html" target="_self">BindingBlock</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_172_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlockNode.html" target="_self">DataflowBlockNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_173_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlock.html" target="_self">DataflowBlock</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_174_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SeqExprNode.html" target="_self">SeqExprNode</a></td><td class="desc">A sequence of blocks followed by an expression </td></tr>
-<tr id="row_0_4_175_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SeqExpr.html" target="_self">SeqExpr</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_176_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1IfNode.html" target="_self">IfNode</a></td><td class="desc">Condition expression </td></tr>
-<tr id="row_0_4_177_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1If.html" target="_self">If</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_178_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FunctionNode.html" target="_self">FunctionNode</a></td><td class="desc">A Relax function </td></tr>
-<tr id="row_0_4_179_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Function.html" target="_self">Function</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_180_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFuncNode.html" target="_self">ExternFuncNode</a></td><td class="desc">The extern function, which can represent packed function </td></tr>
-<tr id="row_0_4_181_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFunc.html" target="_self">ExternFunc</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_182_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprFunctor.html" target="_self">ExprFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit <a class="el" href="classtvm_1_1re [...]
-<tr id="row_0_4_183_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html" target="_self">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_184_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relax_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">E [...]
-<tr id="row_0_4_185_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprMutatorBase.html" target="_self">ExprMutatorBase</a></td><td class="desc">A mutator works in unnormalized form </td></tr>
-<tr id="row_0_4_186_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprMutator.html" target="_self">ExprMutator</a></td><td class="desc">A mutator works in normal form </td></tr>
-<tr id="row_0_4_187_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1NestedMsg.html" target="_self">NestedMsg</a></td><td class="desc">Container that stores possibly nested message with leaf message type T </td></tr>
-<tr id="row_0_4_188_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html" target="_self">ObjectStructInfoNode</a></td><td class="desc">Opaque object </td></tr>
-<tr id="row_0_4_189_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectStructInfo.html" target="_self">ObjectStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html" title="Opaque object.">ObjectStructInfoNode</a> </td></tr>
-<tr id="row_0_4_190_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimStructInfoNode.html" target="_self">PrimStructInfoNode</a></td><td class="desc">Primitive value </td></tr>
-<tr id="row_0_4_191_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimStructInfo.html" target="_self">PrimStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1PrimStructInfoNode.html" title="Primitive value.">PrimStructInfoNode</a> </td></tr>
-<tr id="row_0_4_192_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeStructInfoNode.html" target="_self">ShapeStructInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" title="Managed reference to StructInfoNode.">StructInfo</a> of shape value </td></tr>
-<tr id="row_0_4_193_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeStructInfo.html" target="_self">ShapeStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ShapeStructInfoNode.html" title="StructInfo of shape value.">ShapeStructInfoNode</a> </td></tr>
-<tr id="row_0_4_194_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorStructInfoNode.html" target="_self">TensorStructInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" title="Managed reference to StructInfoNode.">StructInfo</a> of Tensor </td></tr>
-<tr id="row_0_4_195_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorStructInfo.html" target="_self">TensorStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TensorStructInfoNode.html" title="StructInfo of Tensor.">TensorStructInfoNode</a> </td></tr>
-<tr id="row_0_4_196_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleStructInfoNode.html" target="_self">TupleStructInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" title="Managed reference to StructInfoNode.">StructInfo</a> of <a class="el" href="classtvm_1_1relax_1_1Tuple.html">Tuple</a> </td></tr>
-<tr id="row_0_4_197_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleStructInfo.html" target="_self">TupleStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TupleStructInfoNode.html" title="StructInfo of Tuple.">TupleStructInfoNode</a> </td></tr>
-<tr id="row_0_4_198_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FuncStructInfoNode.html" target="_self">FuncStructInfoNode</a></td><td class="desc">Structure information about function </td></tr>
-<tr id="row_0_4_199_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FuncStructInfo.html" target="_self">FuncStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1FuncStructInfoNode.html" title="Structure information about function.">FuncStructInfoNode</a> </td></tr>
-<tr id="row_0_4_200_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoFunctor.html" target="_self">StructInfoFunctor</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_201_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoFunctor_3_01R_07const_01StructInfo_01_6n_00_01Args_8_8_8_08_4.html" target="_self">StructInfoFunctor&lt; R(const StructInfo &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_202_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoVisitor.html" target="_self">StructInfoVisitor</a></td><td class="desc">A struct info visitor </td></tr>
-<tr id="row_0_4_203_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoMutator.html" target="_self">StructInfoMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfoMutator.html" title="StructInfoMutator that mutates struct info.">StructInfoMutator</a> that mutates struct info </td></tr>
-<tr id="row_0_4_204_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchResultNode.html" target="_self">MatchResultNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_205_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchResult.html" target="_self">MatchResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1MatchResultNode.html">MatchResultNode</a> </td></tr>
-<tr id="row_0_4_206_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeTypeNode.html" target="_self">ShapeTypeNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_207_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeType.html" target="_self">ShapeType</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_208_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorTypeNode.html" target="_self">TensorTypeNode</a></td><td class="desc">Dynamic version of <a class="el" href="classtvm_1_1relax_1_1TensorType.html" title="Managed reference to TensorTypeNode.">TensorType</a> </td></tr>
-<tr id="row_0_4_209_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorType.html" target="_self">TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TensorTypeNode.html" title="Dynamic version of TensorType.">TensorTypeNode</a> </td></tr>
-<tr id="row_0_4_210_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectTypeNode.html" target="_self">ObjectTypeNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_211_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectType.html" target="_self">ObjectType</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_212_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PackedFuncTypeNode.html" target="_self">PackedFuncTypeNode</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_213_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PackedFuncType.html" target="_self">PackedFuncType</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html" target="_self">GetValidCountsAttrs</a></td><td class="desc">Attributes used in GetValidCounts operator </td></tr>
+<tr id="row_0_4_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html" target="_self">NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in NonMaximumSuppression operator </td></tr>
+<tr id="row_0_4_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html" target="_self">MultiboxTransformLocAttrs</a></td><td class="desc">Attributes for multibox_transform_loc (SSD / TFLite-style box decode) </td></tr>
+<tr id="row_0_4_80_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html" target="_self">DataflowBlockRewriteNode</a></td><td class="desc">Statement rewriter for <a class="el" href="classtvm_1_1relax_1_1DataflowBlock.html">relax.DataflowBlock</a> </td></tr>
+<tr id="row_0_4_81_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html" target="_self">DataflowBlockRewrite</a></td><td class="desc">A statement rewriter for <a class="el" href="classtvm_1_1relax_1_1DataflowBlock.html">relax.DataflowBlock</a> </td></tr>
+<tr id="row_0_4_82_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BlockBuilderNode.html" target="_self">BlockBuilderNode</a></td><td class="desc">A builder to build Relax binding blocks </td></tr>
+<tr id="row_0_4_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_4_83_" class="arrow" onclick="toggleFolder('0_4_83_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BlockBuilder.html" target="_self">BlockBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_83_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1BlockBuilder_1_1DisableOperatorSpecificNormalizationForTVMScript.html" target="_self">DisableOperatorSpecificNormalizationForTVMScript</a></td><td class="desc">A marker struct to disable FNormalize </td></tr>
+<tr id="row_0_4_84_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternNode.html" target="_self">DFPatternNode</a></td><td class="desc">Base type of all dataflow patterns </td></tr>
+<tr id="row_0_4_85_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPattern.html" target="_self">DFPattern</a></td><td class="desc">Managed reference to dataflow patterns </td></tr>
+<tr id="row_0_4_86_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PairCons.html" target="_self">PairCons</a></td><td class="desc">Constraint of a <a class="el" href="classtvm_1_1relax_1_1DFPattern.html" title="Managed reference to dataflow patterns.">DFPattern</a> edge (producer -&gt; consumer) in graph-level matching </td></tr>
+<tr id="row_0_4_87_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFConstraintNode.html" target="_self">DFConstraintNode</a></td><td class="desc">Additional constraints on the graph </td></tr>
+<tr id="row_0_4_88_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFConstraint.html" target="_self">DFConstraint</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_89_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternSeqNode.html" target="_self">PatternSeqNode</a></td><td class="desc">A sequence of DFPatterns that the previous <a class="el" href="classtvm_1_1relax_1_1DFPattern.html" title="Managed reference to dataflow patterns.">DFPattern</a> is connected to the next one </td></tr>
+<tr id="row_0_4_90_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternSeq.html" target="_self">PatternSeq</a></td><td class="desc">Managed reference to pattern sequences </td></tr>
+<tr id="row_0_4_91_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternContextNode.html" target="_self">PatternContextNode</a></td><td class="desc">A context to manage the graph-level pattern matching </td></tr>
+<tr id="row_0_4_92_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PatternContext.html" target="_self">PatternContext</a></td><td class="desc">Managed reference to a pattern context </td></tr>
+<tr id="row_0_4_93_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprPatternNode.html" target="_self">ExprPatternNode</a></td><td class="desc">Pattern for Relax Expression </td></tr>
+<tr id="row_0_4_94_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprPattern.html" target="_self">ExprPattern</a></td><td class="desc">Managed reference to an <a class="el" href="classtvm_1_1relax_1_1ExprPattern.html" title="Managed reference to an ExprPattern.">ExprPattern</a> </td></tr>
+<tr id="row_0_4_95_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarPatternNode.html" target="_self">VarPatternNode</a></td><td class="desc">A Pattern to Match a Relax Variable </td></tr>
+<tr id="row_0_4_96_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarPattern.html" target="_self">VarPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1VarPattern.html" title="Managed reference to a VarPattern.">VarPattern</a> </td></tr>
+<tr id="row_0_4_97_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVarPatternNode.html" target="_self">DataflowVarPatternNode</a></td><td class="desc">A Pattern to Match a Relax Dataflow Variable </td></tr>
+<tr id="row_0_4_98_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVarPattern.html" target="_self">DataflowVarPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1DataflowVarPattern.html" title="Managed reference to a DataflowVarPattern.">DataflowVarPattern</a> </td></tr>
+<tr id="row_0_4_99_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1GlobalVarPatternNode.html" target="_self">GlobalVarPatternNode</a></td><td class="desc">A Pattern to Match a Relax Global Variable </td></tr>
+<tr id="row_0_4_100_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1GlobalVarPattern.html" target="_self">GlobalVarPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1GlobalVarPattern.html" title="Managed reference to a GlobalVarPattern.">GlobalVarPattern</a> </td></tr>
+<tr id="row_0_4_101_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ConstantPatternNode.html" target="_self">ConstantPatternNode</a></td><td class="desc">A Pattern to Match a Relax <a class="el" href="classtvm_1_1relax_1_1Constant.html">Constant</a> </td></tr>
+<tr id="row_0_4_102_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ConstantPattern.html" target="_self">ConstantPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1ConstantPattern.html" title="Managed reference to a ConstantPattern.">ConstantPattern</a> </td></tr>
+<tr id="row_0_4_103_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1CallPatternNode.html" target="_self">CallPatternNode</a></td><td class="desc">A pattern to match a callable node in Relax </td></tr>
+<tr id="row_0_4_104_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1CallPattern.html" target="_self">CallPattern</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_105_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimArrPatternNode.html" target="_self">PrimArrPatternNode</a></td><td class="desc">A pattern to match an array of <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode.">PrimExpr</a> </td></tr>
+<tr id="row_0_4_106_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimArrPattern.html" target="_self">PrimArrPattern</a></td><td class="desc">Managed reference to a <a class="el" href="classtvm_1_1relax_1_1PrimArrPattern.html" title="Managed reference to a PrimArrPattern.">PrimArrPattern</a> </td></tr>
+<tr id="row_0_4_107_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html" target="_self">FunctionPatternNode</a></td><td class="desc">A pattern to match a Relax <a class="el" href="classtvm_1_1relax_1_1Function.html">Function</a> </td></tr>
+<tr id="row_0_4_108_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FunctionPattern.html" target="_self">FunctionPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html" title="A pattern to match a Relax Function.">FunctionPatternNode</a> </td></tr>
+<tr id="row_0_4_109_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TuplePatternNode.html" target="_self">TuplePatternNode</a></td><td class="desc">Pattern to match a tuple of ordered expressions </td></tr>
+<tr id="row_0_4_110_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TuplePattern.html" target="_self">TuplePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TuplePatternNode.html" title="Pattern to match a tuple of ordered expressions.">TuplePatternNode</a> </td></tr>
+<tr id="row_0_4_111_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1UnorderedTuplePatternNode.html" target="_self">UnorderedTuplePatternNode</a></td><td class="desc">A pattern to match multiple expressions unorderedly </td></tr>
+<tr id="row_0_4_112_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1UnorderedTuplePattern.html" target="_self">UnorderedTuplePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1UnorderedTuplePatternNode.html" title="A pattern to match multiple expressions unorderedly.">UnorderedTuplePatternNode</a>  [...]
+<tr id="row_0_4_113_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItemPatternNode.html" target="_self">TupleGetItemPatternNode</a></td><td class="desc">A pattern to match n'th indexing to a tuple </td></tr>
+<tr id="row_0_4_114_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItemPattern.html" target="_self">TupleGetItemPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TupleGetItemPatternNode.html" title="A pattern to match n&#39;th indexing to a tuple.">TupleGetItemPatternNode</a> </td></tr>
+<tr id="row_0_4_115_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AndPatternNode.html" target="_self">AndPatternNode</a></td><td class="desc">Match a conjunction of other patterns </td></tr>
+<tr id="row_0_4_116_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AndPattern.html" target="_self">AndPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1AndPatternNode.html" title="Match a conjunction of other patterns.">AndPatternNode</a> </td></tr>
+<tr id="row_0_4_117_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1OrPatternNode.html" target="_self">OrPatternNode</a></td><td class="desc">Match a disjunction of other patterns </td></tr>
+<tr id="row_0_4_118_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1OrPattern.html" target="_self">OrPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1OrPatternNode.html" title="Match a disjunction of other patterns.">OrPatternNode</a> </td></tr>
+<tr id="row_0_4_119_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html" target="_self">NotPatternNode</a></td><td class="desc">Pattern for rejecting a certain pattern </td></tr>
+<tr id="row_0_4_120_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1NotPattern.html" target="_self">NotPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html" title="Pattern for rejecting a certain pattern.">NotPatternNode</a> </td></tr>
+<tr id="row_0_4_121_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1WildcardPatternNode.html" target="_self">WildcardPatternNode</a></td><td class="desc">Wildcard Pattern is a pattern that can match anything </td></tr>
+<tr id="row_0_4_122_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1WildcardPattern.html" target="_self">WildcardPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1WildcardPatternNode.html" title="Wildcard Pattern is a pattern that can match anything.">WildcardPatternNode</a> </td></tr>
+<tr id="row_0_4_123_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoPatternNode.html" target="_self">StructInfoPatternNode</a></td><td class="desc">Pattern for matching a certain struct info </td></tr>
+<tr id="row_0_4_124_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoPattern.html" target="_self">StructInfoPattern</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_125_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapePatternNode.html" target="_self">ShapePatternNode</a></td><td class="desc">A pattern that asserting a root pattern has a certain shape </td></tr>
+<tr id="row_0_4_126_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapePattern.html" target="_self">ShapePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ShapePatternNode.html" title="A pattern that asserting a root pattern has a certain shape.">ShapePatternNode</a> </td></tr>
+<tr id="row_0_4_127_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SameShapeConstraintNode.html" target="_self">SameShapeConstraintNode</a></td><td class="desc">A pattern that asserting multiple root patterns have the same shape </td></tr>
+<tr id="row_0_4_128_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SameShapeConstraint.html" target="_self">SameShapeConstraint</a></td><td class="desc">Managed reference to SameShapePatternNode </td></tr>
+<tr id="row_0_4_129_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypePatternNode.html" target="_self">DataTypePatternNode</a></td><td class="desc">A pattern that asserting a root pattern has a certain data type </td></tr>
+<tr id="row_0_4_130_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypePattern.html" target="_self">DataTypePattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1DataTypePatternNode.html" title="A pattern that asserting a root pattern has a certain data type.">DataTypePatternNode</a> </td></tr>
+<tr id="row_0_4_131_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AttrPatternNode.html" target="_self">AttrPatternNode</a></td><td class="desc">A pattern that asserting a root pattern has certain attributes </td></tr>
+<tr id="row_0_4_132_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1AttrPattern.html" target="_self">AttrPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1AttrPatternNode.html" title="A pattern that asserting a root pattern has certain attributes.">AttrPatternNode</a> </td></tr>
+<tr id="row_0_4_133_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFuncPatternNode.html" target="_self">ExternFuncPatternNode</a></td><td class="desc">A pattern of external function </td></tr>
+<tr id="row_0_4_134_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFuncPattern.html" target="_self">ExternFuncPattern</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ExternFuncPatternNode.html" title="A pattern of external function.">ExternFuncPatternNode</a> </td></tr>
+<tr id="row_0_4_135_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternFunctor.html" target="_self">DFPatternFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first <a class="el" href="classtvm_1_1relax_1_1DFPattern.html" title="Managed reference to dataflow patterns.">DFPattern</a> argument </td></tr>
+<tr id="row_0_4_136_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html" target="_self">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_137_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DFPatternVisitor.html" target="_self">DFPatternVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relax_1_1DFPatternFunctor.html" title="A dynamical functor that dispatches on in the first DFPattern argument.">DFPatternFunctor</a [...]
+<tr id="row_0_4_138_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExecBuilderNode.html" target="_self">ExecBuilderNode</a></td><td class="desc">A builder provides api to build VM executable with instructions </td></tr>
+<tr id="row_0_4_139_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExecBuilder.html" target="_self">ExecBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_140_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1IdNode.html" target="_self">IdNode</a></td><td class="desc">The unique identifier of variables </td></tr>
+<tr id="row_0_4_141_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Id.html" target="_self">Id</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_142_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoNode.html" target="_self">StructInfoNode</a></td><td class="desc">Base type of all structure information </td></tr>
+<tr id="row_0_4_143_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" target="_self">StructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1StructInfoNode.html" title="Base type of all structure information.">StructInfoNode</a> </td></tr>
+<tr id="row_0_4_144_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1CallNode.html" target="_self">CallNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1Call.html">Call</a> corresponds to callable invocation. Corresponds to operation in computational graph terminology </td></tr>
+<tr id="row_0_4_145_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Call.html" target="_self">Call</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_146_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleNode.html" target="_self">TupleNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1Tuple.html">Tuple</a> container </td></tr>
+<tr id="row_0_4_147_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Tuple.html" target="_self">Tuple</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_148_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItemNode.html" target="_self">TupleGetItemNode</a></td><td class="desc">Get index-th field out of a tuple </td></tr>
+<tr id="row_0_4_149_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleGetItem.html" target="_self">TupleGetItem</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_150_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1LeafExprNode.html" target="_self">LeafExprNode</a></td><td class="desc">Base type of all (non-function) leaf Exprs </td></tr>
+<tr id="row_0_4_151_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1LeafExpr.html" target="_self">LeafExpr</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1BaseExprNode.html" title="Base type of all the expressions.">BaseExprNode</a> </td></tr>
+<tr id="row_0_4_152_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeExprNode.html" target="_self">ShapeExprNode</a></td><td class="desc">A shape expression which allows users to construct a shape containing <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode.">PrimExpr</a> </td></tr>
+<tr id="row_0_4_153_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeExpr.html" target="_self">ShapeExpr</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_154_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarNode.html" target="_self">VarNode</a></td><td class="desc">The variable class for all Relax bindings </td></tr>
+<tr id="row_0_4_155_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Var.html" target="_self">Var</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_156_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVarNode.html" target="_self">DataflowVarNode</a></td><td class="desc">A sub-type of the variable node used to mark dataflow variables from normal visible "function local" bindings </td></tr>
+<tr id="row_0_4_157_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowVar.html" target="_self">DataflowVar</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_158_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ConstantNode.html" target="_self">ConstantNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1Constant.html">Constant</a> tensor </td></tr>
+<tr id="row_0_4_159_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Constant.html" target="_self">Constant</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_160_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimValueNode.html" target="_self">PrimValueNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1PrimValue.html" title="Managed reference to PrimValueNode.">PrimValue</a> </td></tr>
+<tr id="row_0_4_161_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimValue.html" target="_self">PrimValue</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1PrimValueNode.html" title="PrimValue.">PrimValueNode</a> </td></tr>
+<tr id="row_0_4_162_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StringImmNode.html" target="_self">StringImmNode</a></td><td class="desc">Represent a string literal constant </td></tr>
+<tr id="row_0_4_163_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StringImm.html" target="_self">StringImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1StringImm.html" title="Managed reference to StringImm.">StringImm</a> </td></tr>
+<tr id="row_0_4_164_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypeImmNode.html" target="_self">DataTypeImmNode</a></td><td class="desc">Represent a data type constant </td></tr>
+<tr id="row_0_4_165_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataTypeImm.html" target="_self">DataTypeImm</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1DataTypeImm.html" title="Managed reference to DataTypeImm.">DataTypeImm</a> </td></tr>
+<tr id="row_0_4_166_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BindingNode.html" target="_self">BindingNode</a></td><td class="desc">The base class of a variable binding in Relax </td></tr>
+<tr id="row_0_4_167_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Binding.html" target="_self">Binding</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_168_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchCastNode.html" target="_self">MatchCastNode</a></td><td class="desc">Runtime-match the value to the struct info </td></tr>
+<tr id="row_0_4_169_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchCast.html" target="_self">MatchCast</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1MatchCastNode.html" title="Runtime-match the value to the struct info.">MatchCastNode</a> </td></tr>
+<tr id="row_0_4_170_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarBindingNode.html" target="_self">VarBindingNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_171_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1VarBinding.html" target="_self">VarBinding</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_172_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BindingBlockNode.html" target="_self">BindingBlockNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_173_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1BindingBlock.html" target="_self">BindingBlock</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_174_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlockNode.html" target="_self">DataflowBlockNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_175_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1DataflowBlock.html" target="_self">DataflowBlock</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_176_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SeqExprNode.html" target="_self">SeqExprNode</a></td><td class="desc">A sequence of blocks followed by an expression </td></tr>
+<tr id="row_0_4_177_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1SeqExpr.html" target="_self">SeqExpr</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_178_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1IfNode.html" target="_self">IfNode</a></td><td class="desc">Condition expression </td></tr>
+<tr id="row_0_4_179_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1If.html" target="_self">If</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_180_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FunctionNode.html" target="_self">FunctionNode</a></td><td class="desc">A Relax function </td></tr>
+<tr id="row_0_4_181_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1Function.html" target="_self">Function</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_182_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFuncNode.html" target="_self">ExternFuncNode</a></td><td class="desc">The extern function, which can represent packed function </td></tr>
+<tr id="row_0_4_183_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExternFunc.html" target="_self">ExternFunc</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_184_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprFunctor.html" target="_self">ExprFunctor</a></td><td class="desc">A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerful Visitor, since it allows you to define function signatures of Visit <a class="el" href="classtvm_1_1re [...]
+<tr id="row_0_4_185_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html" target="_self">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_186_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprVisitor.html" target="_self">ExprVisitor</a></td><td class="desc">A simple visitor wrapper around <a class="el" href="classtvm_1_1relax_1_1ExprFunctor.html" title="A dynamical functor that dispatches on in the first Expr argument. You can use this as a more powerfu...">E [...]
+<tr id="row_0_4_187_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprMutatorBase.html" target="_self">ExprMutatorBase</a></td><td class="desc">A mutator works in unnormalized form </td></tr>
+<tr id="row_0_4_188_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ExprMutator.html" target="_self">ExprMutator</a></td><td class="desc">A mutator works in normal form </td></tr>
+<tr id="row_0_4_189_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1NestedMsg.html" target="_self">NestedMsg</a></td><td class="desc">Container that stores possibly nested message with leaf message type T </td></tr>
+<tr id="row_0_4_190_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html" target="_self">ObjectStructInfoNode</a></td><td class="desc">Opaque object </td></tr>
+<tr id="row_0_4_191_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectStructInfo.html" target="_self">ObjectStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html" title="Opaque object.">ObjectStructInfoNode</a> </td></tr>
+<tr id="row_0_4_192_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimStructInfoNode.html" target="_self">PrimStructInfoNode</a></td><td class="desc">Primitive value </td></tr>
+<tr id="row_0_4_193_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PrimStructInfo.html" target="_self">PrimStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1PrimStructInfoNode.html" title="Primitive value.">PrimStructInfoNode</a> </td></tr>
+<tr id="row_0_4_194_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeStructInfoNode.html" target="_self">ShapeStructInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" title="Managed reference to StructInfoNode.">StructInfo</a> of shape value </td></tr>
+<tr id="row_0_4_195_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeStructInfo.html" target="_self">ShapeStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1ShapeStructInfoNode.html" title="StructInfo of shape value.">ShapeStructInfoNode</a> </td></tr>
+<tr id="row_0_4_196_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorStructInfoNode.html" target="_self">TensorStructInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" title="Managed reference to StructInfoNode.">StructInfo</a> of Tensor </td></tr>
+<tr id="row_0_4_197_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorStructInfo.html" target="_self">TensorStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TensorStructInfoNode.html" title="StructInfo of Tensor.">TensorStructInfoNode</a> </td></tr>
+<tr id="row_0_4_198_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleStructInfoNode.html" target="_self">TupleStructInfoNode</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfo.html" title="Managed reference to StructInfoNode.">StructInfo</a> of <a class="el" href="classtvm_1_1relax_1_1Tuple.html">Tuple</a> </td></tr>
+<tr id="row_0_4_199_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TupleStructInfo.html" target="_self">TupleStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TupleStructInfoNode.html" title="StructInfo of Tuple.">TupleStructInfoNode</a> </td></tr>
+<tr id="row_0_4_200_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FuncStructInfoNode.html" target="_self">FuncStructInfoNode</a></td><td class="desc">Structure information about function </td></tr>
+<tr id="row_0_4_201_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1FuncStructInfo.html" target="_self">FuncStructInfo</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1FuncStructInfoNode.html" title="Structure information about function.">FuncStructInfoNode</a> </td></tr>
+<tr id="row_0_4_202_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoFunctor.html" target="_self">StructInfoFunctor</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_203_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoFunctor_3_01R_07const_01StructInfo_01_6n_00_01Args_8_8_8_08_4.html" target="_self">StructInfoFunctor&lt; R(const StructInfo &amp;n, Args...)&gt;</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_204_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoVisitor.html" target="_self">StructInfoVisitor</a></td><td class="desc">A struct info visitor </td></tr>
+<tr id="row_0_4_205_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1StructInfoMutator.html" target="_self">StructInfoMutator</a></td><td class="desc"><a class="el" href="classtvm_1_1relax_1_1StructInfoMutator.html" title="StructInfoMutator that mutates struct info.">StructInfoMutator</a> that mutates struct info </td></tr>
+<tr id="row_0_4_206_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchResultNode.html" target="_self">MatchResultNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_207_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1MatchResult.html" target="_self">MatchResult</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1MatchResultNode.html">MatchResultNode</a> </td></tr>
+<tr id="row_0_4_208_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeTypeNode.html" target="_self">ShapeTypeNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_209_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ShapeType.html" target="_self">ShapeType</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_210_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorTypeNode.html" target="_self">TensorTypeNode</a></td><td class="desc">Dynamic version of <a class="el" href="classtvm_1_1relax_1_1TensorType.html" title="Managed reference to TensorTypeNode.">TensorType</a> </td></tr>
+<tr id="row_0_4_211_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1TensorType.html" target="_self">TensorType</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1relax_1_1TensorTypeNode.html" title="Dynamic version of TensorType.">TensorTypeNode</a> </td></tr>
+<tr id="row_0_4_212_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectTypeNode.html" target="_self">ObjectTypeNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_213_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1ObjectType.html" target="_self">ObjectType</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_214_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PackedFuncTypeNode.html" target="_self">PackedFuncTypeNode</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_215_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1relax_1_1PackedFuncType.html" target="_self">PackedFuncType</a></td><td class="desc"></td></tr>
 <tr id="row_0_5_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_5_" class="arrow" onclick="toggleFolder('0_5_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime.html" target="_self">runtime</a></td><td class="desc"></td></tr>
 <tr id="row_0_5_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_5_0_" class="arrow" onclick="toggleFolder('0_5_0_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1runtime_1_1cuda__ipc.html" target="_self">cuda_ipc</a></td><td class="desc"></td></tr>
 <tr id="row_0_5_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1runtime_1_1cuda__ipc_1_1CUDAIPCMemoryObj.html" target="_self">CUDAIPCMemoryObj</a></td><td class="desc">The CUDA IPC (interprocess communication) memory object, which internally contains data pointers to CUDA IPC memory. It is be useful for efficient all-reduce implementation </td></tr>
diff --git a/docs/reference/api/doxygen/classes.html b/docs/reference/api/doxygen/classes.html
index d4ae5e5bff9..c087b41086c 100644
--- a/docs/reference/api/doxygen/classes.html
+++ b/docs/reference/api/doxygen/classes.html
@@ -87,7 +87,7 @@ $(function() {
 <dd><a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1FeatureExtractor.html">FeatureExtractor</a> (<a class="el" href="namespacetvm_1_1s__tir_1_1meta__schedule.html">tvm::s_tir::meta_schedule</a>)</dd><dd><a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1FeatureExtractorNode.html">FeatureExtractorNode</a> (<a class="el" href="namespacetvm_1_1s__tir_1_1meta__schedule.html">tvm::s_tir::meta_schedule</a>)</dd><dd><a class="el" href="structtvm_1_1runtime_1_1vm_1_1TensorCa [...]
 <dl class="classindex even">
 <dt class="alphachar"><a name="letter_G">G</a></dt>
-<dd><a class="el" href="structtvm_1_1relax_1_1GatherElementsAttrs.html">GatherElementsAttrs</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html">GatherNDAttrs</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="classtvm_1_1tirx_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tirx.html">tvm::tirx</a>)</dd><dd><a class="el" href="classtvm_1_1tirx_1_1GEN [...]
+<dd><a class="el" href="structtvm_1_1relax_1_1GatherElementsAttrs.html">GatherElementsAttrs</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html">GatherNDAttrs</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="classtvm_1_1tirx_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tirx.html">tvm::tirx</a>)</dd><dd><a class="el" href="classtvm_1_1tirx_1_1GEN [...]
 <dl class="classindex odd">
 <dt class="alphachar"><a name="letter_H">H</a></dt>
 <dd><a class="el" href="structtvm_1_1relax_1_1HintOnDeviceAttrs.html">HintOnDeviceAttrs</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd></dl>
@@ -102,7 +102,7 @@ $(function() {
 <dd><a class="el" href="classtvm_1_1tirx_1_1MatchBufferRegion.html">MatchBufferRegion</a> (<a class="el" href="namespacetvm_1_1tirx.html">tvm::tirx</a>)</dd><dd><a class="el" href="classtvm_1_1tirx_1_1MatchBufferRegionNode.html">MatchBufferRegionNode</a> (<a class="el" href="namespacetvm_1_1tirx.html">tvm::tirx</a>)</dd><dd><a class="el" href="classtvm_1_1relax_1_1MatchCast.html">MatchCast</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="cl [...]
 <dl class="classindex odd">
 <dt class="alphachar"><a name="letter_N">N</a></dt>
-<dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html">Namer</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1details.html">tvm::script::ir_builder::details</a>)</dd><dd><a class="el" href="classtvm_1_1NameSupply.html">NameSupply</a> (<a class="el" href="namespacetvm.html">tvm</a>)</dd><dd><a class="el" href="classtvm_1_1NameSupplyNode.html">NameSupplyNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)</dd><dd><a class="el" href="classt [...]
+<dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html">Namer</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1details.html">tvm::script::ir_builder::details</a>)</dd><dd><a class="el" href="classtvm_1_1NameSupply.html">NameSupply</a> (<a class="el" href="namespacetvm.html">tvm</a>)</dd><dd><a class="el" href="classtvm_1_1NameSupplyNode.html">NameSupplyNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)</dd><dd><a class="el" href="classt [...]
 <dl class="classindex even">
 <dt class="alphachar"><a name="letter_O">O</a></dt>
 <dd><a class="el" href="classtvm_1_1relax_1_1ObjectStructInfo.html">ObjectStructInfo</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html">ObjectStructInfoNode</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href="classtvm_1_1relax_1_1ObjectType.html">ObjectType</a> (<a class="el" href="namespacetvm_1_1relax.html">tvm::relax</a>)</dd><dd><a class="el" href [...]
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
index eb3f7443fde..5748d8a4e25 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
@@ -81,7 +81,7 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::BaseAttrsNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseAttrsNode__inherit__graph.svg" width="18339" height="728"><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_1BaseAttrsNode__inherit__graph.svg" width="18872" height="728"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
@@ -188,7 +188,7 @@ Static Public Attributes</h2></td></tr>
 </dl>
 <dl class="section note"><dt>Note</dt><dd>This function throws when the required field is not present. </dd></dl>
 
-<p>Implemented in <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter&lt; SliceScatterAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter&lt; ScatterCollectiveAttrs &gt;</a>, <a class="el" href="cl [...]
+<p>Implemented in <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a>, <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter&lt; SliceScatterAttrs &gt;</a>, <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter&lt; ScatterCollectiveAttrs &gt;</a>, <a class="el" href="cl [...]
 
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg
index d56ca8a1bea..3509257711e 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg
@@ -4,25 +4,25 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::BaseAttrsNode Pages: 1 -->
-<svg width="13754pt" height="546pt"
- viewBox="0.00 0.00 13754.00 546.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="14154pt" height="546pt"
+ viewBox="0.00 0.00 14154.00 546.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 542)">
 <title>tvm::BaseAttrsNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-542 13750,-542 13750,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-542 14150,-542 14150,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Base class of all attribute class.">
-<polygon fill="#bfbfbf" stroke="black" points="6999,-342.5 6999,-443.5 7161,-443.5 7161,-342.5 6999,-342.5"/>
-<text text-anchor="middle" x="7080" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
-<polyline fill="none" stroke="black" points="6999,-424.5 7161,-424.5 "/>
-<text text-anchor="start" x="7007" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<polyline fill="none" stroke="black" points="6999,-405.5 7161,-405.5 "/>
-<text text-anchor="start" x="7007" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
-<text text-anchor="start" x="7007" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
-<text text-anchor="start" x="7007" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="7007" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7007" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="#bfbfbf" stroke="black" points="7219,-342.5 7219,-443.5 7381,-443.5 7381,-342.5 7219,-342.5"/>
+<text text-anchor="middle" x="7300" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polyline fill="none" stroke="black" points="7219,-424.5 7381,-424.5 "/>
+<text text-anchor="start" x="7227" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
+<polyline fill="none" stroke="black" points="7219,-405.5 7381,-405.5 "/>
+<text text-anchor="start" x="7227" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
+<text text-anchor="start" x="7227" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
+<text text-anchor="start" x="7227" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<text text-anchor="start" x="7227" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7227" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
 </a>
 </g>
 </g>
@@ -43,8 +43,8 @@
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge2" class="edge">
 <title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M6988.72,-392.02C6198.19,-392.04 531.44,-389.25 185,-306 174.15,-303.39 163.1,-299.31 152.63,-294.65"/>
-<polygon fill="none" stroke="midnightblue" points="6988.9,-395.52 6998.9,-392.02 6988.9,-388.52 6988.9,-395.52"/>
+<path fill="none" stroke="midnightblue" d="M7208.64,-392.06C6403.72,-392.4 542.93,-391.94 185,-306 174.15,-303.4 163.1,-299.31 152.63,-294.65"/>
+<polygon fill="none" stroke="midnightblue" points="7208.73,-395.56 7218.72,-392.05 7208.72,-388.56 7208.73,-395.56"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node">
@@ -63,8 +63,8 @@
 <!-- Node1&#45;&gt;Node5 -->
 <g id="edge4" class="edge">
 <title>Node1&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M6988.69,-391.91C6209.83,-391.03 703.18,-382.14 365,-306 353.34,-303.38 341.4,-299.25 330.06,-294.54"/>
-<polygon fill="none" stroke="midnightblue" points="6988.72,-395.41 6998.72,-391.92 6988.73,-388.41 6988.72,-395.41"/>
+<path fill="none" stroke="midnightblue" d="M7208.52,-391.95C6414.72,-391.39 714.68,-384.66 365,-306 353.34,-303.38 341.4,-299.25 330.06,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="7208.74,-395.45 7218.74,-391.96 7208.74,-388.45 7208.74,-395.45"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node">
@@ -83,8 +83,8 @@
 <!-- Node1&#45;&gt;Node7 -->
 <g id="edge6" class="edge">
 <title>Node1&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M6988.64,-391.95C6220.96,-391.43 866,-384.94 538,-306 527.15,-303.39 516.11,-299.3 505.63,-294.64"/>
-<polygon fill="none" stroke="midnightblue" points="6988.81,-395.45 6998.81,-391.96 6988.81,-388.45 6988.81,-395.45"/>
+<path fill="none" stroke="midnightblue" d="M7208.65,-392C6426.48,-391.81 877.49,-387.62 538,-306 527.15,-303.39 516.11,-299.31 505.63,-294.65"/>
+<polygon fill="none" stroke="midnightblue" points="7208.72,-395.5 7218.72,-392 7208.72,-388.5 7208.72,-395.5"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node">
@@ -103,8 +103,8 @@
 <!-- Node1&#45;&gt;Node9 -->
 <g id="edge8" class="edge">
 <title>Node1&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M6988.87,-392.01C6233,-391.9 1022.06,-388.17 704,-306 693.87,-303.38 683.62,-299.29 673.93,-294.63"/>
-<polygon fill="none" stroke="midnightblue" points="6988.89,-395.51 6998.89,-392.01 6988.89,-388.51 6988.89,-395.51"/>
+<path fill="none" stroke="midnightblue" d="M7208.78,-392.05C6437.92,-392.3 1033.48,-391.04 704,-306 693.87,-303.38 683.61,-299.3 673.93,-294.63"/>
+<polygon fill="none" stroke="midnightblue" points="7208.99,-395.55 7218.99,-392.04 7208.98,-388.55 7208.99,-395.55"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node">
@@ -124,8 +124,8 @@
 <!-- Node1&#45;&gt;Node11 -->
 <g id="edge10" class="edge">
 <title>Node1&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M6988.65,-391.65C6247.26,-388.73 1235.74,-366.75 925,-306 917.18,-304.47 909.21,-302.44 901.29,-300.07"/>
-<polygon fill="none" stroke="midnightblue" points="6988.72,-395.15 6998.73,-391.69 6988.75,-388.15 6988.72,-395.15"/>
+<path fill="none" stroke="midnightblue" d="M7208.96,-391.7C6453.77,-389.1 1247.37,-368.94 925,-306 917.18,-304.47 909.21,-302.44 901.29,-300.08"/>
+<polygon fill="none" stroke="midnightblue" points="7208.95,-395.2 7218.96,-391.73 7208.97,-388.2 7208.95,-395.2"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node">
@@ -144,8 +144,8 @@
 <!-- Node1&#45;&gt;Node13 -->
 <g id="edge12" class="edge">
 <title>Node1&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M6988.74,-391.76C6259.93,-389.73 1404.45,-373.67 1105,-306 1093.34,-303.37 1081.4,-299.23 1070.06,-294.53"/>
-<polygon fill="none" stroke="midnightblue" points="6988.9,-395.26 6998.91,-391.79 6988.92,-388.26 6988.9,-395.26"/>
+<path fill="none" stroke="midnightblue" d="M7208.61,-391.81C6464.21,-390.13 1415.94,-376.19 1105,-306 1093.34,-303.37 1081.4,-299.24 1070.06,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="7208.73,-395.31 7218.73,-391.83 7208.74,-388.31 7208.73,-395.31"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node">
@@ -164,8 +164,8 @@
 <!-- Node1&#45;&gt;Node15 -->
 <g id="edge14" class="edge">
 <title>Node1&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M6988.7,-391.72C6272.35,-389.39 1575.04,-371.61 1285,-306 1273.34,-303.36 1261.4,-299.23 1250.06,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="6988.94,-395.22 6998.96,-391.75 6988.97,-388.22 6988.94,-395.22"/>
+<path fill="none" stroke="midnightblue" d="M7208.7,-391.77C6477.01,-389.8 1586.54,-374.13 1285,-306 1273.34,-303.37 1261.4,-299.23 1250.06,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="7208.91,-395.27 7218.92,-391.8 7208.93,-388.27 7208.91,-395.27"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node">
@@ -184,8 +184,8 @@
 <!-- Node1&#45;&gt;Node17 -->
 <g id="edge16" class="edge">
 <title>Node1&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M6988.78,-391.67C6285.47,-389.03 1745.65,-369.56 1465,-306 1453.34,-303.36 1441.4,-299.23 1430.06,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="6988.84,-395.17 6998.85,-391.71 6988.86,-388.17 6988.84,-395.17"/>
+<path fill="none" stroke="midnightblue" d="M7208.9,-391.73C6490.43,-389.47 1757.16,-372.08 1465,-306 1453.34,-303.36 1441.4,-299.23 1430.06,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7208.93,-395.23 7218.94,-391.76 7208.95,-388.23 7208.93,-395.23"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node">
@@ -204,8 +204,8 @@
 <!-- Node1&#45;&gt;Node19 -->
 <g id="edge18" class="edge">
 <title>Node1&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M6988.74,-391.63C6298.3,-388.67 1916.25,-367.5 1645,-306 1633.35,-303.36 1621.41,-299.22 1610.07,-294.51"/>
-<polygon fill="none" stroke="midnightblue" points="6988.86,-395.13 6998.88,-391.67 6988.89,-388.13 6988.86,-395.13"/>
+<path fill="none" stroke="midnightblue" d="M7208.69,-391.68C6502.22,-389.11 1927.73,-370.01 1645,-306 1633.34,-303.36 1621.4,-299.23 1610.06,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7208.79,-395.18 7218.8,-391.72 7208.82,-388.18 7208.79,-395.18"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node">
@@ -224,8 +224,8 @@
 <!-- Node1&#45;&gt;Node21 -->
 <g id="edge20" class="edge">
 <title>Node1&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M6988.56,-391.58C6310.7,-388.37 2085.77,-365.97 1824,-306 1812.45,-303.35 1800.63,-299.22 1789.4,-294.51"/>
-<polygon fill="none" stroke="midnightblue" points="6988.74,-395.09 6998.76,-391.63 6988.78,-388.09 6988.74,-395.09"/>
+<path fill="none" stroke="midnightblue" d="M7208.6,-391.65C6514.71,-388.83 2097.25,-368.51 1824,-306 1812.45,-303.36 1800.63,-299.22 1789.4,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="7208.77,-395.15 7218.78,-391.69 7208.8,-388.15 7208.77,-395.15"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node">
@@ -244,8 +244,8 @@
 <!-- Node1&#45;&gt;Node23 -->
 <g id="edge22" class="edge">
 <title>Node1&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M6988.54,-391.53C6323.97,-387.98 2255.44,-363.91 2003,-306 1991.45,-303.35 1979.63,-299.21 1968.4,-294.5"/>
-<polygon fill="none" stroke="midnightblue" points="6988.52,-395.03 6998.54,-391.58 6988.56,-388.03 6988.52,-395.03"/>
+<path fill="none" stroke="midnightblue" d="M7208.66,-391.6C6528.07,-388.46 2266.92,-366.45 2003,-306 1991.45,-303.35 1979.63,-299.22 1968.4,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="7208.88,-395.1 7218.9,-391.64 7208.91,-388.1 7208.88,-395.1"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node">
@@ -264,8 +264,8 @@
 <!-- Node1&#45;&gt;Node25 -->
 <g id="edge24" class="edge">
 <title>Node1&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M6988.27,-391.45C6336.74,-387.4 2428.15,-360.86 2185,-306 2173.33,-303.37 2161.38,-299.27 2150,-294.61"/>
-<polygon fill="none" stroke="midnightblue" points="6988.51,-394.95 6998.53,-391.51 6988.56,-387.95 6988.51,-394.95"/>
+<path fill="none" stroke="midnightblue" d="M7208.92,-391.52C6542.69,-387.91 2439.69,-363.36 2185,-306 2173.24,-303.35 2161.19,-299.21 2149.73,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="7208.92,-395.02 7218.94,-391.58 7208.96,-388.02 7208.92,-395.02"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node">
@@ -284,8 +284,8 @@
 <!-- Node1&#45;&gt;Node27 -->
 <g id="edge26" class="edge">
 <title>Node1&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M6988.62,-391.4C6352.09,-387.06 2598.72,-359.29 2365,-306 2353.44,-303.36 2341.6,-299.26 2330.33,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="6988.63,-394.9 6998.66,-391.46 6988.68,-387.9 6988.63,-394.9"/>
+<path fill="none" stroke="midnightblue" d="M7208.56,-391.47C6554.83,-387.57 2610.16,-361.79 2365,-306 2353.44,-303.37 2341.59,-299.27 2330.33,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="7208.84,-394.97 7218.86,-391.53 7208.88,-387.97 7208.84,-394.97"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node">
@@ -304,8 +304,8 @@
 <!-- Node1&#45;&gt;Node29 -->
 <g id="edge28" class="edge">
 <title>Node1&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M6988.7,-391.33C6366.62,-386.62 2769.36,-357.24 2545,-306 2533.44,-303.36 2521.6,-299.26 2510.34,-294.59"/>
-<polygon fill="none" stroke="midnightblue" points="6988.93,-394.83 6998.96,-391.41 6988.98,-387.83 6988.93,-394.83"/>
+<path fill="none" stroke="midnightblue" d="M7208.86,-391.41C6569.94,-387.16 2780.83,-359.75 2545,-306 2533.44,-303.36 2521.6,-299.27 2510.33,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7208.92,-394.91 7218.94,-391.48 7208.96,-387.91 7208.92,-394.91"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node">
@@ -324,8 +324,8 @@
 <!-- Node1&#45;&gt;Node31 -->
 <g id="edge30" class="edge">
 <title>Node1&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M6988.96,-391.26C6382.09,-386.17 2940.04,-355.2 2725,-306 2713.44,-303.36 2701.6,-299.25 2690.34,-294.58"/>
-<polygon fill="none" stroke="midnightblue" points="6988.94,-394.76 6998.97,-391.34 6989,-387.76 6988.94,-394.76"/>
+<path fill="none" stroke="midnightblue" d="M7208.4,-391.34C6582.26,-386.71 2951.41,-357.69 2725,-306 2713.44,-303.36 2701.6,-299.26 2690.34,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="7208.69,-394.84 7218.72,-391.42 7208.74,-387.84 7208.69,-394.84"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node">
@@ -344,8 +344,8 @@
 <!-- Node1&#45;&gt;Node33 -->
 <g id="edge32" class="edge">
 <title>Node1&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M6988.53,-391.17C6395.27,-385.67 3110.65,-353.14 2905,-306 2893.44,-303.35 2881.6,-299.24 2870.34,-294.58"/>
-<polygon fill="none" stroke="midnightblue" points="6988.71,-394.67 6998.74,-391.27 6988.77,-387.67 6988.71,-394.67"/>
+<path fill="none" stroke="midnightblue" d="M7208.61,-391.27C6597.53,-386.26 3122.08,-355.65 2905,-306 2893.44,-303.36 2881.6,-299.25 2870.34,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="7208.66,-394.77 7218.69,-391.35 7208.72,-387.77 7208.66,-394.77"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node">
@@ -364,8 +364,8 @@
 <!-- Node1&#45;&gt;Node35 -->
 <g id="edge34" class="edge">
 <title>Node1&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M6988.55,-392.26C6428.81,-393.53 3476.44,-395.93 3085,-306 3073.44,-303.34 3061.6,-299.24 3050.34,-294.57"/>
-<polygon fill="none" stroke="midnightblue" points="6988.6,-395.76 6998.59,-392.23 6988.58,-388.76 6988.6,-395.76"/>
+<path fill="none" stroke="midnightblue" d="M7208.61,-391.19C6612.25,-385.78 3292.73,-353.6 3085,-306 3073.44,-303.35 3061.6,-299.25 3050.34,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="7208.84,-394.69 7218.87,-391.28 7208.9,-387.69 7208.84,-394.69"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node">
@@ -384,8 +384,8 @@
 <!-- Node1&#45;&gt;Node37 -->
 <g id="edge36" class="edge">
 <title>Node1&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M6988.8,-392.16C6444.67,-392.79 3637.87,-391.86 3265,-306 3253.44,-303.34 3241.6,-299.23 3230.34,-294.56"/>
-<polygon fill="none" stroke="midnightblue" points="6988.95,-395.66 6998.95,-392.14 6988.94,-388.66 6988.95,-395.66"/>
+<path fill="none" stroke="midnightblue" d="M7208.54,-392.28C6645.49,-393.69 3660.58,-396.84 3265,-306 3253.44,-303.35 3241.6,-299.24 3230.34,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="7208.65,-395.78 7218.64,-392.25 7208.63,-388.78 7208.65,-395.78"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node">
@@ -404,8 +404,8 @@
 <!-- Node1&#45;&gt;Node39 -->
 <g id="edge38" class="edge">
 <title>Node1&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M6988.48,-392.05C6458.97,-392.02 3799.2,-387.77 3445,-306 3433.45,-303.33 3421.61,-299.22 3410.35,-294.55"/>
-<polygon fill="none" stroke="midnightblue" points="6988.74,-395.55 6998.74,-392.05 6988.74,-388.55 6988.74,-395.55"/>
+<path fill="none" stroke="midnightblue" d="M7208.72,-392.18C6661.06,-392.96 3821.99,-392.76 3445,-306 3433.44,-303.34 3421.6,-299.23 3410.34,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="7208.94,-395.68 7218.94,-392.16 7208.93,-388.68 7208.94,-395.68"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node">
@@ -424,1189 +424,1229 @@
 <!-- Node1&#45;&gt;Node41 -->
 <g id="edge40" class="edge">
 <title>Node1&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M6988.52,-391.92C6474.87,-391.2 3960.63,-383.7 3625,-306 3613.45,-303.33 3601.61,-299.21 3590.35,-294.53"/>
-<polygon fill="none" stroke="midnightblue" points="6988.83,-395.42 6998.84,-391.94 6988.84,-388.42 6988.83,-395.42"/>
+<path fill="none" stroke="midnightblue" d="M7208.31,-392.09C6674.84,-392.34 3982.23,-389.4 3624,-306 3612.55,-303.33 3600.82,-299.22 3589.68,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="7208.64,-395.59 7218.64,-392.09 7208.64,-388.59 7208.64,-395.59"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node">
 <title>Node43</title>
 <g id="a_node43"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3634,-226.5 3634,-294.5 3782,-294.5 3782,-226.5 3634,-226.5"/>
-<text text-anchor="start" x="3642" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3708" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ToVDeviceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3634,-264.5 3782,-264.5 "/>
-<text text-anchor="middle" x="3708" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3634,-245.5 3782,-245.5 "/>
-<text text-anchor="start" x="3642" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3633,-226.5 3633,-294.5 3781,-294.5 3781,-226.5 3633,-226.5"/>
+<text text-anchor="start" x="3641" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3707" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ToVDeviceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3633,-264.5 3781,-264.5 "/>
+<text text-anchor="middle" x="3707" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3633,-245.5 3781,-245.5 "/>
+<text text-anchor="start" x="3641" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node43 -->
 <g id="edge42" class="edge">
 <title>Node1&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M6988.52,-391.79C6491.07,-390.35 4122.08,-379.64 3805,-306 3793.45,-303.32 3781.61,-299.2 3770.35,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="6988.87,-395.29 6998.88,-391.82 6988.89,-388.29 6988.87,-395.29"/>
+<path fill="none" stroke="midnightblue" d="M7208.59,-392C6691.28,-391.68 4141.77,-386.03 3802,-306 3790.65,-303.33 3779.04,-299.21 3768.01,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="7208.62,-395.5 7218.62,-392 7208.62,-388.5 7208.62,-395.5"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node">
 <title>Node45</title>
 <g id="a_node45"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3814,-226.5 3814,-294.5 3962,-294.5 3962,-226.5 3814,-226.5"/>
-<text text-anchor="start" x="3822" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3888" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; IndexPutAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3814,-264.5 3962,-264.5 "/>
-<text text-anchor="middle" x="3888" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3814,-245.5 3962,-245.5 "/>
-<text text-anchor="start" x="3822" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3811.5,-226.5 3811.5,-294.5 4002.5,-294.5 4002.5,-226.5 3811.5,-226.5"/>
+<text text-anchor="start" x="3819.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3907" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NonMaximumSuppressionAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3811.5,-264.5 4002.5,-264.5 "/>
+<text text-anchor="middle" x="3907" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3811.5,-245.5 4002.5,-245.5 "/>
+<text text-anchor="start" x="3819.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node45 -->
 <g id="edge44" class="edge">
 <title>Node1&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M6988.91,-391.64C6508.88,-389.45 4283.64,-375.59 3985,-306 3973.45,-303.31 3961.61,-299.18 3950.36,-294.51"/>
-<polygon fill="none" stroke="midnightblue" points="6988.89,-395.14 6998.91,-391.68 6988.92,-388.14 6988.89,-395.14"/>
+<path fill="none" stroke="midnightblue" d="M7208.6,-391.42C6711.57,-388.01 4344.45,-368.58 4025,-306 4011.25,-303.31 3997,-299.18 3983.36,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="7208.93,-394.92 7218.95,-391.49 7208.97,-387.92 7208.93,-394.92"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node">
 <title>Node47</title>
 <g id="a_node47"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3994,-226.5 3994,-294.5 4142,-294.5 4142,-226.5 3994,-226.5"/>
-<text text-anchor="start" x="4002" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4068" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ExpandDimsAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3994,-264.5 4142,-264.5 "/>
-<text text-anchor="middle" x="4068" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3994,-245.5 4142,-245.5 "/>
-<text text-anchor="start" x="4002" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4034,-226.5 4034,-294.5 4182,-294.5 4182,-226.5 4034,-226.5"/>
+<text text-anchor="start" x="4042" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4108" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; IndexPutAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4034,-264.5 4182,-264.5 "/>
+<text text-anchor="middle" x="4108" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4034,-245.5 4182,-245.5 "/>
+<text text-anchor="start" x="4042" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node47 -->
 <g id="edge46" class="edge">
 <title>Node1&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M6988.66,-391.47C6525.25,-388.49 4445.1,-371.53 4165,-306 4153.54,-303.32 4141.8,-299.23 4130.62,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="6988.96,-394.97 6998.98,-391.54 6989,-387.97 6988.96,-394.97"/>
+<path fill="none" stroke="midnightblue" d="M7208.91,-391.64C6728.88,-389.45 4503.64,-375.59 4205,-306 4193.45,-303.31 4181.61,-299.18 4170.36,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="7208.89,-395.14 7218.91,-391.68 7208.92,-388.14 7208.89,-395.14"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node">
 <title>Node49</title>
 <g id="a_node49"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4174,-226.5 4174,-294.5 4322,-294.5 4322,-226.5 4174,-226.5"/>
-<text text-anchor="start" x="4182" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4248" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ConcatAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4174,-264.5 4322,-264.5 "/>
-<text text-anchor="middle" x="4248" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4174,-245.5 4322,-245.5 "/>
-<text text-anchor="start" x="4182" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4214,-226.5 4214,-294.5 4362,-294.5 4362,-226.5 4214,-226.5"/>
+<text text-anchor="start" x="4222" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4288" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ExpandDimsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4214,-264.5 4362,-264.5 "/>
+<text text-anchor="middle" x="4288" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4214,-245.5 4362,-245.5 "/>
+<text text-anchor="start" x="4222" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node49 -->
 <g id="edge48" class="edge">
 <title>Node1&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M6988.56,-391.28C6542.59,-387.46 4606.62,-367.47 4345,-306 4333.55,-303.31 4321.81,-299.21 4310.63,-294.58"/>
-<polygon fill="none" stroke="midnightblue" points="6988.78,-394.78 6998.81,-391.36 6988.84,-387.78 6988.78,-394.78"/>
+<path fill="none" stroke="midnightblue" d="M7208.66,-391.47C6745.25,-388.49 4665.1,-371.53 4385,-306 4373.54,-303.32 4361.8,-299.23 4350.62,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7208.96,-394.97 7218.98,-391.54 7209,-387.97 7208.96,-394.97"/>
 </g>
 <!-- Node51 -->
 <g id="node51" class="node">
 <title>Node51</title>
 <g id="a_node51"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4354,-226.5 4354,-294.5 4502,-294.5 4502,-226.5 4354,-226.5"/>
-<text text-anchor="start" x="4362" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4428" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TriluAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4354,-264.5 4502,-264.5 "/>
-<text text-anchor="middle" x="4428" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4354,-245.5 4502,-245.5 "/>
-<text text-anchor="start" x="4362" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4394,-226.5 4394,-294.5 4542,-294.5 4542,-226.5 4394,-226.5"/>
+<text text-anchor="start" x="4402" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4468" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ConcatAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4394,-264.5 4542,-264.5 "/>
+<text text-anchor="middle" x="4468" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4394,-245.5 4542,-245.5 "/>
+<text text-anchor="start" x="4402" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node51 -->
 <g id="edge50" class="edge">
 <title>Node1&#45;&gt;Node51</title>
-<path fill="none" stroke="midnightblue" d="M6988.7,-391.06C6561.23,-386.38 4768.22,-363.43 4525,-306 4513.55,-303.3 4501.81,-299.2 4490.63,-294.56"/>
-<polygon fill="none" stroke="midnightblue" points="6988.8,-394.56 6998.84,-391.17 6988.88,-387.56 6988.8,-394.56"/>
+<path fill="none" stroke="midnightblue" d="M7208.56,-391.28C6762.59,-387.46 4826.62,-367.47 4565,-306 4553.55,-303.31 4541.81,-299.21 4530.63,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="7208.78,-394.78 7218.81,-391.36 7208.84,-387.78 7208.78,-394.78"/>
 </g>
 <!-- Node53 -->
 <g id="node53" class="node">
 <title>Node53</title>
 <g id="a_node53"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4534,-226.5 4534,-294.5 4682,-294.5 4682,-226.5 4534,-226.5"/>
-<text text-anchor="start" x="4542" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4608" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftmaxAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4534,-264.5 4682,-264.5 "/>
-<text text-anchor="middle" x="4608" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4534,-245.5 4682,-245.5 "/>
-<text text-anchor="start" x="4542" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4574,-226.5 4574,-294.5 4722,-294.5 4722,-226.5 4574,-226.5"/>
+<text text-anchor="start" x="4582" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4648" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TriluAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4574,-264.5 4722,-264.5 "/>
+<text text-anchor="middle" x="4648" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4574,-245.5 4722,-245.5 "/>
+<text text-anchor="start" x="4582" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node53 -->
 <g id="edge52" class="edge">
 <title>Node1&#45;&gt;Node53</title>
-<path fill="none" stroke="midnightblue" d="M6988.52,-390.81C6579.66,-385.19 4929.81,-359.39 4705,-306 4693.55,-303.28 4681.82,-299.17 4670.64,-294.53"/>
-<polygon fill="none" stroke="midnightblue" points="6988.77,-394.31 6998.82,-390.95 6988.87,-387.31 6988.77,-394.31"/>
+<path fill="none" stroke="midnightblue" d="M7208.7,-391.06C6781.23,-386.38 4988.22,-363.43 4745,-306 4733.55,-303.3 4721.81,-299.2 4710.63,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="7208.8,-394.56 7218.84,-391.17 7208.88,-387.56 7208.8,-394.56"/>
 </g>
 <!-- Node55 -->
 <g id="node55" class="node">
 <title>Node55</title>
 <g id="a_node55"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4714,-226.5 4714,-294.5 4862,-294.5 4862,-226.5 4714,-226.5"/>
-<text text-anchor="start" x="4722" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4788" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ROIAlignAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4714,-264.5 4862,-264.5 "/>
-<text text-anchor="middle" x="4788" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4714,-245.5 4862,-245.5 "/>
-<text text-anchor="start" x="4722" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4754,-226.5 4754,-294.5 4902,-294.5 4902,-226.5 4754,-226.5"/>
+<text text-anchor="start" x="4762" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4828" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftmaxAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4754,-264.5 4902,-264.5 "/>
+<text text-anchor="middle" x="4828" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4754,-245.5 4902,-245.5 "/>
+<text text-anchor="start" x="4762" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node55 -->
 <g id="edge54" class="edge">
 <title>Node1&#45;&gt;Node55</title>
-<path fill="none" stroke="midnightblue" d="M6988.79,-390.52C6599.99,-383.93 5091.52,-355.37 4885,-306 4873.56,-303.26 4861.82,-299.15 4850.65,-294.5"/>
-<polygon fill="none" stroke="midnightblue" points="6988.81,-394.02 6998.87,-390.69 6988.93,-387.02 6988.81,-394.02"/>
+<path fill="none" stroke="midnightblue" d="M7208.52,-390.81C6799.66,-385.19 5149.81,-359.39 4925,-306 4913.55,-303.28 4901.82,-299.17 4890.64,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="7208.77,-394.31 7218.82,-390.95 7208.87,-387.31 7208.77,-394.31"/>
 </g>
 <!-- Node57 -->
 <g id="node57" class="node">
 <title>Node57</title>
 <g id="a_node57"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4894,-226.5 4894,-294.5 5042,-294.5 5042,-226.5 4894,-226.5"/>
-<text text-anchor="start" x="4902" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4968" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool1DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4894,-264.5 5042,-264.5 "/>
-<text text-anchor="middle" x="4968" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4894,-245.5 5042,-245.5 "/>
-<text text-anchor="start" x="4902" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4934,-226.5 4934,-294.5 5082,-294.5 5082,-226.5 4934,-226.5"/>
+<text text-anchor="start" x="4942" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5008" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ROIAlignAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4934,-264.5 5082,-264.5 "/>
+<text text-anchor="middle" x="5008" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4934,-245.5 5082,-245.5 "/>
+<text text-anchor="start" x="4942" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node57 -->
 <g id="edge56" class="edge">
 <title>Node1&#45;&gt;Node57</title>
-<path fill="none" stroke="midnightblue" d="M6988.64,-392.44C6646.87,-393.42 5444.21,-390.62 5072,-306 5059.94,-303.26 5047.51,-299.17 5035.63,-294.56"/>
-<polygon fill="none" stroke="midnightblue" points="6988.76,-395.94 6998.75,-392.41 6988.73,-388.94 6988.76,-395.94"/>
+<path fill="none" stroke="midnightblue" d="M7208.79,-390.52C6819.99,-383.93 5311.52,-355.37 5105,-306 5093.56,-303.26 5081.82,-299.15 5070.65,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="7208.81,-394.02 7218.87,-390.69 7208.93,-387.02 7208.81,-394.02"/>
 </g>
 <!-- Node59 -->
 <g id="node59" class="node">
 <title>Node59</title>
 <g id="a_node59"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5081,-226.5 5081,-294.5 5229,-294.5 5229,-226.5 5081,-226.5"/>
-<text text-anchor="start" x="5089" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5155" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftplusAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5081,-264.5 5229,-264.5 "/>
-<text text-anchor="middle" x="5155" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5081,-245.5 5229,-245.5 "/>
-<text text-anchor="start" x="5089" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5114,-226.5 5114,-294.5 5262,-294.5 5262,-226.5 5114,-226.5"/>
+<text text-anchor="start" x="5122" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5188" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool1DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5114,-264.5 5262,-264.5 "/>
+<text text-anchor="middle" x="5188" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5114,-245.5 5262,-245.5 "/>
+<text text-anchor="start" x="5122" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node59 -->
 <g id="edge58" class="edge">
 <title>Node1&#45;&gt;Node59</title>
-<path fill="none" stroke="midnightblue" d="M6988.85,-391.64C6669.24,-389.77 5600.83,-378.13 5267,-306 5254.22,-303.24 5241,-299.17 5228.32,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="6988.97,-395.14 6998.99,-391.7 6989.01,-388.14 6988.97,-395.14"/>
+<path fill="none" stroke="midnightblue" d="M7208.64,-392.44C6866.87,-393.42 5664.21,-390.62 5292,-306 5279.94,-303.26 5267.51,-299.17 5255.63,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="7208.76,-395.94 7218.75,-392.41 7208.73,-388.94 7208.76,-395.94"/>
 </g>
 <!-- Node61 -->
 <g id="node61" class="node">
 <title>Node61</title>
 <g id="a_node61"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5276,-226.5 5276,-294.5 5424,-294.5 5424,-226.5 5276,-226.5"/>
-<text text-anchor="start" x="5284" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5350" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize3DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5276,-264.5 5424,-264.5 "/>
-<text text-anchor="middle" x="5350" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5276,-245.5 5424,-245.5 "/>
-<text text-anchor="start" x="5284" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5301,-226.5 5301,-294.5 5449,-294.5 5449,-226.5 5301,-226.5"/>
+<text text-anchor="start" x="5309" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5375" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftplusAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5301,-264.5 5449,-264.5 "/>
+<text text-anchor="middle" x="5375" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5301,-245.5 5449,-245.5 "/>
+<text text-anchor="start" x="5309" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node61 -->
 <g id="edge60" class="edge">
 <title>Node1&#45;&gt;Node61</title>
-<path fill="none" stroke="midnightblue" d="M6988.31,-391.32C6690.11,-388.45 5750,-374.1 5455,-306 5442.94,-303.22 5430.51,-299.14 5418.61,-294.57"/>
-<polygon fill="none" stroke="midnightblue" points="6988.62,-394.82 6998.65,-391.42 6988.68,-387.82 6988.62,-394.82"/>
+<path fill="none" stroke="midnightblue" d="M7208.85,-391.64C6889.24,-389.77 5820.83,-378.13 5487,-306 5474.22,-303.24 5461,-299.17 5448.32,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7208.97,-395.14 7218.99,-391.7 7209.01,-388.14 7208.97,-395.14"/>
 </g>
 <!-- Node63 -->
 <g id="node63" class="node">
 <title>Node63</title>
 <g id="a_node63"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5464,-226.5 5464,-294.5 5612,-294.5 5612,-226.5 5464,-226.5"/>
-<text text-anchor="start" x="5472" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5538" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MatmulAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5464,-264.5 5612,-264.5 "/>
-<text text-anchor="middle" x="5538" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5464,-245.5 5612,-245.5 "/>
-<text text-anchor="start" x="5472" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5496,-226.5 5496,-294.5 5644,-294.5 5644,-226.5 5496,-226.5"/>
+<text text-anchor="start" x="5504" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5570" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize3DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5496,-264.5 5644,-264.5 "/>
+<text text-anchor="middle" x="5570" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5496,-245.5 5644,-245.5 "/>
+<text text-anchor="start" x="5504" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node63 -->
 <g id="edge62" class="edge">
 <title>Node1&#45;&gt;Node63</title>
-<path fill="none" stroke="midnightblue" d="M6988.2,-390.62C6713.24,-385.85 5899.43,-366.82 5642,-306 5630.05,-303.18 5617.74,-299.08 5605.96,-294.5"/>
-<polygon fill="none" stroke="midnightblue" points="6988.48,-394.13 6998.54,-390.8 6988.6,-387.13 6988.48,-394.13"/>
+<path fill="none" stroke="midnightblue" d="M7208.31,-391.32C6910.11,-388.45 5970,-374.1 5675,-306 5662.94,-303.22 5650.51,-299.14 5638.61,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="7208.62,-394.82 7218.65,-391.42 7208.68,-387.82 7208.62,-394.82"/>
 </g>
 <!-- Node65 -->
 <g id="node65" class="node">
 <title>Node65</title>
 <g id="a_node65"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5651,-226.5 5651,-294.5 5799,-294.5 5799,-226.5 5651,-226.5"/>
-<text text-anchor="start" x="5659" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5725" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgmaxArgminAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5651,-264.5 5799,-264.5 "/>
-<text text-anchor="middle" x="5725" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5651,-245.5 5799,-245.5 "/>
-<text text-anchor="start" x="5659" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5684,-226.5 5684,-294.5 5832,-294.5 5832,-226.5 5684,-226.5"/>
+<text text-anchor="start" x="5692" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5758" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MatmulAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5684,-264.5 5832,-264.5 "/>
+<text text-anchor="middle" x="5758" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5684,-245.5 5832,-245.5 "/>
+<text text-anchor="start" x="5692" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node65 -->
 <g id="edge64" class="edge">
 <title>Node1&#45;&gt;Node65</title>
-<path fill="none" stroke="midnightblue" d="M6988.84,-389.34C6740.59,-381.51 6056.49,-355.92 5837,-306 5824.45,-303.15 5811.47,-299.1 5798.99,-294.59"/>
-<polygon fill="none" stroke="midnightblue" points="6988.8,-392.84 6998.91,-389.65 6989.02,-385.84 6988.8,-392.84"/>
+<path fill="none" stroke="midnightblue" d="M7208.2,-390.62C6933.24,-385.85 6119.43,-366.82 5862,-306 5850.05,-303.18 5837.74,-299.08 5825.96,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="7208.48,-394.13 7218.54,-390.8 7208.6,-387.13 7208.48,-394.13"/>
 </g>
 <!-- Node67 -->
 <g id="node67" class="node">
 <title>Node67</title>
 <g id="a_node67"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5846,-226.5 5846,-294.5 5994,-294.5 5994,-226.5 5846,-226.5"/>
-<text text-anchor="start" x="5854" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5920" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5846,-264.5 5994,-264.5 "/>
-<text text-anchor="middle" x="5920" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5846,-245.5 5994,-245.5 "/>
-<text text-anchor="start" x="5854" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5871,-226.5 5871,-294.5 6019,-294.5 6019,-226.5 5871,-226.5"/>
+<text text-anchor="start" x="5879" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5945" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgmaxArgminAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5871,-264.5 6019,-264.5 "/>
+<text text-anchor="middle" x="5945" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5871,-245.5 6019,-245.5 "/>
+<text text-anchor="start" x="5879" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node67 -->
 <g id="edge66" class="edge">
 <title>Node1&#45;&gt;Node67</title>
-<path fill="none" stroke="midnightblue" d="M6988.46,-388.29C6766.91,-378.69 6206.7,-350.68 6025,-306 6013.27,-303.12 6001.17,-299.08 5989.54,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="6988.61,-391.8 6998.75,-388.73 6988.91,-384.8 6988.61,-391.8"/>
+<path fill="none" stroke="midnightblue" d="M7208.84,-389.34C6960.59,-381.51 6276.49,-355.92 6057,-306 6044.45,-303.15 6031.47,-299.1 6018.99,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="7208.8,-392.84 7218.91,-389.65 7209.02,-385.84 7208.8,-392.84"/>
 </g>
 <!-- Node69 -->
 <g id="node69" class="node">
 <title>Node69</title>
 <g id="a_node69"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6034,-226.5 6034,-294.5 6182,-294.5 6182,-226.5 6034,-226.5"/>
-<text text-anchor="start" x="6042" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6108" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool3DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6034,-264.5 6182,-264.5 "/>
-<text text-anchor="middle" x="6108" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6034,-245.5 6182,-245.5 "/>
-<text text-anchor="start" x="6042" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6066,-226.5 6066,-294.5 6214,-294.5 6214,-226.5 6066,-226.5"/>
+<text text-anchor="start" x="6074" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6140" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6066,-264.5 6214,-264.5 "/>
+<text text-anchor="middle" x="6140" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6066,-245.5 6214,-245.5 "/>
+<text text-anchor="start" x="6074" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node69 -->
 <g id="edge68" class="edge">
 <title>Node1&#45;&gt;Node69</title>
-<path fill="none" stroke="midnightblue" d="M6988.42,-392.88C6827.17,-392.27 6483.28,-381.23 6205,-306 6194.18,-303.07 6183.06,-299.05 6172.38,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="6988.77,-396.38 6998.78,-392.91 6988.78,-389.38 6988.77,-396.38"/>
+<path fill="none" stroke="midnightblue" d="M7208.46,-388.29C6986.91,-378.69 6426.7,-350.68 6245,-306 6233.27,-303.12 6221.17,-299.08 6209.54,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7208.61,-391.8 7218.75,-388.73 7208.91,-384.8 7208.61,-391.8"/>
 </g>
 <!-- Node71 -->
 <g id="node71" class="node">
 <title>Node71</title>
 <g id="a_node71"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6214,-226.5 6214,-294.5 6362,-294.5 6362,-226.5 6214,-226.5"/>
-<text text-anchor="start" x="6222" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6288" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayerNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6214,-264.5 6362,-264.5 "/>
-<text text-anchor="middle" x="6288" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6214,-245.5 6362,-245.5 "/>
-<text text-anchor="start" x="6222" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6254,-226.5 6254,-294.5 6402,-294.5 6402,-226.5 6254,-226.5"/>
+<text text-anchor="start" x="6262" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6328" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool3DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6254,-264.5 6402,-264.5 "/>
+<text text-anchor="middle" x="6328" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6254,-245.5 6402,-245.5 "/>
+<text text-anchor="start" x="6262" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node71 -->
 <g id="edge70" class="edge">
 <title>Node1&#45;&gt;Node71</title>
-<path fill="none" stroke="midnightblue" d="M6988.68,-389.58C6854.12,-384.04 6595.74,-365.83 6385,-306 6374.4,-302.99 6363.48,-298.97 6352.97,-294.58"/>
-<polygon fill="none" stroke="midnightblue" points="6988.81,-393.09 6998.94,-389.99 6989.09,-386.09 6988.81,-393.09"/>
+<path fill="none" stroke="midnightblue" d="M7208.42,-392.88C7047.17,-392.27 6703.28,-381.23 6425,-306 6414.18,-303.07 6403.06,-299.05 6392.38,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7208.77,-396.38 7218.78,-392.91 7208.78,-389.38 7208.77,-396.38"/>
 </g>
 <!-- Node73 -->
 <g id="node73" class="node">
 <title>Node73</title>
 <g id="a_node73"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6394,-226.5 6394,-294.5 6542,-294.5 6542,-226.5 6394,-226.5"/>
-<text text-anchor="start" x="6402" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6468" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SqueezeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6394,-264.5 6542,-264.5 "/>
-<text text-anchor="middle" x="6468" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6394,-245.5 6542,-245.5 "/>
-<text text-anchor="start" x="6402" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6434,-226.5 6434,-294.5 6582,-294.5 6582,-226.5 6434,-226.5"/>
+<text text-anchor="start" x="6442" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6508" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayerNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6434,-264.5 6582,-264.5 "/>
+<text text-anchor="middle" x="6508" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6434,-245.5 6582,-245.5 "/>
+<text text-anchor="start" x="6442" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node73 -->
 <g id="edge72" class="edge">
 <title>Node1&#45;&gt;Node73</title>
-<path fill="none" stroke="midnightblue" d="M6988.45,-384.09C6884.15,-373.4 6709.46,-350.34 6565,-306 6554.73,-302.85 6544.13,-298.84 6533.88,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="6988.33,-387.6 6998.64,-385.12 6989.04,-380.63 6988.33,-387.6"/>
+<path fill="none" stroke="midnightblue" d="M7208.68,-389.58C7074.12,-384.04 6815.74,-365.83 6605,-306 6594.4,-302.99 6583.48,-298.97 6572.97,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="7208.81,-393.09 7218.94,-389.99 7209.09,-386.09 7208.81,-393.09"/>
 </g>
 <!-- Node75 -->
 <g id="node75" class="node">
 <title>Node75</title>
 <g id="a_node75"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6574,-226.5 6574,-294.5 6722,-294.5 6722,-226.5 6574,-226.5"/>
-<text text-anchor="start" x="6582" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6648" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6574,-264.5 6722,-264.5 "/>
-<text text-anchor="middle" x="6648" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6574,-245.5 6722,-245.5 "/>
-<text text-anchor="start" x="6582" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6614,-226.5 6614,-294.5 6762,-294.5 6762,-226.5 6614,-226.5"/>
+<text text-anchor="start" x="6622" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6688" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SqueezeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6614,-264.5 6762,-264.5 "/>
+<text text-anchor="middle" x="6688" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6614,-245.5 6762,-245.5 "/>
+<text text-anchor="start" x="6622" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node75 -->
 <g id="edge74" class="edge">
 <title>Node1&#45;&gt;Node75</title>
-<path fill="none" stroke="midnightblue" d="M6988.87,-374.01C6919.77,-359.15 6823.03,-335.7 6741,-306 6731.74,-302.65 6722.17,-298.68 6712.85,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="6988.35,-377.48 6998.86,-376.14 6989.81,-370.64 6988.35,-377.48"/>
+<path fill="none" stroke="midnightblue" d="M7208.45,-384.09C7104.15,-373.4 6929.46,-350.34 6785,-306 6774.73,-302.85 6764.13,-298.84 6753.88,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7208.33,-387.6 7218.64,-385.12 7209.04,-380.63 7208.33,-387.6"/>
 </g>
 <!-- Node77 -->
 <g id="node77" class="node">
 <title>Node77</title>
 <g id="a_node77"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6750,-226.5 6750,-294.5 6898,-294.5 6898,-226.5 6750,-226.5"/>
-<text text-anchor="start" x="6758" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6824" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; OneHotAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6750,-264.5 6898,-264.5 "/>
-<text text-anchor="middle" x="6824" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6750,-245.5 6898,-245.5 "/>
-<text text-anchor="start" x="6758" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6794,-226.5 6794,-294.5 6942,-294.5 6942,-226.5 6794,-226.5"/>
+<text text-anchor="start" x="6802" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6868" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6794,-264.5 6942,-264.5 "/>
+<text text-anchor="middle" x="6868" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6794,-245.5 6942,-245.5 "/>
+<text text-anchor="start" x="6802" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node77 -->
 <g id="edge76" class="edge">
 <title>Node1&#45;&gt;Node77</title>
-<path fill="none" stroke="midnightblue" d="M6989.4,-345.82C6956.23,-328.91 6919.4,-310.13 6888.92,-294.59"/>
-<polygon fill="none" stroke="midnightblue" points="6988.15,-349.11 6998.65,-350.53 6991.33,-342.87 6988.15,-349.11"/>
+<path fill="none" stroke="midnightblue" d="M7208.87,-374.01C7139.77,-359.15 7043.03,-335.7 6961,-306 6951.74,-302.65 6942.17,-298.68 6932.85,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7208.35,-377.48 7218.86,-376.14 7209.81,-370.64 7208.35,-377.48"/>
 </g>
 <!-- Node79 -->
 <g id="node79" class="node">
 <title>Node79</title>
 <g id="a_node79"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6923,-226.5 6923,-294.5 7071,-294.5 7071,-226.5 6923,-226.5"/>
-<text text-anchor="start" x="6931" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6997" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NLLLossAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6923,-264.5 7071,-264.5 "/>
-<text text-anchor="middle" x="6997" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6923,-245.5 7071,-245.5 "/>
-<text text-anchor="start" x="6931" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6970,-226.5 6970,-294.5 7118,-294.5 7118,-226.5 6970,-226.5"/>
+<text text-anchor="start" x="6978" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7044" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; OneHotAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6970,-264.5 7118,-264.5 "/>
+<text text-anchor="middle" x="7044" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6970,-245.5 7118,-245.5 "/>
+<text text-anchor="start" x="6978" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node79 -->
 <g id="edge78" class="edge">
 <title>Node1&#45;&gt;Node79</title>
-<path fill="none" stroke="midnightblue" d="M7042.84,-333.57C7034.32,-320.17 7025.55,-306.39 7017.99,-294.51"/>
-<polygon fill="none" stroke="midnightblue" points="7040.06,-335.73 7048.38,-342.29 7045.97,-331.97 7040.06,-335.73"/>
+<path fill="none" stroke="midnightblue" d="M7209.4,-345.82C7176.23,-328.91 7139.4,-310.13 7108.92,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="7208.15,-349.11 7218.65,-350.53 7211.33,-342.87 7208.15,-349.11"/>
 </g>
 <!-- Node81 -->
 <g id="node81" class="node">
 <title>Node81</title>
 <g id="a_node81"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7089,-226.5 7089,-294.5 7237,-294.5 7237,-226.5 7089,-226.5"/>
-<text text-anchor="start" x="7097" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7163" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BatchNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7089,-264.5 7237,-264.5 "/>
-<text text-anchor="middle" x="7163" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7089,-245.5 7237,-245.5 "/>
-<text text-anchor="start" x="7097" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7143,-226.5 7143,-294.5 7291,-294.5 7291,-226.5 7143,-226.5"/>
+<text text-anchor="start" x="7151" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7217" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NLLLossAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7143,-264.5 7291,-264.5 "/>
+<text text-anchor="middle" x="7217" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7143,-245.5 7291,-245.5 "/>
+<text text-anchor="start" x="7151" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node81 -->
 <g id="edge80" class="edge">
 <title>Node1&#45;&gt;Node81</title>
-<path fill="none" stroke="midnightblue" d="M7117.16,-333.57C7125.68,-320.17 7134.45,-306.39 7142.01,-294.51"/>
-<polygon fill="none" stroke="midnightblue" points="7114.03,-331.97 7111.62,-342.29 7119.94,-335.73 7114.03,-331.97"/>
+<path fill="none" stroke="midnightblue" d="M7262.84,-333.57C7254.32,-320.17 7245.55,-306.39 7237.99,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="7260.06,-335.73 7268.38,-342.29 7265.97,-331.97 7260.06,-335.73"/>
 </g>
 <!-- Node83 -->
 <g id="node83" class="node">
 <title>Node83</title>
 <g id="a_node83"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7255,-226.5 7255,-294.5 7403,-294.5 7403,-226.5 7255,-226.5"/>
-<text text-anchor="start" x="7263" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7329" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RepeatAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7255,-264.5 7403,-264.5 "/>
-<text text-anchor="middle" x="7329" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7255,-245.5 7403,-245.5 "/>
-<text text-anchor="start" x="7263" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7309,-226.5 7309,-294.5 7457,-294.5 7457,-226.5 7309,-226.5"/>
+<text text-anchor="start" x="7317" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7383" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BatchNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7309,-264.5 7457,-264.5 "/>
+<text text-anchor="middle" x="7383" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7309,-245.5 7457,-245.5 "/>
+<text text-anchor="start" x="7317" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node83 -->
 <g id="edge82" class="edge">
 <title>Node1&#45;&gt;Node83</title>
-<path fill="none" stroke="midnightblue" d="M7170.15,-345.59C7194.78,-332.83 7221.45,-318.94 7246,-306 7252.94,-302.34 7260.2,-298.49 7267.41,-294.65"/>
-<polygon fill="none" stroke="midnightblue" points="7168.45,-342.53 7161.17,-350.24 7171.66,-348.75 7168.45,-342.53"/>
+<path fill="none" stroke="midnightblue" d="M7337.16,-333.57C7345.68,-320.17 7354.45,-306.39 7362.01,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="7334.03,-331.97 7331.62,-342.29 7339.94,-335.73 7334.03,-331.97"/>
 </g>
 <!-- Node85 -->
 <g id="node85" class="node">
 <title>Node85</title>
 <g id="a_node85"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7421,-226.5 7421,-294.5 7569,-294.5 7569,-226.5 7421,-226.5"/>
-<text text-anchor="start" x="7429" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7495" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool1DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7421,-264.5 7569,-264.5 "/>
-<text text-anchor="middle" x="7495" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7421,-245.5 7569,-245.5 "/>
-<text text-anchor="start" x="7429" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7475,-226.5 7475,-294.5 7623,-294.5 7623,-226.5 7475,-226.5"/>
+<text text-anchor="start" x="7483" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7549" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RepeatAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7475,-264.5 7623,-264.5 "/>
+<text text-anchor="middle" x="7549" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7475,-245.5 7623,-245.5 "/>
+<text text-anchor="start" x="7483" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node85 -->
 <g id="edge84" class="edge">
 <title>Node1&#45;&gt;Node85</title>
-<path fill="none" stroke="midnightblue" d="M7170.99,-374.57C7238.76,-360.12 7332.85,-336.95 7412,-306 7420.37,-302.72 7428.98,-298.8 7437.34,-294.66"/>
-<polygon fill="none" stroke="midnightblue" points="7170.25,-371.15 7161.18,-376.64 7171.69,-378 7170.25,-371.15"/>
+<path fill="none" stroke="midnightblue" d="M7390.15,-345.59C7414.78,-332.83 7441.45,-318.94 7466,-306 7472.94,-302.34 7480.2,-298.49 7487.41,-294.65"/>
+<polygon fill="none" stroke="midnightblue" points="7388.45,-342.53 7381.17,-350.24 7391.66,-348.75 7388.45,-342.53"/>
 </g>
 <!-- Node87 -->
 <g id="node87" class="node">
 <title>Node87</title>
 <g id="a_node87"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7587,-226.5 7587,-294.5 7735,-294.5 7735,-226.5 7587,-226.5"/>
-<text text-anchor="start" x="7595" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7661" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StackAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7587,-264.5 7735,-264.5 "/>
-<text text-anchor="middle" x="7661" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7587,-245.5 7735,-245.5 "/>
-<text text-anchor="start" x="7595" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7641,-226.5 7641,-294.5 7789,-294.5 7789,-226.5 7641,-226.5"/>
+<text text-anchor="start" x="7649" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7715" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool1DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7641,-264.5 7789,-264.5 "/>
+<text text-anchor="middle" x="7715" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7641,-245.5 7789,-245.5 "/>
+<text text-anchor="start" x="7649" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node87 -->
 <g id="edge86" class="edge">
 <title>Node1&#45;&gt;Node87</title>
-<path fill="none" stroke="midnightblue" d="M7171.56,-385.05C7273.15,-375.32 7440.85,-353.22 7578,-306 7586.97,-302.91 7596.13,-298.94 7604.94,-294.64"/>
-<polygon fill="none" stroke="midnightblue" points="7170.96,-381.59 7161.33,-386.01 7171.61,-388.56 7170.96,-381.59"/>
+<path fill="none" stroke="midnightblue" d="M7390.99,-374.57C7458.76,-360.12 7552.85,-336.95 7632,-306 7640.37,-302.72 7648.98,-298.8 7657.34,-294.66"/>
+<polygon fill="none" stroke="midnightblue" points="7390.25,-371.15 7381.18,-376.64 7391.69,-378 7390.25,-371.15"/>
 </g>
 <!-- Node89 -->
 <g id="node89" class="node">
 <title>Node89</title>
 <g id="a_node89"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7753,-226.5 7753,-294.5 7901,-294.5 7901,-226.5 7753,-226.5"/>
-<text text-anchor="start" x="7761" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7827" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScanopAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7753,-264.5 7901,-264.5 "/>
-<text text-anchor="middle" x="7827" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7753,-245.5 7901,-245.5 "/>
-<text text-anchor="start" x="7761" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7807,-226.5 7807,-294.5 7955,-294.5 7955,-226.5 7807,-226.5"/>
+<text text-anchor="start" x="7815" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7881" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StackAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7807,-264.5 7955,-264.5 "/>
+<text text-anchor="middle" x="7881" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7807,-245.5 7955,-245.5 "/>
+<text text-anchor="start" x="7815" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node89 -->
 <g id="edge88" class="edge">
 <title>Node1&#45;&gt;Node89</title>
-<path fill="none" stroke="midnightblue" d="M7171.58,-390.55C7301.78,-386.18 7546.52,-369.36 7744,-306 7753.34,-303 7762.86,-298.97 7771.97,-294.54"/>
-<polygon fill="none" stroke="midnightblue" points="7171.14,-387.06 7161.25,-390.88 7171.36,-394.06 7171.14,-387.06"/>
+<path fill="none" stroke="midnightblue" d="M7391.56,-385.05C7493.15,-375.32 7660.85,-353.22 7798,-306 7806.97,-302.91 7816.13,-298.94 7824.94,-294.64"/>
+<polygon fill="none" stroke="midnightblue" points="7390.96,-381.59 7381.33,-386.01 7391.61,-388.56 7390.96,-381.59"/>
 </g>
 <!-- Node91 -->
 <g id="node91" class="node">
 <title>Node91</title>
 <g id="a_node91"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7919,-226.5 7919,-294.5 8067,-294.5 8067,-226.5 7919,-226.5"/>
-<text text-anchor="start" x="7927" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7993" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LeakyReluAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7919,-264.5 8067,-264.5 "/>
-<text text-anchor="middle" x="7993" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7919,-245.5 8067,-245.5 "/>
-<text text-anchor="start" x="7927" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7973,-226.5 7973,-294.5 8121,-294.5 8121,-226.5 7973,-226.5"/>
+<text text-anchor="start" x="7981" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8047" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScanopAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7973,-264.5 8121,-264.5 "/>
+<text text-anchor="middle" x="8047" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7973,-245.5 8121,-245.5 "/>
+<text text-anchor="start" x="7981" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node91 -->
 <g id="edge90" class="edge">
 <title>Node1&#45;&gt;Node91</title>
-<path fill="none" stroke="midnightblue" d="M7171.24,-387.01C7357.17,-376.11 7773.84,-347.78 7910,-306 7919.53,-303.07 7929.24,-299.02 7938.49,-294.53"/>
-<polygon fill="none" stroke="midnightblue" points="7170.99,-383.52 7161.22,-387.59 7171.4,-390.51 7170.99,-383.52"/>
+<path fill="none" stroke="midnightblue" d="M7391.58,-390.55C7521.78,-386.18 7766.52,-369.36 7964,-306 7973.34,-303 7982.86,-298.97 7991.97,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="7391.14,-387.06 7381.25,-390.88 7391.36,-394.06 7391.14,-387.06"/>
 </g>
 <!-- Node93 -->
 <g id="node93" class="node">
 <title>Node93</title>
 <g id="a_node93"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8085,-226.5 8085,-294.5 8233,-294.5 8233,-226.5 8085,-226.5"/>
-<text text-anchor="start" x="8093" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8159" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRWithGradAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8085,-264.5 8233,-264.5 "/>
-<text text-anchor="middle" x="8159" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8085,-245.5 8233,-245.5 "/>
-<text text-anchor="start" x="8093" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8139,-226.5 8139,-294.5 8287,-294.5 8287,-226.5 8139,-226.5"/>
+<text text-anchor="start" x="8147" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8213" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LeakyReluAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8139,-264.5 8287,-264.5 "/>
+<text text-anchor="middle" x="8213" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8139,-245.5 8287,-245.5 "/>
+<text text-anchor="start" x="8147" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node93 -->
 <g id="edge92" class="edge">
 <title>Node1&#45;&gt;Node93</title>
-<path fill="none" stroke="midnightblue" d="M7171.23,-388.83C7384.01,-380.68 7907.82,-356.03 8076,-306 8085.56,-303.16 8095.28,-299.14 8104.53,-294.67"/>
-<polygon fill="none" stroke="midnightblue" points="7170.89,-385.34 7161.03,-389.22 7171.15,-392.33 7170.89,-385.34"/>
+<path fill="none" stroke="midnightblue" d="M7391.24,-387.01C7577.17,-376.11 7993.84,-347.78 8130,-306 8139.53,-303.07 8149.24,-299.02 8158.49,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="7390.99,-383.52 7381.22,-387.59 7391.4,-390.51 7390.99,-383.52"/>
 </g>
 <!-- Node95 -->
 <g id="node95" class="node">
 <title>Node95</title>
 <g id="a_node95"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8251,-226.5 8251,-294.5 8399,-294.5 8399,-226.5 8251,-226.5"/>
-<text text-anchor="start" x="8259" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8325" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRInplaceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8251,-264.5 8399,-264.5 "/>
-<text text-anchor="middle" x="8325" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8251,-245.5 8399,-245.5 "/>
-<text text-anchor="start" x="8259" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8305,-226.5 8305,-294.5 8453,-294.5 8453,-226.5 8305,-226.5"/>
+<text text-anchor="start" x="8313" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8379" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRWithGradAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8305,-264.5 8453,-264.5 "/>
+<text text-anchor="middle" x="8379" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8305,-245.5 8453,-245.5 "/>
+<text text-anchor="start" x="8313" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node95 -->
 <g id="edge94" class="edge">
 <title>Node1&#45;&gt;Node95</title>
-<path fill="none" stroke="midnightblue" d="M7171.7,-390.12C7409.54,-384.47 8041.63,-364.27 8242,-306 8251.73,-303.17 8261.62,-299.1 8271.02,-294.56"/>
-<polygon fill="none" stroke="midnightblue" points="7171.27,-386.63 7161.36,-390.37 7171.44,-393.63 7171.27,-386.63"/>
+<path fill="none" stroke="midnightblue" d="M7391.23,-388.83C7604.01,-380.68 8127.82,-356.03 8296,-306 8305.56,-303.16 8315.28,-299.14 8324.53,-294.67"/>
+<polygon fill="none" stroke="midnightblue" points="7390.89,-385.34 7381.03,-389.22 7391.15,-392.33 7390.89,-385.34"/>
 </g>
 <!-- Node97 -->
 <g id="node97" class="node">
 <title>Node97</title>
 <g id="a_node97"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8417,-226.5 8417,-294.5 8565,-294.5 8565,-226.5 8417,-226.5"/>
-<text text-anchor="start" x="8425" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8491" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AstypeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8417,-264.5 8565,-264.5 "/>
-<text text-anchor="middle" x="8491" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8417,-245.5 8565,-245.5 "/>
-<text text-anchor="start" x="8425" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8471,-226.5 8471,-294.5 8619,-294.5 8619,-226.5 8471,-226.5"/>
+<text text-anchor="start" x="8479" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8545" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRInplaceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8471,-264.5 8619,-264.5 "/>
+<text text-anchor="middle" x="8545" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8471,-245.5 8619,-245.5 "/>
+<text text-anchor="start" x="8479" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node97 -->
 <g id="edge96" class="edge">
 <title>Node1&#45;&gt;Node97</title>
-<path fill="none" stroke="midnightblue" d="M7171.29,-391.12C7431.81,-387.8 8174.95,-372.61 8408,-306 8417.75,-303.21 8427.64,-299.17 8437.04,-294.63"/>
-<polygon fill="none" stroke="midnightblue" points="7171.07,-387.62 7161.11,-391.24 7171.16,-394.62 7171.07,-387.62"/>
+<path fill="none" stroke="midnightblue" d="M7391.7,-390.12C7629.54,-384.47 8261.63,-364.27 8462,-306 8471.73,-303.17 8481.62,-299.1 8491.02,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="7391.27,-386.63 7381.36,-390.37 7391.44,-393.63 7391.27,-386.63"/>
 </g>
 <!-- Node99 -->
 <g id="node99" class="node">
 <title>Node99</title>
 <g id="a_node99"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8583,-226.5 8583,-294.5 8731,-294.5 8731,-226.5 8583,-226.5"/>
-<text text-anchor="start" x="8591" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8657" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PixelShuffleAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8583,-264.5 8731,-264.5 "/>
-<text text-anchor="middle" x="8657" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8583,-245.5 8731,-245.5 "/>
-<text text-anchor="start" x="8591" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8637,-226.5 8637,-294.5 8785,-294.5 8785,-226.5 8637,-226.5"/>
+<text text-anchor="start" x="8645" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8711" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AstypeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8637,-264.5 8785,-264.5 "/>
+<text text-anchor="middle" x="8711" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8637,-245.5 8785,-245.5 "/>
+<text text-anchor="start" x="8645" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node99 -->
 <g id="edge98" class="edge">
 <title>Node1&#45;&gt;Node99</title>
-<path fill="none" stroke="midnightblue" d="M7171.25,-391.89C7453.31,-390.73 8308.16,-380.95 8574,-306 8583.76,-303.25 8593.66,-299.22 8603.06,-294.69"/>
-<polygon fill="none" stroke="midnightblue" points="7171.04,-388.39 7161.06,-391.92 7171.07,-395.39 7171.04,-388.39"/>
+<path fill="none" stroke="midnightblue" d="M7391.29,-391.12C7651.81,-387.8 8394.95,-372.61 8628,-306 8637.75,-303.21 8647.64,-299.17 8657.04,-294.63"/>
+<polygon fill="none" stroke="midnightblue" points="7391.07,-387.62 7381.11,-391.24 7391.16,-394.62 7391.07,-387.62"/>
 </g>
 <!-- Node101 -->
 <g id="node101" class="node">
 <title>Node101</title>
 <g id="a_node101"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8749,-226.5 8749,-294.5 8897,-294.5 8897,-226.5 8749,-226.5"/>
-<text text-anchor="start" x="8757" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8823" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PadAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8749,-264.5 8897,-264.5 "/>
-<text text-anchor="middle" x="8823" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8749,-245.5 8897,-245.5 "/>
-<text text-anchor="start" x="8757" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8803,-226.5 8803,-294.5 8951,-294.5 8951,-226.5 8803,-226.5"/>
+<text text-anchor="start" x="8811" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8877" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PixelShuffleAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8803,-264.5 8951,-264.5 "/>
+<text text-anchor="middle" x="8877" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8803,-245.5 8951,-245.5 "/>
+<text text-anchor="start" x="8811" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node101 -->
 <g id="edge100" class="edge">
 <title>Node1&#45;&gt;Node101</title>
-<path fill="none" stroke="midnightblue" d="M7171.12,-392.5C7473.46,-393.35 8441.18,-389.33 8740,-306 8749.92,-303.23 8759.99,-299.13 8769.52,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="7171.09,-389 7161.08,-392.47 7171.07,-396 7171.09,-389"/>
+<path fill="none" stroke="midnightblue" d="M7391.25,-391.89C7673.31,-390.73 8528.16,-380.95 8794,-306 8803.76,-303.25 8813.66,-299.22 8823.06,-294.69"/>
+<polygon fill="none" stroke="midnightblue" points="7391.04,-388.39 7381.06,-391.92 7391.07,-395.39 7391.04,-388.39"/>
 </g>
 <!-- Node103 -->
 <g id="node103" class="node">
 <title>Node103</title>
 <g id="a_node103"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8915,-226.5 8915,-294.5 9063,-294.5 9063,-226.5 8915,-226.5"/>
-<text text-anchor="start" x="8923" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8989" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InstanceNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8915,-264.5 9063,-264.5 "/>
-<text text-anchor="middle" x="8989" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8915,-245.5 9063,-245.5 "/>
-<text text-anchor="start" x="8923" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8969,-226.5 8969,-294.5 9117,-294.5 9117,-226.5 8969,-226.5"/>
+<text text-anchor="start" x="8977" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9043" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PadAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8969,-264.5 9117,-264.5 "/>
+<text text-anchor="middle" x="9043" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8969,-245.5 9117,-245.5 "/>
+<text text-anchor="start" x="8977" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node103 -->
 <g id="edge102" class="edge">
 <title>Node1&#45;&gt;Node103</title>
-<path fill="none" stroke="midnightblue" d="M7171.27,-390.07C7517.44,-382.41 8738.26,-352.35 8906,-306 8915.93,-303.26 8926,-299.17 8935.54,-294.56"/>
-<polygon fill="none" stroke="midnightblue" points="7170.96,-386.57 7161.04,-390.29 7171.12,-393.57 7170.96,-386.57"/>
+<path fill="none" stroke="midnightblue" d="M7391.12,-392.5C7693.46,-393.35 8661.18,-389.33 8960,-306 8969.92,-303.23 8979.99,-299.13 8989.52,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7391.09,-389 7381.08,-392.47 7391.07,-396 7391.09,-389"/>
 </g>
 <!-- Node105 -->
 <g id="node105" class="node">
 <title>Node105</title>
 <g id="a_node105"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9081,-226.5 9081,-294.5 9229,-294.5 9229,-226.5 9081,-226.5"/>
-<text text-anchor="start" x="9089" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9155" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DropoutAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9081,-264.5 9229,-264.5 "/>
-<text text-anchor="middle" x="9155" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9081,-245.5 9229,-245.5 "/>
-<text text-anchor="start" x="9089" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9135,-226.5 9135,-294.5 9283,-294.5 9283,-226.5 9135,-226.5"/>
+<text text-anchor="start" x="9143" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9209" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InstanceNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9135,-264.5 9283,-264.5 "/>
+<text text-anchor="middle" x="9209" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9135,-245.5 9283,-245.5 "/>
+<text text-anchor="start" x="9143" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node105 -->
 <g id="edge104" class="edge">
 <title>Node1&#45;&gt;Node105</title>
-<path fill="none" stroke="midnightblue" d="M7171.21,-390.45C7537.1,-383.92 8887.56,-356.58 9072,-306 9081.93,-303.28 9092.01,-299.2 9101.54,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="7171.13,-386.95 7161.2,-390.63 7171.26,-393.95 7171.13,-386.95"/>
+<path fill="none" stroke="midnightblue" d="M7391.27,-390.07C7737.44,-382.41 8958.26,-352.35 9126,-306 9135.93,-303.26 9146,-299.17 9155.54,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="7390.96,-386.57 7381.04,-390.29 7391.12,-393.57 7390.96,-386.57"/>
 </g>
 <!-- Node107 -->
 <g id="node107" class="node">
 <title>Node107</title>
 <g id="a_node107"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9247,-226.5 9247,-294.5 9395,-294.5 9395,-226.5 9247,-226.5"/>
-<text text-anchor="start" x="9255" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9321" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TopKAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9247,-264.5 9395,-264.5 "/>
-<text text-anchor="middle" x="9321" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9247,-245.5 9395,-245.5 "/>
-<text text-anchor="start" x="9255" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9301,-226.5 9301,-294.5 9449,-294.5 9449,-226.5 9301,-226.5"/>
+<text text-anchor="start" x="9309" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9375" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DropoutAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9301,-264.5 9449,-264.5 "/>
+<text text-anchor="middle" x="9375" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9301,-245.5 9449,-245.5 "/>
+<text text-anchor="start" x="9309" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node107 -->
 <g id="edge106" class="edge">
 <title>Node1&#45;&gt;Node107</title>
-<path fill="none" stroke="midnightblue" d="M7171.32,-390.78C7556.37,-385.29 9036.85,-360.8 9238,-306 9247.94,-303.29 9258.01,-299.22 9267.55,-294.62"/>
-<polygon fill="none" stroke="midnightblue" points="7171.01,-387.28 7161.06,-390.92 7171.11,-394.28 7171.01,-387.28"/>
+<path fill="none" stroke="midnightblue" d="M7391.21,-390.45C7757.1,-383.92 9107.56,-356.58 9292,-306 9301.93,-303.28 9312.01,-299.2 9321.54,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7391.13,-386.95 7381.2,-390.63 7391.26,-393.95 7391.13,-386.95"/>
 </g>
 <!-- Node109 -->
 <g id="node109" class="node">
 <title>Node109</title>
 <g id="a_node109"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9413.5,-226.5 9413.5,-294.5 9598.5,-294.5 9598.5,-226.5 9413.5,-226.5"/>
-<text text-anchor="start" x="9421.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9506" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MultinomialFromUniformAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9413.5,-264.5 9598.5,-264.5 "/>
-<text text-anchor="middle" x="9506" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9413.5,-245.5 9598.5,-245.5 "/>
-<text text-anchor="start" x="9421.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9467,-226.5 9467,-294.5 9615,-294.5 9615,-226.5 9467,-226.5"/>
+<text text-anchor="start" x="9475" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9541" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TopKAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9467,-264.5 9615,-264.5 "/>
+<text text-anchor="middle" x="9541" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9467,-245.5 9615,-245.5 "/>
+<text text-anchor="start" x="9475" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node109 -->
 <g id="edge108" class="edge">
 <title>Node1&#45;&gt;Node109</title>
-<path fill="none" stroke="midnightblue" d="M7171.16,-390.64C7573.94,-384.33 9183.86,-356.2 9404,-306 9415.96,-303.27 9428.26,-299.16 9440,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="7170.96,-387.14 7161.01,-390.79 7171.07,-394.14 7170.96,-387.14"/>
+<path fill="none" stroke="midnightblue" d="M7391.32,-390.78C7776.37,-385.29 9256.85,-360.8 9458,-306 9467.94,-303.29 9478.01,-299.22 9487.55,-294.62"/>
+<polygon fill="none" stroke="midnightblue" points="7391.01,-387.28 7381.06,-390.92 7391.11,-394.28 7391.01,-387.28"/>
 </g>
 <!-- Node111 -->
 <g id="node111" class="node">
 <title>Node111</title>
 <g id="a_node111"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9617,-226.5 9617,-294.5 9765,-294.5 9765,-226.5 9617,-226.5"/>
-<text text-anchor="start" x="9625" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9691" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv3DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9617,-264.5 9765,-264.5 "/>
-<text text-anchor="middle" x="9691" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9617,-245.5 9765,-245.5 "/>
-<text text-anchor="start" x="9625" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9633.5,-226.5 9633.5,-294.5 9818.5,-294.5 9818.5,-226.5 9633.5,-226.5"/>
+<text text-anchor="start" x="9641.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9726" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MultinomialFromUniformAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9633.5,-264.5 9818.5,-264.5 "/>
+<text text-anchor="middle" x="9726" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9633.5,-245.5 9818.5,-245.5 "/>
+<text text-anchor="start" x="9641.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node111 -->
 <g id="edge110" class="edge">
 <title>Node1&#45;&gt;Node111</title>
-<path fill="none" stroke="midnightblue" d="M7171.08,-391.33C7595.45,-387.86 9368.3,-369.65 9607,-306 9617.05,-303.32 9627.23,-299.27 9636.89,-294.67"/>
-<polygon fill="none" stroke="midnightblue" points="7170.98,-387.83 7161.01,-391.41 7171.03,-394.83 7170.98,-387.83"/>
+<path fill="none" stroke="midnightblue" d="M7391.16,-390.64C7793.94,-384.33 9403.86,-356.2 9624,-306 9635.96,-303.27 9648.26,-299.16 9660,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7390.96,-387.14 7381.01,-390.79 7391.07,-394.14 7390.96,-387.14"/>
 </g>
 <!-- Node113 -->
 <g id="node113" class="node">
 <title>Node113</title>
 <g id="a_node113"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9783,-226.5 9783,-294.5 9931,-294.5 9931,-226.5 9783,-226.5"/>
-<text text-anchor="start" x="9791" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9857" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; VirtualDeviceNode &gt;</text>
-<polyline fill="none" stroke="black" points="9783,-264.5 9931,-264.5 "/>
-<text text-anchor="middle" x="9857" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9783,-245.5 9931,-245.5 "/>
-<text text-anchor="start" x="9791" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9837,-226.5 9837,-294.5 9985,-294.5 9985,-226.5 9837,-226.5"/>
+<text text-anchor="start" x="9845" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9911" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv3DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9837,-264.5 9985,-264.5 "/>
+<text text-anchor="middle" x="9911" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9837,-245.5 9985,-245.5 "/>
+<text text-anchor="start" x="9845" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node113 -->
 <g id="edge112" class="edge">
 <title>Node1&#45;&gt;Node113</title>
-<path fill="none" stroke="midnightblue" d="M7171.24,-391.56C7612.96,-389.09 9518.53,-374.52 9774,-306 9783.95,-303.33 9794.03,-299.28 9803.57,-294.69"/>
-<polygon fill="none" stroke="midnightblue" points="7171.06,-388.06 7161.08,-391.61 7171.1,-395.06 7171.06,-388.06"/>
+<path fill="none" stroke="midnightblue" d="M7391.08,-391.33C7815.45,-387.86 9588.3,-369.65 9827,-306 9837.05,-303.32 9847.23,-299.27 9856.89,-294.67"/>
+<polygon fill="none" stroke="midnightblue" points="7390.98,-387.83 7381.01,-391.41 7391.03,-394.83 7390.98,-387.83"/>
 </g>
 <!-- Node115 -->
 <g id="node115" class="node">
 <title>Node115</title>
 <g id="a_node115"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9949,-226.5 9949,-294.5 10097,-294.5 10097,-226.5 9949,-226.5"/>
-<text text-anchor="start" x="9957" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10023" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; WrapParamAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9949,-264.5 10097,-264.5 "/>
-<text text-anchor="middle" x="10023" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9949,-245.5 10097,-245.5 "/>
-<text text-anchor="start" x="9957" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10003,-226.5 10003,-294.5 10151,-294.5 10151,-226.5 10003,-226.5"/>
+<text text-anchor="start" x="10011" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10077" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; VirtualDeviceNode &gt;</text>
+<polyline fill="none" stroke="black" points="10003,-264.5 10151,-264.5 "/>
+<text text-anchor="middle" x="10077" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10003,-245.5 10151,-245.5 "/>
+<text text-anchor="start" x="10011" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node115 -->
 <g id="edge114" class="edge">
 <title>Node1&#45;&gt;Node115</title>
-<path fill="none" stroke="midnightblue" d="M7171.57,-391.74C7630.34,-390.1 9667.7,-378.76 9940,-306 9949.95,-303.34 9960.03,-299.3 9969.57,-294.71"/>
-<polygon fill="none" stroke="midnightblue" points="7171.33,-388.24 7161.35,-391.78 7171.36,-395.24 7171.33,-388.24"/>
+<path fill="none" stroke="midnightblue" d="M7391.24,-391.56C7832.96,-389.09 9738.53,-374.52 9994,-306 10003.95,-303.33 10014.03,-299.28 10023.57,-294.69"/>
+<polygon fill="none" stroke="midnightblue" points="7391.06,-388.06 7381.08,-391.61 7391.1,-395.06 7391.06,-388.06"/>
 </g>
 <!-- Node117 -->
 <g id="node117" class="node">
 <title>Node117</title>
 <g id="a_node117"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10115,-226.5 10115,-294.5 10263,-294.5 10263,-226.5 10115,-226.5"/>
-<text text-anchor="start" x="10123" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10189" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TileAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10115,-264.5 10263,-264.5 "/>
-<text text-anchor="middle" x="10189" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10115,-245.5 10263,-245.5 "/>
-<text text-anchor="start" x="10123" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10169,-226.5 10169,-294.5 10317,-294.5 10317,-226.5 10169,-226.5"/>
+<text text-anchor="start" x="10177" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10243" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; WrapParamAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10169,-264.5 10317,-264.5 "/>
+<text text-anchor="middle" x="10243" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10169,-245.5 10317,-245.5 "/>
+<text text-anchor="start" x="10177" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node117 -->
 <g id="edge116" class="edge">
 <title>Node1&#45;&gt;Node117</title>
-<path fill="none" stroke="midnightblue" d="M7171.42,-391.9C7645.86,-391.07 9816.75,-383.03 10106,-306 10116.11,-303.31 10126.35,-299.18 10136.03,-294.5"/>
-<polygon fill="none" stroke="midnightblue" points="7171.19,-388.4 7161.2,-391.92 7171.2,-395.4 7171.19,-388.4"/>
+<path fill="none" stroke="midnightblue" d="M7391.57,-391.74C7850.34,-390.1 9887.7,-378.76 10160,-306 10169.95,-303.34 10180.03,-299.3 10189.57,-294.71"/>
+<polygon fill="none" stroke="midnightblue" points="7391.33,-388.24 7381.35,-391.78 7391.36,-395.24 7391.33,-388.24"/>
 </g>
 <!-- Node119 -->
 <g id="node119" class="node">
 <title>Node119</title>
 <g id="a_node119"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10281,-226.5 10281,-294.5 10429,-294.5 10429,-226.5 10281,-226.5"/>
-<text text-anchor="start" x="10289" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10355" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StridedSliceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10281,-264.5 10429,-264.5 "/>
-<text text-anchor="middle" x="10355" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10281,-245.5 10429,-245.5 "/>
-<text text-anchor="start" x="10289" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10335,-226.5 10335,-294.5 10483,-294.5 10483,-226.5 10335,-226.5"/>
+<text text-anchor="start" x="10343" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10409" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TileAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10335,-264.5 10483,-264.5 "/>
+<text text-anchor="middle" x="10409" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10335,-245.5 10483,-245.5 "/>
+<text text-anchor="start" x="10343" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node119 -->
 <g id="edge118" class="edge">
 <title>Node1&#45;&gt;Node119</title>
-<path fill="none" stroke="midnightblue" d="M7171.22,-392.05C7660.77,-391.98 9965.76,-387.31 10272,-306 10282.11,-303.31 10292.36,-299.19 10302.04,-294.52"/>
-<polygon fill="none" stroke="midnightblue" points="7171.03,-388.55 7161.03,-392.05 7171.03,-395.55 7171.03,-388.55"/>
+<path fill="none" stroke="midnightblue" d="M7391.42,-391.9C7865.86,-391.07 10036.75,-383.03 10326,-306 10336.11,-303.31 10346.35,-299.18 10356.03,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="7391.19,-388.4 7381.2,-391.92 7391.2,-395.4 7391.19,-388.4"/>
 </g>
 <!-- Node121 -->
 <g id="node121" class="node">
 <title>Node121</title>
 <g id="a_node121"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10447,-226.5 10447,-294.5 10595,-294.5 10595,-226.5 10447,-226.5"/>
-<text text-anchor="start" x="10455" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10521" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SplitAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10447,-264.5 10595,-264.5 "/>
-<text text-anchor="middle" x="10521" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10447,-245.5 10595,-245.5 "/>
-<text text-anchor="start" x="10455" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10501,-226.5 10501,-294.5 10649,-294.5 10649,-226.5 10501,-226.5"/>
+<text text-anchor="start" x="10509" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10575" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StridedSliceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10501,-264.5 10649,-264.5 "/>
+<text text-anchor="middle" x="10575" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10501,-245.5 10649,-245.5 "/>
+<text text-anchor="start" x="10509" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node121 -->
 <g id="edge120" class="edge">
 <title>Node1&#45;&gt;Node121</title>
-<path fill="none" stroke="midnightblue" d="M7171.44,-392.18C7676.59,-392.85 10114.84,-391.58 10438,-306 10448.12,-303.32 10458.36,-299.2 10468.04,-294.53"/>
-<polygon fill="none" stroke="midnightblue" points="7171.29,-388.68 7161.28,-392.17 7171.28,-395.68 7171.29,-388.68"/>
+<path fill="none" stroke="midnightblue" d="M7391.22,-392.05C7880.77,-391.98 10185.76,-387.31 10492,-306 10502.11,-303.31 10512.36,-299.19 10522.04,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="7391.03,-388.55 7381.03,-392.05 7391.03,-395.55 7391.03,-388.55"/>
 </g>
 <!-- Node123 -->
 <g id="node123" class="node">
 <title>Node123</title>
 <g id="a_node123"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10613,-226.5 10613,-294.5 10761,-294.5 10761,-226.5 10613,-226.5"/>
-<text text-anchor="start" x="10621" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10687" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RMSNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10613,-264.5 10761,-264.5 "/>
-<text text-anchor="middle" x="10687" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10613,-245.5 10761,-245.5 "/>
-<text text-anchor="start" x="10621" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10667,-226.5 10667,-294.5 10815,-294.5 10815,-226.5 10667,-226.5"/>
+<text text-anchor="start" x="10675" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10741" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SplitAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10667,-264.5 10815,-264.5 "/>
+<text text-anchor="middle" x="10741" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10667,-245.5 10815,-245.5 "/>
+<text text-anchor="start" x="10675" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node123 -->
 <g id="edge122" class="edge">
 <title>Node1&#45;&gt;Node123</title>
-<path fill="none" stroke="midnightblue" d="M7171.31,-392.3C7690.94,-393.68 10263.82,-395.87 10604,-306 10614.12,-303.33 10624.36,-299.21 10634.04,-294.54"/>
-<polygon fill="none" stroke="midnightblue" points="7171.25,-388.8 7161.24,-392.27 7171.23,-395.8 7171.25,-388.8"/>
+<path fill="none" stroke="midnightblue" d="M7391.44,-392.18C7896.59,-392.85 10334.84,-391.58 10658,-306 10668.12,-303.32 10678.36,-299.2 10688.04,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="7391.29,-388.68 7381.28,-392.17 7391.28,-395.68 7391.29,-388.68"/>
 </g>
 <!-- Node125 -->
 <g id="node125" class="node">
 <title>Node125</title>
 <g id="a_node125"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10779,-226.5 10779,-294.5 10927,-294.5 10927,-226.5 10779,-226.5"/>
-<text text-anchor="start" x="10787" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10853" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; QuantizeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10779,-264.5 10927,-264.5 "/>
-<text text-anchor="middle" x="10853" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10779,-245.5 10927,-245.5 "/>
-<text text-anchor="start" x="10787" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10833,-226.5 10833,-294.5 10981,-294.5 10981,-226.5 10833,-226.5"/>
+<text text-anchor="start" x="10841" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10907" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RMSNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10833,-264.5 10981,-264.5 "/>
+<text text-anchor="middle" x="10907" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10833,-245.5 10981,-245.5 "/>
+<text text-anchor="start" x="10841" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node125 -->
 <g id="edge124" class="edge">
 <title>Node1&#45;&gt;Node125</title>
-<path fill="none" stroke="midnightblue" d="M7171.62,-391.07C7723.81,-385.31 10590.87,-353.22 10770,-306 10780.12,-303.33 10790.37,-299.22 10800.04,-294.55"/>
-<polygon fill="none" stroke="midnightblue" points="7171.28,-387.57 7161.32,-391.18 7171.36,-394.57 7171.28,-387.57"/>
+<path fill="none" stroke="midnightblue" d="M7391.31,-392.3C7910.94,-393.68 10483.82,-395.87 10824,-306 10834.12,-303.33 10844.36,-299.21 10854.04,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="7391.25,-388.8 7381.24,-392.27 7391.23,-395.8 7391.25,-388.8"/>
 </g>
 <!-- Node127 -->
 <g id="node127" class="node">
 <title>Node127</title>
 <g id="a_node127"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10945,-226.5 10945,-294.5 11093,-294.5 11093,-226.5 10945,-226.5"/>
-<text text-anchor="start" x="10953" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11019" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PReluAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10945,-264.5 11093,-264.5 "/>
-<text text-anchor="middle" x="11019" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10945,-245.5 11093,-245.5 "/>
-<text text-anchor="start" x="10953" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10999,-226.5 10999,-294.5 11147,-294.5 11147,-226.5 10999,-226.5"/>
+<text text-anchor="start" x="11007" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11073" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; QuantizeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10999,-264.5 11147,-264.5 "/>
+<text text-anchor="middle" x="11073" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10999,-245.5 11147,-245.5 "/>
+<text text-anchor="start" x="11007" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node127 -->
 <g id="edge126" class="edge">
 <title>Node1&#45;&gt;Node127</title>
-<path fill="none" stroke="midnightblue" d="M7171.18,-391.17C7736.79,-385.86 10748.29,-355.38 10936,-306 10946.12,-303.34 10956.37,-299.23 10966.05,-294.55"/>
-<polygon fill="none" stroke="midnightblue" points="7171,-387.67 7161.04,-391.26 7171.07,-394.67 7171,-387.67"/>
+<path fill="none" stroke="midnightblue" d="M7391.62,-391.07C7943.81,-385.31 10810.87,-353.22 10990,-306 11000.12,-303.33 11010.37,-299.22 11020.04,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="7391.28,-387.57 7381.32,-391.18 7391.36,-394.57 7391.28,-387.57"/>
 </g>
 <!-- Node129 -->
 <g id="node129" class="node">
 <title>Node129</title>
 <g id="a_node129"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11111,-226.5 11111,-294.5 11281,-294.5 11281,-226.5 11111,-226.5"/>
-<text text-anchor="start" x="11119" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11196" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MultiboxTransformLocAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11111,-264.5 11281,-264.5 "/>
-<text text-anchor="middle" x="11196" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11111,-245.5 11281,-245.5 "/>
-<text text-anchor="start" x="11119" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11165,-226.5 11165,-294.5 11313,-294.5 11313,-226.5 11165,-226.5"/>
+<text text-anchor="start" x="11173" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11239" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PReluAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11165,-264.5 11313,-264.5 "/>
+<text text-anchor="middle" x="11239" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11165,-245.5 11313,-245.5 "/>
+<text text-anchor="start" x="11173" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node129 -->
 <g id="edge128" class="edge">
 <title>Node1&#45;&gt;Node129</title>
-<path fill="none" stroke="midnightblue" d="M7171.78,-391.12C7753.05,-385.45 10904.6,-352.59 11102,-306 11113.25,-303.35 11124.75,-299.24 11135.67,-294.57"/>
-<polygon fill="none" stroke="midnightblue" points="7171.33,-387.63 7161.36,-391.23 7171.4,-394.63 7171.33,-387.63"/>
+<path fill="none" stroke="midnightblue" d="M7391.18,-391.17C7956.79,-385.86 10968.29,-355.38 11156,-306 11166.12,-303.34 11176.37,-299.23 11186.05,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="7391,-387.67 7381.04,-391.26 7391.07,-394.67 7391,-387.67"/>
 </g>
 <!-- Node131 -->
 <g id="node131" class="node">
 <title>Node131</title>
 <g id="a_node131"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11299,-226.5 11299,-294.5 11447,-294.5 11447,-226.5 11299,-226.5"/>
-<text text-anchor="start" x="11307" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11373" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11299,-264.5 11447,-264.5 "/>
-<text text-anchor="middle" x="11373" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11299,-245.5 11447,-245.5 "/>
-<text text-anchor="start" x="11307" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11331,-226.5 11331,-294.5 11501,-294.5 11501,-226.5 11331,-226.5"/>
+<text text-anchor="start" x="11339" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11416" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MultiboxTransformLocAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11331,-264.5 11501,-264.5 "/>
+<text text-anchor="middle" x="11416" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11331,-245.5 11501,-245.5 "/>
+<text text-anchor="start" x="11339" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node131 -->
 <g id="edge130" class="edge">
 <title>Node1&#45;&gt;Node131</title>
-<path fill="none" stroke="midnightblue" d="M7171.32,-391.35C7767.21,-386.93 11084.09,-359.96 11290,-306 11300.12,-303.35 11310.37,-299.24 11320.05,-294.57"/>
-<polygon fill="none" stroke="midnightblue" points="7171.04,-387.85 7161.07,-391.42 7171.09,-394.85 7171.04,-387.85"/>
+<path fill="none" stroke="midnightblue" d="M7391.78,-391.12C7973.05,-385.45 11124.6,-352.59 11322,-306 11333.25,-303.35 11344.75,-299.24 11355.67,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="7391.33,-387.63 7381.36,-391.23 7391.4,-394.63 7391.33,-387.63"/>
 </g>
 <!-- Node133 -->
 <g id="node133" class="node">
 <title>Node133</title>
 <g id="a_node133"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11465,-226.5 11465,-294.5 11613,-294.5 11613,-226.5 11465,-226.5"/>
-<text text-anchor="start" x="11473" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11539" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SortAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11465,-264.5 11613,-264.5 "/>
-<text text-anchor="middle" x="11539" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11465,-245.5 11613,-245.5 "/>
-<text text-anchor="start" x="11473" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11519,-226.5 11519,-294.5 11667,-294.5 11667,-226.5 11519,-226.5"/>
+<text text-anchor="start" x="11527" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11593" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11519,-264.5 11667,-264.5 "/>
+<text text-anchor="middle" x="11593" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11519,-245.5 11667,-245.5 "/>
+<text text-anchor="start" x="11527" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node133 -->
 <g id="edge132" class="edge">
 <title>Node1&#45;&gt;Node133</title>
-<path fill="none" stroke="midnightblue" d="M7171.52,-391.42C7781.56,-387.39 11241.56,-362.11 11456,-306 11466.12,-303.35 11476.37,-299.25 11486.05,-294.58"/>
-<polygon fill="none" stroke="midnightblue" points="7171.43,-387.92 7161.45,-391.48 7171.48,-394.92 7171.43,-387.92"/>
+<path fill="none" stroke="midnightblue" d="M7391.32,-391.35C7987.21,-386.93 11304.09,-359.96 11510,-306 11520.12,-303.35 11530.37,-299.24 11540.05,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="7391.04,-387.85 7381.07,-391.42 7391.09,-394.85 7391.04,-387.85"/>
 </g>
 <!-- Node135 -->
 <g id="node135" class="node">
 <title>Node135</title>
 <g id="a_node135"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11631,-226.5 11631,-294.5 11779,-294.5 11779,-226.5 11631,-226.5"/>
-<text text-anchor="start" x="11639" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11705" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11631,-264.5 11779,-264.5 "/>
-<text text-anchor="middle" x="11705" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11631,-245.5 11779,-245.5 "/>
-<text text-anchor="start" x="11639" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11685,-226.5 11685,-294.5 11833,-294.5 11833,-226.5 11685,-226.5"/>
+<text text-anchor="start" x="11693" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11759" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SortAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11685,-264.5 11833,-264.5 "/>
+<text text-anchor="middle" x="11759" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11685,-245.5 11833,-245.5 "/>
+<text text-anchor="start" x="11693" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node135 -->
 <g id="edge134" class="edge">
 <title>Node1&#45;&gt;Node135</title>
-<path fill="none" stroke="midnightblue" d="M7171.48,-391.49C7794.77,-387.84 11398.99,-364.26 11622,-306 11632.12,-303.36 11642.37,-299.25 11652.05,-294.58"/>
-<polygon fill="none" stroke="midnightblue" points="7171.18,-387.99 7161.2,-391.55 7171.22,-394.99 7171.18,-387.99"/>
+<path fill="none" stroke="midnightblue" d="M7391.52,-391.42C8001.56,-387.39 11461.56,-362.11 11676,-306 11686.12,-303.35 11696.37,-299.25 11706.05,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="7391.43,-387.92 7381.45,-391.48 7391.48,-394.92 7391.43,-387.92"/>
 </g>
 <!-- Node137 -->
 <g id="node137" class="node">
 <title>Node137</title>
 <g id="a_node137"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11797,-226.5 11797,-294.5 11945,-294.5 11945,-226.5 11797,-226.5"/>
-<text text-anchor="start" x="11805" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11871" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BucketizeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11797,-264.5 11945,-264.5 "/>
-<text text-anchor="middle" x="11871" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11797,-245.5 11945,-245.5 "/>
-<text text-anchor="start" x="11805" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11851,-226.5 11851,-294.5 11999,-294.5 11999,-226.5 11851,-226.5"/>
+<text text-anchor="start" x="11859" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11925" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11851,-264.5 11999,-264.5 "/>
+<text text-anchor="middle" x="11925" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11851,-245.5 11999,-245.5 "/>
+<text text-anchor="start" x="11859" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node137 -->
 <g id="edge136" class="edge">
 <title>Node1&#45;&gt;Node137</title>
-<path fill="none" stroke="midnightblue" d="M7171.28,-391.55C7807.13,-388.27 11556.39,-366.42 11788,-306 11798.13,-303.36 11808.38,-299.26 11818.05,-294.59"/>
-<polygon fill="none" stroke="midnightblue" points="7171.24,-388.05 7161.26,-391.6 7171.27,-395.05 7171.24,-388.05"/>
+<path fill="none" stroke="midnightblue" d="M7391.48,-391.49C8014.77,-387.84 11618.99,-364.26 11842,-306 11852.12,-303.36 11862.37,-299.25 11872.05,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="7391.18,-387.99 7381.2,-391.55 7391.22,-394.99 7391.18,-387.99"/>
 </g>
 <!-- Node139 -->
 <g id="node139" class="node">
 <title>Node139</title>
 <g id="a_node139"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11963,-226.5 11963,-294.5 12111,-294.5 12111,-226.5 11963,-226.5"/>
-<text text-anchor="start" x="11971" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12037" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgsortAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11963,-264.5 12111,-264.5 "/>
-<text text-anchor="middle" x="12037" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11963,-245.5 12111,-245.5 "/>
-<text text-anchor="start" x="11971" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12017,-226.5 12017,-294.5 12165,-294.5 12165,-226.5 12017,-226.5"/>
+<text text-anchor="start" x="12025" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12091" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BucketizeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12017,-264.5 12165,-264.5 "/>
+<text text-anchor="middle" x="12091" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12017,-245.5 12165,-245.5 "/>
+<text text-anchor="start" x="12025" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node139 -->
 <g id="edge138" class="edge">
 <title>Node1&#45;&gt;Node139</title>
-<path fill="none" stroke="midnightblue" d="M7171.38,-391.61C7820.39,-388.69 11713.83,-368.58 11954,-306 11964.13,-303.36 11974.38,-299.26 11984.06,-294.59"/>
-<polygon fill="none" stroke="midnightblue" points="7171.14,-388.11 7161.15,-391.66 7171.17,-395.11 7171.14,-388.11"/>
+<path fill="none" stroke="midnightblue" d="M7391.28,-391.55C8027.13,-388.27 11776.39,-366.42 12008,-306 12018.13,-303.36 12028.38,-299.26 12038.05,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="7391.24,-388.05 7381.26,-391.6 7391.27,-395.05 7391.24,-388.05"/>
 </g>
 <!-- Node141 -->
 <g id="node141" class="node">
 <title>Node141</title>
 <g id="a_node141"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="12129,-226.5 12129,-294.5 12277,-294.5 12277,-226.5 12129,-226.5"/>
-<text text-anchor="start" x="12137" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12203" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StatisticalAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="12129,-264.5 12277,-264.5 "/>
-<text text-anchor="middle" x="12203" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12129,-245.5 12277,-245.5 "/>
-<text text-anchor="start" x="12137" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12183,-226.5 12183,-294.5 12331,-294.5 12331,-226.5 12183,-226.5"/>
+<text text-anchor="start" x="12191" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12257" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgsortAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12183,-264.5 12331,-264.5 "/>
+<text text-anchor="middle" x="12257" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12183,-245.5 12331,-245.5 "/>
+<text text-anchor="start" x="12191" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node141 -->
 <g id="edge140" class="edge">
 <title>Node1&#45;&gt;Node141</title>
-<path fill="none" stroke="midnightblue" d="M7171.58,-391.66C7833.86,-389.08 11871.27,-370.73 12120,-306 12130.13,-303.36 12140.38,-299.27 12150.06,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="7171.13,-388.17 7161.15,-391.7 7171.16,-395.17 7171.13,-388.17"/>
+<path fill="none" stroke="midnightblue" d="M7391.38,-391.61C8040.39,-388.69 11933.83,-368.58 12174,-306 12184.13,-303.36 12194.38,-299.26 12204.06,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="7391.14,-388.11 7381.15,-391.66 7391.17,-395.11 7391.14,-388.11"/>
 </g>
 <!-- Node143 -->
 <g id="node143" class="node">
 <title>Node143</title>
 <g id="a_node143"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="12295,-226.5 12295,-294.5 12443,-294.5 12443,-226.5 12295,-226.5"/>
-<text text-anchor="start" x="12303" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12369" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayoutTransformAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="12295,-264.5 12443,-264.5 "/>
-<text text-anchor="middle" x="12369" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12295,-245.5 12443,-245.5 "/>
-<text text-anchor="start" x="12303" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12349,-226.5 12349,-294.5 12497,-294.5 12497,-226.5 12349,-226.5"/>
+<text text-anchor="start" x="12357" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12423" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StatisticalAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12349,-264.5 12497,-264.5 "/>
+<text text-anchor="middle" x="12423" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12349,-245.5 12497,-245.5 "/>
+<text text-anchor="start" x="12357" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node143 -->
 <g id="edge142" class="edge">
 <title>Node1&#45;&gt;Node143</title>
-<path fill="none" stroke="midnightblue" d="M7171.14,-391.72C7844.49,-389.48 12028.63,-372.91 12286,-306 12296.13,-303.37 12306.38,-299.27 12316.06,-294.6"/>
-<polygon fill="none" stroke="midnightblue" points="7170.99,-388.22 7161.01,-391.75 7171.02,-395.22 7170.99,-388.22"/>
+<path fill="none" stroke="midnightblue" d="M7391.58,-391.66C8053.86,-389.08 12091.27,-370.73 12340,-306 12350.13,-303.36 12360.38,-299.27 12370.06,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7391.13,-388.17 7381.15,-391.7 7391.16,-395.17 7391.13,-388.17"/>
 </g>
 <!-- Node145 -->
 <g id="node145" class="node">
 <title>Node145</title>
 <g id="a_node145"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="12461.5,-226.5 12461.5,-294.5 12610.5,-294.5 12610.5,-226.5 12461.5,-226.5"/>
-<text text-anchor="start" x="12469.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12536" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DTransposeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="12461.5,-264.5 12610.5,-264.5 "/>
-<text text-anchor="middle" x="12536" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12461.5,-245.5 12610.5,-245.5 "/>
-<text text-anchor="start" x="12469.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12515,-226.5 12515,-294.5 12663,-294.5 12663,-226.5 12515,-226.5"/>
+<text text-anchor="start" x="12523" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12589" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayoutTransformAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12515,-264.5 12663,-264.5 "/>
+<text text-anchor="middle" x="12589" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12515,-245.5 12663,-245.5 "/>
+<text text-anchor="start" x="12523" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node145 -->
 <g id="edge144" class="edge">
 <title>Node1&#45;&gt;Node145</title>
-<path fill="none" stroke="midnightblue" d="M7171.32,-391.75C7857.5,-389.75 12185.88,-374.4 12452,-306 12462.23,-303.37 12472.59,-299.27 12482.39,-294.61"/>
-<polygon fill="none" stroke="midnightblue" points="7171.24,-388.25 7161.25,-391.78 7171.26,-395.25 7171.24,-388.25"/>
+<path fill="none" stroke="midnightblue" d="M7391.14,-391.72C8064.49,-389.48 12248.63,-372.91 12506,-306 12516.13,-303.37 12526.38,-299.27 12536.06,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="7390.99,-388.22 7381.01,-391.75 7391.02,-395.22 7390.99,-388.22"/>
 </g>
 <!-- Node147 -->
 <g id="node147" class="node">
 <title>Node147</title>
 <g id="a_node147"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="12628.5,-226.5 12628.5,-294.5 12777.5,-294.5 12777.5,-226.5 12628.5,-226.5"/>
-<text text-anchor="start" x="12636.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12703" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DTransposeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="12628.5,-264.5 12777.5,-264.5 "/>
-<text text-anchor="middle" x="12703" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12628.5,-245.5 12777.5,-245.5 "/>
-<text text-anchor="start" x="12636.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12681.5,-226.5 12681.5,-294.5 12830.5,-294.5 12830.5,-226.5 12681.5,-226.5"/>
+<text text-anchor="start" x="12689.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12756" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DTransposeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12681.5,-264.5 12830.5,-264.5 "/>
+<text text-anchor="middle" x="12756" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12681.5,-245.5 12830.5,-245.5 "/>
+<text text-anchor="start" x="12689.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node147 -->
 <g id="edge146" class="edge">
 <title>Node1&#45;&gt;Node147</title>
-<path fill="none" stroke="midnightblue" d="M7171.38,-391.8C7869.89,-390.11 12344.24,-376.55 12619,-306 12629.23,-303.37 12639.6,-299.28 12649.39,-294.61"/>
-<polygon fill="none" stroke="midnightblue" points="7171.12,-388.3 7161.13,-391.82 7171.14,-395.3 7171.12,-388.3"/>
+<path fill="none" stroke="midnightblue" d="M7391.32,-391.75C8077.5,-389.75 12405.88,-374.4 12672,-306 12682.23,-303.37 12692.59,-299.27 12702.39,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="7391.24,-388.25 7381.25,-391.78 7391.26,-395.25 7391.24,-388.25"/>
 </g>
 <!-- Node149 -->
 <g id="node149" class="node">
 <title>Node149</title>
 <g id="a_node149"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="12796,-226.5 12796,-294.5 12944,-294.5 12944,-226.5 12796,-226.5"/>
-<text text-anchor="start" x="12804" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12870" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PermuteDimsAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="12796,-264.5 12944,-264.5 "/>
-<text text-anchor="middle" x="12870" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12796,-245.5 12944,-245.5 "/>
-<text text-anchor="start" x="12804" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12849,-226.5 12849,-294.5 12997,-294.5 12997,-226.5 12849,-226.5"/>
+<text text-anchor="start" x="12857" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12923" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GetValidCountsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12849,-264.5 12997,-264.5 "/>
+<text text-anchor="middle" x="12923" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12849,-245.5 12997,-245.5 "/>
+<text text-anchor="start" x="12857" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node149 -->
 <g id="edge148" class="edge">
 <title>Node1&#45;&gt;Node149</title>
-<path fill="none" stroke="midnightblue" d="M7171.33,-391.84C7881.63,-390.46 12502.57,-378.71 12786,-306 12796.23,-303.38 12806.6,-299.28 12816.39,-294.62"/>
-<polygon fill="none" stroke="midnightblue" points="7171.15,-388.34 7161.16,-391.86 7171.16,-395.34 7171.15,-388.34"/>
+<path fill="none" stroke="midnightblue" d="M7391.38,-391.8C8089.89,-390.11 12564.24,-376.55 12839,-306 12849.23,-303.37 12859.6,-299.28 12869.39,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="7391.12,-388.3 7381.13,-391.82 7391.14,-395.3 7391.12,-388.3"/>
 </g>
 <!-- Node151 -->
 <g id="node151" class="node">
 <title>Node151</title>
 <g id="a_node151"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="12962,-226.5 12962,-294.5 13110,-294.5 13110,-226.5 12962,-226.5"/>
-<text text-anchor="start" x="12970" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="13036" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GroupNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="12962,-264.5 13110,-264.5 "/>
-<text text-anchor="middle" x="13036" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12962,-245.5 13110,-245.5 "/>
-<text text-anchor="start" x="12970" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="13015.5,-226.5 13015.5,-294.5 13164.5,-294.5 13164.5,-226.5 13015.5,-226.5"/>
+<text text-anchor="start" x="13023.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="13090" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DTransposeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="13015.5,-264.5 13164.5,-264.5 "/>
+<text text-anchor="middle" x="13090" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="13015.5,-245.5 13164.5,-245.5 "/>
+<text text-anchor="start" x="13023.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node151 -->
 <g id="edge150" class="edge">
 <title>Node1&#45;&gt;Node151</title>
-<path fill="none" stroke="midnightblue" d="M7171.16,-391.9C7892.67,-390.92 12661.06,-381.6 12953,-306 12963.13,-303.38 12973.38,-299.28 12983.06,-294.62"/>
-<polygon fill="none" stroke="midnightblue" points="7171.08,-388.4 7161.08,-391.91 7171.09,-395.4 7171.08,-388.4"/>
+<path fill="none" stroke="midnightblue" d="M7391.33,-391.84C8101.63,-390.46 12722.57,-378.71 13006,-306 13016.23,-303.38 13026.6,-299.28 13036.39,-294.62"/>
+<polygon fill="none" stroke="midnightblue" points="7391.15,-388.34 7381.16,-391.86 7391.16,-395.34 7391.15,-388.34"/>
 </g>
 <!-- Node153 -->
 <g id="node153" class="node">
 <title>Node153</title>
 <g id="a_node153"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="13128,-226.5 13128,-294.5 13276,-294.5 13276,-226.5 13128,-226.5"/>
-<text text-anchor="start" x="13136" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="13202" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherNDAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="13128,-264.5 13276,-264.5 "/>
-<text text-anchor="middle" x="13202" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="13128,-245.5 13276,-245.5 "/>
-<text text-anchor="start" x="13136" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="13183,-226.5 13183,-294.5 13331,-294.5 13331,-226.5 13183,-226.5"/>
+<text text-anchor="start" x="13191" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="13257" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PermuteDimsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="13183,-264.5 13331,-264.5 "/>
+<text text-anchor="middle" x="13257" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="13183,-245.5 13331,-245.5 "/>
+<text text-anchor="start" x="13191" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node153 -->
 <g id="edge152" class="edge">
 <title>Node1&#45;&gt;Node153</title>
-<path fill="none" stroke="midnightblue" d="M7171.41,-391.93C7905.32,-391.25 12818.48,-383.76 13119,-306 13129.13,-303.38 13139.38,-299.29 13149.06,-294.62"/>
-<polygon fill="none" stroke="midnightblue" points="7171.16,-388.43 7161.16,-391.94 7171.17,-395.43 7171.16,-388.43"/>
+<path fill="none" stroke="midnightblue" d="M7391.16,-391.88C8112.64,-390.81 12880.87,-380.87 13173,-306 13183.23,-303.38 13193.6,-299.29 13203.39,-294.62"/>
+<polygon fill="none" stroke="midnightblue" points="7391.08,-388.38 7381.08,-391.9 7391.09,-395.38 7391.08,-388.38"/>
 </g>
 <!-- Node155 -->
 <g id="node155" class="node">
 <title>Node155</title>
-<g id="a_node155"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title="Adapter for AttrsNode with the new reflection API.">
-<polygon fill="white" stroke="black" points="13294,-226.5 13294,-294.5 13442,-294.5 13442,-226.5 13294,-226.5"/>
-<text text-anchor="start" x="13302" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="13368" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
-<polyline fill="none" stroke="black" points="13294,-264.5 13442,-264.5 "/>
-<text text-anchor="middle" x="13368" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="13294,-245.5 13442,-245.5 "/>
-<text text-anchor="start" x="13302" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<g id="a_node155"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="13349,-226.5 13349,-294.5 13497,-294.5 13497,-226.5 13349,-226.5"/>
+<text text-anchor="start" x="13357" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="13423" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GroupNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="13349,-264.5 13497,-264.5 "/>
+<text text-anchor="middle" x="13423" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="13349,-245.5 13497,-245.5 "/>
+<text text-anchor="start" x="13357" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node155 -->
 <g id="edge154" class="edge">
 <title>Node1&#45;&gt;Node155</title>
-<path fill="none" stroke="midnightblue" d="M7171.28,-391.97C7916.15,-391.57 12975.84,-385.93 13285,-306 13295.13,-303.38 13305.38,-299.29 13315.06,-294.63"/>
-<polygon fill="none" stroke="midnightblue" points="7171.15,-388.47 7161.15,-391.98 7171.15,-395.47 7171.15,-388.47"/>
-</g>
-<!-- Node156 -->
-<g id="node156" class="node">
-<title>Node156</title>
-<g id="a_node156"><a xlink:href="classtvm_1_1DictAttrsNode.html" target="_top" xlink:title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior,...">
-<polygon fill="white" stroke="black" points="13460,-215.5 13460,-305.5 13622,-305.5 13622,-215.5 13460,-215.5"/>
-<text text-anchor="middle" x="13541" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrsNode</text>
-<polyline fill="none" stroke="black" points="13460,-286.5 13622,-286.5 "/>
-<text text-anchor="start" x="13468" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dict</text>
-<polyline fill="none" stroke="black" points="13460,-267.5 13622,-267.5 "/>
-<text text-anchor="start" x="13468" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="13468" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="13468" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="13468" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
-</a>
-</g>
-</g>
-<!-- Node1&#45;&gt;Node156 -->
-<g id="edge155" class="edge">
-<title>Node1&#45;&gt;Node156</title>
-<path fill="none" stroke="midnightblue" d="M7171.03,-391.92C7926.14,-391.13 13131.88,-382.86 13451,-306 13453.97,-305.29 13456.95,-304.46 13459.93,-303.54"/>
-<polygon fill="none" stroke="midnightblue" points="7171.03,-388.42 7161.03,-391.93 7171.04,-395.42 7171.03,-388.42"/>
+<path fill="none" stroke="midnightblue" d="M7391.42,-391.93C8125.46,-391.25 13039.43,-383.77 13340,-306 13350.13,-303.38 13360.38,-299.29 13370.06,-294.62"/>
+<polygon fill="none" stroke="midnightblue" points="7391.17,-388.43 7381.18,-391.94 7391.18,-395.43 7391.17,-388.43"/>
+</g>
+<!-- Node157 -->
+<g id="node157" class="node">
+<title>Node157</title>
+<g id="a_node157"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="13515,-226.5 13515,-294.5 13663,-294.5 13663,-226.5 13515,-226.5"/>
+<text text-anchor="start" x="13523" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="13589" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherNDAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="13515,-264.5 13663,-264.5 "/>
+<text text-anchor="middle" x="13589" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="13515,-245.5 13663,-245.5 "/>
+<text text-anchor="start" x="13523" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node157 -->
+<g id="edge156" class="edge">
+<title>Node1&#45;&gt;Node157</title>
+<path fill="none" stroke="midnightblue" d="M7391.3,-391.97C8136.29,-391.57 13196.79,-385.94 13506,-306 13516.13,-303.38 13526.38,-299.29 13536.06,-294.63"/>
+<polygon fill="none" stroke="midnightblue" points="7391.16,-388.47 7381.17,-391.98 7391.17,-395.47 7391.16,-388.47"/>
+</g>
+<!-- Node159 -->
+<g id="node159" class="node">
+<title>Node159</title>
+<g id="a_node159"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title="Adapter for AttrsNode with the new reflection API.">
+<polygon fill="white" stroke="black" points="13681,-226.5 13681,-294.5 13829,-294.5 13829,-226.5 13681,-226.5"/>
+<text text-anchor="start" x="13689" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="13755" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
+<polyline fill="none" stroke="black" points="13681,-264.5 13829,-264.5 "/>
+<text text-anchor="middle" x="13755" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="13681,-245.5 13829,-245.5 "/>
+<text text-anchor="start" x="13689" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node159 -->
+<g id="edge158" class="edge">
+<title>Node1&#45;&gt;Node159</title>
+<path fill="none" stroke="midnightblue" d="M7391.07,-392C8146.47,-391.89 13354.14,-388.12 13672,-306 13682.13,-303.38 13692.38,-299.29 13702.07,-294.63"/>
+<polygon fill="none" stroke="midnightblue" points="7391.06,-388.5 7381.06,-392.01 7391.06,-395.5 7391.06,-388.5"/>
+</g>
+<!-- Node160 -->
+<g id="node160" class="node">
+<title>Node160</title>
+<g id="a_node160"><a xlink:href="classtvm_1_1DictAttrsNode.html" target="_top" xlink:title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior,...">
+<polygon fill="white" stroke="black" points="13847,-215.5 13847,-305.5 14009,-305.5 14009,-215.5 13847,-215.5"/>
+<text text-anchor="middle" x="13928" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrsNode</text>
+<polyline fill="none" stroke="black" points="13847,-286.5 14009,-286.5 "/>
+<text text-anchor="start" x="13855" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dict</text>
+<polyline fill="none" stroke="black" points="13847,-267.5 14009,-267.5 "/>
+<text text-anchor="start" x="13855" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<text text-anchor="start" x="13855" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13855" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13855" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node160 -->
+<g id="edge159" class="edge">
+<title>Node1&#45;&gt;Node160</title>
+<path fill="none" stroke="midnightblue" d="M7391.3,-391.95C8158.52,-391.42 13510.2,-384.89 13838,-306 13840.97,-305.29 13843.95,-304.46 13846.93,-303.55"/>
+<polygon fill="none" stroke="midnightblue" points="7391.14,-388.45 7381.14,-391.96 7391.14,-395.45 7391.14,-388.45"/>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="7056,-480.5 7056,-537.5 7104,-537.5 7104,-480.5 7056,-480.5"/>
-<text text-anchor="middle" x="7080" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="7056,-518.5 7104,-518.5 "/>
-<text text-anchor="middle" x="7080" y="-506.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="7056,-499.5 7104,-499.5 "/>
-<text text-anchor="middle" x="7080" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="7276,-480.5 7276,-537.5 7324,-537.5 7324,-480.5 7276,-480.5"/>
+<text text-anchor="middle" x="7300" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="7276,-518.5 7324,-518.5 "/>
+<text text-anchor="middle" x="7300" y="-506.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="7276,-499.5 7324,-499.5 "/>
+<text text-anchor="middle" x="7300" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M7080,-470.35C7080,-461.8 7080,-452.58 7080,-443.61"/>
-<polygon fill="none" stroke="midnightblue" points="7076.5,-470.4 7080,-480.4 7083.5,-470.4 7076.5,-470.4"/>
+<path fill="none" stroke="midnightblue" d="M7300,-470.35C7300,-461.8 7300,-452.58 7300,-443.61"/>
+<polygon fill="none" stroke="midnightblue" points="7296.5,-470.4 7300,-480.4 7303.5,-470.4 7296.5,-470.4"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node">
@@ -2073,1307 +2113,1361 @@
 <!-- Node43&#45;&gt;Node44 -->
 <g id="edge43" class="edge">
 <title>Node43&#45;&gt;Node44</title>
-<path fill="none" stroke="midnightblue" d="M3706.19,-215.85C3705.08,-189.03 3703.67,-154.98 3702.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="3702.71,-216.26 3706.62,-226.11 3709.7,-215.97 3702.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M3705.45,-215.85C3704.5,-189.03 3703.29,-154.98 3702.37,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="3701.96,-216.24 3705.81,-226.11 3708.96,-215.99 3701.96,-216.24"/>
 </g>
 <!-- Node46 -->
 <g id="node46" class="node">
 <title>Node46</title>
-<g id="a_node46"><a xlink:href="structtvm_1_1relax_1_1IndexPutAttrs.html" target="_top" xlink:title="Attributes used in index_put operator.">
-<polygon fill="white" stroke="black" points="3800,-50 3800,-129 3962,-129 3962,-50 3800,-50"/>
-<text text-anchor="middle" x="3881" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::IndexPutAttrs</text>
-<polyline fill="none" stroke="black" points="3800,-110 3962,-110 "/>
-<text text-anchor="start" x="3808" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ accumulate</text>
-<polyline fill="none" stroke="black" points="3800,-91 3962,-91 "/>
-<text text-anchor="start" x="3808" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3808" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="3808" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node46"><a xlink:href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html" target="_top" xlink:title="Attributes used in NonMaximumSuppression operator.">
+<polygon fill="white" stroke="black" points="3800.5,-0.5 3800.5,-178.5 4001.5,-178.5 4001.5,-0.5 3800.5,-0.5"/>
+<text text-anchor="start" x="3808.5" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::NonMaximumSuppression</text>
+<text text-anchor="middle" x="3901" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="3800.5,-148.5 4001.5,-148.5 "/>
+<text text-anchor="start" x="3808.5" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ max_output_size</text>
+<text text-anchor="start" x="3808.5" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ iou_threshold</text>
+<text text-anchor="start" x="3808.5" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ force_suppress</text>
+<text text-anchor="start" x="3808.5" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ top_k</text>
+<text text-anchor="start" x="3808.5" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ coord_start</text>
+<text text-anchor="start" x="3808.5" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ score_index</text>
+<text text-anchor="start" x="3808.5" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ id_index</text>
+<text text-anchor="start" x="3808.5" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ return_indices</text>
+<text text-anchor="start" x="3808.5" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ invalid_to_bottom</text>
+<polyline fill="none" stroke="black" points="3800.5,-41.5 4001.5,-41.5 "/>
+<text text-anchor="start" x="3808.5" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="3808.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="3808.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node45&#45;&gt;Node46 -->
 <g id="edge45" class="edge">
 <title>Node45&#45;&gt;Node46</title>
-<path fill="none" stroke="midnightblue" d="M3886.19,-215.85C3885.08,-189.03 3883.67,-154.98 3882.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="3882.71,-216.26 3886.62,-226.11 3889.7,-215.97 3882.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M3905.46,-216C3905.05,-204.54 3904.59,-191.75 3904.14,-178.85"/>
+<polygon fill="none" stroke="midnightblue" points="3901.96,-216.24 3905.81,-226.11 3908.96,-215.99 3901.96,-216.24"/>
 </g>
 <!-- Node48 -->
 <g id="node48" class="node">
 <title>Node48</title>
-<g id="a_node48"><a xlink:href="structtvm_1_1relax_1_1ExpandDimsAttrs.html" target="_top" xlink:title="Attributes used in expand_dims operators.">
-<polygon fill="white" stroke="black" points="3980,-50 3980,-129 4142,-129 4142,-50 3980,-50"/>
-<text text-anchor="middle" x="4061" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExpandDimsAttrs</text>
-<polyline fill="none" stroke="black" points="3980,-110 4142,-110 "/>
-<text text-anchor="start" x="3988" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="3980,-91 4142,-91 "/>
-<text text-anchor="start" x="3988" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3988" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="3988" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node48"><a xlink:href="structtvm_1_1relax_1_1IndexPutAttrs.html" target="_top" xlink:title="Attributes used in index_put operator.">
+<polygon fill="white" stroke="black" points="4020,-50 4020,-129 4182,-129 4182,-50 4020,-50"/>
+<text text-anchor="middle" x="4101" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::IndexPutAttrs</text>
+<polyline fill="none" stroke="black" points="4020,-110 4182,-110 "/>
+<text text-anchor="start" x="4028" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ accumulate</text>
+<polyline fill="none" stroke="black" points="4020,-91 4182,-91 "/>
+<text text-anchor="start" x="4028" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4028" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4028" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node47&#45;&gt;Node48 -->
 <g id="edge47" class="edge">
 <title>Node47&#45;&gt;Node48</title>
-<path fill="none" stroke="midnightblue" d="M4066.19,-215.85C4065.08,-189.03 4063.67,-154.98 4062.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="4062.71,-216.26 4066.62,-226.11 4069.7,-215.97 4062.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M4106.19,-215.85C4105.08,-189.03 4103.67,-154.98 4102.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="4102.71,-216.26 4106.62,-226.11 4109.7,-215.97 4102.71,-216.26"/>
 </g>
 <!-- Node50 -->
 <g id="node50" class="node">
 <title>Node50</title>
-<g id="a_node50"><a xlink:href="structtvm_1_1relax_1_1ConcatAttrs.html" target="_top" xlink:title="Attributes used in concat operators.">
-<polygon fill="white" stroke="black" points="4160,-50 4160,-129 4322,-129 4322,-50 4160,-50"/>
-<text text-anchor="middle" x="4241" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ConcatAttrs</text>
-<polyline fill="none" stroke="black" points="4160,-110 4322,-110 "/>
-<text text-anchor="start" x="4168" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="4160,-91 4322,-91 "/>
-<text text-anchor="start" x="4168" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="4168" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4168" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node50"><a xlink:href="structtvm_1_1relax_1_1ExpandDimsAttrs.html" target="_top" xlink:title="Attributes used in expand_dims operators.">
+<polygon fill="white" stroke="black" points="4200,-50 4200,-129 4362,-129 4362,-50 4200,-50"/>
+<text text-anchor="middle" x="4281" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExpandDimsAttrs</text>
+<polyline fill="none" stroke="black" points="4200,-110 4362,-110 "/>
+<text text-anchor="start" x="4208" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="4200,-91 4362,-91 "/>
+<text text-anchor="start" x="4208" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4208" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4208" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node49&#45;&gt;Node50 -->
 <g id="edge49" class="edge">
 <title>Node49&#45;&gt;Node50</title>
-<path fill="none" stroke="midnightblue" d="M4246.19,-215.85C4245.08,-189.03 4243.67,-154.98 4242.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="4242.71,-216.26 4246.62,-226.11 4249.7,-215.97 4242.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M4286.19,-215.85C4285.08,-189.03 4283.67,-154.98 4282.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="4282.71,-216.26 4286.62,-226.11 4289.7,-215.97 4282.71,-216.26"/>
 </g>
 <!-- Node52 -->
 <g id="node52" class="node">
 <title>Node52</title>
-<g id="a_node52"><a xlink:href="structtvm_1_1relax_1_1TriluAttrs.html" target="_top" xlink:title="Attributes used in tril and triu operator.">
-<polygon fill="white" stroke="black" points="4340,-50 4340,-129 4502,-129 4502,-50 4340,-50"/>
-<text text-anchor="middle" x="4421" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TriluAttrs</text>
-<polyline fill="none" stroke="black" points="4340,-110 4502,-110 "/>
-<text text-anchor="start" x="4348" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ k</text>
-<polyline fill="none" stroke="black" points="4340,-91 4502,-91 "/>
-<text text-anchor="start" x="4348" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="4348" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4348" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node52"><a xlink:href="structtvm_1_1relax_1_1ConcatAttrs.html" target="_top" xlink:title="Attributes used in concat operators.">
+<polygon fill="white" stroke="black" points="4380,-50 4380,-129 4542,-129 4542,-50 4380,-50"/>
+<text text-anchor="middle" x="4461" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ConcatAttrs</text>
+<polyline fill="none" stroke="black" points="4380,-110 4542,-110 "/>
+<text text-anchor="start" x="4388" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="4380,-91 4542,-91 "/>
+<text text-anchor="start" x="4388" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4388" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4388" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node51&#45;&gt;Node52 -->
 <g id="edge51" class="edge">
 <title>Node51&#45;&gt;Node52</title>
-<path fill="none" stroke="midnightblue" d="M4426.19,-215.85C4425.08,-189.03 4423.67,-154.98 4422.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="4422.71,-216.26 4426.62,-226.11 4429.7,-215.97 4422.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M4466.19,-215.85C4465.08,-189.03 4463.67,-154.98 4462.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="4462.71,-216.26 4466.62,-226.11 4469.7,-215.97 4462.71,-216.26"/>
 </g>
 <!-- Node54 -->
 <g id="node54" class="node">
 <title>Node54</title>
-<g id="a_node54"><a xlink:href="structtvm_1_1relax_1_1SoftmaxAttrs.html" target="_top" xlink:title="Attributes used in softmax operators.">
-<polygon fill="white" stroke="black" points="4520,-50 4520,-129 4682,-129 4682,-50 4520,-50"/>
-<text text-anchor="middle" x="4601" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SoftmaxAttrs</text>
-<polyline fill="none" stroke="black" points="4520,-110 4682,-110 "/>
-<text text-anchor="start" x="4528" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="4520,-91 4682,-91 "/>
-<text text-anchor="start" x="4528" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="4528" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4528" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node54"><a xlink:href="structtvm_1_1relax_1_1TriluAttrs.html" target="_top" xlink:title="Attributes used in tril and triu operator.">
+<polygon fill="white" stroke="black" points="4560,-50 4560,-129 4722,-129 4722,-50 4560,-50"/>
+<text text-anchor="middle" x="4641" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TriluAttrs</text>
+<polyline fill="none" stroke="black" points="4560,-110 4722,-110 "/>
+<text text-anchor="start" x="4568" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ k</text>
+<polyline fill="none" stroke="black" points="4560,-91 4722,-91 "/>
+<text text-anchor="start" x="4568" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4568" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4568" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node53&#45;&gt;Node54 -->
 <g id="edge53" class="edge">
 <title>Node53&#45;&gt;Node54</title>
-<path fill="none" stroke="midnightblue" d="M4606.19,-215.85C4605.08,-189.03 4603.67,-154.98 4602.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="4602.71,-216.26 4606.62,-226.11 4609.7,-215.97 4602.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M4646.19,-215.85C4645.08,-189.03 4643.67,-154.98 4642.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="4642.71,-216.26 4646.62,-226.11 4649.7,-215.97 4642.71,-216.26"/>
 </g>
 <!-- Node56 -->
 <g id="node56" class="node">
 <title>Node56</title>
-<g id="a_node56"><a xlink:href="structtvm_1_1relax_1_1ROIAlignAttrs.html" target="_top" xlink:title="Attributes used in ROIAlign operator.">
-<polygon fill="white" stroke="black" points="4700,-22.5 4700,-156.5 4862,-156.5 4862,-22.5 4700,-22.5"/>
-<text text-anchor="middle" x="4781" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ROIAlignAttrs</text>
-<polyline fill="none" stroke="black" points="4700,-137.5 4862,-137.5 "/>
-<text text-anchor="start" x="4708" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pooled_size</text>
-<text text-anchor="start" x="4708" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ spatial_scale</text>
-<text text-anchor="start" x="4708" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ sample_ratio</text>
-<text text-anchor="start" x="4708" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ aligned</text>
-<text text-anchor="start" x="4708" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="4708" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ mode</text>
-<polyline fill="none" stroke="black" points="4700,-63.5 4862,-63.5 "/>
-<text text-anchor="start" x="4708" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="4708" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4708" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node56"><a xlink:href="structtvm_1_1relax_1_1SoftmaxAttrs.html" target="_top" xlink:title="Attributes used in softmax operators.">
+<polygon fill="white" stroke="black" points="4740,-50 4740,-129 4902,-129 4902,-50 4740,-50"/>
+<text text-anchor="middle" x="4821" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SoftmaxAttrs</text>
+<polyline fill="none" stroke="black" points="4740,-110 4902,-110 "/>
+<text text-anchor="start" x="4748" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="4740,-91 4902,-91 "/>
+<text text-anchor="start" x="4748" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4748" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4748" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node55&#45;&gt;Node56 -->
 <g id="edge55" class="edge">
 <title>Node55&#45;&gt;Node56</title>
-<path fill="none" stroke="midnightblue" d="M4786.19,-215.91C4785.45,-197.88 4784.56,-176.57 4783.74,-156.68"/>
-<polygon fill="none" stroke="midnightblue" points="4782.71,-216.26 4786.62,-226.11 4789.7,-215.97 4782.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M4826.19,-215.85C4825.08,-189.03 4823.67,-154.98 4822.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="4822.71,-216.26 4826.62,-226.11 4829.7,-215.97 4822.71,-216.26"/>
 </g>
 <!-- Node58 -->
 <g id="node58" class="node">
 <title>Node58</title>
-<g id="a_node58"><a xlink:href="structtvm_1_1relax_1_1AdaptivePool1DAttrs.html" target="_top" xlink:title="Attributes for 1d adaptive pool operator.">
-<polygon fill="white" stroke="black" points="4880,-33.5 4880,-145.5 5042,-145.5 5042,-33.5 4880,-33.5"/>
-<text text-anchor="start" x="4888" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::AdaptivePool1</text>
-<text text-anchor="middle" x="4961" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
-<polyline fill="none" stroke="black" points="4880,-115.5 5042,-115.5 "/>
-<text text-anchor="start" x="4888" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_size</text>
-<text text-anchor="start" x="4888" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="4888" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<polyline fill="none" stroke="black" points="4880,-74.5 5042,-74.5 "/>
-<text text-anchor="start" x="4888" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="4888" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4888" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node58"><a xlink:href="structtvm_1_1relax_1_1ROIAlignAttrs.html" target="_top" xlink:title="Attributes used in ROIAlign operator.">
+<polygon fill="white" stroke="black" points="4920,-22.5 4920,-156.5 5082,-156.5 5082,-22.5 4920,-22.5"/>
+<text text-anchor="middle" x="5001" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ROIAlignAttrs</text>
+<polyline fill="none" stroke="black" points="4920,-137.5 5082,-137.5 "/>
+<text text-anchor="start" x="4928" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pooled_size</text>
+<text text-anchor="start" x="4928" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ spatial_scale</text>
+<text text-anchor="start" x="4928" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ sample_ratio</text>
+<text text-anchor="start" x="4928" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ aligned</text>
+<text text-anchor="start" x="4928" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="4928" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ mode</text>
+<polyline fill="none" stroke="black" points="4920,-63.5 5082,-63.5 "/>
+<text text-anchor="start" x="4928" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4928" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4928" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node57&#45;&gt;Node58 -->
 <g id="edge57" class="edge">
 <title>Node57&#45;&gt;Node58</title>
-<path fill="none" stroke="midnightblue" d="M4966.2,-216.01C4965.31,-194.61 4964.23,-168.57 4963.29,-145.77"/>
-<polygon fill="none" stroke="midnightblue" points="4962.71,-216.26 4966.62,-226.11 4969.7,-215.97 4962.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M5006.19,-215.91C5005.45,-197.88 5004.56,-176.57 5003.74,-156.68"/>
+<polygon fill="none" stroke="midnightblue" points="5002.71,-216.26 5006.62,-226.11 5009.7,-215.97 5002.71,-216.26"/>
 </g>
 <!-- Node60 -->
 <g id="node60" class="node">
 <title>Node60</title>
-<g id="a_node60"><a xlink:href="structtvm_1_1relax_1_1SoftplusAttrs.html" target="_top" xlink:title="Attributes used in softplus operators.">
-<polygon fill="white" stroke="black" points="5060,-44.5 5060,-134.5 5222,-134.5 5222,-44.5 5060,-44.5"/>
-<text text-anchor="middle" x="5141" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SoftplusAttrs</text>
-<polyline fill="none" stroke="black" points="5060,-115.5 5222,-115.5 "/>
-<text text-anchor="start" x="5068" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ beta</text>
-<text text-anchor="start" x="5068" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ threshold</text>
-<polyline fill="none" stroke="black" points="5060,-85.5 5222,-85.5 "/>
-<text text-anchor="start" x="5068" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5068" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5068" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node60"><a xlink:href="structtvm_1_1relax_1_1AdaptivePool1DAttrs.html" target="_top" xlink:title="Attributes for 1d adaptive pool operator.">
+<polygon fill="white" stroke="black" points="5100,-33.5 5100,-145.5 5262,-145.5 5262,-33.5 5100,-33.5"/>
+<text text-anchor="start" x="5108" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::AdaptivePool1</text>
+<text text-anchor="middle" x="5181" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">DAttrs</text>
+<polyline fill="none" stroke="black" points="5100,-115.5 5262,-115.5 "/>
+<text text-anchor="start" x="5108" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_size</text>
+<text text-anchor="start" x="5108" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="5108" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<polyline fill="none" stroke="black" points="5100,-74.5 5262,-74.5 "/>
+<text text-anchor="start" x="5108" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5108" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5108" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node59&#45;&gt;Node60 -->
 <g id="edge59" class="edge">
 <title>Node59&#45;&gt;Node60</title>
-<path fill="none" stroke="midnightblue" d="M5151.38,-215.84C5149.32,-190.91 5146.74,-159.73 5144.66,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="5147.92,-216.43 5152.23,-226.11 5154.9,-215.86 5147.92,-216.43"/>
+<path fill="none" stroke="midnightblue" d="M5186.2,-216.01C5185.31,-194.61 5184.23,-168.57 5183.29,-145.77"/>
+<polygon fill="none" stroke="midnightblue" points="5182.71,-216.26 5186.62,-226.11 5189.7,-215.97 5182.71,-216.26"/>
 </g>
 <!-- Node62 -->
 <g id="node62" class="node">
 <title>Node62</title>
-<g id="a_node62"><a xlink:href="structtvm_1_1relax_1_1Resize3DAttrs.html" target="_top" xlink:title="Attributes used in image resize3d operator.">
-<polygon fill="white" stroke="black" points="5240.5,-6 5240.5,-173 5431.5,-173 5431.5,-6 5240.5,-6"/>
-<text text-anchor="middle" x="5336" y="-161" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Resize3DAttrs</text>
-<polyline fill="none" stroke="black" points="5240.5,-154 5431.5,-154 "/>
-<text text-anchor="start" x="5248.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">+ roi</text>
-<text text-anchor="start" x="5248.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="5248.5" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ method</text>
-<text text-anchor="start" x="5248.5" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ coordinate_transformation_mode</text>
-<text text-anchor="start" x="5248.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ rounding_method</text>
-<text text-anchor="start" x="5248.5" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_alpha</text>
-<text text-anchor="start" x="5248.5" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_exclude</text>
-<text text-anchor="start" x="5248.5" y="-65" font-family="Helvetica,sans-Serif" font-size="10.00">+ extrapolation_value</text>
-<text text-anchor="start" x="5248.5" y="-54" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="5240.5,-47 5431.5,-47 "/>
-<text text-anchor="start" x="5248.5" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5248.5" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5248.5" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node62"><a xlink:href="structtvm_1_1relax_1_1SoftplusAttrs.html" target="_top" xlink:title="Attributes used in softplus operators.">
+<polygon fill="white" stroke="black" points="5280,-44.5 5280,-134.5 5442,-134.5 5442,-44.5 5280,-44.5"/>
+<text text-anchor="middle" x="5361" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SoftplusAttrs</text>
+<polyline fill="none" stroke="black" points="5280,-115.5 5442,-115.5 "/>
+<text text-anchor="start" x="5288" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ beta</text>
+<text text-anchor="start" x="5288" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ threshold</text>
+<polyline fill="none" stroke="black" points="5280,-85.5 5442,-85.5 "/>
+<text text-anchor="start" x="5288" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5288" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5288" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node61&#45;&gt;Node62 -->
 <g id="edge61" class="edge">
 <title>Node61&#45;&gt;Node62</title>
-<path fill="none" stroke="midnightblue" d="M5346.4,-215.99C5345.31,-202.86 5344.08,-187.99 5342.85,-173.19"/>
-<polygon fill="none" stroke="midnightblue" points="5342.92,-216.43 5347.23,-226.11 5349.9,-215.86 5342.92,-216.43"/>
+<path fill="none" stroke="midnightblue" d="M5371.38,-215.84C5369.32,-190.91 5366.74,-159.73 5364.66,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="5367.92,-216.43 5372.23,-226.11 5374.9,-215.86 5367.92,-216.43"/>
 </g>
 <!-- Node64 -->
 <g id="node64" class="node">
 <title>Node64</title>
-<g id="a_node64"><a xlink:href="structtvm_1_1relax_1_1MatmulAttrs.html" target="_top" xlink:title="Attributes for matmul operator.">
-<polygon fill="white" stroke="black" points="5450,-50 5450,-129 5612,-129 5612,-50 5450,-50"/>
-<text text-anchor="middle" x="5531" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MatmulAttrs</text>
-<polyline fill="none" stroke="black" points="5450,-110 5612,-110 "/>
-<text text-anchor="start" x="5458" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="5450,-91 5612,-91 "/>
-<text text-anchor="start" x="5458" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5458" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5458" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node64"><a xlink:href="structtvm_1_1relax_1_1Resize3DAttrs.html" target="_top" xlink:title="Attributes used in image resize3d operator.">
+<polygon fill="white" stroke="black" points="5460.5,-6 5460.5,-173 5651.5,-173 5651.5,-6 5460.5,-6"/>
+<text text-anchor="middle" x="5556" y="-161" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Resize3DAttrs</text>
+<polyline fill="none" stroke="black" points="5460.5,-154 5651.5,-154 "/>
+<text text-anchor="start" x="5468.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">+ roi</text>
+<text text-anchor="start" x="5468.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="5468.5" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ method</text>
+<text text-anchor="start" x="5468.5" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ coordinate_transformation_mode</text>
+<text text-anchor="start" x="5468.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ rounding_method</text>
+<text text-anchor="start" x="5468.5" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_alpha</text>
+<text text-anchor="start" x="5468.5" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_exclude</text>
+<text text-anchor="start" x="5468.5" y="-65" font-family="Helvetica,sans-Serif" font-size="10.00">+ extrapolation_value</text>
+<text text-anchor="start" x="5468.5" y="-54" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="5460.5,-47 5651.5,-47 "/>
+<text text-anchor="start" x="5468.5" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5468.5" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5468.5" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node63&#45;&gt;Node64 -->
 <g id="edge63" class="edge">
 <title>Node63&#45;&gt;Node64</title>
-<path fill="none" stroke="midnightblue" d="M5536.19,-215.85C5535.08,-189.03 5533.67,-154.98 5532.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="5532.71,-216.26 5536.62,-226.11 5539.7,-215.97 5532.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M5566.4,-215.99C5565.31,-202.86 5564.08,-187.99 5562.85,-173.19"/>
+<polygon fill="none" stroke="midnightblue" points="5562.92,-216.43 5567.23,-226.11 5569.9,-215.86 5562.92,-216.43"/>
 </g>
 <!-- Node66 -->
 <g id="node66" class="node">
 <title>Node66</title>
-<g id="a_node66"><a xlink:href="structtvm_1_1relax_1_1ArgmaxArgminAttrs.html" target="_top" xlink:title="Attributes for search operators.">
-<polygon fill="white" stroke="black" points="5630,-39 5630,-140 5792,-140 5792,-39 5630,-39"/>
-<text text-anchor="start" x="5638" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ArgmaxArgmin</text>
-<text text-anchor="middle" x="5711" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="5630,-110 5792,-110 "/>
-<text text-anchor="start" x="5638" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="5638" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ keepdims</text>
-<polyline fill="none" stroke="black" points="5630,-80 5792,-80 "/>
-<text text-anchor="start" x="5638" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5638" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5638" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node66"><a xlink:href="structtvm_1_1relax_1_1MatmulAttrs.html" target="_top" xlink:title="Attributes for matmul operator.">
+<polygon fill="white" stroke="black" points="5670,-50 5670,-129 5832,-129 5832,-50 5670,-50"/>
+<text text-anchor="middle" x="5751" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MatmulAttrs</text>
+<polyline fill="none" stroke="black" points="5670,-110 5832,-110 "/>
+<text text-anchor="start" x="5678" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="5670,-91 5832,-91 "/>
+<text text-anchor="start" x="5678" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5678" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5678" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node65&#45;&gt;Node66 -->
 <g id="edge65" class="edge">
 <title>Node65&#45;&gt;Node66</title>
-<path fill="none" stroke="midnightblue" d="M5721.39,-215.89C5719.47,-192.73 5717.1,-164.17 5715.11,-140.16"/>
-<polygon fill="none" stroke="midnightblue" points="5717.92,-216.43 5722.23,-226.11 5724.9,-215.86 5717.92,-216.43"/>
+<path fill="none" stroke="midnightblue" d="M5756.19,-215.85C5755.08,-189.03 5753.67,-154.98 5752.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="5752.71,-216.26 5756.62,-226.11 5759.7,-215.97 5752.71,-216.26"/>
 </g>
 <!-- Node68 -->
 <g id="node68" class="node">
 <title>Node68</title>
-<g id="a_node68"><a xlink:href="structtvm_1_1relax_1_1Resize2DAttrs.html" target="_top" xlink:title="Attributes used in image resize2d operator.">
-<polygon fill="white" stroke="black" points="5810.5,-6 5810.5,-173 6001.5,-173 6001.5,-6 5810.5,-6"/>
-<text text-anchor="middle" x="5906" y="-161" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Resize2DAttrs</text>
-<polyline fill="none" stroke="black" points="5810.5,-154 6001.5,-154 "/>
-<text text-anchor="start" x="5818.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">+ roi</text>
-<text text-anchor="start" x="5818.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="5818.5" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ method</text>
-<text text-anchor="start" x="5818.5" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ coordinate_transformation_mode</text>
-<text text-anchor="start" x="5818.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ rounding_method</text>
-<text text-anchor="start" x="5818.5" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_alpha</text>
-<text text-anchor="start" x="5818.5" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_exclude</text>
-<text text-anchor="start" x="5818.5" y="-65" font-family="Helvetica,sans-Serif" font-size="10.00">+ extrapolation_value</text>
-<text text-anchor="start" x="5818.5" y="-54" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="5810.5,-47 6001.5,-47 "/>
-<text text-anchor="start" x="5818.5" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5818.5" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5818.5" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node68"><a xlink:href="structtvm_1_1relax_1_1ArgmaxArgminAttrs.html" target="_top" xlink:title="Attributes for search operators.">
+<polygon fill="white" stroke="black" points="5850,-39 5850,-140 6012,-140 6012,-39 5850,-39"/>
+<text text-anchor="start" x="5858" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ArgmaxArgmin</text>
+<text text-anchor="middle" x="5931" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="5850,-110 6012,-110 "/>
+<text text-anchor="start" x="5858" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="5858" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ keepdims</text>
+<polyline fill="none" stroke="black" points="5850,-80 6012,-80 "/>
+<text text-anchor="start" x="5858" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5858" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5858" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node67&#45;&gt;Node68 -->
 <g id="edge67" class="edge">
 <title>Node67&#45;&gt;Node68</title>
-<path fill="none" stroke="midnightblue" d="M5916.4,-215.99C5915.31,-202.86 5914.08,-187.99 5912.85,-173.19"/>
-<polygon fill="none" stroke="midnightblue" points="5912.92,-216.43 5917.23,-226.11 5919.9,-215.86 5912.92,-216.43"/>
+<path fill="none" stroke="midnightblue" d="M5941.39,-215.89C5939.47,-192.73 5937.1,-164.17 5935.11,-140.16"/>
+<polygon fill="none" stroke="midnightblue" points="5937.92,-216.43 5942.23,-226.11 5944.9,-215.86 5937.92,-216.43"/>
 </g>
 <!-- Node70 -->
 <g id="node70" class="node">
 <title>Node70</title>
-<g id="a_node70"><a xlink:href="structtvm_1_1relax_1_1Pool3DAttrs.html" target="_top" xlink:title="Attributes used in max_pool3d and avg_pool3d operator.">
-<polygon fill="white" stroke="black" points="6020,-11.5 6020,-167.5 6182,-167.5 6182,-11.5 6020,-11.5"/>
-<text text-anchor="middle" x="6101" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Pool3DAttrs</text>
-<polyline fill="none" stroke="black" points="6020,-148.5 6182,-148.5 "/>
-<text text-anchor="start" x="6028" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pool_size</text>
-<text text-anchor="start" x="6028" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="6028" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="6028" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="6028" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ceil_mode</text>
-<text text-anchor="start" x="6028" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ count_include_pad</text>
-<text text-anchor="start" x="6028" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="6028" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<polyline fill="none" stroke="black" points="6020,-52.5 6182,-52.5 "/>
-<text text-anchor="start" x="6028" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6028" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6028" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node70"><a xlink:href="structtvm_1_1relax_1_1Resize2DAttrs.html" target="_top" xlink:title="Attributes used in image resize2d operator.">
+<polygon fill="white" stroke="black" points="6030.5,-6 6030.5,-173 6221.5,-173 6221.5,-6 6030.5,-6"/>
+<text text-anchor="middle" x="6126" y="-161" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Resize2DAttrs</text>
+<polyline fill="none" stroke="black" points="6030.5,-154 6221.5,-154 "/>
+<text text-anchor="start" x="6038.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00">+ roi</text>
+<text text-anchor="start" x="6038.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="6038.5" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ method</text>
+<text text-anchor="start" x="6038.5" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ coordinate_transformation_mode</text>
+<text text-anchor="start" x="6038.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ rounding_method</text>
+<text text-anchor="start" x="6038.5" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_alpha</text>
+<text text-anchor="start" x="6038.5" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ cubic_exclude</text>
+<text text-anchor="start" x="6038.5" y="-65" font-family="Helvetica,sans-Serif" font-size="10.00">+ extrapolation_value</text>
+<text text-anchor="start" x="6038.5" y="-54" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="6030.5,-47 6221.5,-47 "/>
+<text text-anchor="start" x="6038.5" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6038.5" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6038.5" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node69&#45;&gt;Node70 -->
 <g id="edge69" class="edge">
 <title>Node69&#45;&gt;Node70</title>
-<path fill="none" stroke="midnightblue" d="M6106.19,-215.79C6105.58,-201.03 6104.88,-184.09 6104.19,-167.53"/>
-<polygon fill="none" stroke="midnightblue" points="6102.71,-216.26 6106.62,-226.11 6109.7,-215.97 6102.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M6136.4,-215.99C6135.31,-202.86 6134.08,-187.99 6132.85,-173.19"/>
+<polygon fill="none" stroke="midnightblue" points="6132.92,-216.43 6137.23,-226.11 6139.9,-215.86 6132.92,-216.43"/>
 </g>
 <!-- Node72 -->
 <g id="node72" class="node">
 <title>Node72</title>
-<g id="a_node72"><a xlink:href="structtvm_1_1relax_1_1LayerNormAttrs.html" target="_top" xlink:title="Attributes used in layer_norm operator.">
-<polygon fill="white" stroke="black" points="6200,-33.5 6200,-145.5 6362,-145.5 6362,-33.5 6200,-33.5"/>
-<text text-anchor="middle" x="6281" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LayerNormAttrs</text>
-<polyline fill="none" stroke="black" points="6200,-126.5 6362,-126.5 "/>
-<text text-anchor="start" x="6208" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
-<text text-anchor="start" x="6208" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
-<text text-anchor="start" x="6208" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
-<text text-anchor="start" x="6208" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
-<polyline fill="none" stroke="black" points="6200,-74.5 6362,-74.5 "/>
-<text text-anchor="start" x="6208" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6208" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6208" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node72"><a xlink:href="structtvm_1_1relax_1_1Pool3DAttrs.html" target="_top" xlink:title="Attributes used in max_pool3d and avg_pool3d operator.">
+<polygon fill="white" stroke="black" points="6240,-11.5 6240,-167.5 6402,-167.5 6402,-11.5 6240,-11.5"/>
+<text text-anchor="middle" x="6321" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Pool3DAttrs</text>
+<polyline fill="none" stroke="black" points="6240,-148.5 6402,-148.5 "/>
+<text text-anchor="start" x="6248" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pool_size</text>
+<text text-anchor="start" x="6248" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="6248" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="6248" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="6248" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ceil_mode</text>
+<text text-anchor="start" x="6248" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ count_include_pad</text>
+<text text-anchor="start" x="6248" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="6248" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<polyline fill="none" stroke="black" points="6240,-52.5 6402,-52.5 "/>
+<text text-anchor="start" x="6248" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6248" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6248" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node71&#45;&gt;Node72 -->
 <g id="edge71" class="edge">
 <title>Node71&#45;&gt;Node72</title>
-<path fill="none" stroke="midnightblue" d="M6286.2,-216.01C6285.31,-194.61 6284.23,-168.57 6283.29,-145.77"/>
-<polygon fill="none" stroke="midnightblue" points="6282.71,-216.26 6286.62,-226.11 6289.7,-215.97 6282.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M6326.19,-215.79C6325.58,-201.03 6324.88,-184.09 6324.19,-167.53"/>
+<polygon fill="none" stroke="midnightblue" points="6322.71,-216.26 6326.62,-226.11 6329.7,-215.97 6322.71,-216.26"/>
 </g>
 <!-- Node74 -->
 <g id="node74" class="node">
 <title>Node74</title>
-<g id="a_node74"><a xlink:href="structtvm_1_1relax_1_1SqueezeAttrs.html" target="_top" xlink:title="Attributes used in squeeze operators.">
-<polygon fill="white" stroke="black" points="6380,-50 6380,-129 6542,-129 6542,-50 6380,-50"/>
-<text text-anchor="middle" x="6461" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SqueezeAttrs</text>
-<polyline fill="none" stroke="black" points="6380,-110 6542,-110 "/>
-<text text-anchor="start" x="6388" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="6380,-91 6542,-91 "/>
-<text text-anchor="start" x="6388" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6388" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6388" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node74"><a xlink:href="structtvm_1_1relax_1_1LayerNormAttrs.html" target="_top" xlink:title="Attributes used in layer_norm operator.">
+<polygon fill="white" stroke="black" points="6420,-33.5 6420,-145.5 6582,-145.5 6582,-33.5 6420,-33.5"/>
+<text text-anchor="middle" x="6501" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LayerNormAttrs</text>
+<polyline fill="none" stroke="black" points="6420,-126.5 6582,-126.5 "/>
+<text text-anchor="start" x="6428" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
+<text text-anchor="start" x="6428" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
+<text text-anchor="start" x="6428" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
+<text text-anchor="start" x="6428" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
+<polyline fill="none" stroke="black" points="6420,-74.5 6582,-74.5 "/>
+<text text-anchor="start" x="6428" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6428" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6428" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node73&#45;&gt;Node74 -->
 <g id="edge73" class="edge">
 <title>Node73&#45;&gt;Node74</title>
-<path fill="none" stroke="midnightblue" d="M6466.19,-215.85C6465.08,-189.03 6463.67,-154.98 6462.6,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="6462.71,-216.26 6466.62,-226.11 6469.7,-215.97 6462.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M6506.2,-216.01C6505.31,-194.61 6504.23,-168.57 6503.29,-145.77"/>
+<polygon fill="none" stroke="midnightblue" points="6502.71,-216.26 6506.62,-226.11 6509.7,-215.97 6502.71,-216.26"/>
 </g>
 <!-- Node76 -->
 <g id="node76" class="node">
 <title>Node76</title>
-<g id="a_node76"><a xlink:href="structtvm_1_1relax_1_1Pool2DAttrs.html" target="_top" xlink:title="Attributes used in max_pool2d and avg_pool2d operator.">
-<polygon fill="white" stroke="black" points="6560,-11.5 6560,-167.5 6722,-167.5 6722,-11.5 6560,-11.5"/>
-<text text-anchor="middle" x="6641" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Pool2DAttrs</text>
-<polyline fill="none" stroke="black" points="6560,-148.5 6722,-148.5 "/>
-<text text-anchor="start" x="6568" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pool_size</text>
-<text text-anchor="start" x="6568" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="6568" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="6568" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="6568" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ceil_mode</text>
-<text text-anchor="start" x="6568" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ count_include_pad</text>
-<text text-anchor="start" x="6568" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="6568" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<polyline fill="none" stroke="black" points="6560,-52.5 6722,-52.5 "/>
-<text text-anchor="start" x="6568" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6568" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6568" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node76"><a xlink:href="structtvm_1_1relax_1_1SqueezeAttrs.html" target="_top" xlink:title="Attributes used in squeeze operators.">
+<polygon fill="white" stroke="black" points="6600,-50 6600,-129 6762,-129 6762,-50 6600,-50"/>
+<text text-anchor="middle" x="6681" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SqueezeAttrs</text>
+<polyline fill="none" stroke="black" points="6600,-110 6762,-110 "/>
+<text text-anchor="start" x="6608" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="6600,-91 6762,-91 "/>
+<text text-anchor="start" x="6608" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6608" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6608" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node75&#45;&gt;Node76 -->
 <g id="edge75" class="edge">
 <title>Node75&#45;&gt;Node76</title>
-<path fill="none" stroke="midnightblue" d="M6646.19,-215.79C6645.58,-201.03 6644.88,-184.09 6644.19,-167.53"/>
-<polygon fill="none" stroke="midnightblue" points="6642.71,-216.26 6646.62,-226.11 6649.7,-215.97 6642.71,-216.26"/>
+<path fill="none" stroke="midnightblue" d="M6686.19,-215.85C6685.08,-189.03 6683.67,-154.98 6682.6,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="6682.71,-216.26 6686.62,-226.11 6689.7,-215.97 6682.71,-216.26"/>
 </g>
 <!-- Node78 -->
 <g id="node78" class="node">
 <title>Node78</title>
-<g id="a_node78"><a xlink:href="structtvm_1_1relax_1_1OneHotAttrs.html" target="_top" xlink:title="Attributes used in one_hot operator.">
-<polygon fill="white" stroke="black" points="6740,-44.5 6740,-134.5 6902,-134.5 6902,-44.5 6740,-44.5"/>
-<text text-anchor="middle" x="6821" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::OneHotAttrs</text>
-<polyline fill="none" stroke="black" points="6740,-115.5 6902,-115.5 "/>
-<text text-anchor="start" x="6748" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ depth</text>
-<text text-anchor="start" x="6748" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="6740,-85.5 6902,-85.5 "/>
-<text text-anchor="start" x="6748" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6748" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6748" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node78"><a xlink:href="structtvm_1_1relax_1_1Pool2DAttrs.html" target="_top" xlink:title="Attributes used in max_pool2d and avg_pool2d operator.">
+<polygon fill="white" stroke="black" points="6780,-11.5 6780,-167.5 6942,-167.5 6942,-11.5 6780,-11.5"/>
+<text text-anchor="middle" x="6861" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Pool2DAttrs</text>
+<polyline fill="none" stroke="black" points="6780,-148.5 6942,-148.5 "/>
+<text text-anchor="start" x="6788" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pool_size</text>
+<text text-anchor="start" x="6788" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="6788" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="6788" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="6788" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ceil_mode</text>
+<text text-anchor="start" x="6788" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ count_include_pad</text>
+<text text-anchor="start" x="6788" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="6788" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<polyline fill="none" stroke="black" points="6780,-52.5 6942,-52.5 "/>
+<text text-anchor="start" x="6788" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6788" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6788" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node77&#45;&gt;Node78 -->
 <g id="edge77" class="edge">
 <title>Node77&#45;&gt;Node78</title>
-<path fill="none" stroke="midnightblue" d="M6823.23,-215.84C6822.78,-190.91 6822.23,-159.73 6821.78,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="6819.73,-216.17 6823.41,-226.11 6826.73,-216.05 6819.73,-216.17"/>
+<path fill="none" stroke="midnightblue" d="M6866.19,-215.79C6865.58,-201.03 6864.88,-184.09 6864.19,-167.53"/>
+<polygon fill="none" stroke="midnightblue" points="6862.71,-216.26 6866.62,-226.11 6869.7,-215.97 6862.71,-216.26"/>
 </g>
 <!-- Node80 -->
 <g id="node80" class="node">
 <title>Node80</title>
-<g id="a_node80"><a xlink:href="structtvm_1_1relax_1_1NLLLossAttrs.html" target="_top" xlink:title="Attributes used in nll_loss operator.">
-<polygon fill="white" stroke="black" points="6920,-44.5 6920,-134.5 7082,-134.5 7082,-44.5 6920,-44.5"/>
-<text text-anchor="middle" x="7001" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::NLLLossAttrs</text>
-<polyline fill="none" stroke="black" points="6920,-115.5 7082,-115.5 "/>
-<text text-anchor="start" x="6928" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ reduction</text>
-<text text-anchor="start" x="6928" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ignore_index</text>
-<polyline fill="none" stroke="black" points="6920,-85.5 7082,-85.5 "/>
-<text text-anchor="start" x="6928" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6928" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6928" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node80"><a xlink:href="structtvm_1_1relax_1_1OneHotAttrs.html" target="_top" xlink:title="Attributes used in one_hot operator.">
+<polygon fill="white" stroke="black" points="6960,-44.5 6960,-134.5 7122,-134.5 7122,-44.5 6960,-44.5"/>
+<text text-anchor="middle" x="7041" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::OneHotAttrs</text>
+<polyline fill="none" stroke="black" points="6960,-115.5 7122,-115.5 "/>
+<text text-anchor="start" x="6968" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ depth</text>
+<text text-anchor="start" x="6968" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="6960,-85.5 7122,-85.5 "/>
+<text text-anchor="start" x="6968" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6968" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6968" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node79&#45;&gt;Node80 -->
 <g id="edge79" class="edge">
 <title>Node79&#45;&gt;Node80</title>
-<path fill="none" stroke="midnightblue" d="M6998.03,-215.84C6998.62,-190.91 6999.36,-159.73 6999.95,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="6994.53,-216.03 6997.79,-226.11 7001.53,-216.2 6994.53,-216.03"/>
+<path fill="none" stroke="midnightblue" d="M7043.23,-215.84C7042.78,-190.91 7042.23,-159.73 7041.78,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="7039.73,-216.17 7043.41,-226.11 7046.73,-216.05 7039.73,-216.17"/>
 </g>
 <!-- Node82 -->
 <g id="node82" class="node">
 <title>Node82</title>
-<g id="a_node82"><a xlink:href="structtvm_1_1relax_1_1BatchNormAttrs.html" target="_top" xlink:title="Attributes used in batch_norm operator.">
-<polygon fill="white" stroke="black" points="7100,-22.5 7100,-156.5 7262,-156.5 7262,-22.5 7100,-22.5"/>
-<text text-anchor="middle" x="7181" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BatchNormAttrs</text>
-<polyline fill="none" stroke="black" points="7100,-137.5 7262,-137.5 "/>
-<text text-anchor="start" x="7108" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="7108" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
-<text text-anchor="start" x="7108" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
-<text text-anchor="start" x="7108" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
-<text text-anchor="start" x="7108" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ momentum</text>
-<text text-anchor="start" x="7108" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ training</text>
-<polyline fill="none" stroke="black" points="7100,-63.5 7262,-63.5 "/>
-<text text-anchor="start" x="7108" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7108" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7108" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node82"><a xlink:href="structtvm_1_1relax_1_1NLLLossAttrs.html" target="_top" xlink:title="Attributes used in nll_loss operator.">
+<polygon fill="white" stroke="black" points="7140,-44.5 7140,-134.5 7302,-134.5 7302,-44.5 7140,-44.5"/>
+<text text-anchor="middle" x="7221" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::NLLLossAttrs</text>
+<polyline fill="none" stroke="black" points="7140,-115.5 7302,-115.5 "/>
+<text text-anchor="start" x="7148" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ reduction</text>
+<text text-anchor="start" x="7148" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ignore_index</text>
+<polyline fill="none" stroke="black" points="7140,-85.5 7302,-85.5 "/>
+<text text-anchor="start" x="7148" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7148" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7148" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node81&#45;&gt;Node82 -->
 <g id="edge81" class="edge">
 <title>Node81&#45;&gt;Node82</title>
-<path fill="none" stroke="midnightblue" d="M7167.62,-216.16C7169.54,-198.08 7171.82,-176.66 7173.95,-156.68"/>
-<polygon fill="none" stroke="midnightblue" points="7164.14,-215.8 7166.56,-226.11 7171.1,-216.54 7164.14,-215.8"/>
+<path fill="none" stroke="midnightblue" d="M7218.03,-215.84C7218.62,-190.91 7219.36,-159.73 7219.95,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="7214.53,-216.03 7217.79,-226.11 7221.53,-216.2 7214.53,-216.03"/>
 </g>
 <!-- Node84 -->
 <g id="node84" class="node">
 <title>Node84</title>
-<g id="a_node84"><a xlink:href="structtvm_1_1relax_1_1RepeatAttrs.html" target="_top" xlink:title="Attributes used in repeat operators.">
-<polygon fill="white" stroke="black" points="7280,-44.5 7280,-134.5 7442,-134.5 7442,-44.5 7280,-44.5"/>
-<text text-anchor="middle" x="7361" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::RepeatAttrs</text>
-<polyline fill="none" stroke="black" points="7280,-115.5 7442,-115.5 "/>
-<text text-anchor="start" x="7288" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ repeats</text>
-<text text-anchor="start" x="7288" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="7280,-85.5 7442,-85.5 "/>
-<text text-anchor="start" x="7288" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7288" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7288" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node84"><a xlink:href="structtvm_1_1relax_1_1BatchNormAttrs.html" target="_top" xlink:title="Attributes used in batch_norm operator.">
+<polygon fill="white" stroke="black" points="7320,-22.5 7320,-156.5 7482,-156.5 7482,-22.5 7320,-22.5"/>
+<text text-anchor="middle" x="7401" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BatchNormAttrs</text>
+<polyline fill="none" stroke="black" points="7320,-137.5 7482,-137.5 "/>
+<text text-anchor="start" x="7328" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="7328" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
+<text text-anchor="start" x="7328" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
+<text text-anchor="start" x="7328" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
+<text text-anchor="start" x="7328" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ momentum</text>
+<text text-anchor="start" x="7328" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ training</text>
+<polyline fill="none" stroke="black" points="7320,-63.5 7482,-63.5 "/>
+<text text-anchor="start" x="7328" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7328" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7328" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node83&#45;&gt;Node84 -->
 <g id="edge83" class="edge">
 <title>Node83&#45;&gt;Node84</title>
-<path fill="none" stroke="midnightblue" d="M7337.2,-216.18C7341.93,-191.19 7347.87,-159.85 7352.63,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="7333.74,-215.63 7335.32,-226.11 7340.62,-216.94 7333.74,-215.63"/>
+<path fill="none" stroke="midnightblue" d="M7387.62,-216.16C7389.54,-198.08 7391.82,-176.66 7393.95,-156.68"/>
+<polygon fill="none" stroke="midnightblue" points="7384.14,-215.8 7386.56,-226.11 7391.1,-216.54 7384.14,-215.8"/>
 </g>
 <!-- Node86 -->
 <g id="node86" class="node">
 <title>Node86</title>
-<g id="a_node86"><a xlink:href="structtvm_1_1relax_1_1Pool1DAttrs.html" target="_top" xlink:title="Attributes used in max_pool1d and avg_pool1d operator.">
-<polygon fill="white" stroke="black" points="7460,-11.5 7460,-167.5 7622,-167.5 7622,-11.5 7460,-11.5"/>
-<text text-anchor="middle" x="7541" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Pool1DAttrs</text>
-<polyline fill="none" stroke="black" points="7460,-148.5 7622,-148.5 "/>
-<text text-anchor="start" x="7468" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pool_size</text>
-<text text-anchor="start" x="7468" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="7468" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="7468" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="7468" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ceil_mode</text>
-<text text-anchor="start" x="7468" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ count_include_pad</text>
-<text text-anchor="start" x="7468" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
-<text text-anchor="start" x="7468" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<polyline fill="none" stroke="black" points="7460,-52.5 7622,-52.5 "/>
-<text text-anchor="start" x="7468" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7468" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7468" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node86"><a xlink:href="structtvm_1_1relax_1_1RepeatAttrs.html" target="_top" xlink:title="Attributes used in repeat operators.">
+<polygon fill="white" stroke="black" points="7500,-44.5 7500,-134.5 7662,-134.5 7662,-44.5 7500,-44.5"/>
+<text text-anchor="middle" x="7581" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::RepeatAttrs</text>
+<polyline fill="none" stroke="black" points="7500,-115.5 7662,-115.5 "/>
+<text text-anchor="start" x="7508" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ repeats</text>
+<text text-anchor="start" x="7508" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="7500,-85.5 7662,-85.5 "/>
+<text text-anchor="start" x="7508" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7508" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7508" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node85&#45;&gt;Node86 -->
 <g id="edge85" class="edge">
 <title>Node85&#45;&gt;Node86</title>
-<path fill="none" stroke="midnightblue" d="M7506.78,-216.22C7510.83,-201.36 7515.48,-184.25 7520.03,-167.53"/>
-<polygon fill="none" stroke="midnightblue" points="7503.34,-215.54 7504.09,-226.11 7510.09,-217.38 7503.34,-215.54"/>
+<path fill="none" stroke="midnightblue" d="M7557.2,-216.18C7561.93,-191.19 7567.87,-159.85 7572.63,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="7553.74,-215.63 7555.32,-226.11 7560.62,-216.94 7553.74,-215.63"/>
 </g>
 <!-- Node88 -->
 <g id="node88" class="node">
 <title>Node88</title>
-<g id="a_node88"><a xlink:href="structtvm_1_1relax_1_1StackAttrs.html" target="_top" xlink:title="Attributes used in stack operators.">
-<polygon fill="white" stroke="black" points="7640,-50 7640,-129 7802,-129 7802,-50 7640,-50"/>
-<text text-anchor="middle" x="7721" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StackAttrs</text>
-<polyline fill="none" stroke="black" points="7640,-110 7802,-110 "/>
-<text text-anchor="start" x="7648" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="7640,-91 7802,-91 "/>
-<text text-anchor="start" x="7648" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7648" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7648" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node88"><a xlink:href="structtvm_1_1relax_1_1Pool1DAttrs.html" target="_top" xlink:title="Attributes used in max_pool1d and avg_pool1d operator.">
+<polygon fill="white" stroke="black" points="7680,-11.5 7680,-167.5 7842,-167.5 7842,-11.5 7680,-11.5"/>
+<text text-anchor="middle" x="7761" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Pool1DAttrs</text>
+<polyline fill="none" stroke="black" points="7680,-148.5 7842,-148.5 "/>
+<text text-anchor="start" x="7688" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ pool_size</text>
+<text text-anchor="start" x="7688" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="7688" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="7688" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="7688" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ceil_mode</text>
+<text text-anchor="start" x="7688" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ count_include_pad</text>
+<text text-anchor="start" x="7688" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ layout</text>
+<text text-anchor="start" x="7688" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<polyline fill="none" stroke="black" points="7680,-52.5 7842,-52.5 "/>
+<text text-anchor="start" x="7688" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7688" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7688" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node87&#45;&gt;Node88 -->
 <g id="edge87" class="edge">
 <title>Node87&#45;&gt;Node88</title>
-<path fill="none" stroke="midnightblue" d="M7676.25,-216.56C7685.8,-189.63 7698.03,-155.21 7707.28,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="7672.9,-215.52 7672.85,-226.11 7679.5,-217.86 7672.9,-215.52"/>
+<path fill="none" stroke="midnightblue" d="M7726.78,-216.22C7730.83,-201.36 7735.48,-184.25 7740.03,-167.53"/>
+<polygon fill="none" stroke="midnightblue" points="7723.34,-215.54 7724.09,-226.11 7730.09,-217.38 7723.34,-215.54"/>
 </g>
 <!-- Node90 -->
 <g id="node90" class="node">
 <title>Node90</title>
-<g id="a_node90"><a xlink:href="structtvm_1_1relax_1_1ScanopAttrs.html" target="_top" xlink:title="Attributes used in scan operators like cumsum, cumprod.">
-<polygon fill="white" stroke="black" points="7820,-39 7820,-140 7982,-140 7982,-39 7820,-39"/>
-<text text-anchor="middle" x="7901" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ScanopAttrs</text>
-<polyline fill="none" stroke="black" points="7820,-121 7982,-121 "/>
-<text text-anchor="start" x="7828" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="7828" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
-<text text-anchor="start" x="7828" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ exclusive</text>
-<polyline fill="none" stroke="black" points="7820,-80 7982,-80 "/>
-<text text-anchor="start" x="7828" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7828" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7828" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node90"><a xlink:href="structtvm_1_1relax_1_1StackAttrs.html" target="_top" xlink:title="Attributes used in stack operators.">
+<polygon fill="white" stroke="black" points="7860,-50 7860,-129 8022,-129 8022,-50 7860,-50"/>
+<text text-anchor="middle" x="7941" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StackAttrs</text>
+<polyline fill="none" stroke="black" points="7860,-110 8022,-110 "/>
+<text text-anchor="start" x="7868" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="7860,-91 8022,-91 "/>
+<text text-anchor="start" x="7868" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7868" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7868" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node89&#45;&gt;Node90 -->
 <g id="edge89" class="edge">
 <title>Node89&#45;&gt;Node90</title>
-<path fill="none" stroke="midnightblue" d="M7845.69,-216.82C7855.9,-193.5 7868.6,-164.49 7879.25,-140.16"/>
-<polygon fill="none" stroke="midnightblue" points="7842.42,-215.55 7841.62,-226.11 7848.84,-218.35 7842.42,-215.55"/>
+<path fill="none" stroke="midnightblue" d="M7896.25,-216.56C7905.8,-189.63 7918.03,-155.21 7927.28,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="7892.9,-215.52 7892.85,-226.11 7899.5,-217.86 7892.9,-215.52"/>
 </g>
 <!-- Node92 -->
 <g id="node92" class="node">
 <title>Node92</title>
-<g id="a_node92"><a xlink:href="structtvm_1_1relax_1_1LeakyReluAttrs.html" target="_top" xlink:title="Attributes used in softmax operators.">
-<polygon fill="white" stroke="black" points="8000,-50 8000,-129 8162,-129 8162,-50 8000,-50"/>
-<text text-anchor="middle" x="8081" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LeakyReluAttrs</text>
-<polyline fill="none" stroke="black" points="8000,-110 8162,-110 "/>
-<text text-anchor="start" x="8008" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ alpha</text>
-<polyline fill="none" stroke="black" points="8000,-91 8162,-91 "/>
-<text text-anchor="start" x="8008" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8008" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8008" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node92"><a xlink:href="structtvm_1_1relax_1_1ScanopAttrs.html" target="_top" xlink:title="Attributes used in scan operators like cumsum, cumprod.">
+<polygon fill="white" stroke="black" points="8040,-39 8040,-140 8202,-140 8202,-39 8040,-39"/>
+<text text-anchor="middle" x="8121" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ScanopAttrs</text>
+<polyline fill="none" stroke="black" points="8040,-121 8202,-121 "/>
+<text text-anchor="start" x="8048" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="8048" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
+<text text-anchor="start" x="8048" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ exclusive</text>
+<polyline fill="none" stroke="black" points="8040,-80 8202,-80 "/>
+<text text-anchor="start" x="8048" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8048" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8048" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node91&#45;&gt;Node92 -->
 <g id="edge91" class="edge">
 <title>Node91&#45;&gt;Node92</title>
-<path fill="none" stroke="midnightblue" d="M8015.18,-216.91C8029.22,-189.94 8047.24,-155.33 8060.88,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="8011.9,-215.62 8010.39,-226.11 8018.11,-218.86 8011.9,-215.62"/>
+<path fill="none" stroke="midnightblue" d="M8065.69,-216.82C8075.9,-193.5 8088.6,-164.49 8099.25,-140.16"/>
+<polygon fill="none" stroke="midnightblue" points="8062.42,-215.55 8061.62,-226.11 8068.84,-218.35 8062.42,-215.55"/>
 </g>
 <!-- Node94 -->
 <g id="node94" class="node">
 <title>Node94</title>
-<g id="a_node94"><a xlink:href="structtvm_1_1relax_1_1CallTIRWithGradAttrs.html" target="_top" xlink:title="Attributes used in call_tir_with_grad.">
-<polygon fill="white" stroke="black" points="8180,-39 8180,-140 8342,-140 8342,-39 8180,-39"/>
-<text text-anchor="start" x="8188" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::CallTIRWithGrad</text>
-<text text-anchor="middle" x="8261" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="8180,-110 8342,-110 "/>
-<text text-anchor="start" x="8188" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ te_grad_name</text>
-<text text-anchor="start" x="8188" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ te_grad_kwargs</text>
-<polyline fill="none" stroke="black" points="8180,-80 8342,-80 "/>
-<text text-anchor="start" x="8188" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8188" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8188" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node94"><a xlink:href="structtvm_1_1relax_1_1LeakyReluAttrs.html" target="_top" xlink:title="Attributes used in softmax operators.">
+<polygon fill="white" stroke="black" points="8220,-50 8220,-129 8382,-129 8382,-50 8220,-50"/>
+<text text-anchor="middle" x="8301" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LeakyReluAttrs</text>
+<polyline fill="none" stroke="black" points="8220,-110 8382,-110 "/>
+<text text-anchor="start" x="8228" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ alpha</text>
+<polyline fill="none" stroke="black" points="8220,-91 8382,-91 "/>
+<text text-anchor="start" x="8228" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8228" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8228" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node93&#45;&gt;Node94 -->
 <g id="edge93" class="edge">
 <title>Node93&#45;&gt;Node94</title>
-<path fill="none" stroke="midnightblue" d="M8184.38,-217.44C8198.52,-194.02 8216.21,-164.71 8231.03,-140.16"/>
-<polygon fill="none" stroke="midnightblue" points="8181.32,-215.74 8179.15,-226.11 8187.32,-219.36 8181.32,-215.74"/>
+<path fill="none" stroke="midnightblue" d="M8235.18,-216.91C8249.22,-189.94 8267.24,-155.33 8280.88,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="8231.9,-215.62 8230.39,-226.11 8238.11,-218.86 8231.9,-215.62"/>
 </g>
 <!-- Node96 -->
 <g id="node96" class="node">
 <title>Node96</title>
-<g id="a_node96"><a xlink:href="structtvm_1_1relax_1_1CallTIRInplaceAttrs.html" target="_top" xlink:title="Attributes used in call_tir_inplace.">
-<polygon fill="white" stroke="black" points="8360,-44.5 8360,-134.5 8522,-134.5 8522,-44.5 8360,-44.5"/>
-<text text-anchor="start" x="8368" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::CallTIRInplace</text>
-<text text-anchor="middle" x="8441" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="8360,-104.5 8522,-104.5 "/>
-<text text-anchor="start" x="8368" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ inplace_indices</text>
-<polyline fill="none" stroke="black" points="8360,-85.5 8522,-85.5 "/>
-<text text-anchor="start" x="8368" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8368" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8368" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node96"><a xlink:href="structtvm_1_1relax_1_1CallTIRWithGradAttrs.html" target="_top" xlink:title="Attributes used in call_tir_with_grad.">
+<polygon fill="white" stroke="black" points="8400,-39 8400,-140 8562,-140 8562,-39 8400,-39"/>
+<text text-anchor="start" x="8408" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::CallTIRWithGrad</text>
+<text text-anchor="middle" x="8481" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="8400,-110 8562,-110 "/>
+<text text-anchor="start" x="8408" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ te_grad_name</text>
+<text text-anchor="start" x="8408" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ te_grad_kwargs</text>
+<polyline fill="none" stroke="black" points="8400,-80 8562,-80 "/>
+<text text-anchor="start" x="8408" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8408" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8408" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node95&#45;&gt;Node96 -->
 <g id="edge95" class="edge">
 <title>Node95&#45;&gt;Node96</title>
-<path fill="none" stroke="midnightblue" d="M8353.6,-217.83C8370.93,-192.59 8393.02,-160.4 8410.65,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="8350.69,-215.89 8347.92,-226.11 8356.46,-219.85 8350.69,-215.89"/>
+<path fill="none" stroke="midnightblue" d="M8404.38,-217.44C8418.52,-194.02 8436.21,-164.71 8451.03,-140.16"/>
+<polygon fill="none" stroke="midnightblue" points="8401.32,-215.74 8399.15,-226.11 8407.32,-219.36 8401.32,-215.74"/>
 </g>
 <!-- Node98 -->
 <g id="node98" class="node">
 <title>Node98</title>
-<g id="a_node98"><a xlink:href="structtvm_1_1relax_1_1AstypeAttrs.html" target="_top" xlink:title="Attributes used in astype operator.">
-<polygon fill="white" stroke="black" points="8540,-50 8540,-129 8702,-129 8702,-50 8540,-50"/>
-<text text-anchor="middle" x="8621" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::AstypeAttrs</text>
-<polyline fill="none" stroke="black" points="8540,-110 8702,-110 "/>
-<text text-anchor="start" x="8548" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
-<polyline fill="none" stroke="black" points="8540,-91 8702,-91 "/>
-<text text-anchor="start" x="8548" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8548" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8548" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node98"><a xlink:href="structtvm_1_1relax_1_1CallTIRInplaceAttrs.html" target="_top" xlink:title="Attributes used in call_tir_inplace.">
+<polygon fill="white" stroke="black" points="8580,-44.5 8580,-134.5 8742,-134.5 8742,-44.5 8580,-44.5"/>
+<text text-anchor="start" x="8588" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::CallTIRInplace</text>
+<text text-anchor="middle" x="8661" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="8580,-104.5 8742,-104.5 "/>
+<text text-anchor="start" x="8588" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ inplace_indices</text>
+<polyline fill="none" stroke="black" points="8580,-85.5 8742,-85.5 "/>
+<text text-anchor="start" x="8588" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8588" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8588" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node97&#45;&gt;Node98 -->
 <g id="edge97" class="edge">
 <title>Node97&#45;&gt;Node98</title>
-<path fill="none" stroke="midnightblue" d="M8522.95,-217.97C8543.81,-190.84 8570.87,-155.67 8591.27,-129.14"/>
-<polygon fill="none" stroke="midnightblue" points="8520.01,-216.05 8516.68,-226.11 8525.56,-220.32 8520.01,-216.05"/>
+<path fill="none" stroke="midnightblue" d="M8573.6,-217.83C8590.93,-192.59 8613.02,-160.4 8630.65,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="8570.69,-215.89 8567.92,-226.11 8576.46,-219.85 8570.69,-215.89"/>
 </g>
 <!-- Node100 -->
 <g id="node100" class="node">
 <title>Node100</title>
-<g id="a_node100"><a xlink:href="structtvm_1_1relax_1_1PixelShuffleAttrs.html" target="_top" xlink:title="Attributes used for the pixel shuffle operator.">
-<polygon fill="white" stroke="black" points="8720,-44.5 8720,-134.5 8882,-134.5 8882,-44.5 8720,-44.5"/>
-<text text-anchor="start" x="8728" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PixelShuffle</text>
-<text text-anchor="middle" x="8801" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="8720,-104.5 8882,-104.5 "/>
-<text text-anchor="start" x="8728" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ upscale_factor</text>
-<polyline fill="none" stroke="black" points="8720,-85.5 8882,-85.5 "/>
-<text text-anchor="start" x="8728" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8728" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8728" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node100"><a xlink:href="structtvm_1_1relax_1_1AstypeAttrs.html" target="_top" xlink:title="Attributes used in astype operator.">
+<polygon fill="white" stroke="black" points="8760,-50 8760,-129 8922,-129 8922,-50 8760,-50"/>
+<text text-anchor="middle" x="8841" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::AstypeAttrs</text>
+<polyline fill="none" stroke="black" points="8760,-110 8922,-110 "/>
+<text text-anchor="start" x="8768" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
+<polyline fill="none" stroke="black" points="8760,-91 8922,-91 "/>
+<text text-anchor="start" x="8768" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8768" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8768" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node99&#45;&gt;Node100 -->
 <g id="edge99" class="edge">
 <title>Node99&#45;&gt;Node100</title>
-<path fill="none" stroke="midnightblue" d="M8691.94,-218.49C8713.54,-193.15 8741.25,-160.63 8763.33,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="8689.27,-216.23 8685.45,-226.11 8694.6,-220.77 8689.27,-216.23"/>
+<path fill="none" stroke="midnightblue" d="M8742.95,-217.97C8763.81,-190.84 8790.87,-155.67 8811.27,-129.14"/>
+<polygon fill="none" stroke="midnightblue" points="8740.01,-216.05 8736.68,-226.11 8745.56,-220.32 8740.01,-216.05"/>
 </g>
 <!-- Node102 -->
 <g id="node102" class="node">
 <title>Node102</title>
-<g id="a_node102"><a xlink:href="structtvm_1_1relax_1_1PadAttrs.html" target="_top" xlink:title="Attributes used for the padding operator.">
-<polygon fill="white" stroke="black" points="8900,-39 8900,-140 9062,-140 9062,-39 8900,-39"/>
-<text text-anchor="middle" x="8981" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PadAttrs</text>
-<polyline fill="none" stroke="black" points="8900,-121 9062,-121 "/>
-<text text-anchor="start" x="8908" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_width</text>
-<text text-anchor="start" x="8908" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_value</text>
-<text text-anchor="start" x="8908" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_mode</text>
-<polyline fill="none" stroke="black" points="8900,-80 9062,-80 "/>
-<text text-anchor="start" x="8908" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8908" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8908" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node102"><a xlink:href="structtvm_1_1relax_1_1PixelShuffleAttrs.html" target="_top" xlink:title="Attributes used for the pixel shuffle operator.">
+<polygon fill="white" stroke="black" points="8940,-44.5 8940,-134.5 9102,-134.5 9102,-44.5 8940,-44.5"/>
+<text text-anchor="start" x="8948" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PixelShuffle</text>
+<text text-anchor="middle" x="9021" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="8940,-104.5 9102,-104.5 "/>
+<text text-anchor="start" x="8948" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ upscale_factor</text>
+<polyline fill="none" stroke="black" points="8940,-85.5 9102,-85.5 "/>
+<text text-anchor="start" x="8948" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8948" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8948" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node101&#45;&gt;Node102 -->
 <g id="edge101" class="edge">
 <title>Node101&#45;&gt;Node102</title>
-<path fill="none" stroke="midnightblue" d="M8861.17,-218.68C8883.25,-195.05 8911.22,-165.14 8934.57,-140.16"/>
-<polygon fill="none" stroke="midnightblue" points="8858.49,-216.42 8854.22,-226.11 8863.6,-221.2 8858.49,-216.42"/>
+<path fill="none" stroke="midnightblue" d="M8911.94,-218.49C8933.54,-193.15 8961.25,-160.63 8983.33,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="8909.27,-216.23 8905.45,-226.11 8914.6,-220.77 8909.27,-216.23"/>
 </g>
 <!-- Node104 -->
 <g id="node104" class="node">
 <title>Node104</title>
-<g id="a_node104"><a xlink:href="structtvm_1_1relax_1_1InstanceNormAttrs.html" target="_top" xlink:title="Attributes used in instance_norm operator.">
-<polygon fill="white" stroke="black" points="9080,-22.5 9080,-156.5 9242,-156.5 9242,-22.5 9080,-22.5"/>
-<text text-anchor="start" x="9088" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::InstanceNorm</text>
-<text text-anchor="middle" x="9161" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="9080,-126.5 9242,-126.5 "/>
-<text text-anchor="start" x="9088" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ channel_axis</text>
-<text text-anchor="start" x="9088" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
-<text text-anchor="start" x="9088" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
-<text text-anchor="start" x="9088" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
-<text text-anchor="start" x="9088" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
-<polyline fill="none" stroke="black" points="9080,-63.5 9242,-63.5 "/>
-<text text-anchor="start" x="9088" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="9088" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="9088" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node104"><a xlink:href="structtvm_1_1relax_1_1PadAttrs.html" target="_top" xlink:title="Attributes used for the padding operator.">
+<polygon fill="white" stroke="black" points="9120,-39 9120,-140 9282,-140 9282,-39 9120,-39"/>
+<text text-anchor="middle" x="9201" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PadAttrs</text>
+<polyline fill="none" stroke="black" points="9120,-121 9282,-121 "/>
+<text text-anchor="start" x="9128" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_width</text>
+<text text-anchor="start" x="9128" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_value</text>
+<text text-anchor="start" x="9128" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_mode</text>
+<polyline fill="none" stroke="black" points="9120,-80 9282,-80 "/>
+<text text-anchor="start" x="9128" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="9128" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="9128" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node103&#45;&gt;Node104 -->
 <g id="edge103" class="edge">
 <title>Node103&#45;&gt;Node104</title>
-<path fill="none" stroke="midnightblue" d="M9030.39,-218.88C9043.39,-206.12 9057.8,-191.97 9071,-179 9078.35,-171.78 9086.03,-164.23 9093.68,-156.71"/>
-<polygon fill="none" stroke="midnightblue" points="9027.6,-216.71 9022.92,-226.22 9032.51,-221.71 9027.6,-216.71"/>
+<path fill="none" stroke="midnightblue" d="M9081.17,-218.68C9103.25,-195.05 9131.22,-165.14 9154.57,-140.16"/>
+<polygon fill="none" stroke="midnightblue" points="9078.49,-216.42 9074.22,-226.11 9083.6,-221.2 9078.49,-216.42"/>
 </g>
 <!-- Node106 -->
 <g id="node106" class="node">
 <title>Node106</title>
-<g id="a_node106"><a xlink:href="structtvm_1_1relax_1_1DropoutAttrs.html" target="_top" xlink:title="Attributes used in dropout operator.">
-<polygon fill="white" stroke="black" points="9260,-50 9260,-129 9422,-129 9422,-50 9260,-50"/>
-<text text-anchor="middle" x="9341" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DropoutAttrs</text>
-<polyline fill="none" stroke="black" points="9260,-110 9422,-110 "/>
-<text text-anchor="start" x="9268" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ rate</text>
-<polyline fill="none" stroke="black" points="9260,-91 9422,-91 "/>
-<text text-anchor="start" x="9268" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="9268" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="9268" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node106"><a xlink:href="structtvm_1_1relax_1_1InstanceNormAttrs.html" target="_top" xlink:title="Attributes used in instance_norm operator.">
+<polygon fill="white" stroke="black" points="9300,-22.5 9300,-156.5 9462,-156.5 9462,-22.5 9300,-22.5"/>
+<text text-anchor="start" x="9308" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::InstanceNorm</text>
+<text text-anchor="middle" x="9381" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="9300,-126.5 9462,-126.5 "/>
+<text text-anchor="start" x="9308" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ channel_axis</text>
+<text text-anchor="start" x="9308" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
+<text text-anchor="start" x="9308" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
+<text text-anchor="start" x="9308" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
+<text text-anchor="start" x="9308" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
+<polyline fill="none" stroke="black" points="9300,-63.5 9462,-63.5 "/>
+<text text-anchor="start" x="9308" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="9308" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="9308" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node105&#45;&gt;Node106 -->
 <g id="edge105" class="edge">
 <title>Node105&#45;&gt;Node106</title>
-<path fill="none" stroke="midnightblue" d="M9204.07,-219.62C9219.33,-206.89 9236.06,-192.57 9251,-179 9268.52,-163.09 9287.27,-144.85 9303.1,-129.08"/>
-<polygon fill="none" stroke="midnightblue" points="9201.7,-217.04 9196.25,-226.12 9206.18,-222.42 9201.7,-217.04"/>
+<path fill="none" stroke="midnightblue" d="M9250.39,-218.88C9263.39,-206.12 9277.8,-191.97 9291,-179 9298.35,-171.78 9306.03,-164.23 9313.68,-156.71"/>
+<polygon fill="none" stroke="midnightblue" points="9247.6,-216.71 9242.92,-226.22 9252.51,-221.71 9247.6,-216.71"/>
 </g>
 <!-- Node108 -->
 <g id="node108" class="node">
 <title>Node108</title>
-<g id="a_node108"><a xlink:href="structtvm_1_1relax_1_1TopKAttrs.html" target="_top" xlink:title="Attributes used in topk operator.">
-<polygon fill="white" stroke="black" points="9440,-28 9440,-151 9602,-151 9602,-28 9440,-28"/>
-<text text-anchor="middle" x="9521" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TopKAttrs</text>
-<polyline fill="none" stroke="black" points="9440,-132 9602,-132 "/>
-<text text-anchor="start" x="9448" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ k</text>
-<text text-anchor="start" x="9448" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="9448" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ largest</text>
-<text text-anchor="start" x="9448" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ ret_type</text>
-<text text-anchor="start" x="9448" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
-<polyline fill="none" stroke="black" points="9440,-69 9602,-69 "/>
-<text text-anchor="start" x="9448" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="9448" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="9448" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node108"><a xlink:href="structtvm_1_1relax_1_1DropoutAttrs.html" target="_top" xlink:title="Attributes used in dropout operator.">
+<polygon fill="white" stroke="black" points="9480,-50 9480,-129 9642,-129 9642,-50 9480,-50"/>
+<text text-anchor="middle" x="9561" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DropoutAttrs</text>
+<polyline fill="none" stroke="black" points="9480,-110 9642,-110 "/>
+<text text-anchor="start" x="9488" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ rate</text>
+<polyline fill="none" stroke="black" points="9480,-91 9642,-91 "/>
+<text text-anchor="start" x="9488" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="9488" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="9488" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node107&#45;&gt;Node108 -->
 <g id="edge107" class="edge">
 <title>Node107&#45;&gt;Node108</title>
-<path fill="none" stroke="midnightblue" d="M9377.71,-220.41C9395.2,-207.71 9414.26,-193.22 9431,-179 9441.19,-170.34 9451.63,-160.79 9461.63,-151.25"/>
-<polygon fill="none" stroke="midnightblue" points="9375.33,-217.81 9369.26,-226.49 9379.42,-223.49 9375.33,-217.81"/>
+<path fill="none" stroke="midnightblue" d="M9424.07,-219.62C9439.33,-206.89 9456.06,-192.57 9471,-179 9488.52,-163.09 9507.27,-144.85 9523.1,-129.08"/>
+<polygon fill="none" stroke="midnightblue" points="9421.7,-217.04 9416.25,-226.12 9426.18,-222.42 9421.7,-217.04"/>
 </g>
 <!-- Node110 -->
 <g id="node110" class="node">
 <title>Node110</title>
-<g id="a_node110"><a xlink:href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html" target="_top" xlink:title="Attributes used in multinomial_from_uniform operator.">
-<polygon fill="white" stroke="black" points="9620,-44.5 9620,-134.5 9782,-134.5 9782,-44.5 9620,-44.5"/>
-<text text-anchor="start" x="9628" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MultinomialFrom</text>
-<text text-anchor="middle" x="9701" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">UniformAttrs</text>
-<polyline fill="none" stroke="black" points="9620,-104.5 9782,-104.5 "/>
-<text text-anchor="start" x="9628" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
-<polyline fill="none" stroke="black" points="9620,-85.5 9782,-85.5 "/>
-<text text-anchor="start" x="9628" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="9628" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="9628" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node110"><a xlink:href="structtvm_1_1relax_1_1TopKAttrs.html" target="_top" xlink:title="Attributes used in topk operator.">
+<polygon fill="white" stroke="black" points="9660,-28 9660,-151 9822,-151 9822,-28 9660,-28"/>
+<text text-anchor="middle" x="9741" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TopKAttrs</text>
+<polyline fill="none" stroke="black" points="9660,-132 9822,-132 "/>
+<text text-anchor="start" x="9668" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ k</text>
+<text text-anchor="start" x="9668" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="9668" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ largest</text>
+<text text-anchor="start" x="9668" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ ret_type</text>
+<text text-anchor="start" x="9668" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
+<polyline fill="none" stroke="black" points="9660,-69 9822,-69 "/>
+<text text-anchor="start" x="9668" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="9668" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="9668" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node109&#45;&gt;Node110 -->
 <g id="edge109" class="edge">
 <title>Node109&#45;&gt;Node110</title>
-<path fill="none" stroke="midnightblue" d="M9559.76,-220.3C9576.52,-207.55 9594.84,-193.05 9611,-179 9626.88,-165.2 9643.5,-149.3 9658.08,-134.83"/>
-<polygon fill="none" stroke="midnightblue" points="9557.54,-217.59 9551.67,-226.41 9561.76,-223.17 9557.54,-217.59"/>
+<path fill="none" stroke="midnightblue" d="M9597.71,-220.41C9615.2,-207.71 9634.26,-193.22 9651,-179 9661.19,-170.34 9671.63,-160.79 9681.63,-151.25"/>
+<polygon fill="none" stroke="midnightblue" points="9595.33,-217.81 9589.26,-226.49 9599.42,-223.49 9595.33,-217.81"/>
 </g>
 <!-- Node112 -->
 <g id="node112" class="node">
 <title>Node112</title>
-<g id="a_node112"><a xlink:href="structtvm_1_1relax_1_1Conv3DAttrs.html" target="_top" xlink:title="Attributes used in Conv3d operator.">
-<polygon fill="white" stroke="black" points="9800,-11.5 9800,-167.5 9962,-167.5 9962,-11.5 9800,-11.5"/>
-<text text-anchor="middle" x="9881" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv3DAttrs</text>
-<polyline fill="none" stroke="black" points="9800,-148.5 9962,-148.5 "/>
-<text text-anchor="start" x="9808" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="9808" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="9808" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="9808" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
-<text text-anchor="start" x="9808" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
-<text text-anchor="start" x="9808" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
-<text text-anchor="start" x="9808" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<text text-anchor="start" x="9808" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="9800,-52.5 9962,-52.5 "/>
-<text text-anchor="start" x="9808" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="9808" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="9808" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node112"><a xlink:href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html" target="_top" xlink:title="Attributes used in multinomial_from_uniform operator.">
+<polygon fill="white" stroke="black" points="9840,-44.5 9840,-134.5 10002,-134.5 10002,-44.5 9840,-44.5"/>
+<text text-anchor="start" x="9848" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MultinomialFrom</text>
+<text text-anchor="middle" x="9921" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">UniformAttrs</text>
+<polyline fill="none" stroke="black" points="9840,-104.5 10002,-104.5 "/>
+<text text-anchor="start" x="9848" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
+<polyline fill="none" stroke="black" points="9840,-85.5 10002,-85.5 "/>
+<text text-anchor="start" x="9848" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="9848" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="9848" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node111&#45;&gt;Node112 -->
 <g id="edge111" class="edge">
 <title>Node111&#45;&gt;Node112</title>
-<path fill="none" stroke="midnightblue" d="M9742.26,-219.84C9758.16,-207.12 9775.55,-192.76 9791,-179 9795.09,-175.36 9799.24,-171.58 9803.4,-167.73"/>
-<polygon fill="none" stroke="midnightblue" points="9739.75,-217.37 9734.1,-226.33 9744.11,-222.84 9739.75,-217.37"/>
+<path fill="none" stroke="midnightblue" d="M9779.76,-220.3C9796.52,-207.55 9814.84,-193.05 9831,-179 9846.88,-165.2 9863.5,-149.3 9878.08,-134.83"/>
+<polygon fill="none" stroke="midnightblue" points="9777.54,-217.59 9771.67,-226.41 9781.76,-223.17 9777.54,-217.59"/>
 </g>
 <!-- Node114 -->
 <g id="node114" class="node">
 <title>Node114</title>
-<g id="a_node114"><a xlink:href="classtvm_1_1VirtualDeviceNode.html" target="_top" xlink:title="Describes at compile time the constraints on where data is to be stored at runtime down to the (virtu...">
-<polygon fill="white" stroke="black" points="9980,-17 9980,-162 10142,-162 10142,-17 9980,-17"/>
-<text text-anchor="middle" x="10061" y="-150" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::VirtualDeviceNode</text>
-<polyline fill="none" stroke="black" points="9980,-143 10142,-143 "/>
-<text text-anchor="start" x="9988" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">+ virtual_device_id</text>
-<text text-anchor="start" x="9988" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ target</text>
-<text text-anchor="start" x="9988" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ memory_scope</text>
-<polyline fill="none" stroke="black" points="9980,-102 10142,-102 "/>
-<text text-anchor="start" x="9988" y="-90" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type()</text>
-<text text-anchor="start" x="9988" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsFullyUnconstrained()</text>
-<text text-anchor="start" x="9988" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsFullyConstrained()</text>
-<text text-anchor="start" x="9988" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ ToDevice()</text>
-<text text-anchor="start" x="9988" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="9988" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="9988" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node114"><a xlink:href="structtvm_1_1relax_1_1Conv3DAttrs.html" target="_top" xlink:title="Attributes used in Conv3d operator.">
+<polygon fill="white" stroke="black" points="10020,-11.5 10020,-167.5 10182,-167.5 10182,-11.5 10020,-11.5"/>
+<text text-anchor="middle" x="10101" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv3DAttrs</text>
+<polyline fill="none" stroke="black" points="10020,-148.5 10182,-148.5 "/>
+<text text-anchor="start" x="10028" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="10028" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="10028" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="10028" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
+<text text-anchor="start" x="10028" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
+<text text-anchor="start" x="10028" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
+<text text-anchor="start" x="10028" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<text text-anchor="start" x="10028" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="10020,-52.5 10182,-52.5 "/>
+<text text-anchor="start" x="10028" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="10028" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="10028" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node113&#45;&gt;Node114 -->
 <g id="edge113" class="edge">
 <title>Node113&#45;&gt;Node114</title>
-<path fill="none" stroke="midnightblue" d="M9916.38,-220.29C9934.38,-207.69 9953.9,-193.28 9971,-179 9977.39,-173.66 9983.87,-167.96 9990.26,-162.12"/>
-<polygon fill="none" stroke="midnightblue" points="9913.9,-217.75 9907.68,-226.32 9917.89,-223.5 9913.9,-217.75"/>
+<path fill="none" stroke="midnightblue" d="M9962.26,-219.84C9978.16,-207.12 9995.55,-192.76 10011,-179 10015.09,-175.36 10019.24,-171.58 10023.4,-167.73"/>
+<polygon fill="none" stroke="midnightblue" points="9959.75,-217.37 9954.1,-226.33 9964.11,-222.84 9959.75,-217.37"/>
 </g>
 <!-- Node116 -->
 <g id="node116" class="node">
 <title>Node116</title>
-<g id="a_node116"><a xlink:href="structtvm_1_1relax_1_1WrapParamAttrs.html" target="_top" xlink:title="Attributes used in wrap_param operator.">
-<polygon fill="white" stroke="black" points="10160,-50 10160,-129 10322,-129 10322,-50 10160,-50"/>
-<text text-anchor="middle" x="10241" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::WrapParamAttrs</text>
-<polyline fill="none" stroke="black" points="10160,-110 10322,-110 "/>
-<text text-anchor="start" x="10168" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
-<polyline fill="none" stroke="black" points="10160,-91 10322,-91 "/>
-<text text-anchor="start" x="10168" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="10168" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="10168" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node116"><a xlink:href="classtvm_1_1VirtualDeviceNode.html" target="_top" xlink:title="Describes at compile time the constraints on where data is to be stored at runtime down to the (virtu...">
+<polygon fill="white" stroke="black" points="10200,-17 10200,-162 10362,-162 10362,-17 10200,-17"/>
+<text text-anchor="middle" x="10281" y="-150" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::VirtualDeviceNode</text>
+<polyline fill="none" stroke="black" points="10200,-143 10362,-143 "/>
+<text text-anchor="start" x="10208" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00">+ virtual_device_id</text>
+<text text-anchor="start" x="10208" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00">+ target</text>
+<text text-anchor="start" x="10208" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ memory_scope</text>
+<polyline fill="none" stroke="black" points="10200,-102 10362,-102 "/>
+<text text-anchor="start" x="10208" y="-90" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type()</text>
+<text text-anchor="start" x="10208" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsFullyUnconstrained()</text>
+<text text-anchor="start" x="10208" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsFullyConstrained()</text>
+<text text-anchor="start" x="10208" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ ToDevice()</text>
+<text text-anchor="start" x="10208" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="10208" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="10208" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node115&#45;&gt;Node116 -->
 <g id="edge115" class="edge">
 <title>Node115&#45;&gt;Node116</title>
-<path fill="none" stroke="midnightblue" d="M10090.05,-221.11C10110.26,-208.55 10132.08,-193.96 10151,-179 10169.91,-164.05 10189.18,-145.6 10205.02,-129.43"/>
-<polygon fill="none" stroke="midnightblue" points="10088.19,-218.15 10081.5,-226.37 10091.85,-224.11 10088.19,-218.15"/>
+<path fill="none" stroke="midnightblue" d="M10136.38,-220.29C10154.38,-207.69 10173.9,-193.28 10191,-179 10197.39,-173.66 10203.87,-167.96 10210.26,-162.12"/>
+<polygon fill="none" stroke="midnightblue" points="10133.9,-217.75 10127.68,-226.32 10137.89,-223.5 10133.9,-217.75"/>
 </g>
 <!-- Node118 -->
 <g id="node118" class="node">
 <title>Node118</title>
-<g id="a_node118"><a xlink:href="structtvm_1_1relax_1_1TileAttrs.html" target="_top" xlink:title="Attributes used in tile operators.">
-<polygon fill="white" stroke="black" points="10340,-50 10340,-129 10502,-129 10502,-50 10340,-50"/>
-<text text-anchor="middle" x="10421" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TileAttrs</text>
-<polyline fill="none" stroke="black" points="10340,-110 10502,-110 "/>
-<text text-anchor="start" x="10348" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ repeats</text>
-<polyline fill="none" stroke="black" points="10340,-91 10502,-91 "/>
-<text text-anchor="start" x="10348" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="10348" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="10348" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node118"><a xlink:href="structtvm_1_1relax_1_1WrapParamAttrs.html" target="_top" xlink:title="Attributes used in wrap_param operator.">
+<polygon fill="white" stroke="black" points="10380,-50 10380,-129 10542,-129 10542,-50 10380,-50"/>
+<text text-anchor="middle" x="10461" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::WrapParamAttrs</text>
+<polyline fill="none" stroke="black" points="10380,-110 10542,-110 "/>
+<text text-anchor="start" x="10388" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
+<polyline fill="none" stroke="black" points="10380,-91 10542,-91 "/>
+<text text-anchor="start" x="10388" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="10388" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="10388" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node117&#45;&gt;Node118 -->
 <g id="edge117" class="edge">
 <title>Node117&#45;&gt;Node118</title>
-<path fill="none" stroke="midnightblue" d="M10259.9,-221.54C10288.67,-205.68 10318.14,-188.71 10331,-179 10350.42,-164.35 10369.92,-145.77 10385.78,-129.41"/>
-<polygon fill="none" stroke="midnightblue" points="10258.1,-218.54 10251.01,-226.42 10261.46,-224.68 10258.1,-218.54"/>
+<path fill="none" stroke="midnightblue" d="M10310.05,-221.11C10330.26,-208.55 10352.08,-193.96 10371,-179 10389.91,-164.05 10409.18,-145.6 10425.02,-129.43"/>
+<polygon fill="none" stroke="midnightblue" points="10308.19,-218.15 10301.5,-226.37 10311.85,-224.11 10308.19,-218.15"/>
 </g>
 <!-- Node120 -->
 <g id="node120" class="node">
 <title>Node120</title>
-<g id="a_node120"><a xlink:href="structtvm_1_1relax_1_1StridedSliceAttrs.html" target="_top" xlink:title="Attributes used in strided_slice operator.">
-<polygon fill="white" stroke="black" points="10520,-44.5 10520,-134.5 10682,-134.5 10682,-44.5 10520,-44.5"/>
-<text text-anchor="start" x="10528" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StridedSlice</text>
-<text text-anchor="middle" x="10601" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="10520,-104.5 10682,-104.5 "/>
-<text text-anchor="start" x="10528" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ assume_inbound</text>
-<polyline fill="none" stroke="black" points="10520,-85.5 10682,-85.5 "/>
-<text text-anchor="start" x="10528" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="10528" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="10528" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node120"><a xlink:href="structtvm_1_1relax_1_1TileAttrs.html" target="_top" xlink:title="Attributes used in tile operators.">
+<polygon fill="white" stroke="black" points="10560,-50 10560,-129 10722,-129 10722,-50 10560,-50"/>
+<text text-anchor="middle" x="10641" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TileAttrs</text>
+<polyline fill="none" stroke="black" points="10560,-110 10722,-110 "/>
+<text text-anchor="start" x="10568" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ repeats</text>
+<polyline fill="none" stroke="black" points="10560,-91 10722,-91 "/>
+<text text-anchor="start" x="10568" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="10568" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="10568" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node119&#45;&gt;Node120 -->
 <g id="edge119" class="edge">
 <title>Node119&#45;&gt;Node120</title>
-<path fill="none" stroke="midnightblue" d="M10425.06,-221.72C10429.43,-219.43 10433.77,-217.18 10438,-215 10470.17,-198.45 10481.51,-199.95 10511,-179 10528.87,-166.31 10546.51,-150.03 10561.37,-134.9"/>
-<polygon fill="none" stroke="midnightblue" points="10423.29,-218.7 10416.07,-226.46 10426.55,-224.89 10423.29,-218.7"/>
+<path fill="none" stroke="midnightblue" d="M10479.9,-221.54C10508.67,-205.68 10538.14,-188.71 10551,-179 10570.42,-164.35 10589.92,-145.77 10605.78,-129.41"/>
+<polygon fill="none" stroke="midnightblue" points="10478.1,-218.54 10471.01,-226.42 10481.46,-224.68 10478.1,-218.54"/>
 </g>
 <!-- Node122 -->
 <g id="node122" class="node">
 <title>Node122</title>
-<g id="a_node122"><a xlink:href="structtvm_1_1relax_1_1SplitAttrs.html" target="_top" xlink:title="Attributes used in split operator.">
-<polygon fill="white" stroke="black" points="10700,-44.5 10700,-134.5 10862,-134.5 10862,-44.5 10700,-44.5"/>
-<text text-anchor="middle" x="10781" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SplitAttrs</text>
-<polyline fill="none" stroke="black" points="10700,-115.5 10862,-115.5 "/>
-<text text-anchor="start" x="10708" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ indices_or_sections</text>
-<text text-anchor="start" x="10708" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="10700,-85.5 10862,-85.5 "/>
-<text text-anchor="start" x="10708" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="10708" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="10708" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node122"><a xlink:href="structtvm_1_1relax_1_1StridedSliceAttrs.html" target="_top" xlink:title="Attributes used in strided_slice operator.">
+<polygon fill="white" stroke="black" points="10740,-44.5 10740,-134.5 10902,-134.5 10902,-44.5 10740,-44.5"/>
+<text text-anchor="start" x="10748" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StridedSlice</text>
+<text text-anchor="middle" x="10821" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="10740,-104.5 10902,-104.5 "/>
+<text text-anchor="start" x="10748" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ assume_inbound</text>
+<polyline fill="none" stroke="black" points="10740,-85.5 10902,-85.5 "/>
+<text text-anchor="start" x="10748" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="10748" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="10748" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node121&#45;&gt;Node122 -->
 <g id="edge121" class="edge">
 <title>Node121&#45;&gt;Node122</title>
-<path fill="none" stroke="midnightblue" d="M10589.99,-221.84C10594.71,-219.48 10599.41,-217.17 10604,-215 10641.82,-197.09 10656.1,-202.1 10691,-179 10709.64,-166.66 10727.71,-150.11 10742.71,-134.65"/>
-<polygon fill="none" stroke="midnightblue" points="10588.25,-218.8 10580.93,-226.46 10591.43,-225.04 10588.25,-218.8"/>
+<path fill="none" stroke="midnightblue" d="M10645.06,-221.72C10649.43,-219.43 10653.77,-217.18 10658,-215 10690.17,-198.45 10701.51,-199.95 10731,-179 10748.87,-166.31 10766.51,-150.03 10781.37,-134.9"/>
+<polygon fill="none" stroke="midnightblue" points="10643.29,-218.7 10636.07,-226.46 10646.55,-224.89 10643.29,-218.7"/>
 </g>
 <!-- Node124 -->
 <g id="node124" class="node">
 <title>Node124</title>
-<g id="a_node124"><a xlink:href="structtvm_1_1relax_1_1RMSNormAttrs.html" target="_top" xlink:title="Attributes used in rms_norm operator.">
-<polygon fill="white" stroke="black" points="10880,-44.5 10880,-134.5 11042,-134.5 11042,-44.5 10880,-44.5"/>
-<text text-anchor="middle" x="10961" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::RMSNormAttrs</text>
-<polyline fill="none" stroke="black" points="10880,-115.5 11042,-115.5 "/>
-<text text-anchor="start" x="10888" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
-<text text-anchor="start" x="10888" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
-<polyline fill="none" stroke="black" points="10880,-85.5 11042,-85.5 "/>
-<text text-anchor="start" x="10888" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="10888" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="10888" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node124"><a xlink:href="structtvm_1_1relax_1_1SplitAttrs.html" target="_top" xlink:title="Attributes used in split operator.">
+<polygon fill="white" stroke="black" points="10920,-44.5 10920,-134.5 11082,-134.5 11082,-44.5 10920,-44.5"/>
+<text text-anchor="middle" x="11001" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SplitAttrs</text>
+<polyline fill="none" stroke="black" points="10920,-115.5 11082,-115.5 "/>
+<text text-anchor="start" x="10928" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ indices_or_sections</text>
+<text text-anchor="start" x="10928" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="10920,-85.5 11082,-85.5 "/>
+<text text-anchor="start" x="10928" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="10928" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="10928" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node123&#45;&gt;Node124 -->
 <g id="edge123" class="edge">
 <title>Node123&#45;&gt;Node124</title>
-<path fill="none" stroke="midnightblue" d="M10755.59,-221.71C10760.43,-219.36 10765.26,-217.1 10770,-215 10813.57,-195.69 10830.62,-204.3 10871,-179 10890.13,-167.02 10908.43,-150.35 10923.48,-134.71"/>
-<polygon fill="none" stroke="midnightblue" points="10753.71,-218.74 10746.31,-226.33 10756.82,-225.01 10753.71,-218.74"/>
+<path fill="none" stroke="midnightblue" d="M10809.99,-221.84C10814.71,-219.48 10819.41,-217.17 10824,-215 10861.82,-197.09 10876.1,-202.1 10911,-179 10929.64,-166.66 10947.71,-150.11 10962.71,-134.65"/>
+<polygon fill="none" stroke="midnightblue" points="10808.25,-218.8 10800.93,-226.46 10811.43,-225.04 10808.25,-218.8"/>
 </g>
 <!-- Node126 -->
 <g id="node126" class="node">
 <title>Node126</title>
-<g id="a_node126"><a xlink:href="structtvm_1_1relax_1_1QuantizeAttrs.html" target="_top" xlink:title="Attributes for relax.quantize/relax.dequantize operator.">
-<polygon fill="white" stroke="black" points="11060,-44.5 11060,-134.5 11222,-134.5 11222,-44.5 11060,-44.5"/>
-<text text-anchor="middle" x="11141" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::QuantizeAttrs</text>
-<polyline fill="none" stroke="black" points="11060,-115.5 11222,-115.5 "/>
-<text text-anchor="start" x="11068" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<text text-anchor="start" x="11068" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="11060,-85.5 11222,-85.5 "/>
-<text text-anchor="start" x="11068" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="11068" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="11068" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node126"><a xlink:href="structtvm_1_1relax_1_1RMSNormAttrs.html" target="_top" xlink:title="Attributes used in rms_norm operator.">
+<polygon fill="white" stroke="black" points="11100,-44.5 11100,-134.5 11262,-134.5 11262,-44.5 11100,-44.5"/>
+<text text-anchor="middle" x="11181" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::RMSNormAttrs</text>
+<polyline fill="none" stroke="black" points="11100,-115.5 11262,-115.5 "/>
+<text text-anchor="start" x="11108" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
+<text text-anchor="start" x="11108" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
+<polyline fill="none" stroke="black" points="11100,-85.5 11262,-85.5 "/>
+<text text-anchor="start" x="11108" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="11108" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="11108" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node125&#45;&gt;Node126 -->
 <g id="edge125" class="edge">
 <title>Node125&#45;&gt;Node126</title>
-<path fill="none" stroke="midnightblue" d="M10920.55,-221.95C10925.72,-219.48 10930.91,-217.14 10936,-215 10985.38,-194.25 11005.07,-206.54 11051,-179 11070.55,-167.28 11089.06,-150.48 11104.16,-134.65"/>
-<polygon fill="none" stroke="midnightblue" points="10918.72,-218.95 10911.27,-226.49 10921.8,-225.24 10918.72,-218.95"/>
+<path fill="none" stroke="midnightblue" d="M10975.59,-221.71C10980.43,-219.36 10985.26,-217.1 10990,-215 11033.57,-195.69 11050.62,-204.3 11091,-179 11110.13,-167.02 11128.43,-150.35 11143.48,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="10973.71,-218.74 10966.31,-226.33 10976.82,-225.01 10973.71,-218.74"/>
 </g>
 <!-- Node128 -->
 <g id="node128" class="node">
 <title>Node128</title>
-<g id="a_node128"><a xlink:href="structtvm_1_1relax_1_1PReluAttrs.html" target="_top" xlink:title="Attributes used in PReLU operator.">
-<polygon fill="white" stroke="black" points="11240,-50 11240,-129 11402,-129 11402,-50 11240,-50"/>
-<text text-anchor="middle" x="11321" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PReluAttrs</text>
-<polyline fill="none" stroke="black" points="11240,-110 11402,-110 "/>
-<text text-anchor="start" x="11248" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<polyline fill="none" stroke="black" points="11240,-91 11402,-91 "/>
-<text text-anchor="start" x="11248" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="11248" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="11248" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node128"><a xlink:href="structtvm_1_1relax_1_1QuantizeAttrs.html" target="_top" xlink:title="Attributes for relax.quantize/relax.dequantize operator.">
+<polygon fill="white" stroke="black" points="11280,-44.5 11280,-134.5 11442,-134.5 11442,-44.5 11280,-44.5"/>
+<text text-anchor="middle" x="11361" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::QuantizeAttrs</text>
+<polyline fill="none" stroke="black" points="11280,-115.5 11442,-115.5 "/>
+<text text-anchor="start" x="11288" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<text text-anchor="start" x="11288" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="11280,-85.5 11442,-85.5 "/>
+<text text-anchor="start" x="11288" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="11288" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="11288" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node127&#45;&gt;Node128 -->
 <g id="edge127" class="edge">
 <title>Node127&#45;&gt;Node128</title>
-<path fill="none" stroke="midnightblue" d="M11085.79,-222.09C11091.21,-219.55 11096.65,-217.15 11102,-215 11157.23,-192.8 11179.48,-208.81 11231,-179 11253.19,-166.16 11273.9,-146.57 11289.84,-129.08"/>
-<polygon fill="none" stroke="midnightblue" points="11084.2,-218.97 11076.72,-226.48 11087.25,-225.27 11084.2,-218.97"/>
+<path fill="none" stroke="midnightblue" d="M11140.55,-221.95C11145.72,-219.48 11150.91,-217.14 11156,-215 11205.38,-194.25 11225.07,-206.54 11271,-179 11290.55,-167.28 11309.06,-150.48 11324.16,-134.65"/>
+<polygon fill="none" stroke="midnightblue" points="11138.72,-218.95 11131.27,-226.49 11141.8,-225.24 11138.72,-218.95"/>
 </g>
 <!-- Node130 -->
 <g id="node130" class="node">
 <title>Node130</title>
-<g id="a_node130"><a xlink:href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html" target="_top" xlink:title="Attributes for multibox_transform_loc (SSD / TFLite&#45;style box decode).">
-<polygon fill="white" stroke="black" points="11420,-28 11420,-151 11584,-151 11584,-28 11420,-28"/>
-<text text-anchor="start" x="11428" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MultiboxTransform</text>
-<text text-anchor="middle" x="11502" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">LocAttrs</text>
-<polyline fill="none" stroke="black" points="11420,-121 11584,-121 "/>
-<text text-anchor="start" x="11428" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ clip</text>
-<text text-anchor="start" x="11428" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ threshold</text>
-<text text-anchor="start" x="11428" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ variances</text>
-<text text-anchor="start" x="11428" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ keep_background</text>
-<polyline fill="none" stroke="black" points="11420,-69 11584,-69 "/>
-<text text-anchor="start" x="11428" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="11428" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="11428" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node130"><a xlink:href="structtvm_1_1relax_1_1PReluAttrs.html" target="_top" xlink:title="Attributes used in PReLU operator.">
+<polygon fill="white" stroke="black" points="11460,-50 11460,-129 11622,-129 11622,-50 11460,-50"/>
+<text text-anchor="middle" x="11541" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PReluAttrs</text>
+<polyline fill="none" stroke="black" points="11460,-110 11622,-110 "/>
+<text text-anchor="start" x="11468" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="11460,-91 11622,-91 "/>
+<text text-anchor="start" x="11468" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="11468" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="11468" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node129&#45;&gt;Node130 -->
 <g id="edge129" class="edge">
 <title>Node129&#45;&gt;Node130</title>
-<path fill="none" stroke="midnightblue" d="M11272.13,-222.27C11278.13,-219.7 11284.14,-217.25 11290,-215 11342.4,-194.94 11362.6,-207.38 11411,-179 11423.93,-171.42 11436.41,-161.62 11447.77,-151.32"/>
-<polygon fill="none" stroke="midnightblue" points="11270.48,-219.17 11262.72,-226.39 11273.29,-225.58 11270.48,-219.17"/>
+<path fill="none" stroke="midnightblue" d="M11305.79,-222.09C11311.21,-219.55 11316.65,-217.15 11322,-215 11377.23,-192.8 11399.48,-208.81 11451,-179 11473.19,-166.16 11493.9,-146.57 11509.84,-129.08"/>
+<polygon fill="none" stroke="midnightblue" points="11304.2,-218.97 11296.72,-226.48 11307.25,-225.27 11304.2,-218.97"/>
 </g>
 <!-- Node132 -->
 <g id="node132" class="node">
 <title>Node132</title>
-<g id="a_node132"><a xlink:href="structtvm_1_1relax_1_1Conv2DAttrs.html" target="_top" xlink:title="Attributes used in Conv2d operator.">
-<polygon fill="white" stroke="black" points="11602,-11.5 11602,-167.5 11764,-167.5 11764,-11.5 11602,-11.5"/>
-<text text-anchor="middle" x="11683" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv2DAttrs</text>
-<polyline fill="none" stroke="black" points="11602,-148.5 11764,-148.5 "/>
-<text text-anchor="start" x="11610" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="11610" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="11610" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="11610" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
-<text text-anchor="start" x="11610" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
-<text text-anchor="start" x="11610" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
-<text text-anchor="start" x="11610" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<text text-anchor="start" x="11610" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="11602,-52.5 11764,-52.5 "/>
-<text text-anchor="start" x="11610" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="11610" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="11610" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node132"><a xlink:href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html" target="_top" xlink:title="Attributes for multibox_transform_loc (SSD / TFLite&#45;style box decode).">
+<polygon fill="white" stroke="black" points="11640,-28 11640,-151 11804,-151 11804,-28 11640,-28"/>
+<text text-anchor="start" x="11648" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MultiboxTransform</text>
+<text text-anchor="middle" x="11722" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">LocAttrs</text>
+<polyline fill="none" stroke="black" points="11640,-121 11804,-121 "/>
+<text text-anchor="start" x="11648" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ clip</text>
+<text text-anchor="start" x="11648" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ threshold</text>
+<text text-anchor="start" x="11648" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ variances</text>
+<text text-anchor="start" x="11648" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ keep_background</text>
+<polyline fill="none" stroke="black" points="11640,-69 11804,-69 "/>
+<text text-anchor="start" x="11648" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="11648" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="11648" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node131&#45;&gt;Node132 -->
 <g id="edge131" class="edge">
 <title>Node131&#45;&gt;Node132</title>
-<path fill="none" stroke="midnightblue" d="M11439.75,-222C11445.18,-219.48 11450.64,-217.11 11456,-215 11514.59,-191.97 11538.27,-210.12 11593,-179 11598.91,-175.64 11604.7,-171.8 11610.33,-167.64"/>
-<polygon fill="none" stroke="midnightblue" points="11438.17,-218.88 11430.67,-226.36 11441.2,-225.19 11438.17,-218.88"/>
+<path fill="none" stroke="midnightblue" d="M11492.13,-222.27C11498.13,-219.7 11504.14,-217.25 11510,-215 11562.4,-194.94 11582.6,-207.38 11631,-179 11643.93,-171.42 11656.41,-161.62 11667.77,-151.32"/>
+<polygon fill="none" stroke="midnightblue" points="11490.48,-219.17 11482.72,-226.39 11493.29,-225.58 11490.48,-219.17"/>
 </g>
 <!-- Node134 -->
 <g id="node134" class="node">
 <title>Node134</title>
-<g id="a_node134"><a xlink:href="structtvm_1_1relax_1_1SortAttrs.html" target="_top" xlink:title="Attributes used in sort operator.">
-<polygon fill="white" stroke="black" points="11782,-44.5 11782,-134.5 11944,-134.5 11944,-44.5 11782,-44.5"/>
-<text text-anchor="middle" x="11863" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SortAttrs</text>
-<polyline fill="none" stroke="black" points="11782,-115.5 11944,-115.5 "/>
-<text text-anchor="start" x="11790" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="11790" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ descending</text>
-<polyline fill="none" stroke="black" points="11782,-85.5 11944,-85.5 "/>
-<text text-anchor="start" x="11790" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="11790" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="11790" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node134"><a xlink:href="structtvm_1_1relax_1_1Conv2DAttrs.html" target="_top" xlink:title="Attributes used in Conv2d operator.">
+<polygon fill="white" stroke="black" points="11822,-11.5 11822,-167.5 11984,-167.5 11984,-11.5 11822,-11.5"/>
+<text text-anchor="middle" x="11903" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv2DAttrs</text>
+<polyline fill="none" stroke="black" points="11822,-148.5 11984,-148.5 "/>
+<text text-anchor="start" x="11830" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="11830" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="11830" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="11830" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
+<text text-anchor="start" x="11830" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
+<text text-anchor="start" x="11830" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
+<text text-anchor="start" x="11830" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<text text-anchor="start" x="11830" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="11822,-52.5 11984,-52.5 "/>
+<text text-anchor="start" x="11830" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="11830" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="11830" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node133&#45;&gt;Node134 -->
 <g id="edge133" class="edge">
 <title>Node133&#45;&gt;Node134</title>
-<path fill="none" stroke="midnightblue" d="M11605.4,-222C11610.94,-219.46 11616.52,-217.08 11622,-215 11686.49,-190.5 11712.64,-212.41 11773,-179 11793.13,-167.86 11811.89,-150.97 11827.01,-134.92"/>
-<polygon fill="none" stroke="midnightblue" points="11603.67,-218.95 11596.15,-226.41 11606.68,-225.27 11603.67,-218.95"/>
+<path fill="none" stroke="midnightblue" d="M11659.75,-222C11665.18,-219.48 11670.64,-217.11 11676,-215 11734.59,-191.97 11758.27,-210.12 11813,-179 11818.91,-175.64 11824.7,-171.8 11830.33,-167.64"/>
+<polygon fill="none" stroke="midnightblue" points="11658.17,-218.88 11650.67,-226.36 11661.2,-225.19 11658.17,-218.88"/>
 </g>
 <!-- Node136 -->
 <g id="node136" class="node">
 <title>Node136</title>
-<g id="a_node136"><a xlink:href="structtvm_1_1relax_1_1Conv1DAttrs.html" target="_top" xlink:title="Attributes used in Conv1d operator.">
-<polygon fill="white" stroke="black" points="11962,-11.5 11962,-167.5 12124,-167.5 12124,-11.5 11962,-11.5"/>
-<text text-anchor="middle" x="12043" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv1DAttrs</text>
-<polyline fill="none" stroke="black" points="11962,-148.5 12124,-148.5 "/>
-<text text-anchor="start" x="11970" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="11970" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="11970" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="11970" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
-<text text-anchor="start" x="11970" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
-<text text-anchor="start" x="11970" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
-<text text-anchor="start" x="11970" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<text text-anchor="start" x="11970" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="11962,-52.5 12124,-52.5 "/>
-<text text-anchor="start" x="11970" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="11970" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="11970" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node136"><a xlink:href="structtvm_1_1relax_1_1SortAttrs.html" target="_top" xlink:title="Attributes used in sort operator.">
+<polygon fill="white" stroke="black" points="12002,-44.5 12002,-134.5 12164,-134.5 12164,-44.5 12002,-44.5"/>
+<text text-anchor="middle" x="12083" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SortAttrs</text>
+<polyline fill="none" stroke="black" points="12002,-115.5 12164,-115.5 "/>
+<text text-anchor="start" x="12010" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="12010" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ descending</text>
+<polyline fill="none" stroke="black" points="12002,-85.5 12164,-85.5 "/>
+<text text-anchor="start" x="12010" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12010" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12010" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node135&#45;&gt;Node136 -->
 <g id="edge135" class="edge">
 <title>Node135&#45;&gt;Node136</title>
-<path fill="none" stroke="midnightblue" d="M11771.06,-222.02C11776.71,-219.45 11782.4,-217.07 11788,-215 11858.42,-189.02 11886.98,-214.71 11953,-179 11959.17,-175.66 11965.2,-171.78 11971.03,-167.53"/>
-<polygon fill="none" stroke="midnightblue" points="11769.17,-219.04 11761.64,-226.48 11772.17,-225.36 11769.17,-219.04"/>
+<path fill="none" stroke="midnightblue" d="M11825.4,-222C11830.94,-219.46 11836.52,-217.08 11842,-215 11906.49,-190.5 11932.64,-212.41 11993,-179 12013.13,-167.86 12031.89,-150.97 12047.01,-134.92"/>
+<polygon fill="none" stroke="midnightblue" points="11823.67,-218.95 11816.15,-226.41 11826.68,-225.27 11823.67,-218.95"/>
 </g>
 <!-- Node138 -->
 <g id="node138" class="node">
 <title>Node138</title>
-<g id="a_node138"><a xlink:href="structtvm_1_1relax_1_1BucketizeAttrs.html" target="_top" xlink:title="Attributes for bucketize operator.">
-<polygon fill="white" stroke="black" points="12142,-44.5 12142,-134.5 12304,-134.5 12304,-44.5 12142,-44.5"/>
-<text text-anchor="middle" x="12223" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BucketizeAttrs</text>
-<polyline fill="none" stroke="black" points="12142,-115.5 12304,-115.5 "/>
-<text text-anchor="start" x="12150" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_int32</text>
-<text text-anchor="start" x="12150" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ right</text>
-<polyline fill="none" stroke="black" points="12142,-85.5 12304,-85.5 "/>
-<text text-anchor="start" x="12150" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="12150" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="12150" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node138"><a xlink:href="structtvm_1_1relax_1_1Conv1DAttrs.html" target="_top" xlink:title="Attributes used in Conv1d operator.">
+<polygon fill="white" stroke="black" points="12182,-11.5 12182,-167.5 12344,-167.5 12344,-11.5 12182,-11.5"/>
+<text text-anchor="middle" x="12263" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv1DAttrs</text>
+<polyline fill="none" stroke="black" points="12182,-148.5 12344,-148.5 "/>
+<text text-anchor="start" x="12190" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="12190" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="12190" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="12190" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
+<text text-anchor="start" x="12190" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
+<text text-anchor="start" x="12190" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
+<text text-anchor="start" x="12190" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<text text-anchor="start" x="12190" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="12182,-52.5 12344,-52.5 "/>
+<text text-anchor="start" x="12190" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12190" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12190" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node137&#45;&gt;Node138 -->
 <g id="edge137" class="edge">
 <title>Node137&#45;&gt;Node138</title>
-<path fill="none" stroke="midnightblue" d="M11937.03,-221.91C11942.68,-219.37 11948.38,-217.02 11954,-215 12030.36,-187.53 12061.31,-217.03 12133,-179 12153.52,-168.11 12172.48,-151.07 12187.65,-134.83"/>
-<polygon fill="none" stroke="midnightblue" points="11935.15,-218.93 11927.59,-226.35 11938.13,-225.26 11935.15,-218.93"/>
+<path fill="none" stroke="midnightblue" d="M11991.06,-222.02C11996.71,-219.45 12002.4,-217.07 12008,-215 12078.42,-189.02 12106.98,-214.71 12173,-179 12179.17,-175.66 12185.2,-171.78 12191.03,-167.53"/>
+<polygon fill="none" stroke="midnightblue" points="11989.17,-219.04 11981.64,-226.48 11992.17,-225.36 11989.17,-219.04"/>
 </g>
 <!-- Node140 -->
 <g id="node140" class="node">
 <title>Node140</title>
-<g id="a_node140"><a xlink:href="structtvm_1_1relax_1_1ArgsortAttrs.html" target="_top" xlink:title="Attributes used in argsort operator.">
-<polygon fill="white" stroke="black" points="12322,-39 12322,-140 12484,-140 12484,-39 12322,-39"/>
-<text text-anchor="middle" x="12403" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ArgsortAttrs</text>
-<polyline fill="none" stroke="black" points="12322,-121 12484,-121 "/>
-<text text-anchor="start" x="12330" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="12330" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ descending</text>
-<text text-anchor="start" x="12330" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
-<polyline fill="none" stroke="black" points="12322,-80 12484,-80 "/>
-<text text-anchor="start" x="12330" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="12330" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="12330" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node140"><a xlink:href="structtvm_1_1relax_1_1BucketizeAttrs.html" target="_top" xlink:title="Attributes for bucketize operator.">
+<polygon fill="white" stroke="black" points="12362,-44.5 12362,-134.5 12524,-134.5 12524,-44.5 12362,-44.5"/>
+<text text-anchor="middle" x="12443" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BucketizeAttrs</text>
+<polyline fill="none" stroke="black" points="12362,-115.5 12524,-115.5 "/>
+<text text-anchor="start" x="12370" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_int32</text>
+<text text-anchor="start" x="12370" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ right</text>
+<polyline fill="none" stroke="black" points="12362,-85.5 12524,-85.5 "/>
+<text text-anchor="start" x="12370" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12370" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12370" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node139&#45;&gt;Node140 -->
 <g id="edge139" class="edge">
 <title>Node139&#45;&gt;Node140</title>
-<path fill="none" stroke="midnightblue" d="M12102.28,-222.15C12108.17,-219.5 12114.13,-217.07 12120,-215 12202.31,-186.04 12235.63,-219.35 12313,-179 12331.46,-169.37 12348.61,-154.7 12362.89,-140.06"/>
-<polygon fill="none" stroke="midnightblue" points="12100.66,-219.04 12093.1,-226.47 12103.63,-225.38 12100.66,-219.04"/>
+<path fill="none" stroke="midnightblue" d="M12157.03,-221.91C12162.68,-219.37 12168.38,-217.02 12174,-215 12250.36,-187.53 12281.31,-217.03 12353,-179 12373.52,-168.11 12392.48,-151.07 12407.65,-134.83"/>
+<polygon fill="none" stroke="midnightblue" points="12155.15,-218.93 12147.59,-226.35 12158.13,-225.26 12155.15,-218.93"/>
 </g>
 <!-- Node142 -->
 <g id="node142" class="node">
 <title>Node142</title>
-<g id="a_node142"><a xlink:href="structtvm_1_1relax_1_1StatisticalAttrs.html" target="_top" xlink:title="Attributes for statistical operators.">
-<polygon fill="white" stroke="black" points="12502,-44.5 12502,-134.5 12664,-134.5 12664,-44.5 12502,-44.5"/>
-<text text-anchor="middle" x="12583" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StatisticalAttrs</text>
-<polyline fill="none" stroke="black" points="12502,-115.5 12664,-115.5 "/>
-<text text-anchor="start" x="12510" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="12510" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ keepdims</text>
-<polyline fill="none" stroke="black" points="12502,-85.5 12664,-85.5 "/>
-<text text-anchor="start" x="12510" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="12510" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="12510" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node142"><a xlink:href="structtvm_1_1relax_1_1ArgsortAttrs.html" target="_top" xlink:title="Attributes used in argsort operator.">
+<polygon fill="white" stroke="black" points="12542,-39 12542,-140 12704,-140 12704,-39 12542,-39"/>
+<text text-anchor="middle" x="12623" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ArgsortAttrs</text>
+<polyline fill="none" stroke="black" points="12542,-121 12704,-121 "/>
+<text text-anchor="start" x="12550" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="12550" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ descending</text>
+<text text-anchor="start" x="12550" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype</text>
+<polyline fill="none" stroke="black" points="12542,-80 12704,-80 "/>
+<text text-anchor="start" x="12550" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12550" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12550" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node141&#45;&gt;Node142 -->
 <g id="edge141" class="edge">
 <title>Node141&#45;&gt;Node142</title>
-<path fill="none" stroke="midnightblue" d="M12268.25,-222.07C12274.15,-219.44 12280.12,-217.03 12286,-215 12374.28,-184.55 12409.94,-221.67 12493,-179 12513.86,-168.28 12533,-151.07 12548.22,-134.65"/>
-<polygon fill="none" stroke="midnightblue" points="12266.64,-218.96 12259.06,-226.37 12269.6,-225.3 12266.64,-218.96"/>
+<path fill="none" stroke="midnightblue" d="M12322.28,-222.15C12328.17,-219.5 12334.13,-217.07 12340,-215 12422.31,-186.04 12455.63,-219.35 12533,-179 12551.46,-169.37 12568.61,-154.7 12582.89,-140.06"/>
+<polygon fill="none" stroke="midnightblue" points="12320.66,-219.04 12313.1,-226.47 12323.63,-225.38 12320.66,-219.04"/>
 </g>
 <!-- Node144 -->
 <g id="node144" class="node">
 <title>Node144</title>
-<g id="a_node144"><a xlink:href="structtvm_1_1relax_1_1LayoutTransformAttrs.html" target="_top" xlink:title="Attributes used in layout_transform operator.">
-<polygon fill="white" stroke="black" points="12682,-28 12682,-151 12844,-151 12844,-28 12682,-28"/>
-<text text-anchor="start" x="12690" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LayoutTransform</text>
-<text text-anchor="middle" x="12763" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="12682,-121 12844,-121 "/>
-<text text-anchor="start" x="12690" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ index_map</text>
-<text text-anchor="start" x="12690" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_value</text>
-<text text-anchor="start" x="12690" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis_separators</text>
-<text text-anchor="start" x="12690" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ input_axis_separators</text>
-<polyline fill="none" stroke="black" points="12682,-69 12844,-69 "/>
-<text text-anchor="start" x="12690" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="12690" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="12690" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node144"><a xlink:href="structtvm_1_1relax_1_1StatisticalAttrs.html" target="_top" xlink:title="Attributes for statistical operators.">
+<polygon fill="white" stroke="black" points="12722,-44.5 12722,-134.5 12884,-134.5 12884,-44.5 12722,-44.5"/>
+<text text-anchor="middle" x="12803" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StatisticalAttrs</text>
+<polyline fill="none" stroke="black" points="12722,-115.5 12884,-115.5 "/>
+<text text-anchor="start" x="12730" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="12730" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ keepdims</text>
+<polyline fill="none" stroke="black" points="12722,-85.5 12884,-85.5 "/>
+<text text-anchor="start" x="12730" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12730" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12730" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node143&#45;&gt;Node144 -->
 <g id="edge143" class="edge">
 <title>Node143&#45;&gt;Node144</title>
-<path fill="none" stroke="midnightblue" d="M12434.23,-222C12440.13,-219.39 12446.11,-217 12452,-215 12546.25,-183.05 12584.24,-224 12673,-179 12686.88,-171.96 12699.98,-162.02 12711.67,-151.33"/>
-<polygon fill="none" stroke="midnightblue" points="12432.62,-218.89 12425.03,-226.28 12435.57,-225.24 12432.62,-218.89"/>
+<path fill="none" stroke="midnightblue" d="M12488.25,-222.07C12494.15,-219.44 12500.12,-217.03 12506,-215 12594.28,-184.55 12629.94,-221.67 12713,-179 12733.86,-168.28 12753,-151.07 12768.22,-134.65"/>
+<polygon fill="none" stroke="midnightblue" points="12486.64,-218.96 12479.06,-226.37 12489.6,-225.3 12486.64,-218.96"/>
 </g>
 <!-- Node146 -->
 <g id="node146" class="node">
 <title>Node146</title>
-<g id="a_node146"><a xlink:href="structtvm_1_1relax_1_1Conv1DTransposeAttrs.html" target="_top" xlink:title="Attributes used in Conv1DTranspose operator.">
-<polygon fill="white" stroke="black" points="12862,-0.5 12862,-178.5 13024,-178.5 13024,-0.5 12862,-0.5"/>
-<text text-anchor="start" x="12870" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv1DTranspose</text>
-<text text-anchor="middle" x="12943" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="12862,-148.5 13024,-148.5 "/>
-<text text-anchor="start" x="12870" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="12870" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="12870" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_padding</text>
-<text text-anchor="start" x="12870" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="12870" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
-<text text-anchor="start" x="12870" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
-<text text-anchor="start" x="12870" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
-<text text-anchor="start" x="12870" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<text text-anchor="start" x="12870" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="12862,-41.5 13024,-41.5 "/>
-<text text-anchor="start" x="12870" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="12870" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="12870" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node146"><a xlink:href="structtvm_1_1relax_1_1LayoutTransformAttrs.html" target="_top" xlink:title="Attributes used in layout_transform operator.">
+<polygon fill="white" stroke="black" points="12902,-28 12902,-151 13064,-151 13064,-28 12902,-28"/>
+<text text-anchor="start" x="12910" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LayoutTransform</text>
+<text text-anchor="middle" x="12983" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="12902,-121 13064,-121 "/>
+<text text-anchor="start" x="12910" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ index_map</text>
+<text text-anchor="start" x="12910" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ pad_value</text>
+<text text-anchor="start" x="12910" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis_separators</text>
+<text text-anchor="start" x="12910" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00">+ input_axis_separators</text>
+<polyline fill="none" stroke="black" points="12902,-69 13064,-69 "/>
+<text text-anchor="start" x="12910" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12910" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12910" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node145&#45;&gt;Node146 -->
 <g id="edge145" class="edge">
 <title>Node145&#45;&gt;Node146</title>
-<path fill="none" stroke="midnightblue" d="M12600.9,-222.08C12606.91,-219.42 12613,-217.01 12619,-215 12718.8,-181.66 12758.94,-226.17 12853,-179 12856.04,-177.48 12859.03,-175.81 12861.99,-174.03"/>
-<polygon fill="none" stroke="midnightblue" points="12599.14,-219.04 12591.55,-226.43 12602.09,-225.39 12599.14,-219.04"/>
+<path fill="none" stroke="midnightblue" d="M12654.23,-222C12660.13,-219.39 12666.11,-217 12672,-215 12766.25,-183.05 12804.24,-224 12893,-179 12906.88,-171.96 12919.98,-162.02 12931.67,-151.33"/>
+<polygon fill="none" stroke="midnightblue" points="12652.62,-218.89 12645.03,-226.28 12655.57,-225.24 12652.62,-218.89"/>
 </g>
 <!-- Node148 -->
 <g id="node148" class="node">
 <title>Node148</title>
-<g id="a_node148"><a xlink:href="structtvm_1_1relax_1_1Conv2DTransposeAttrs.html" target="_top" xlink:title="Attributes used in Conv2d operator.">
-<polygon fill="white" stroke="black" points="13042,-0.5 13042,-178.5 13204,-178.5 13204,-0.5 13042,-0.5"/>
-<text text-anchor="start" x="13050" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv2DTranspose</text>
-<text text-anchor="middle" x="13123" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="13042,-148.5 13204,-148.5 "/>
-<text text-anchor="start" x="13050" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
-<text text-anchor="start" x="13050" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
-<text text-anchor="start" x="13050" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_padding</text>
-<text text-anchor="start" x="13050" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
-<text text-anchor="start" x="13050" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
-<text text-anchor="start" x="13050" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
-<text text-anchor="start" x="13050" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
-<text text-anchor="start" x="13050" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
-<text text-anchor="start" x="13050" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
-<polyline fill="none" stroke="black" points="13042,-41.5 13204,-41.5 "/>
-<text text-anchor="start" x="13050" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="13050" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="13050" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node148"><a xlink:href="structtvm_1_1relax_1_1Conv1DTransposeAttrs.html" target="_top" xlink:title="Attributes used in Conv1DTranspose operator.">
+<polygon fill="white" stroke="black" points="13082,-0.5 13082,-178.5 13244,-178.5 13244,-0.5 13082,-0.5"/>
+<text text-anchor="start" x="13090" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv1DTranspose</text>
+<text text-anchor="middle" x="13163" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="13082,-148.5 13244,-148.5 "/>
+<text text-anchor="start" x="13090" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="13090" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="13090" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_padding</text>
+<text text-anchor="start" x="13090" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="13090" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
+<text text-anchor="start" x="13090" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
+<text text-anchor="start" x="13090" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
+<text text-anchor="start" x="13090" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<text text-anchor="start" x="13090" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="13082,-41.5 13244,-41.5 "/>
+<text text-anchor="start" x="13090" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13090" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13090" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node147&#45;&gt;Node148 -->
 <g id="edge147" class="edge">
 <title>Node147&#45;&gt;Node148</title>
-<path fill="none" stroke="midnightblue" d="M12768.69,-222.04C12774.77,-219.39 12780.93,-216.99 12787,-215 12892.02,-180.64 12934.04,-228.17 13033,-179 13035.94,-177.54 13038.85,-175.94 13041.72,-174.24"/>
-<polygon fill="none" stroke="midnightblue" points="12766.86,-219.03 12759.23,-226.38 12769.78,-225.39 12766.86,-219.03"/>
+<path fill="none" stroke="midnightblue" d="M12821.71,-222.09C12827.78,-219.43 12833.93,-217.01 12840,-215 12939.46,-182.02 12979.35,-226 13073,-179 13076.04,-177.48 13079.03,-175.81 13081.99,-174.03"/>
+<polygon fill="none" stroke="midnightblue" points="12819.87,-219.09 12812.25,-226.45 12822.8,-225.44 12819.87,-219.09"/>
 </g>
 <!-- Node150 -->
 <g id="node150" class="node">
 <title>Node150</title>
-<g id="a_node150"><a xlink:href="structtvm_1_1relax_1_1PermuteDimsAttrs.html" target="_top" xlink:title="Attributes used in permute_dims operator.">
-<polygon fill="white" stroke="black" points="13222.5,-50 13222.5,-129 13385.5,-129 13385.5,-50 13222.5,-50"/>
-<text text-anchor="middle" x="13304" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PermuteDimsAttrs</text>
-<polyline fill="none" stroke="black" points="13222.5,-110 13385.5,-110 "/>
-<text text-anchor="start" x="13230.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
-<polyline fill="none" stroke="black" points="13222.5,-91 13385.5,-91 "/>
-<text text-anchor="start" x="13230.5" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="13230.5" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="13230.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node150"><a xlink:href="structtvm_1_1relax_1_1GetValidCountsAttrs.html" target="_top" xlink:title="Attributes used in GetValidCounts operator.">
+<polygon fill="white" stroke="black" points="13262,-33.5 13262,-145.5 13424,-145.5 13424,-33.5 13262,-33.5"/>
+<text text-anchor="start" x="13270" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::GetValidCounts</text>
+<text text-anchor="middle" x="13343" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="13262,-115.5 13424,-115.5 "/>
+<text text-anchor="start" x="13270" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ score_threshold</text>
+<text text-anchor="start" x="13270" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ id_index</text>
+<text text-anchor="start" x="13270" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ score_index</text>
+<polyline fill="none" stroke="black" points="13262,-74.5 13424,-74.5 "/>
+<text text-anchor="start" x="13270" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13270" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13270" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node149&#45;&gt;Node150 -->
 <g id="edge149" class="edge">
 <title>Node149&#45;&gt;Node150</title>
-<path fill="none" stroke="midnightblue" d="M12934.87,-221.98C12940.88,-219.35 12946.98,-216.96 12953,-215 13063.92,-178.87 13108.19,-230.22 13213,-179 13236.76,-167.39 13258.24,-147.22 13274.36,-129.06"/>
-<polygon fill="none" stroke="midnightblue" points="12933.12,-218.94 12925.51,-226.31 12936.06,-225.29 12933.12,-218.94"/>
+<path fill="none" stroke="midnightblue" d="M12987.88,-222.03C12993.9,-219.38 12999.99,-216.98 13006,-215 13111.36,-180.27 13153.64,-228.34 13253,-179 13269.49,-170.81 13284.84,-158.47 13298.04,-145.58"/>
+<polygon fill="none" stroke="midnightblue" points="12986.13,-218.98 12978.53,-226.37 12989.07,-225.34 12986.13,-218.98"/>
 </g>
 <!-- Node152 -->
 <g id="node152" class="node">
 <title>Node152</title>
-<g id="a_node152"><a xlink:href="structtvm_1_1relax_1_1GroupNormAttrs.html" target="_top" xlink:title="Attributes used in group_norm operator.">
-<polygon fill="white" stroke="black" points="13404,-22.5 13404,-156.5 13566,-156.5 13566,-22.5 13404,-22.5"/>
-<text text-anchor="middle" x="13485" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::GroupNormAttrs</text>
-<polyline fill="none" stroke="black" points="13404,-137.5 13566,-137.5 "/>
-<text text-anchor="start" x="13412" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ num_groups</text>
-<text text-anchor="start" x="13412" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ channel_axis</text>
-<text text-anchor="start" x="13412" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
-<text text-anchor="start" x="13412" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
-<text text-anchor="start" x="13412" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
-<text text-anchor="start" x="13412" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
-<polyline fill="none" stroke="black" points="13404,-63.5 13566,-63.5 "/>
-<text text-anchor="start" x="13412" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="13412" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="13412" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node152"><a xlink:href="structtvm_1_1relax_1_1Conv2DTransposeAttrs.html" target="_top" xlink:title="Attributes used in Conv2d operator.">
+<polygon fill="white" stroke="black" points="13442,-0.5 13442,-178.5 13604,-178.5 13604,-0.5 13442,-0.5"/>
+<text text-anchor="start" x="13450" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Conv2DTranspose</text>
+<text text-anchor="middle" x="13523" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="13442,-148.5 13604,-148.5 "/>
+<text text-anchor="start" x="13450" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ strides</text>
+<text text-anchor="start" x="13450" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ padding</text>
+<text text-anchor="start" x="13450" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_padding</text>
+<text text-anchor="start" x="13450" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dilation</text>
+<text text-anchor="start" x="13450" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ groups</text>
+<text text-anchor="start" x="13450" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data_layout</text>
+<text text-anchor="start" x="13450" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ kernel_layout</text>
+<text text-anchor="start" x="13450" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_layout</text>
+<text text-anchor="start" x="13450" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ out_dtype</text>
+<polyline fill="none" stroke="black" points="13442,-41.5 13604,-41.5 "/>
+<text text-anchor="start" x="13450" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13450" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13450" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node152 -->
 <g id="edge151" class="edge">
 <title>Node151&#45;&gt;Node152</title>
-<path fill="none" stroke="midnightblue" d="M13100.11,-222.26C13106.37,-219.5 13112.73,-217.02 13119,-215 13236.35,-177.26 13283.05,-232.71 13394,-179 13405.9,-173.24 13417.22,-165.32 13427.58,-156.56"/>
-<polygon fill="none" stroke="midnightblue" points="13098.64,-219.09 13091.04,-226.47 13101.58,-225.44 13098.64,-219.09"/>
+<path fill="none" stroke="midnightblue" d="M13155.68,-221.99C13161.76,-219.35 13167.92,-216.97 13174,-215 13284.58,-179.25 13328.74,-230.34 13433,-179 13435.95,-177.55 13438.86,-175.96 13441.73,-174.26"/>
+<polygon fill="none" stroke="midnightblue" points="13153.85,-218.98 13146.21,-226.32 13156.76,-225.35 13153.85,-218.98"/>
 </g>
 <!-- Node154 -->
 <g id="node154" class="node">
 <title>Node154</title>
-<g id="a_node154"><a xlink:href="structtvm_1_1relax_1_1GatherNDAttrs.html" target="_top" xlink:title="Attributes used in gather_nd operators.">
-<polygon fill="white" stroke="black" points="13584,-50 13584,-129 13746,-129 13746,-50 13584,-50"/>
-<text text-anchor="middle" x="13665" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::GatherNDAttrs</text>
-<polyline fill="none" stroke="black" points="13584,-110 13746,-110 "/>
-<text text-anchor="start" x="13592" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ batch_dims</text>
-<polyline fill="none" stroke="black" points="13584,-91 13746,-91 "/>
-<text text-anchor="start" x="13592" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="13592" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="13592" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<g id="a_node154"><a xlink:href="structtvm_1_1relax_1_1PermuteDimsAttrs.html" target="_top" xlink:title="Attributes used in permute_dims operator.">
+<polygon fill="white" stroke="black" points="13622.5,-50 13622.5,-129 13785.5,-129 13785.5,-50 13622.5,-50"/>
+<text text-anchor="middle" x="13704" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PermuteDimsAttrs</text>
+<polyline fill="none" stroke="black" points="13622.5,-110 13785.5,-110 "/>
+<text text-anchor="start" x="13630.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
+<polyline fill="none" stroke="black" points="13622.5,-91 13785.5,-91 "/>
+<text text-anchor="start" x="13630.5" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13630.5" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13630.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node154 -->
 <g id="edge153" class="edge">
 <title>Node153&#45;&gt;Node154</title>
-<path fill="none" stroke="midnightblue" d="M13266.1,-222.22C13272.36,-219.47 13278.72,-217 13285,-215 13408.77,-175.65 13458.07,-235.52 13575,-179 13598.68,-167.56 13619.93,-147.39 13635.83,-129.2"/>
-<polygon fill="none" stroke="midnightblue" points="13264.63,-219.04 13257.02,-226.41 13267.56,-225.39 13264.63,-219.04"/>
+<path fill="none" stroke="midnightblue" d="M13321.11,-222.27C13327.37,-219.51 13333.73,-217.02 13340,-215 13456.49,-177.48 13502.87,-232.37 13613,-179 13636.8,-167.47 13658.28,-147.3 13674.39,-129.13"/>
+<polygon fill="none" stroke="midnightblue" points="13319.64,-219.09 13312.04,-226.48 13322.58,-225.44 13319.64,-219.09"/>
+</g>
+<!-- Node156 -->
+<g id="node156" class="node">
+<title>Node156</title>
+<g id="a_node156"><a xlink:href="structtvm_1_1relax_1_1GroupNormAttrs.html" target="_top" xlink:title="Attributes used in group_norm operator.">
+<polygon fill="white" stroke="black" points="13804,-22.5 13804,-156.5 13966,-156.5 13966,-22.5 13804,-22.5"/>
+<text text-anchor="middle" x="13885" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::GroupNormAttrs</text>
+<polyline fill="none" stroke="black" points="13804,-137.5 13966,-137.5 "/>
+<text text-anchor="start" x="13812" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ num_groups</text>
+<text text-anchor="start" x="13812" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ channel_axis</text>
+<text text-anchor="start" x="13812" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axes</text>
+<text text-anchor="start" x="13812" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ epsilon</text>
+<text text-anchor="start" x="13812" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ center</text>
+<text text-anchor="start" x="13812" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ scale</text>
+<polyline fill="none" stroke="black" points="13804,-63.5 13966,-63.5 "/>
+<text text-anchor="start" x="13812" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13812" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13812" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+</a>
+</g>
+</g>
+<!-- Node155&#45;&gt;Node156 -->
+<g id="edge155" class="edge">
+<title>Node155&#45;&gt;Node156</title>
+<path fill="none" stroke="midnightblue" d="M13487.1,-222.22C13493.36,-219.47 13499.72,-217 13506,-215 13628.92,-175.86 13677.73,-234.87 13794,-179 13805.92,-173.27 13817.25,-165.37 13827.61,-156.62"/>
+<polygon fill="none" stroke="midnightblue" points="13485.63,-219.05 13478.02,-226.42 13488.57,-225.4 13485.63,-219.05"/>
+</g>
+<!-- Node158 -->
+<g id="node158" class="node">
+<title>Node158</title>
+<g id="a_node158"><a xlink:href="structtvm_1_1relax_1_1GatherNDAttrs.html" target="_top" xlink:title="Attributes used in gather_nd operators.">
+<polygon fill="white" stroke="black" points="13984,-50 13984,-129 14146,-129 14146,-50 13984,-50"/>
+<text text-anchor="middle" x="14065" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::GatherNDAttrs</text>
+<polyline fill="none" stroke="black" points="13984,-110 14146,-110 "/>
+<text text-anchor="start" x="13992" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ batch_dims</text>
+<polyline fill="none" stroke="black" points="13984,-91 14146,-91 "/>
+<text text-anchor="start" x="13992" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="13992" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="13992" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+</a>
+</g>
+</g>
+<!-- Node157&#45;&gt;Node158 -->
+<g id="edge157" class="edge">
+<title>Node157&#45;&gt;Node158</title>
+<path fill="none" stroke="midnightblue" d="M13653.09,-222.18C13659.35,-219.44 13665.71,-216.98 13672,-215 13801.35,-174.25 13852.75,-237.7 13975,-179 13998.71,-167.62 14019.96,-147.46 14035.86,-129.26"/>
+<polygon fill="none" stroke="midnightblue" points="13651.62,-219 13644,-226.37 13654.55,-225.36 13651.62,-219"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/functions_c.html b/docs/reference/api/doxygen/functions_c.html
index 3e2f34ea638..67c4f0d745e 100644
--- a/docs/reference/api/doxygen/functions_c.html
+++ b/docs/reference/api/doxygen/functions_c.html
@@ -354,6 +354,9 @@ $(function() {
 , <a class="el" href="structtvm_1_1ffi_1_1TypeTraits_3_01tvm_1_1tirx_1_1StringImm_01_4.html#ab9db51a21bfa9716d3eedc6b88eacf9d">tvm::ffi::TypeTraits&lt; tvm::tirx::StringImm &gt;</a>
 , <a class="el" href="classtvm_1_1PrimExpr.html#a8839598722144f363e11e377ebd6f5ad">tvm::PrimExpr</a>
 </li>
+<li>coord_start
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#ae7348ffbe5e56d404d819c33b0b1ee17">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>coordinate_transformation_mode
 : <a class="el" href="structtvm_1_1relax_1_1Resize2DAttrs.html#ae06df270d320a24daf50f8bf4785d356">tvm::relax::Resize2DAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1Resize3DAttrs.html#aa8fa3788651d5b45ca9cf43e810ede9f">tvm::relax::Resize3DAttrs</a>
diff --git a/docs/reference/api/doxygen/functions_f.html b/docs/reference/api/doxygen/functions_f.html
index 910be23db4d..7001fe75d13 100644
--- a/docs/reference/api/doxygen/functions_f.html
+++ b/docs/reference/api/doxygen/functions_f.html
@@ -381,6 +381,9 @@ $(function() {
 <li>For()
 : <a class="el" href="classtvm_1_1tirx_1_1For.html#a844af9c1431d5f014dbffe21d1befa67">tvm::tirx::For</a>
 </li>
+<li>force_suppress
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a30db2e22e765cc178c4e196f9a478dbd">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>ForDevice()
 : <a class="el" href="classtvm_1_1VirtualDevice.html#a9712f748d0d6671ced9be72f5e11d492">tvm::VirtualDevice</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_func_r.html b/docs/reference/api/doxygen/functions_func_r.html
index 9fc1bdce36a..2d59b47d042 100644
--- a/docs/reference/api/doxygen/functions_func_r.html
+++ b/docs/reference/api/doxygen/functions_func_r.html
@@ -206,6 +206,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html#a0792790fb3cf55d5fa7f393080ead102">tvm::relax::FunctionPatternNode</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherElementsAttrs.html#a04d5422d94192de1f875f5de481a4faa">tvm::relax::GatherElementsAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html#afd37db6b46fc7a1181993feea4f06815">tvm::relax::GatherNDAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#ac093406b4fdffdace485220dd6f35fd8">tvm::relax::GetValidCountsAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GridSampleAttrs.html#a5a08006ea5c67dc9c06ca332c4e64749">tvm::relax::GridSampleAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GroupNormAttrs.html#af05bf4057cb6a9015d40ff8b354e8e49">tvm::relax::GroupNormAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1HintOnDeviceAttrs.html#aafc4b384dc8864f3baf05fca8e3f121c">tvm::relax::HintOnDeviceAttrs</a>
@@ -224,6 +225,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html#a4fd708f2424d756743dbb114ba962621">tvm::relax::MultiboxTransformLocAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html#a7fe2209d41499d30276683c73e5f6284">tvm::relax::MultinomialFromUniformAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1NLLLossAttrs.html#a06a11639a3dfe3bcfea23bd170214115">tvm::relax::NLLLossAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a72f3de06b40667bf7062fe0802ff07a2">tvm::relax::NonMaximumSuppressionAttrs</a>
 , <a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html#a85a18260cb43afd7f42fe3086ba03add">tvm::relax::NotPatternNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html#a8c7707ced75966420bebd5170f982fbb">tvm::relax::ObjectStructInfoNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectTypeNode.html#a8d840701bc48696bbb21b1a5012a3a42">tvm::relax::ObjectTypeNode</a>
diff --git a/docs/reference/api/doxygen/functions_func_t.html b/docs/reference/api/doxygen/functions_func_t.html
index 0b5b6066a21..1e873dfb74a 100644
--- a/docs/reference/api/doxygen/functions_func_t.html
+++ b/docs/reference/api/doxygen/functions_func_t.html
@@ -434,6 +434,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html#a6220b1d9063fabf38a07f6132228682b">tvm::relax::FunctionPatternNode</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherElementsAttrs.html#aa0b01a8fe8f9ca06d3dc0dba90ca774b">tvm::relax::GatherElementsAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html#aba75fd0bcdd407675c27679a0d53a05c">tvm::relax::GatherNDAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#a74b1c285d1e9ec7d162c5164865c73a7">tvm::relax::GetValidCountsAttrs</a>
 , <a class="el" href="classtvm_1_1relax_1_1GlobalVarPatternNode.html#a0ef276ec604a612833e3f878963ab55a">tvm::relax::GlobalVarPatternNode</a>
 , <a class="el" href="structtvm_1_1relax_1_1GridSampleAttrs.html#a3455781501362fbe2ce8b5fe12c8a478">tvm::relax::GridSampleAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GroupNormAttrs.html#a7446350710bb6b022809d5acbe3905cd">tvm::relax::GroupNormAttrs</a>
@@ -453,6 +454,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html#a82521443a97147e24232a0a6c645aebf">tvm::relax::MultiboxTransformLocAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html#aeb855e5c4269aefd63ba33f5016636d1">tvm::relax::MultinomialFromUniformAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1NLLLossAttrs.html#a5919046905b78c21e209d8abef3b19ff">tvm::relax::NLLLossAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a6e6c5750c7178210630ccfb717cff1a1">tvm::relax::NonMaximumSuppressionAttrs</a>
 , <a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html#a7daf856feccb5fe4c0a64219e88e4de7">tvm::relax::NotPatternNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html#ab7342911a0b2c562976bc353474089d3">tvm::relax::ObjectStructInfoNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectTypeNode.html#aafc9d77a179db3a15d7e836d32c62ba7">tvm::relax::ObjectTypeNode</a>
diff --git a/docs/reference/api/doxygen/functions_i.html b/docs/reference/api/doxygen/functions_i.html
index 9785b4af8e4..d0cfc7ce517 100644
--- a/docs/reference/api/doxygen/functions_i.html
+++ b/docs/reference/api/doxygen/functions_i.html
@@ -67,6 +67,10 @@ $(function() {
 <li>Id()
 : <a class="el" href="classtvm_1_1relax_1_1Id.html#af6fd74e3a5951752c054880b774a6513">tvm::relax::Id</a>
 </li>
+<li>id_index
+: <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#a47ee6cfb806e87650b6bc1b116fc3667">tvm::relax::GetValidCountsAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a6da157689574611db9f47f72b3a83f18">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>IdDoc()
 : <a class="el" href="classtvm_1_1script_1_1printer_1_1IdDoc.html#a6e58dcd3d8140dc477cbdefe78a4a0c7">tvm::script::printer::IdDoc</a>
 </li>
@@ -144,7 +148,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1tirx_1_1Layout.html#a13d29443c6cc194935017ad25b550eb4">tvm::tirx::Layout</a>
 </li>
 <li>IndexWithNegativeIndices()
-: <a class="el" href="classtvm_1_1te_1_1Tensor.html#a473c010f36297e4091bc476a1a88cd51">tvm::te::Tensor</a>
+: <a class="el" href="classtvm_1_1te_1_1Tensor.html#a13b0c7e854e12eb1ee7420cd9e96e7a2">tvm::te::Tensor</a>
 </li>
 <li>indices
 : <a class="el" href="classtvm_1_1arith_1_1IterMapResultNode.html#a6a0eb4ff9a15c29e2fd686b1155606d6">tvm::arith::IterMapResultNode</a>
@@ -296,6 +300,9 @@ $(function() {
 <li>IntValue()
 : <a class="el" href="classtvm_1_1Integer.html#abae4eff906166502c2a982e8a121d81d">tvm::Integer</a>
 </li>
+<li>invalid_to_bottom
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#adfdec18ca328f0da07f04136d2df8f5c">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>Inverse()
 : <a class="el" href="classtvm_1_1tirx_1_1IndexMap.html#a7e855a23d8d9957a5ee5a360c0ae98ba">tvm::tirx::IndexMap</a>
 </li>
@@ -305,6 +312,9 @@ $(function() {
 <li>InvokeClosurePacked()
 : <a class="el" href="classtvm_1_1runtime_1_1vm_1_1VirtualMachine.html#a2f3df24080abed2ca327c47f0ddb782d">tvm::runtime::vm::VirtualMachine</a>
 </li>
+<li>iou_threshold
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a5ffb4dafe48a2d6bae9e9928de44bda4">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>ir_prefix
 : <a class="el" href="classtvm_1_1PrinterConfigNode.html#afeed5ce9bf46b8e845dfd027103ef24b">tvm::PrinterConfigNode</a>
 </li>
@@ -315,7 +325,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#af63e228f3faaa0d87fdd52e1fe921dd3">tvm::script::ir_builder::IRBuilder</a>
 </li>
 <li>IRBuilderFrame()
-: <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a192ebbe14a0ee8c3e1bf800d19121506">tvm::script::ir_builder::IRBuilderFrame</a>
+: <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">tvm::script::ir_builder::IRBuilderFrame</a>
 </li>
 <li>IRDocsifier()
 : <a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifier.html#a60a26de78df55aa69eece257efb188f7">tvm::script::printer::IRDocsifier</a>
diff --git a/docs/reference/api/doxygen/functions_m.html b/docs/reference/api/doxygen/functions_m.html
index 089612c63aa..a70fc001925 100644
--- a/docs/reference/api/doxygen/functions_m.html
+++ b/docs/reference/api/doxygen/functions_m.html
@@ -129,6 +129,9 @@ $(function() {
 <li>Max()
 : <a class="el" href="classtvm_1_1tirx_1_1Max.html#a4b4f8809bc89ca725d3adbd1755cfa28">tvm::tirx::Max</a>
 </li>
+<li>max_output_size
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a77a5a8b1fd1f80932cd1d402533921d3">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>max_value
 : <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a7187224ffaf688dd1aa0f6069b393f92">tvm::arith::ConstIntBoundNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_r.html b/docs/reference/api/doxygen/functions_r.html
index 557b8795faa..66f6d17620a 100644
--- a/docs/reference/api/doxygen/functions_r.html
+++ b/docs/reference/api/doxygen/functions_r.html
@@ -77,7 +77,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1Range.html#a9d58cccc53897fee0c80ab1437da1f0f">tvm::Range</a>
 </li>
 <li>RangeNode()
-: <a class="el" href="classtvm_1_1RangeNode.html#a4bbc33969cb484c20306da1d2b9fa1fd">tvm::RangeNode</a>
+: <a class="el" href="classtvm_1_1RangeNode.html#ab845f7ed4ed85e360b730df3450d1aab">tvm::RangeNode</a>
 </li>
 <li>ranges
 : <a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html#a91a45d8a95a6deecbc881abb4ba3b38f">tvm::arith::IntConstraintsNode</a>
@@ -249,6 +249,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html#a0792790fb3cf55d5fa7f393080ead102">tvm::relax::FunctionPatternNode</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherElementsAttrs.html#a04d5422d94192de1f875f5de481a4faa">tvm::relax::GatherElementsAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html#afd37db6b46fc7a1181993feea4f06815">tvm::relax::GatherNDAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#ac093406b4fdffdace485220dd6f35fd8">tvm::relax::GetValidCountsAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GridSampleAttrs.html#a5a08006ea5c67dc9c06ca332c4e64749">tvm::relax::GridSampleAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GroupNormAttrs.html#af05bf4057cb6a9015d40ff8b354e8e49">tvm::relax::GroupNormAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1HintOnDeviceAttrs.html#aafc4b384dc8864f3baf05fca8e3f121c">tvm::relax::HintOnDeviceAttrs</a>
@@ -267,6 +268,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html#a4fd708f2424d756743dbb114ba962621">tvm::relax::MultiboxTransformLocAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html#a7fe2209d41499d30276683c73e5f6284">tvm::relax::MultinomialFromUniformAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1NLLLossAttrs.html#a06a11639a3dfe3bcfea23bd170214115">tvm::relax::NLLLossAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a72f3de06b40667bf7062fe0802ff07a2">tvm::relax::NonMaximumSuppressionAttrs</a>
 , <a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html#a85a18260cb43afd7f42fe3086ba03add">tvm::relax::NotPatternNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html#a8c7707ced75966420bebd5170f982fbb">tvm::relax::ObjectStructInfoNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectTypeNode.html#a8d840701bc48696bbb21b1a5012a3a42">tvm::relax::ObjectTypeNode</a>
@@ -654,6 +656,9 @@ $(function() {
 , <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tirx_1_1PrimFuncFrameNode.html#a6dbc186d0e1461586025b38f10a67dee">tvm::script::ir_builder::tirx::PrimFuncFrameNode</a>
 , <a class="el" href="classtvm_1_1tirx_1_1PrimFuncNode.html#aeeeccf0a231507f6870503e127fa0567">tvm::tirx::PrimFuncNode</a>
 </li>
+<li>return_indices
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a13070ecbc0317caf064e744295ba356f">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>return_type
 : <a class="el" href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#afa0b2960cc5f30fcdfca365357d266b1">tvm::script::printer::FunctionDocNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_s.html b/docs/reference/api/doxygen/functions_s.html
index e470dda97f9..2a50187cc5f 100644
--- a/docs/reference/api/doxygen/functions_s.html
+++ b/docs/reference/api/doxygen/functions_s.html
@@ -160,6 +160,13 @@ $(function() {
 <li>ScopeStack()
 : <a class="el" href="classtvm_1_1ScopeStack.html#a20b115b788a022d5537dce22673e728c">tvm::ScopeStack&lt; T &gt;</a>
 </li>
+<li>score_index
+: <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#ac8558844eea7cc6c172cd796e04c353e">tvm::relax::GetValidCountsAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a4437e5238ce5e9ac67e824844fee0cdc">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
+<li>score_threshold
+: <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#aef1fa8314c2b096acfb02d19c8d86533">tvm::relax::GetValidCountsAttrs</a>
+</li>
 <li>Script()
 : <a class="el" href="classtvm_1_1TVMScriptPrinter.html#ab62263eb04667997d9485daa6cb0c6c5">tvm::TVMScriptPrinter</a>
 </li>
@@ -251,7 +258,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1ir_1_1ConfigSchema.html#a6022a9eb81fe52e9fe879442b8da99e1">tvm::ir::ConfigSchema</a>
 </li>
 <li>set_fallback()
-: <a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifierFunctor.html#acf54fd25ac61d1528a7b2ba50583c43f">tvm::script::printer::IRDocsifierFunctor&lt; R, Args &gt;</a>
+: <a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifierFunctor.html#a27680aed8d4a7014870951bc3c53d7b4">tvm::script::printer::IRDocsifierFunctor&lt; R, Args &gt;</a>
 </li>
 <li>set_is_pure()
 : <a class="el" href="classtvm_1_1s__tir_1_1InstructionKindRegEntry.html#ad6c916721cc9e734f01de1b16d803b60">tvm::s_tir::InstructionKindRegEntry</a>
@@ -436,13 +443,13 @@ $(function() {
 : <a class="el" href="classtvm_1_1script_1_1printer_1_1DocNode.html#adc667b2f937a0a475565d3b6b2c51fe4">tvm::script::printer::DocNode</a>
 </li>
 <li>SourceMap()
-: <a class="el" href="classtvm_1_1SourceMap.html#a30ac6516106068debbc6af107f93e3e5">tvm::SourceMap</a>
+: <a class="el" href="classtvm_1_1SourceMap.html#a9f10049893326844c3f01daad7c121e9">tvm::SourceMap</a>
 </li>
 <li>space_generator
 : <a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1TuneContextNode.html#a5dc5c59c99ac12b6020dc8458f3fe208">tvm::s_tir::meta_schedule::TuneContextNode</a>
 </li>
 <li>SpaceGenerator()
-: <a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1SpaceGenerator.html#a214c85610c9564e38a53a999c196c1fe">tvm::s_tir::meta_schedule::SpaceGenerator</a>
+: <a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1SpaceGenerator.html#a1d3274422fc78fd0af75da99cc623f98">tvm::s_tir::meta_schedule::SpaceGenerator</a>
 </li>
 <li>SpaceGeneratorUnion()
 : <a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1SpaceGenerator.html#a74554f3cf874b900cdce36a5e4f54c23">tvm::s_tir::meta_schedule::SpaceGenerator</a>
@@ -552,7 +559,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1script_1_1printer_1_1StmtDoc.html#adec8d59e41d8a4093fb310089bf2c3ba">tvm::script::printer::StmtDoc</a>
 </li>
 <li>StmtNode()
-: <a class="el" href="classtvm_1_1tirx_1_1StmtNode.html#a93524f007313a50107df74db46979532">tvm::tirx::StmtNode</a>
+: <a class="el" href="classtvm_1_1tirx_1_1StmtNode.html#a813b36d5b9d1f83085515b2a9abd7756">tvm::tirx::StmtNode</a>
 </li>
 <li>stmts
 : <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tirx_1_1TIRFrameNode.html#a776930fd20b0f6d935f1ea97b29805dd">tvm::script::ir_builder::tirx::TIRFrameNode</a>
diff --git a/docs/reference/api/doxygen/functions_t.html b/docs/reference/api/doxygen/functions_t.html
index 2f869e9e69a..77e35097571 100644
--- a/docs/reference/api/doxygen/functions_t.html
+++ b/docs/reference/api/doxygen/functions_t.html
@@ -137,7 +137,7 @@ $(function() {
 : <a class="el" href="structtvm_1_1relax_1_1distributed_1_1Axis.html#af05e0215bba34ea04ed67a5bedf9f8d0">tvm::relax::distributed::Axis</a>
 </li>
 <li>Tensor()
-: <a class="el" href="classtvm_1_1runtime_1_1Tensor.html#ad14da2a37cb889330560417225fe8625">tvm::runtime::Tensor</a>
+: <a class="el" href="classtvm_1_1runtime_1_1Tensor.html#a13828a9652f856b2e654c143cd29eee6">tvm::runtime::Tensor</a>
 , <a class="el" href="classtvm_1_1te_1_1Tensor.html#a27b4276ab6a34d81f93ec4a1098873bc">tvm::te::Tensor</a>
 </li>
 <li>tensor_sinfo
@@ -162,7 +162,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1TensorMapType.html#a159b7cac49553b777e9ece0dd1218b71">tvm::TensorMapType</a>
 </li>
 <li>TensorStructInfo()
-: <a class="el" href="classtvm_1_1relax_1_1TensorStructInfo.html#a904a13a5feafb7e650e04200ae176a00">tvm::relax::TensorStructInfo</a>
+: <a class="el" href="classtvm_1_1relax_1_1TensorStructInfo.html#a688c9bc680651490a187569499f75c51">tvm::relax::TensorStructInfo</a>
 </li>
 <li>TensorType()
 : <a class="el" href="classtvm_1_1relax_1_1TensorType.html#a172510807c7cacdff959549792211841">tvm::relax::TensorType</a>
@@ -236,6 +236,9 @@ $(function() {
 <li>ToDual()
 : <a class="el" href="classtvm_1_1tirx_1_1LayoutAxis.html#ac99bebc35ba0cca2afc9fff9572f7390">tvm::tirx::LayoutAxis</a>
 </li>
+<li>top_k
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a606a2e78db8c9db146a4354f31f7f3ac">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>ToPrimal()
 : <a class="el" href="classtvm_1_1tirx_1_1LayoutAxis.html#a8e6ef4edc95b1229efc765229a8289bd">tvm::tirx::LayoutAxis</a>
 </li>
@@ -567,6 +570,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1relax_1_1FunctionPatternNode.html#a6220b1d9063fabf38a07f6132228682b">tvm::relax::FunctionPatternNode</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherElementsAttrs.html#aa0b01a8fe8f9ca06d3dc0dba90ca774b">tvm::relax::GatherElementsAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html#aba75fd0bcdd407675c27679a0d53a05c">tvm::relax::GatherNDAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#a74b1c285d1e9ec7d162c5164865c73a7">tvm::relax::GetValidCountsAttrs</a>
 , <a class="el" href="classtvm_1_1relax_1_1GlobalVarPatternNode.html#a0ef276ec604a612833e3f878963ab55a">tvm::relax::GlobalVarPatternNode</a>
 , <a class="el" href="structtvm_1_1relax_1_1GridSampleAttrs.html#a3455781501362fbe2ce8b5fe12c8a478">tvm::relax::GridSampleAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1GroupNormAttrs.html#a7446350710bb6b022809d5acbe3905cd">tvm::relax::GroupNormAttrs</a>
@@ -586,6 +590,7 @@ $(function() {
 , <a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html#a82521443a97147e24232a0a6c645aebf">tvm::relax::MultiboxTransformLocAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html#aeb855e5c4269aefd63ba33f5016636d1">tvm::relax::MultinomialFromUniformAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1NLLLossAttrs.html#a5919046905b78c21e209d8abef3b19ff">tvm::relax::NLLLossAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a6e6c5750c7178210630ccfb717cff1a1">tvm::relax::NonMaximumSuppressionAttrs</a>
 , <a class="el" href="classtvm_1_1relax_1_1NotPatternNode.html#a7daf856feccb5fe4c0a64219e88e4de7">tvm::relax::NotPatternNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectStructInfoNode.html#ab7342911a0b2c562976bc353474089d3">tvm::relax::ObjectStructInfoNode</a>
 , <a class="el" href="classtvm_1_1relax_1_1ObjectTypeNode.html#aafc9d77a179db3a15d7e836d32c62ba7">tvm::relax::ObjectTypeNode</a>
@@ -1093,14 +1098,12 @@ $(function() {
 , <a class="el" href="classtvm_1_1tirx_1_1PrimFuncNode.html#ab8d16ccb2706c90cd8a5eeb340d9567d">tvm::tirx::PrimFuncNode</a>
 , <a class="el" href="classtvm_1_1tirx_1_1StmtNode.html#ae2b42499d2d99d16d217897e13fd1025">tvm::tirx::StmtNode</a>
 </li>
-<li>type
-: <a class="el" href="structtvm_1_1relax_1_1PairCons.html#aa7fe6fdef3ab68d2f5176485000646b9">tvm::relax::PairCons</a>
-</li>
 <li>Type
 : <a class="el" href="structtvm_1_1relax_1_1PairCons.html#ab64ed8db46c468684a6e00fcb6530647">tvm::relax::PairCons</a>
 </li>
-<li>type()
-: <a class="el" href="classtvm_1_1runtime_1_1memory_1_1Allocator.html#a5690ce0a8e9e25bd8e5568173cc0b1bb">tvm::runtime::memory::Allocator</a>
+<li>type
+: <a class="el" href="structtvm_1_1relax_1_1PairCons.html#aa7fe6fdef3ab68d2f5176485000646b9">tvm::relax::PairCons</a>
+, <a class="el" href="classtvm_1_1runtime_1_1memory_1_1Allocator.html#a5690ce0a8e9e25bd8e5568173cc0b1bb">tvm::runtime::memory::Allocator</a>
 </li>
 <li>type_annotation
 : <a class="el" href="classtvm_1_1tirx_1_1VarNode.html#a22facea20cdb52bed463ff38dc67363c">tvm::tirx::VarNode</a>
diff --git a/docs/reference/api/doxygen/functions_v.html b/docs/reference/api/doxygen/functions_v.html
index ca674726cee..eb3e0a7a5db 100644
--- a/docs/reference/api/doxygen/functions_v.html
+++ b/docs/reference/api/doxygen/functions_v.html
@@ -111,7 +111,7 @@ $(function() {
 : <a class="el" href="classtvm_1_1relax_1_1BindingNode.html#a31222a9c83a8532274cd8a56f991157b">tvm::relax::BindingNode</a>
 </li>
 <li>Var()
-: <a class="el" href="classtvm_1_1relax_1_1Var.html#a5e15e4c7368634a2d2fd8bc4d2166604">tvm::relax::Var</a>
+: <a class="el" href="classtvm_1_1relax_1_1Var.html#a7b1a2779f10bd7a2ad3aa4360b22982a">tvm::relax::Var</a>
 </li>
 <li>var
 : <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1relax_1_1IfFrameNode.html#a9569fefa2cbba1619bc7b32bc784fc16">tvm::script::ir_builder::relax::IfFrameNode</a>
@@ -120,7 +120,7 @@ $(function() {
 , <a class="el" href="classtvm_1_1tirx_1_1LetNode.html#acb79532c1ca67a7b6f64a8d6270b5354">tvm::tirx::LetNode</a>
 </li>
 <li>Var()
-: <a class="el" href="classtvm_1_1tirx_1_1Var.html#ac54ff2fdbfdeb0add67235890e9f8ea8">tvm::tirx::Var</a>
+: <a class="el" href="classtvm_1_1tirx_1_1Var.html#a0990bda0e97f2b938c0dde8b5120f2da">tvm::tirx::Var</a>
 </li>
 <li>var_name
 : <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1relax_1_1IfFrameNode.html#ab7e517b6100fa4c236bd88cc1a9a600a">tvm::script::ir_builder::relax::IfFrameNode</a>
diff --git a/docs/reference/api/doxygen/functions_vars_c.html b/docs/reference/api/doxygen/functions_vars_c.html
index bed5f44e0ff..ee29f0d65c1 100644
--- a/docs/reference/api/doxygen/functions_vars_c.html
+++ b/docs/reference/api/doxygen/functions_vars_c.html
@@ -156,6 +156,9 @@ $(function() {
 <li>constants
 : <a class="el" href="classtvm_1_1runtime_1_1vm_1_1VMExecutable.html#a8db062d10acf0ed58cd2d00426a6106f">tvm::runtime::vm::VMExecutable</a>
 </li>
+<li>coord_start
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#ae7348ffbe5e56d404d819c33b0b1ee17">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>coordinate_transformation_mode
 : <a class="el" href="structtvm_1_1relax_1_1Resize2DAttrs.html#ae06df270d320a24daf50f8bf4785d356">tvm::relax::Resize2DAttrs</a>
 , <a class="el" href="structtvm_1_1relax_1_1Resize3DAttrs.html#aa8fa3788651d5b45ca9cf43e810ede9f">tvm::relax::Resize3DAttrs</a>
diff --git a/docs/reference/api/doxygen/functions_vars_f.html b/docs/reference/api/doxygen/functions_vars_f.html
index e007740acbf..a0cfee140c6 100644
--- a/docs/reference/api/doxygen/functions_vars_f.html
+++ b/docs/reference/api/doxygen/functions_vars_f.html
@@ -217,6 +217,9 @@ $(function() {
 <li>fn_outputs_
 : <a class="el" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">tvm::relax::DataflowBlockRewriteNode</a>
 </li>
+<li>force_suppress
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a30db2e22e765cc178c4e196f9a478dbd">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>format
 : <a class="el" href="structtvm_1_1runtime_1_1vm_1_1TensorCacheMetadata_1_1FileRecord.html#a943d99d778a5147d93fc228c0cf30f56">tvm::runtime::vm::TensorCacheMetadata::FileRecord</a>
 , <a class="el" href="structtvm_1_1runtime_1_1vm_1_1TensorCacheMetadata_1_1FileRecord_1_1ParamRecord.html#a8c2f308b6b47ad40505d61fe98ffc3b6">tvm::runtime::vm::TensorCacheMetadata::FileRecord::ParamRecord</a>
diff --git a/docs/reference/api/doxygen/functions_vars_i.html b/docs/reference/api/doxygen/functions_vars_i.html
index 8bd482efb9c..4cd8d265364 100644
--- a/docs/reference/api/doxygen/functions_vars_i.html
+++ b/docs/reference/api/doxygen/functions_vars_i.html
@@ -64,6 +64,10 @@ $(function() {
 &#160;
 
 <h3><a id="index_i"></a>- i -</h3><ul>
+<li>id_index
+: <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#a47ee6cfb806e87650b6bc1b116fc3667">tvm::relax::GetValidCountsAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a6da157689574611db9f47f72b3a83f18">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>identity_element
 : <a class="el" href="classtvm_1_1tirx_1_1CommReducerNode.html#a65a87106ebe2e8f01b8bf8e796f5f8b9">tvm::tirx::CommReducerNode</a>
 </li>
@@ -159,9 +163,15 @@ $(function() {
 <li>int_set
 : <a class="el" href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">tvm::arith::Analyzer</a>
 </li>
+<li>invalid_to_bottom
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#adfdec18ca328f0da07f04136d2df8f5c">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>inverse_index_map
 : <a class="el" href="classtvm_1_1tirx_1_1IndexMapNode.html#a998ba6452bdeb647069c5e897a54f2e1">tvm::tirx::IndexMapNode</a>
 </li>
+<li>iou_threshold
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a5ffb4dafe48a2d6bae9e9928de44bda4">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>ir_prefix
 : <a class="el" href="classtvm_1_1PrinterConfigNode.html#afeed5ce9bf46b8e845dfd027103ef24b">tvm::PrinterConfigNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_vars_m.html b/docs/reference/api/doxygen/functions_vars_m.html
index bebe49f39b2..e8bc375ed85 100644
--- a/docs/reference/api/doxygen/functions_vars_m.html
+++ b/docs/reference/api/doxygen/functions_vars_m.html
@@ -80,6 +80,9 @@ $(function() {
 <li>matched_expr
 : <a class="el" href="classtvm_1_1relax_1_1transform_1_1PatternCheckContextNode.html#aecf49329b2d1df52bef769046a6c8471">tvm::relax::transform::PatternCheckContextNode</a>
 </li>
+<li>max_output_size
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a77a5a8b1fd1f80932cd1d402533921d3">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>max_value
 : <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a7187224ffaf688dd1aa0f6069b393f92">tvm::arith::ConstIntBoundNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_vars_r.html b/docs/reference/api/doxygen/functions_vars_r.html
index 798ebf3d677..53d21a369ad 100644
--- a/docs/reference/api/doxygen/functions_vars_r.html
+++ b/docs/reference/api/doxygen/functions_vars_r.html
@@ -154,6 +154,9 @@ $(function() {
 , <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tirx_1_1PrimFuncFrameNode.html#a6dbc186d0e1461586025b38f10a67dee">tvm::script::ir_builder::tirx::PrimFuncFrameNode</a>
 , <a class="el" href="classtvm_1_1tirx_1_1PrimFuncNode.html#aeeeccf0a231507f6870503e127fa0567">tvm::tirx::PrimFuncNode</a>
 </li>
+<li>return_indices
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a13070ecbc0317caf064e744295ba356f">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>return_type
 : <a class="el" href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html#afa0b2960cc5f30fcdfca365357d266b1">tvm::script::printer::FunctionDocNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_vars_s.html b/docs/reference/api/doxygen/functions_vars_s.html
index 85d731533ce..d874da1846d 100644
--- a/docs/reference/api/doxygen/functions_vars_s.html
+++ b/docs/reference/api/doxygen/functions_vars_s.html
@@ -87,6 +87,13 @@ $(function() {
 <li>scope
 : <a class="el" href="structtvm_1_1s__tir_1_1SBlockInfo.html#acd18baebd5b41aa8abe4753660a9803a">tvm::s_tir::SBlockInfo</a>
 </li>
+<li>score_index
+: <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#ac8558844eea7cc6c172cd796e04c353e">tvm::relax::GetValidCountsAttrs</a>
+, <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a4437e5238ce5e9ac67e824844fee0cdc">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
+<li>score_threshold
+: <a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html#aef1fa8314c2b096acfb02d19c8d86533">tvm::relax::GetValidCountsAttrs</a>
+</li>
 <li>search_strategy
 : <a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1TuneContextNode.html#a743464e5d493caa9982a33bcd698ac9c">tvm::s_tir::meta_schedule::TuneContextNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/functions_vars_t.html b/docs/reference/api/doxygen/functions_vars_t.html
index 0a84f3b8d5e..a86bef53dba 100644
--- a/docs/reference/api/doxygen/functions_vars_t.html
+++ b/docs/reference/api/doxygen/functions_vars_t.html
@@ -135,6 +135,9 @@ $(function() {
 <li>to_users_
 : <a class="el" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">tvm::relax::DataflowBlockRewriteNode</a>
 </li>
+<li>top_k
+: <a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html#a606a2e78db8c9db146a4354f31f7f3ac">tvm::relax::NonMaximumSuppressionAttrs</a>
+</li>
 <li>total_timer
 : <a class="el" href="classtvm_1_1s__tir_1_1meta__schedule_1_1ProfilerNode.html#a471ccef4fb1252ba84603deb04b4337d">tvm::s_tir::meta_schedule::ProfilerNode</a>
 </li>
diff --git a/docs/reference/api/doxygen/hierarchy.html b/docs/reference/api/doxygen/hierarchy.html
index 73b2e6059a8..ed39d6525d5 100644
--- a/docs/reference/api/doxygen/hierarchy.html
+++ b/docs/reference/api/doxygen/hierarchy.html
@@ -266,118 +266,122 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 <tr id="row_120_1_19_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1AdaptivePool3DAttrs.html" target="_self">tvm::relax::AdaptivePool3DAttrs</a></td><td class="desc">Attributes for 3d adaptive pool operator </td></tr>
 <tr id="row_120_1_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_20_" class="arrow" onclick="toggleFolder('120_1_20_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ToVDeviceAttrs &gt;</a></td><td class="desc"></td></tr>
 <tr id="row_120_1_20_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ToVDeviceAttrs.html" target="_self">tvm::relax::ToVDeviceAttrs</a></td><td class="desc">Attributes used in to_vdevice </td></tr>
-<tr id="row_120_1_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_21_" class="arrow" onclick="toggleFolder('120_1_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; IndexPutAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_21_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1IndexPutAttrs.html" target="_self">tvm::relax::IndexPutAttrs</a></td><td class="desc">Attributes used in index_put operator </td></tr>
-<tr id="row_120_1_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_22_" class="arrow" onclick="toggleFolder('120_1_22_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_22_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ExpandDimsAttrs.html" target="_self">tvm::relax::ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
-<tr id="row_120_1_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_23_" class="arrow" onclick="toggleFolder('120_1_23_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ConcatAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_23_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ConcatAttrs.html" target="_self">tvm::relax::ConcatAttrs</a></td><td class="desc">Attributes used in concat operators </td></tr>
-<tr id="row_120_1_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_24_" class="arrow" onclick="toggleFolder('120_1_24_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; TriluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_24_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1TriluAttrs.html" target="_self">tvm::relax::TriluAttrs</a></td><td class="desc">Attributes used in tril and triu operator </td></tr>
-<tr id="row_120_1_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_25_" class="arrow" onclick="toggleFolder('120_1_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SoftmaxAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_25_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SoftmaxAttrs.html" target="_self">tvm::relax::SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
-<tr id="row_120_1_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_26_" class="arrow" onclick="toggleFolder('120_1_26_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ROIAlignAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_26_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ROIAlignAttrs.html" target="_self">tvm::relax::ROIAlignAttrs</a></td><td class="desc">Attributes used in ROIAlign operator </td></tr>
-<tr id="row_120_1_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_27_" class="arrow" onclick="toggleFolder('120_1_27_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; AdaptivePool1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_27_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1AdaptivePool1DAttrs.html" target="_self">tvm::relax::AdaptivePool1DAttrs</a></td><td class="desc">Attributes for 1d adaptive pool operator </td></tr>
-<tr id="row_120_1_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_28_" class="arrow" onclick="toggleFolder('120_1_28_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SoftplusAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_28_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SoftplusAttrs.html" target="_self">tvm::relax::SoftplusAttrs</a></td><td class="desc">Attributes used in softplus operators </td></tr>
-<tr id="row_120_1_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_29_" class="arrow" onclick="toggleFolder('120_1_29_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Resize3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_29_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Resize3DAttrs.html" target="_self">tvm::relax::Resize3DAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
-<tr id="row_120_1_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_30_" class="arrow" onclick="toggleFolder('120_1_30_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; MatmulAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_30_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MatmulAttrs.html" target="_self">tvm::relax::MatmulAttrs</a></td><td class="desc">Attributes for matmul operator </td></tr>
-<tr id="row_120_1_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_31_" class="arrow" onclick="toggleFolder('120_1_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ArgmaxArgminAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_31_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ArgmaxArgminAttrs.html" target="_self">tvm::relax::ArgmaxArgminAttrs</a></td><td class="desc">Attributes for search operators </td></tr>
-<tr id="row_120_1_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_32_" class="arrow" onclick="toggleFolder('120_1_32_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Resize2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_32_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Resize2DAttrs.html" target="_self">tvm::relax::Resize2DAttrs</a></td><td class="desc">Attributes used in image resize2d operator </td></tr>
-<tr id="row_120_1_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_33_" class="arrow" onclick="toggleFolder('120_1_33_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Pool3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_33_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Pool3DAttrs.html" target="_self">tvm::relax::Pool3DAttrs</a></td><td class="desc">Attributes used in max_pool3d and avg_pool3d operator </td></tr>
-<tr id="row_120_1_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_34_" class="arrow" onclick="toggleFolder('120_1_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; LayerNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_34_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1LayerNormAttrs.html" target="_self">tvm::relax::LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
-<tr id="row_120_1_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_35_" class="arrow" onclick="toggleFolder('120_1_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SqueezeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_35_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SqueezeAttrs.html" target="_self">tvm::relax::SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
-<tr id="row_120_1_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_36_" class="arrow" onclick="toggleFolder('120_1_36_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Pool2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_36_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Pool2DAttrs.html" target="_self">tvm::relax::Pool2DAttrs</a></td><td class="desc">Attributes used in max_pool2d and avg_pool2d operator </td></tr>
-<tr id="row_120_1_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_37_" class="arrow" onclick="toggleFolder('120_1_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; OneHotAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1OneHotAttrs.html" target="_self">tvm::relax::OneHotAttrs</a></td><td class="desc">Attributes used in one_hot operator </td></tr>
-<tr id="row_120_1_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_38_" class="arrow" onclick="toggleFolder('120_1_38_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; NLLLossAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_38_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1NLLLossAttrs.html" target="_self">tvm::relax::NLLLossAttrs</a></td><td class="desc">Attributes used in nll_loss operator </td></tr>
-<tr id="row_120_1_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_39_" class="arrow" onclick="toggleFolder('120_1_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; BatchNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1BatchNormAttrs.html" target="_self">tvm::relax::BatchNormAttrs</a></td><td class="desc">Attributes used in batch_norm operator </td></tr>
-<tr id="row_120_1_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_40_" class="arrow" onclick="toggleFolder('120_1_40_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; RepeatAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1RepeatAttrs.html" target="_self">tvm::relax::RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
-<tr id="row_120_1_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_41_" class="arrow" onclick="toggleFolder('120_1_41_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Pool1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_41_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Pool1DAttrs.html" target="_self">tvm::relax::Pool1DAttrs</a></td><td class="desc">Attributes used in max_pool1d and avg_pool1d operator </td></tr>
-<tr id="row_120_1_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_42_" class="arrow" onclick="toggleFolder('120_1_42_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; StackAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_42_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1StackAttrs.html" target="_self">tvm::relax::StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
-<tr id="row_120_1_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_43_" class="arrow" onclick="toggleFolder('120_1_43_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ScanopAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_43_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ScanopAttrs.html" target="_self">tvm::relax::ScanopAttrs</a></td><td class="desc">Attributes used in scan operators like cumsum, cumprod </td></tr>
-<tr id="row_120_1_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_44_" class="arrow" onclick="toggleFolder('120_1_44_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; LeakyReluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_44_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1LeakyReluAttrs.html" target="_self">tvm::relax::LeakyReluAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
-<tr id="row_120_1_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_45_" class="arrow" onclick="toggleFolder('120_1_45_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; CallTIRWithGradAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_45_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1CallTIRWithGradAttrs.html" target="_self">tvm::relax::CallTIRWithGradAttrs</a></td><td class="desc">Attributes used in call_tir_with_grad </td></tr>
-<tr id="row_120_1_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_46_" class="arrow" onclick="toggleFolder('120_1_46_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; CallTIRInplaceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_46_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1CallTIRInplaceAttrs.html" target="_self">tvm::relax::CallTIRInplaceAttrs</a></td><td class="desc">Attributes used in call_tir_inplace </td></tr>
-<tr id="row_120_1_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_47_" class="arrow" onclick="toggleFolder('120_1_47_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; AstypeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_47_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1AstypeAttrs.html" target="_self">tvm::relax::AstypeAttrs</a></td><td class="desc">Attributes used in astype operator </td></tr>
-<tr id="row_120_1_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_48_" class="arrow" onclick="toggleFolder('120_1_48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PixelShuffleAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_48_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PixelShuffleAttrs.html" target="_self">tvm::relax::PixelShuffleAttrs</a></td><td class="desc">Attributes used for the pixel shuffle operator </td></tr>
-<tr id="row_120_1_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_49_" class="arrow" onclick="toggleFolder('120_1_49_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PadAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_49_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PadAttrs.html" target="_self">tvm::relax::PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
-<tr id="row_120_1_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_50_" class="arrow" onclick="toggleFolder('120_1_50_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; InstanceNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_50_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1InstanceNormAttrs.html" target="_self">tvm::relax::InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
-<tr id="row_120_1_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_51_" class="arrow" onclick="toggleFolder('120_1_51_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; DropoutAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_51_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1DropoutAttrs.html" target="_self">tvm::relax::DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
-<tr id="row_120_1_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_52_" class="arrow" onclick="toggleFolder('120_1_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; TopKAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_52_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1TopKAttrs.html" target="_self">tvm::relax::TopKAttrs</a></td><td class="desc">Attributes used in topk operator </td></tr>
-<tr id="row_120_1_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_53_" class="arrow" onclick="toggleFolder('120_1_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; MultinomialFromUniformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_53_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html" target="_self">tvm::relax::MultinomialFromUniformAttrs</a></td><td class="desc">Attributes used in multinomial_from_uniform operator </td></tr>
-<tr id="row_120_1_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_54_" class="arrow" onclick="toggleFolder('120_1_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv3DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_54_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv3DAttrs.html" target="_self">tvm::relax::Conv3DAttrs</a></td><td class="desc">Attributes used in Conv3d operator </td></tr>
-<tr id="row_120_1_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_55_" class="arrow" onclick="toggleFolder('120_1_55_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; VirtualDeviceNode &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_55_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceNode.html" target="_self">tvm::VirtualDeviceNode</a></td><td class="desc">Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by the  [...]
-<tr id="row_120_1_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_56_" class="arrow" onclick="toggleFolder('120_1_56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; WrapParamAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_56_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1WrapParamAttrs.html" target="_self">tvm::relax::WrapParamAttrs</a></td><td class="desc">Attributes used in wrap_param operator </td></tr>
-<tr id="row_120_1_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_57_" class="arrow" onclick="toggleFolder('120_1_57_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; TileAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_57_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1TileAttrs.html" target="_self">tvm::relax::TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
-<tr id="row_120_1_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_58_" class="arrow" onclick="toggleFolder('120_1_58_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; StridedSliceAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_58_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1StridedSliceAttrs.html" target="_self">tvm::relax::StridedSliceAttrs</a></td><td class="desc">Attributes used in strided_slice operator </td></tr>
-<tr id="row_120_1_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_59_" class="arrow" onclick="toggleFolder('120_1_59_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SplitAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_59_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SplitAttrs.html" target="_self">tvm::relax::SplitAttrs</a></td><td class="desc">Attributes used in split operator </td></tr>
-<tr id="row_120_1_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_60_" class="arrow" onclick="toggleFolder('120_1_60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; RMSNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_60_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1RMSNormAttrs.html" target="_self">tvm::relax::RMSNormAttrs</a></td><td class="desc">Attributes used in rms_norm operator </td></tr>
-<tr id="row_120_1_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_61_" class="arrow" onclick="toggleFolder('120_1_61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; QuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_61_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1QuantizeAttrs.html" target="_self">tvm::relax::QuantizeAttrs</a></td><td class="desc">Attributes for relax.quantize/relax.dequantize operator </td></tr>
-<tr id="row_120_1_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_62_" class="arrow" onclick="toggleFolder('120_1_62_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PReluAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_62_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PReluAttrs.html" target="_self">tvm::relax::PReluAttrs</a></td><td class="desc">Attributes used in PReLU operator </td></tr>
-<tr id="row_120_1_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_63_" class="arrow" onclick="toggleFolder('120_1_63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; MultiboxTransformLocAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_63_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html" target="_self">tvm::relax::MultiboxTransformLocAttrs</a></td><td class="desc">Attributes for multibox_transform_loc (SSD / TFLite-style box decode) </td></tr>
-<tr id="row_120_1_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_64_" class="arrow" onclick="toggleFolder('120_1_64_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv2DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_64_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv2DAttrs.html" target="_self">tvm::relax::Conv2DAttrs</a></td><td class="desc">Attributes used in Conv2d operator </td></tr>
-<tr id="row_120_1_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_65_" class="arrow" onclick="toggleFolder('120_1_65_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SortAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_65_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SortAttrs.html" target="_self">tvm::relax::SortAttrs</a></td><td class="desc">Attributes used in sort operator </td></tr>
-<tr id="row_120_1_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_66_" class="arrow" onclick="toggleFolder('120_1_66_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv1DAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_66_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv1DAttrs.html" target="_self">tvm::relax::Conv1DAttrs</a></td><td class="desc">Attributes used in Conv1d operator </td></tr>
-<tr id="row_120_1_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_67_" class="arrow" onclick="toggleFolder('120_1_67_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; BucketizeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_67_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1BucketizeAttrs.html" target="_self">tvm::relax::BucketizeAttrs</a></td><td class="desc">Attributes for bucketize operator </td></tr>
-<tr id="row_120_1_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_68_" class="arrow" onclick="toggleFolder('120_1_68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ArgsortAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_68_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ArgsortAttrs.html" target="_self">tvm::relax::ArgsortAttrs</a></td><td class="desc">Attributes used in argsort operator </td></tr>
-<tr id="row_120_1_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_69_" class="arrow" onclick="toggleFolder('120_1_69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; StatisticalAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_69_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1StatisticalAttrs.html" target="_self">tvm::relax::StatisticalAttrs</a></td><td class="desc">Attributes for statistical operators </td></tr>
-<tr id="row_120_1_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_70_" class="arrow" onclick="toggleFolder('120_1_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; LayoutTransformAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_70_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1LayoutTransformAttrs.html" target="_self">tvm::relax::LayoutTransformAttrs</a></td><td class="desc">Attributes used in layout_transform operator </td></tr>
-<tr id="row_120_1_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_71_" class="arrow" onclick="toggleFolder('120_1_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv1DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_71_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv1DTransposeAttrs.html" target="_self">tvm::relax::Conv1DTransposeAttrs</a></td><td class="desc">Attributes used in Conv1DTranspose operator </td></tr>
-<tr id="row_120_1_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_72_" class="arrow" onclick="toggleFolder('120_1_72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv2DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_72_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv2DTransposeAttrs.html" target="_self">tvm::relax::Conv2DTransposeAttrs</a></td><td class="desc">Attributes used in Conv2d operator </td></tr>
-<tr id="row_120_1_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_73_" class="arrow" onclick="toggleFolder('120_1_73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PermuteDimsAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_73_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PermuteDimsAttrs.html" target="_self">tvm::relax::PermuteDimsAttrs</a></td><td class="desc">Attributes used in permute_dims operator </td></tr>
-<tr id="row_120_1_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_74_" class="arrow" onclick="toggleFolder('120_1_74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; GroupNormAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_74_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1GroupNormAttrs.html" target="_self">tvm::relax::GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
-<tr id="row_120_1_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_75_" class="arrow" onclick="toggleFolder('120_1_75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; GatherNDAttrs &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_120_1_75_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html" target="_self">tvm::relax::GatherNDAttrs</a></td><td class="desc">Attributes used in gather_nd operators </td></tr>
-<tr id="row_120_1_76_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a></td><td class="desc">Adapter for AttrsNode with the new reflection API </td></tr>
-<tr id="row_120_1_77_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">tvm::DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attr [...]
+<tr id="row_120_1_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_21_" class="arrow" onclick="toggleFolder('120_1_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; NonMaximumSuppressionAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_21_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1NonMaximumSuppressionAttrs.html" target="_self">tvm::relax::NonMaximumSuppressionAttrs</a></td><td class="desc">Attributes used in NonMaximumSuppression operator </td></tr>
+<tr id="row_120_1_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_22_" class="arrow" onclick="toggleFolder('120_1_22_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; IndexPutAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_22_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1IndexPutAttrs.html" target="_self">tvm::relax::IndexPutAttrs</a></td><td class="desc">Attributes used in index_put operator </td></tr>
+<tr id="row_120_1_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_23_" class="arrow" onclick="toggleFolder('120_1_23_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ExpandDimsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_23_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ExpandDimsAttrs.html" target="_self">tvm::relax::ExpandDimsAttrs</a></td><td class="desc">Attributes used in expand_dims operators </td></tr>
+<tr id="row_120_1_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_24_" class="arrow" onclick="toggleFolder('120_1_24_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ConcatAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_24_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ConcatAttrs.html" target="_self">tvm::relax::ConcatAttrs</a></td><td class="desc">Attributes used in concat operators </td></tr>
+<tr id="row_120_1_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_25_" class="arrow" onclick="toggleFolder('120_1_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; TriluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_25_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1TriluAttrs.html" target="_self">tvm::relax::TriluAttrs</a></td><td class="desc">Attributes used in tril and triu operator </td></tr>
+<tr id="row_120_1_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_26_" class="arrow" onclick="toggleFolder('120_1_26_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SoftmaxAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_26_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SoftmaxAttrs.html" target="_self">tvm::relax::SoftmaxAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
+<tr id="row_120_1_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_27_" class="arrow" onclick="toggleFolder('120_1_27_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ROIAlignAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_27_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ROIAlignAttrs.html" target="_self">tvm::relax::ROIAlignAttrs</a></td><td class="desc">Attributes used in ROIAlign operator </td></tr>
+<tr id="row_120_1_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_28_" class="arrow" onclick="toggleFolder('120_1_28_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; AdaptivePool1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_28_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1AdaptivePool1DAttrs.html" target="_self">tvm::relax::AdaptivePool1DAttrs</a></td><td class="desc">Attributes for 1d adaptive pool operator </td></tr>
+<tr id="row_120_1_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_29_" class="arrow" onclick="toggleFolder('120_1_29_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SoftplusAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_29_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SoftplusAttrs.html" target="_self">tvm::relax::SoftplusAttrs</a></td><td class="desc">Attributes used in softplus operators </td></tr>
+<tr id="row_120_1_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_30_" class="arrow" onclick="toggleFolder('120_1_30_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Resize3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_30_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Resize3DAttrs.html" target="_self">tvm::relax::Resize3DAttrs</a></td><td class="desc">Attributes used in image resize3d operator </td></tr>
+<tr id="row_120_1_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_31_" class="arrow" onclick="toggleFolder('120_1_31_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; MatmulAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_31_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MatmulAttrs.html" target="_self">tvm::relax::MatmulAttrs</a></td><td class="desc">Attributes for matmul operator </td></tr>
+<tr id="row_120_1_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_32_" class="arrow" onclick="toggleFolder('120_1_32_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ArgmaxArgminAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_32_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ArgmaxArgminAttrs.html" target="_self">tvm::relax::ArgmaxArgminAttrs</a></td><td class="desc">Attributes for search operators </td></tr>
+<tr id="row_120_1_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_33_" class="arrow" onclick="toggleFolder('120_1_33_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Resize2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_33_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Resize2DAttrs.html" target="_self">tvm::relax::Resize2DAttrs</a></td><td class="desc">Attributes used in image resize2d operator </td></tr>
+<tr id="row_120_1_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_34_" class="arrow" onclick="toggleFolder('120_1_34_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Pool3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_34_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Pool3DAttrs.html" target="_self">tvm::relax::Pool3DAttrs</a></td><td class="desc">Attributes used in max_pool3d and avg_pool3d operator </td></tr>
+<tr id="row_120_1_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_35_" class="arrow" onclick="toggleFolder('120_1_35_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; LayerNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_35_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1LayerNormAttrs.html" target="_self">tvm::relax::LayerNormAttrs</a></td><td class="desc">Attributes used in layer_norm operator </td></tr>
+<tr id="row_120_1_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_36_" class="arrow" onclick="toggleFolder('120_1_36_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SqueezeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_36_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SqueezeAttrs.html" target="_self">tvm::relax::SqueezeAttrs</a></td><td class="desc">Attributes used in squeeze operators </td></tr>
+<tr id="row_120_1_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_37_" class="arrow" onclick="toggleFolder('120_1_37_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Pool2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_37_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Pool2DAttrs.html" target="_self">tvm::relax::Pool2DAttrs</a></td><td class="desc">Attributes used in max_pool2d and avg_pool2d operator </td></tr>
+<tr id="row_120_1_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_38_" class="arrow" onclick="toggleFolder('120_1_38_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; OneHotAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_38_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1OneHotAttrs.html" target="_self">tvm::relax::OneHotAttrs</a></td><td class="desc">Attributes used in one_hot operator </td></tr>
+<tr id="row_120_1_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_39_" class="arrow" onclick="toggleFolder('120_1_39_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; NLLLossAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_39_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1NLLLossAttrs.html" target="_self">tvm::relax::NLLLossAttrs</a></td><td class="desc">Attributes used in nll_loss operator </td></tr>
+<tr id="row_120_1_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_40_" class="arrow" onclick="toggleFolder('120_1_40_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; BatchNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1BatchNormAttrs.html" target="_self">tvm::relax::BatchNormAttrs</a></td><td class="desc">Attributes used in batch_norm operator </td></tr>
+<tr id="row_120_1_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_41_" class="arrow" onclick="toggleFolder('120_1_41_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; RepeatAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_41_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1RepeatAttrs.html" target="_self">tvm::relax::RepeatAttrs</a></td><td class="desc">Attributes used in repeat operators </td></tr>
+<tr id="row_120_1_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_42_" class="arrow" onclick="toggleFolder('120_1_42_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Pool1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_42_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Pool1DAttrs.html" target="_self">tvm::relax::Pool1DAttrs</a></td><td class="desc">Attributes used in max_pool1d and avg_pool1d operator </td></tr>
+<tr id="row_120_1_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_43_" class="arrow" onclick="toggleFolder('120_1_43_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; StackAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_43_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1StackAttrs.html" target="_self">tvm::relax::StackAttrs</a></td><td class="desc">Attributes used in stack operators </td></tr>
+<tr id="row_120_1_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_44_" class="arrow" onclick="toggleFolder('120_1_44_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ScanopAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_44_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ScanopAttrs.html" target="_self">tvm::relax::ScanopAttrs</a></td><td class="desc">Attributes used in scan operators like cumsum, cumprod </td></tr>
+<tr id="row_120_1_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_45_" class="arrow" onclick="toggleFolder('120_1_45_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; LeakyReluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_45_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1LeakyReluAttrs.html" target="_self">tvm::relax::LeakyReluAttrs</a></td><td class="desc">Attributes used in softmax operators </td></tr>
+<tr id="row_120_1_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_46_" class="arrow" onclick="toggleFolder('120_1_46_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; CallTIRWithGradAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_46_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1CallTIRWithGradAttrs.html" target="_self">tvm::relax::CallTIRWithGradAttrs</a></td><td class="desc">Attributes used in call_tir_with_grad </td></tr>
+<tr id="row_120_1_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_47_" class="arrow" onclick="toggleFolder('120_1_47_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; CallTIRInplaceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_47_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1CallTIRInplaceAttrs.html" target="_self">tvm::relax::CallTIRInplaceAttrs</a></td><td class="desc">Attributes used in call_tir_inplace </td></tr>
+<tr id="row_120_1_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_48_" class="arrow" onclick="toggleFolder('120_1_48_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; AstypeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_48_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1AstypeAttrs.html" target="_self">tvm::relax::AstypeAttrs</a></td><td class="desc">Attributes used in astype operator </td></tr>
+<tr id="row_120_1_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_49_" class="arrow" onclick="toggleFolder('120_1_49_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PixelShuffleAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_49_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PixelShuffleAttrs.html" target="_self">tvm::relax::PixelShuffleAttrs</a></td><td class="desc">Attributes used for the pixel shuffle operator </td></tr>
+<tr id="row_120_1_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_50_" class="arrow" onclick="toggleFolder('120_1_50_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PadAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_50_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PadAttrs.html" target="_self">tvm::relax::PadAttrs</a></td><td class="desc">Attributes used for the padding operator </td></tr>
+<tr id="row_120_1_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_51_" class="arrow" onclick="toggleFolder('120_1_51_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; InstanceNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_51_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1InstanceNormAttrs.html" target="_self">tvm::relax::InstanceNormAttrs</a></td><td class="desc">Attributes used in instance_norm operator </td></tr>
+<tr id="row_120_1_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_52_" class="arrow" onclick="toggleFolder('120_1_52_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; DropoutAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_52_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1DropoutAttrs.html" target="_self">tvm::relax::DropoutAttrs</a></td><td class="desc">Attributes used in dropout operator </td></tr>
+<tr id="row_120_1_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_53_" class="arrow" onclick="toggleFolder('120_1_53_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; TopKAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_53_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1TopKAttrs.html" target="_self">tvm::relax::TopKAttrs</a></td><td class="desc">Attributes used in topk operator </td></tr>
+<tr id="row_120_1_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_54_" class="arrow" onclick="toggleFolder('120_1_54_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; MultinomialFromUniformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_54_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MultinomialFromUniformAttrs.html" target="_self">tvm::relax::MultinomialFromUniformAttrs</a></td><td class="desc">Attributes used in multinomial_from_uniform operator </td></tr>
+<tr id="row_120_1_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_55_" class="arrow" onclick="toggleFolder('120_1_55_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv3DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_55_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv3DAttrs.html" target="_self">tvm::relax::Conv3DAttrs</a></td><td class="desc">Attributes used in Conv3d operator </td></tr>
+<tr id="row_120_1_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_56_" class="arrow" onclick="toggleFolder('120_1_56_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; VirtualDeviceNode &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_56_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1VirtualDeviceNode.html" target="_self">tvm::VirtualDeviceNode</a></td><td class="desc">Describes at compile time the constraints on where data is to be stored at runtime down to the (virtual) device and memory scope level, and how to compile code to compute that data. Used by the  [...]
+<tr id="row_120_1_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_57_" class="arrow" onclick="toggleFolder('120_1_57_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; WrapParamAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_57_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1WrapParamAttrs.html" target="_self">tvm::relax::WrapParamAttrs</a></td><td class="desc">Attributes used in wrap_param operator </td></tr>
+<tr id="row_120_1_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_58_" class="arrow" onclick="toggleFolder('120_1_58_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; TileAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_58_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1TileAttrs.html" target="_self">tvm::relax::TileAttrs</a></td><td class="desc">Attributes used in tile operators </td></tr>
+<tr id="row_120_1_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_59_" class="arrow" onclick="toggleFolder('120_1_59_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; StridedSliceAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_59_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1StridedSliceAttrs.html" target="_self">tvm::relax::StridedSliceAttrs</a></td><td class="desc">Attributes used in strided_slice operator </td></tr>
+<tr id="row_120_1_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_60_" class="arrow" onclick="toggleFolder('120_1_60_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SplitAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_60_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SplitAttrs.html" target="_self">tvm::relax::SplitAttrs</a></td><td class="desc">Attributes used in split operator </td></tr>
+<tr id="row_120_1_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_61_" class="arrow" onclick="toggleFolder('120_1_61_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; RMSNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_61_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1RMSNormAttrs.html" target="_self">tvm::relax::RMSNormAttrs</a></td><td class="desc">Attributes used in rms_norm operator </td></tr>
+<tr id="row_120_1_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_62_" class="arrow" onclick="toggleFolder('120_1_62_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; QuantizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_62_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1QuantizeAttrs.html" target="_self">tvm::relax::QuantizeAttrs</a></td><td class="desc">Attributes for relax.quantize/relax.dequantize operator </td></tr>
+<tr id="row_120_1_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_63_" class="arrow" onclick="toggleFolder('120_1_63_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PReluAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_63_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PReluAttrs.html" target="_self">tvm::relax::PReluAttrs</a></td><td class="desc">Attributes used in PReLU operator </td></tr>
+<tr id="row_120_1_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_64_" class="arrow" onclick="toggleFolder('120_1_64_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; MultiboxTransformLocAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_64_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1MultiboxTransformLocAttrs.html" target="_self">tvm::relax::MultiboxTransformLocAttrs</a></td><td class="desc">Attributes for multibox_transform_loc (SSD / TFLite-style box decode) </td></tr>
+<tr id="row_120_1_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_65_" class="arrow" onclick="toggleFolder('120_1_65_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv2DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_65_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv2DAttrs.html" target="_self">tvm::relax::Conv2DAttrs</a></td><td class="desc">Attributes used in Conv2d operator </td></tr>
+<tr id="row_120_1_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_66_" class="arrow" onclick="toggleFolder('120_1_66_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; SortAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_66_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1SortAttrs.html" target="_self">tvm::relax::SortAttrs</a></td><td class="desc">Attributes used in sort operator </td></tr>
+<tr id="row_120_1_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_67_" class="arrow" onclick="toggleFolder('120_1_67_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv1DAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_67_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv1DAttrs.html" target="_self">tvm::relax::Conv1DAttrs</a></td><td class="desc">Attributes used in Conv1d operator </td></tr>
+<tr id="row_120_1_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_68_" class="arrow" onclick="toggleFolder('120_1_68_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; BucketizeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_68_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1BucketizeAttrs.html" target="_self">tvm::relax::BucketizeAttrs</a></td><td class="desc">Attributes for bucketize operator </td></tr>
+<tr id="row_120_1_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_69_" class="arrow" onclick="toggleFolder('120_1_69_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; ArgsortAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_69_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1ArgsortAttrs.html" target="_self">tvm::relax::ArgsortAttrs</a></td><td class="desc">Attributes used in argsort operator </td></tr>
+<tr id="row_120_1_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_70_" class="arrow" onclick="toggleFolder('120_1_70_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; StatisticalAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_70_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1StatisticalAttrs.html" target="_self">tvm::relax::StatisticalAttrs</a></td><td class="desc">Attributes for statistical operators </td></tr>
+<tr id="row_120_1_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_71_" class="arrow" onclick="toggleFolder('120_1_71_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; LayoutTransformAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_71_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1LayoutTransformAttrs.html" target="_self">tvm::relax::LayoutTransformAttrs</a></td><td class="desc">Attributes used in layout_transform operator </td></tr>
+<tr id="row_120_1_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_72_" class="arrow" onclick="toggleFolder('120_1_72_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv1DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_72_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv1DTransposeAttrs.html" target="_self">tvm::relax::Conv1DTransposeAttrs</a></td><td class="desc">Attributes used in Conv1DTranspose operator </td></tr>
+<tr id="row_120_1_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_73_" class="arrow" onclick="toggleFolder('120_1_73_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; GetValidCountsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_73_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1GetValidCountsAttrs.html" target="_self">tvm::relax::GetValidCountsAttrs</a></td><td class="desc">Attributes used in GetValidCounts operator </td></tr>
+<tr id="row_120_1_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_74_" class="arrow" onclick="toggleFolder('120_1_74_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; Conv2DTransposeAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_74_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1Conv2DTransposeAttrs.html" target="_self">tvm::relax::Conv2DTransposeAttrs</a></td><td class="desc">Attributes used in Conv2d operator </td></tr>
+<tr id="row_120_1_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_75_" class="arrow" onclick="toggleFolder('120_1_75_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; PermuteDimsAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_75_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1PermuteDimsAttrs.html" target="_self">tvm::relax::PermuteDimsAttrs</a></td><td class="desc">Attributes used in permute_dims operator </td></tr>
+<tr id="row_120_1_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_76_" class="arrow" onclick="toggleFolder('120_1_76_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; GroupNormAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_76_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1GroupNormAttrs.html" target="_self">tvm::relax::GroupNormAttrs</a></td><td class="desc">Attributes used in group_norm operator </td></tr>
+<tr id="row_120_1_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_1_77_" class="arrow" onclick="toggleFolder('120_1_77_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; GatherNDAttrs &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_120_1_77_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtvm_1_1relax_1_1GatherNDAttrs.html" target="_self">tvm::relax::GatherNDAttrs</a></td><td class="desc">Attributes used in gather_nd operators </td></tr>
+<tr id="row_120_1_78_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html" target="_self">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a></td><td class="desc">Adapter for AttrsNode with the new reflection API </td></tr>
+<tr id="row_120_1_79_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1DictAttrsNode.html" target="_self">tvm::DictAttrsNode</a></td><td class="desc">Specialized attribute type that is backed by a map. The <a class="el" href="classtvm_1_1DictAttrsNode.html" title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attr [...]
 <tr id="row_120_2_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_120_2_" class="arrow" onclick="toggleFolder('120_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1BaseExprNode.html" target="_self">tvm::BaseExprNode</a></td><td class="desc">Base type of all the expressions </td></tr>
 <tr id="row_120_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_120_2_0_" class="arrow" onclick="toggleFolder('120_2_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1PrimExprNode.html" target="_self">tvm::PrimExprNode</a></td><td class="desc">Base node of all primitive expressions </td></tr>
 <tr id="row_120_2_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_120_2_0_0_" class="arrow" onclick="toggleFolder('120_2_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1tirx_1_1BinaryOpNode.html" target="_self">tvm::tirx::BinaryOpNode&lt; AddNode &gt;</a></td><td class="desc"></td></tr>
diff --git a/docs/reference/api/doxygen/inherit_graph_10.svg b/docs/reference/api/doxygen/inherit_graph_10.svg
index feb22a25e08..48f030f2191 100644
--- a/docs/reference/api/doxygen/inherit_graph_10.svg
+++ b/docs/reference/api/doxygen/inherit_graph_10.svg
@@ -4,17 +4,17 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: Graphical Class Hierarchy Pages: 1 -->
-<svg width="1161pt" height="10080pt"
- viewBox="0.00 0.00 1161.00 10079.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 10075.5)">
+<svg width="1170pt" height="10179pt"
+ viewBox="0.00 0.00 1170.00 10178.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 10174.5)">
 <title>Graphical Class Hierarchy</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-10075.5 1157,-10075.5 1157,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-10174.5 1166,-10174.5 1166,4 -4,4"/>
 <!-- Node151 -->
 <g id="node1" class="node">
 <title>Node151</title>
 <g id="a_node1"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="0,-2651.5 0,-2670.5 48,-2670.5 48,-2651.5 0,-2651.5"/>
-<text text-anchor="middle" x="24" y="-2658.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polygon fill="white" stroke="#bfbfbf" points="0,-2652.5 0,-2671.5 48,-2671.5 48,-2652.5 0,-2652.5"/>
+<text text-anchor="middle" x="24" y="-2659.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
 </a>
 </g>
 </g>
@@ -22,7248 +22,7312 @@
 <g id="node2" class="node">
 <title>Node0</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1AttrFieldInfoNode.html" target="_top" xlink:title="Information about attribute fields in string representations.">
-<polygon fill="white" stroke="black" points="121,-8136.5 121,-8155.5 249,-8155.5 249,-8136.5 121,-8136.5"/>
-<text text-anchor="middle" x="185" y="-8143.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
+<polygon fill="white" stroke="black" points="121,-8186.5 121,-8205.5 249,-8205.5 249,-8186.5 121,-8186.5"/>
+<text text-anchor="middle" x="185" y="-8193.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node151&#45;&gt;Node0</title>
-<path fill="none" stroke="midnightblue" d="M25.04,-2680.56C25.77,-3034.37 36.98,-8070.83 84,-8127 93.24,-8138.04 106.74,-8143.98 120.84,-8146.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.54,-2680.51 25.02,-2670.51 21.54,-2680.52 28.54,-2680.51"/>
+<path fill="none" stroke="midnightblue" d="M25.04,-2681.73C25.74,-3038.72 36.56,-8120.32 84,-8177 93.24,-8188.04 106.74,-8193.98 120.84,-8196.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.54,-2681.59 25.02,-2671.6 21.54,-2681.61 28.54,-2681.59"/>
 </g>
 <!-- Node153 -->
 <g id="node3" class="node">
 <title>Node153</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1BaseAttrsNode.html" target="_top" xlink:title="Base class of all attribute class.">
-<polygon fill="white" stroke="black" points="127.5,-8098.5 127.5,-8117.5 242.5,-8117.5 242.5,-8098.5 127.5,-8098.5"/>
-<text text-anchor="middle" x="185" y="-8105.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polygon fill="white" stroke="black" points="127.5,-8148.5 127.5,-8167.5 242.5,-8167.5 242.5,-8148.5 127.5,-8148.5"/>
+<text text-anchor="middle" x="185" y="-8155.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node153 -->
 <g id="edge2" class="edge">
 <title>Node151&#45;&gt;Node153</title>
-<path fill="none" stroke="midnightblue" d="M25.5,-2681.17C29.57,-2844.65 57.7,-3970.07 84,-4884 123.47,-6255.41 178.98,-7954.75 183.68,-8098.25"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.99,-2680.63 25.24,-2670.72 21.99,-2680.8 28.99,-2680.63"/>
+<path fill="none" stroke="midnightblue" d="M25.5,-2682.17C29.6,-2845.64 57.91,-3971.06 84,-4885 123.74,-6277.24 179.01,-8002.42 183.68,-8148.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.99,-2681.63 25.24,-2671.72 21.99,-2681.8 28.99,-2681.63"/>
 </g>
-<!-- Node308 -->
-<g id="node158" class="node">
-<title>Node308</title>
-<g id="a_node158"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="128.5,-4855.5 128.5,-4874.5 241.5,-4874.5 241.5,-4855.5 128.5,-4855.5"/>
-<text text-anchor="middle" x="185" y="-4862.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node308 -->
-<g id="edge157" class="edge">
-<title>Node151&#45;&gt;Node308</title>
-<path fill="none" stroke="midnightblue" d="M25.19,-2680.67C27.28,-2895.69 46.87,-4802.37 84,-4846 94.94,-4858.85 111.63,-4864.76 128.26,-4867.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.69,-2680.5 25.09,-2670.54 21.69,-2680.57 28.69,-2680.5"/>
-</g>
-<!-- Node383 -->
-<g id="node233" class="node">
-<title>Node383</title>
-<g id="a_node233"><a xlink:href="classtvm_1_1DiagnosticContextNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="106,-4817.5 106,-4836.5 264,-4836.5 264,-4817.5 106,-4817.5"/>
-<text text-anchor="middle" x="185" y="-4824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DiagnosticContextNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node383 -->
-<g id="edge232" class="edge">
-<title>Node151&#45;&gt;Node383</title>
-<path fill="none" stroke="midnightblue" d="M25.2,-2680.97C27.39,-2895.41 47.55,-4765.18 84,-4808 89.84,-4814.86 97.33,-4819.74 105.56,-4823.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.7,-2680.8 25.1,-2670.84 21.7,-2680.88 28.7,-2680.8"/>
-</g>
-<!-- Node384 -->
-<g id="node234" class="node">
-<title>Node384</title>
-<g id="a_node234"><a xlink:href="classtvm_1_1DiagnosticNode.html" target="_top" xlink:title="A compiler diagnostic message.">
-<polygon fill="white" stroke="black" points="125.5,-4779.5 125.5,-4798.5 244.5,-4798.5 244.5,-4779.5 125.5,-4779.5"/>
-<text text-anchor="middle" x="185" y="-4786.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DiagnosticNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node384 -->
-<g id="edge233" class="edge">
-<title>Node151&#45;&gt;Node384</title>
-<path fill="none" stroke="midnightblue" d="M25.21,-2680.94C27.49,-2893.09 48.2,-4727.96 84,-4770 94.31,-4782.11 109.73,-4788.05 125.4,-4790.67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.71,-2680.63 25.1,-2670.67 21.71,-2680.7 28.71,-2680.63"/>
-</g>
-<!-- Node385 -->
-<g id="node235" class="node">
-<title>Node385</title>
-<g id="a_node235"><a xlink:href="classtvm_1_1DiagnosticRendererNode.html" target="_top" xlink:title="Display diagnostics in a given display format.">
-<polygon fill="white" stroke="black" points="103,-4741.5 103,-4760.5 267,-4760.5 267,-4741.5 103,-4741.5"/>
-<text text-anchor="middle" x="185" y="-4748.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DiagnosticRendererNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node385 -->
-<g id="edge234" class="edge">
-<title>Node151&#45;&gt;Node385</title>
-<path fill="none" stroke="midnightblue" d="M25.22,-2681.22C27.6,-2892.58 48.87,-4690.77 84,-4732 89.16,-4738.05 95.59,-4742.56 102.7,-4745.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.72,-2680.91 25.11,-2670.95 21.72,-2680.99 28.72,-2680.91"/>
-</g>
-<!-- Node386 -->
-<g id="node236" class="node">
-<title>Node386</title>
-<g id="a_node236"><a xlink:href="classtvm_1_1EnvFuncNode.html" target="_top" xlink:title="A serializable function backed by TVM&#39;s global environment.">
-<polygon fill="white" stroke="black" points="131,-4703.5 131,-4722.5 239,-4722.5 239,-4703.5 131,-4703.5"/>
-<text text-anchor="middle" x="185" y="-4710.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::EnvFuncNode</text>
+<!-- Node312 -->
+<g id="node162" class="node">
+<title>Node312</title>
+<g id="a_node162"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
+<polygon fill="white" stroke="black" points="128.5,-4856.5 128.5,-4875.5 241.5,-4875.5 241.5,-4856.5 128.5,-4856.5"/>
+<text text-anchor="middle" x="185" y="-4863.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node386 -->
-<g id="edge235" class="edge">
-<title>Node151&#45;&gt;Node386</title>
-<path fill="none" stroke="midnightblue" d="M25.23,-2680.85C27.68,-2888.33 49.5,-4653.54 84,-4694 95.52,-4707.51 113.41,-4713.35 130.89,-4715.44"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.73,-2680.73 25.11,-2670.77 21.73,-2680.81 28.73,-2680.73"/>
+<!-- Node151&#45;&gt;Node312 -->
+<g id="edge161" class="edge">
+<title>Node151&#45;&gt;Node312</title>
+<path fill="none" stroke="midnightblue" d="M25.19,-2681.67C27.28,-2896.69 46.87,-4803.37 84,-4847 94.94,-4859.85 111.63,-4865.76 128.26,-4868.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.69,-2681.5 25.09,-2671.54 21.69,-2681.57 28.69,-2681.5"/>
 </g>
 <!-- Node387 -->
 <g id="node237" class="node">
 <title>Node387</title>
-<g id="a_node237"><a xlink:href="classtvm_1_1GlobalInfoNode.html" target="_top" xlink:title="GlobalInfo are globally static object that are referred by the IR itself. Base node for all global in...">
-<polygon fill="white" stroke="black" points="126,-4665.5 126,-4684.5 244,-4684.5 244,-4665.5 126,-4665.5"/>
-<text text-anchor="middle" x="185" y="-4672.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GlobalInfoNode</text>
+<g id="a_node237"><a xlink:href="classtvm_1_1DiagnosticContextNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="106,-4818.5 106,-4837.5 264,-4837.5 264,-4818.5 106,-4818.5"/>
+<text text-anchor="middle" x="185" y="-4825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DiagnosticContextNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node387 -->
 <g id="edge236" class="edge">
 <title>Node151&#45;&gt;Node387</title>
-<path fill="none" stroke="midnightblue" d="M24.88,-2680.98C23.75,-2884.55 16.37,-4576.73 84,-4656 94.44,-4668.23 110.09,-4674.17 125.93,-4676.74"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.38,-2680.85 24.94,-2670.83 21.38,-2680.81 28.38,-2680.85"/>
+<path fill="none" stroke="midnightblue" d="M25.2,-2681.97C27.39,-2896.41 47.55,-4766.18 84,-4809 89.84,-4815.86 97.33,-4820.74 105.56,-4824.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.7,-2681.8 25.1,-2671.84 21.7,-2681.88 28.7,-2681.8"/>
 </g>
-<!-- Node391 -->
-<g id="node241" class="node">
-<title>Node391</title>
-<g id="a_node241"><a xlink:href="classtvm_1_1GlobalVarSupplyNode.html" target="_top" xlink:title="GlobalVarSupply can be used to generate unique GlobalVars.">
-<polygon fill="white" stroke="black" points="111,-4627.5 111,-4646.5 259,-4646.5 259,-4627.5 111,-4627.5"/>
-<text text-anchor="middle" x="185" y="-4634.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GlobalVarSupplyNode</text>
+<!-- Node388 -->
+<g id="node238" class="node">
+<title>Node388</title>
+<g id="a_node238"><a xlink:href="classtvm_1_1DiagnosticNode.html" target="_top" xlink:title="A compiler diagnostic message.">
+<polygon fill="white" stroke="black" points="125.5,-4780.5 125.5,-4799.5 244.5,-4799.5 244.5,-4780.5 125.5,-4780.5"/>
+<text text-anchor="middle" x="185" y="-4787.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DiagnosticNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node391 -->
-<g id="edge240" class="edge">
-<title>Node151&#45;&gt;Node391</title>
-<path fill="none" stroke="midnightblue" d="M24.89,-2680.9C23.89,-2881.95 17.67,-4540.29 84,-4618 91.06,-4626.27 100.49,-4631.66 110.76,-4635.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.39,-2680.66 24.95,-2670.64 21.39,-2680.63 28.39,-2680.66"/>
+<!-- Node151&#45;&gt;Node388 -->
+<g id="edge237" class="edge">
+<title>Node151&#45;&gt;Node388</title>
+<path fill="none" stroke="midnightblue" d="M25.21,-2681.94C27.49,-2894.09 48.2,-4728.96 84,-4771 94.31,-4783.11 109.73,-4789.05 125.4,-4791.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.71,-2681.63 25.1,-2671.67 21.71,-2681.7 28.71,-2681.63"/>
 </g>
-<!-- Node392 -->
-<g id="node242" class="node">
-<title>Node392</title>
-<g id="a_node242"><a xlink:href="classtvm_1_1IRModuleNode.html" target="_top" xlink:title="IRModule that holds functions and type definitions.">
-<polygon fill="white" stroke="black" points="128.5,-4589.5 128.5,-4608.5 241.5,-4608.5 241.5,-4589.5 128.5,-4589.5"/>
-<text text-anchor="middle" x="185" y="-4596.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IRModuleNode</text>
+<!-- Node389 -->
+<g id="node239" class="node">
+<title>Node389</title>
+<g id="a_node239"><a xlink:href="classtvm_1_1DiagnosticRendererNode.html" target="_top" xlink:title="Display diagnostics in a given display format.">
+<polygon fill="white" stroke="black" points="103,-4742.5 103,-4761.5 267,-4761.5 267,-4742.5 103,-4742.5"/>
+<text text-anchor="middle" x="185" y="-4749.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DiagnosticRendererNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node392 -->
-<g id="edge241" class="edge">
-<title>Node151&#45;&gt;Node392</title>
-<path fill="none" stroke="midnightblue" d="M24.9,-2681.12C24.04,-2880.97 19,-4503.9 84,-4580 94.96,-4592.83 111.66,-4598.74 128.29,-4601.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.4,-2680.91 24.95,-2670.89 21.4,-2680.88 28.4,-2680.91"/>
+<!-- Node151&#45;&gt;Node389 -->
+<g id="edge238" class="edge">
+<title>Node151&#45;&gt;Node389</title>
+<path fill="none" stroke="midnightblue" d="M25.22,-2682.22C27.6,-2893.58 48.87,-4691.77 84,-4733 89.16,-4739.05 95.59,-4743.56 102.7,-4746.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.72,-2681.91 25.11,-2671.95 21.72,-2681.99 28.72,-2681.91"/>
 </g>
-<!-- Node393 -->
-<g id="node243" class="node">
-<title>Node393</title>
-<g id="a_node243"><a xlink:href="classtvm_1_1NameSupplyNode.html" target="_top" xlink:title="NameSupply can be used to generate unique names.">
-<polygon fill="white" stroke="black" points="120,-4551.5 120,-4570.5 250,-4570.5 250,-4551.5 120,-4551.5"/>
-<text text-anchor="middle" x="185" y="-4558.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::NameSupplyNode</text>
+<!-- Node390 -->
+<g id="node240" class="node">
+<title>Node390</title>
+<g id="a_node240"><a xlink:href="classtvm_1_1EnvFuncNode.html" target="_top" xlink:title="A serializable function backed by TVM&#39;s global environment.">
+<polygon fill="white" stroke="black" points="131,-4704.5 131,-4723.5 239,-4723.5 239,-4704.5 131,-4704.5"/>
+<text text-anchor="middle" x="185" y="-4711.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::EnvFuncNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node393 -->
-<g id="edge242" class="edge">
-<title>Node151&#45;&gt;Node393</title>
-<path fill="none" stroke="midnightblue" d="M24.92,-2680.72C24.19,-2876.62 20.26,-4467.42 84,-4542 93.13,-4552.68 106.23,-4558.56 119.96,-4561.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.42,-2680.71 24.96,-2670.7 21.42,-2680.69 28.42,-2680.71"/>
+<!-- Node151&#45;&gt;Node390 -->
+<g id="edge239" class="edge">
+<title>Node151&#45;&gt;Node390</title>
+<path fill="none" stroke="midnightblue" d="M25.23,-2681.85C27.68,-2889.33 49.5,-4654.54 84,-4695 95.52,-4708.51 113.41,-4714.35 130.89,-4716.44"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.73,-2681.73 25.11,-2671.77 21.73,-2681.81 28.73,-2681.73"/>
 </g>
-<!-- Node394 -->
-<g id="node244" class="node">
-<title>Node394</title>
-<g id="a_node244"><a xlink:href="classtvm_1_1PrimExprConvertibleNode.html" target="_top" xlink:title="Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI to c...">
-<polygon fill="white" stroke="black" points="101,-4513.5 101,-4532.5 269,-4532.5 269,-4513.5 101,-4513.5"/>
-<text text-anchor="middle" x="185" y="-4520.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExprConvertibleNode</text>
+<!-- Node391 -->
+<g id="node241" class="node">
+<title>Node391</title>
+<g id="a_node241"><a xlink:href="classtvm_1_1GlobalInfoNode.html" target="_top" xlink:title="GlobalInfo are globally static object that are referred by the IR itself. Base node for all global in...">
+<polygon fill="white" stroke="black" points="126,-4666.5 126,-4685.5 244,-4685.5 244,-4666.5 126,-4666.5"/>
+<text text-anchor="middle" x="185" y="-4673.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GlobalInfoNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node394 -->
-<g id="edge243" class="edge">
-<title>Node151&#45;&gt;Node394</title>
-<path fill="none" stroke="midnightblue" d="M24.93,-2680.61C24.34,-2873.82 21.55,-4430.98 84,-4504 88.71,-4509.51 94.47,-4513.74 100.84,-4516.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.43,-2680.51 24.96,-2670.5 21.43,-2680.49 28.43,-2680.51"/>
+<!-- Node151&#45;&gt;Node391 -->
+<g id="edge240" class="edge">
+<title>Node151&#45;&gt;Node391</title>
+<path fill="none" stroke="midnightblue" d="M24.88,-2681.98C23.75,-2885.55 16.37,-4577.73 84,-4657 94.44,-4669.23 110.09,-4675.17 125.93,-4677.74"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.38,-2681.85 24.94,-2671.83 21.38,-2681.81 28.38,-2681.85"/>
 </g>
-<!-- Node399 -->
-<g id="node249" class="node">
-<title>Node399</title>
-<g id="a_node249"><a xlink:href="classtvm_1_1RangeNode.html" target="_top" xlink:title="range over one dimension">
-<polygon fill="white" stroke="black" points="136,-4475.5 136,-4494.5 234,-4494.5 234,-4475.5 136,-4475.5"/>
-<text text-anchor="middle" x="185" y="-4482.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::RangeNode</text>
+<!-- Node395 -->
+<g id="node245" class="node">
+<title>Node395</title>
+<g id="a_node245"><a xlink:href="classtvm_1_1GlobalVarSupplyNode.html" target="_top" xlink:title="GlobalVarSupply can be used to generate unique GlobalVars.">
+<polygon fill="white" stroke="black" points="111,-4628.5 111,-4647.5 259,-4647.5 259,-4628.5 111,-4628.5"/>
+<text text-anchor="middle" x="185" y="-4635.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GlobalVarSupplyNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node399 -->
-<g id="edge248" class="edge">
-<title>Node151&#45;&gt;Node399</title>
-<path fill="none" stroke="midnightblue" d="M24.95,-2680.79C24.5,-2872.54 22.88,-4394.58 84,-4466 96.64,-4480.77 116.88,-4486.35 135.86,-4487.92"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.45,-2680.74 24.97,-2670.73 21.45,-2680.72 28.45,-2680.74"/>
+<!-- Node151&#45;&gt;Node395 -->
+<g id="edge244" class="edge">
+<title>Node151&#45;&gt;Node395</title>
+<path fill="none" stroke="midnightblue" d="M24.89,-2681.9C23.89,-2882.95 17.67,-4541.29 84,-4619 91.06,-4627.27 100.49,-4632.66 110.76,-4636.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.39,-2681.66 24.95,-2671.64 21.39,-2681.63 28.39,-2681.66"/>
 </g>
-<!-- Node400 -->
-<g id="node250" class="node">
-<title>Node400</title>
-<g id="a_node250"><a xlink:href="classtvm_1_1SourceMapObj.html" target="_top" xlink:title="Stores locations in frontend source that generated a node.">
-<polygon fill="white" stroke="black" points="128.5,-4437.5 128.5,-4456.5 241.5,-4456.5 241.5,-4437.5 128.5,-4437.5"/>
-<text text-anchor="middle" x="185" y="-4444.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceMapObj</text>
+<!-- Node396 -->
+<g id="node246" class="node">
+<title>Node396</title>
+<g id="a_node246"><a xlink:href="classtvm_1_1IRModuleNode.html" target="_top" xlink:title="IRModule that holds functions and type definitions.">
+<polygon fill="white" stroke="black" points="128.5,-4590.5 128.5,-4609.5 241.5,-4609.5 241.5,-4590.5 128.5,-4590.5"/>
+<text text-anchor="middle" x="185" y="-4597.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IRModuleNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node400 -->
-<g id="edge249" class="edge">
-<title>Node151&#45;&gt;Node400</title>
-<path fill="none" stroke="midnightblue" d="M24.96,-2680.66C24.66,-2869.58 24.17,-4358.14 84,-4428 94.98,-4440.82 111.68,-4446.72 128.31,-4449.07"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.46,-2680.53 24.98,-2670.52 21.46,-2680.52 28.46,-2680.53"/>
+<!-- Node151&#45;&gt;Node396 -->
+<g id="edge245" class="edge">
+<title>Node151&#45;&gt;Node396</title>
+<path fill="none" stroke="midnightblue" d="M24.9,-2682.12C24.04,-2881.97 19,-4504.9 84,-4581 94.96,-4593.83 111.66,-4599.74 128.29,-4602.09"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.4,-2681.91 24.95,-2671.89 21.4,-2681.88 28.4,-2681.91"/>
 </g>
-<!-- Node401 -->
-<g id="node251" class="node">
-<title>Node401</title>
-<g id="a_node251"><a xlink:href="classtvm_1_1SourceNameNode.html" target="_top" xlink:title="The name of a source fragment.">
-<polygon fill="white" stroke="black" points="120,-4399.5 120,-4418.5 250,-4418.5 250,-4399.5 120,-4399.5"/>
-<text text-anchor="middle" x="185" y="-4406.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceNameNode</text>
+<!-- Node397 -->
+<g id="node247" class="node">
+<title>Node397</title>
+<g id="a_node247"><a xlink:href="classtvm_1_1NameSupplyNode.html" target="_top" xlink:title="NameSupply can be used to generate unique names.">
+<polygon fill="white" stroke="black" points="120,-4552.5 120,-4571.5 250,-4571.5 250,-4552.5 120,-4552.5"/>
+<text text-anchor="middle" x="185" y="-4559.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::NameSupplyNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node401 -->
-<g id="edge250" class="edge">
-<title>Node151&#45;&gt;Node401</title>
-<path fill="none" stroke="midnightblue" d="M24.97,-2680.8C24.82,-2868.07 25.49,-4321.73 84,-4390 93.14,-4400.67 106.25,-4406.54 119.98,-4409.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.47,-2680.74 24.98,-2670.73 21.47,-2680.73 28.47,-2680.74"/>
+<!-- Node151&#45;&gt;Node397 -->
+<g id="edge246" class="edge">
+<title>Node151&#45;&gt;Node397</title>
+<path fill="none" stroke="midnightblue" d="M24.92,-2681.72C24.19,-2877.62 20.26,-4468.42 84,-4543 93.13,-4553.68 106.23,-4559.56 119.96,-4562.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.42,-2681.71 24.96,-2671.7 21.42,-2681.69 28.42,-2681.71"/>
 </g>
-<!-- Node402 -->
-<g id="node252" class="node">
-<title>Node402</title>
-<g id="a_node252"><a xlink:href="classtvm_1_1SourceNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="134.5,-4361.5 134.5,-4380.5 235.5,-4380.5 235.5,-4361.5 134.5,-4361.5"/>
-<text text-anchor="middle" x="185" y="-4368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceNode</text>
+<!-- Node398 -->
+<g id="node248" class="node">
+<title>Node398</title>
+<g id="a_node248"><a xlink:href="classtvm_1_1PrimExprConvertibleNode.html" target="_top" xlink:title="Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI to c...">
+<polygon fill="white" stroke="black" points="101,-4514.5 101,-4533.5 269,-4533.5 269,-4514.5 101,-4514.5"/>
+<text text-anchor="middle" x="185" y="-4521.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExprConvertibleNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node402 -->
-<g id="edge251" class="edge">
-<title>Node151&#45;&gt;Node402</title>
-<path fill="none" stroke="midnightblue" d="M24.99,-2680.64C24.98,-2864.94 26.78,-4285.28 84,-4352 96.31,-4366.35 115.8,-4372.03 134.32,-4373.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.49,-2680.52 24.99,-2670.52 21.49,-2680.52 28.49,-2680.52"/>
+<!-- Node151&#45;&gt;Node398 -->
+<g id="edge247" class="edge">
+<title>Node151&#45;&gt;Node398</title>
+<path fill="none" stroke="midnightblue" d="M24.93,-2681.61C24.34,-2874.82 21.55,-4431.98 84,-4505 88.71,-4510.51 94.47,-4514.74 100.84,-4517.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.43,-2681.51 24.96,-2671.5 21.43,-2681.49 28.43,-2681.51"/>
 </g>
 <!-- Node403 -->
 <g id="node253" class="node">
 <title>Node403</title>
-<g id="a_node253"><a xlink:href="classtvm_1_1SpanNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node.">
-<polygon fill="white" stroke="black" points="139,-4323.5 139,-4342.5 231,-4342.5 231,-4323.5 139,-4323.5"/>
-<text text-anchor="middle" x="185" y="-4330.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SpanNode</text>
+<g id="a_node253"><a xlink:href="classtvm_1_1RangeNode.html" target="_top" xlink:title="range over one dimension">
+<polygon fill="white" stroke="black" points="136,-4476.5 136,-4495.5 234,-4495.5 234,-4476.5 136,-4476.5"/>
+<text text-anchor="middle" x="185" y="-4483.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::RangeNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node403 -->
 <g id="edge252" class="edge">
 <title>Node151&#45;&gt;Node403</title>
-<path fill="none" stroke="midnightblue" d="M25.01,-2680.76C25.15,-2863.19 28.09,-4248.87 84,-4314 97.35,-4329.55 119.14,-4334.91 138.97,-4336.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.51,-2680.7 25,-2670.71 21.51,-2680.71 28.51,-2680.7"/>
+<path fill="none" stroke="midnightblue" d="M24.95,-2681.79C24.5,-2873.54 22.88,-4395.58 84,-4467 96.64,-4481.77 116.88,-4487.35 135.86,-4488.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.45,-2681.74 24.97,-2671.73 21.45,-2681.72 28.45,-2681.74"/>
+</g>
+<!-- Node404 -->
+<g id="node254" class="node">
+<title>Node404</title>
+<g id="a_node254"><a xlink:href="classtvm_1_1SourceMapObj.html" target="_top" xlink:title="Stores locations in frontend source that generated a node.">
+<polygon fill="white" stroke="black" points="128.5,-4438.5 128.5,-4457.5 241.5,-4457.5 241.5,-4438.5 128.5,-4438.5"/>
+<text text-anchor="middle" x="185" y="-4445.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceMapObj</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node404 -->
+<g id="edge253" class="edge">
+<title>Node151&#45;&gt;Node404</title>
+<path fill="none" stroke="midnightblue" d="M24.96,-2681.66C24.66,-2870.58 24.17,-4359.14 84,-4429 94.98,-4441.82 111.68,-4447.72 128.31,-4450.07"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.46,-2681.53 24.98,-2671.52 21.46,-2681.52 28.46,-2681.53"/>
 </g>
 <!-- Node405 -->
 <g id="node255" class="node">
 <title>Node405</title>
-<g id="a_node255"><a xlink:href="classtvm_1_1TargetKindNode.html" target="_top" xlink:title="Target kind, specifies the kind of the target.">
-<polygon fill="white" stroke="black" points="125.5,-4285.5 125.5,-4304.5 244.5,-4304.5 244.5,-4285.5 125.5,-4285.5"/>
-<text text-anchor="middle" x="185" y="-4292.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetKindNode</text>
+<g id="a_node255"><a xlink:href="classtvm_1_1SourceNameNode.html" target="_top" xlink:title="The name of a source fragment.">
+<polygon fill="white" stroke="black" points="120,-4400.5 120,-4419.5 250,-4419.5 250,-4400.5 120,-4400.5"/>
+<text text-anchor="middle" x="185" y="-4407.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceNameNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node405 -->
 <g id="edge254" class="edge">
 <title>Node151&#45;&gt;Node405</title>
-<path fill="none" stroke="midnightblue" d="M25.02,-2681.13C25.33,-2862.67 29.43,-4212.49 84,-4276 94.36,-4288.06 109.8,-4293.99 125.46,-4296.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.52,-2680.88 25.01,-2670.89 21.52,-2680.89 28.52,-2680.88"/>
+<path fill="none" stroke="midnightblue" d="M24.97,-2681.8C24.82,-2869.07 25.49,-4322.73 84,-4391 93.14,-4401.67 106.25,-4407.54 119.98,-4410.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.47,-2681.74 24.98,-2671.73 21.47,-2681.73 28.47,-2681.74"/>
 </g>
 <!-- Node406 -->
 <g id="node256" class="node">
 <title>Node406</title>
-<g id="a_node256"><a xlink:href="classtvm_1_1TargetNode.html" target="_top" xlink:title="Compilation target.">
-<polygon fill="white" stroke="black" points="136,-4247.5 136,-4266.5 234,-4266.5 234,-4247.5 136,-4247.5"/>
-<text text-anchor="middle" x="185" y="-4254.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetNode</text>
+<g id="a_node256"><a xlink:href="classtvm_1_1SourceNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="134.5,-4362.5 134.5,-4381.5 235.5,-4381.5 235.5,-4362.5 134.5,-4362.5"/>
+<text text-anchor="middle" x="185" y="-4369.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SourceNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node406 -->
 <g id="edge255" class="edge">
 <title>Node151&#45;&gt;Node406</title>
-<path fill="none" stroke="midnightblue" d="M25.04,-2680.65C25.5,-2857.92 30.69,-4176 84,-4238 96.67,-4252.74 116.92,-4258.32 135.89,-4259.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.54,-2680.64 25.02,-2670.65 21.54,-2680.66 28.54,-2680.64"/>
+<path fill="none" stroke="midnightblue" d="M24.99,-2681.64C24.98,-2865.94 26.78,-4286.28 84,-4353 96.31,-4367.35 115.8,-4373.03 134.32,-4374.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.49,-2681.52 24.99,-2671.52 21.49,-2681.52 28.49,-2681.52"/>
 </g>
 <!-- Node407 -->
 <g id="node257" class="node">
 <title>Node407</title>
-<g id="a_node257"><a xlink:href="classtvm_1_1TargetTagNode.html" target="_top" xlink:title="A target tag.">
-<polygon fill="white" stroke="black" points="128,-4209.5 128,-4228.5 242,-4228.5 242,-4209.5 128,-4209.5"/>
-<text text-anchor="middle" x="185" y="-4216.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetTagNode</text>
+<g id="a_node257"><a xlink:href="classtvm_1_1SpanNode.html" target="_top" xlink:title="Stores locations in frontend source that generated a node.">
+<polygon fill="white" stroke="black" points="139,-4324.5 139,-4343.5 231,-4343.5 231,-4324.5 139,-4324.5"/>
+<text text-anchor="middle" x="185" y="-4331.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::SpanNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node407 -->
 <g id="edge256" class="edge">
 <title>Node151&#45;&gt;Node407</title>
-<path fill="none" stroke="midnightblue" d="M25.06,-2680.98C25.69,-2857.1 32.02,-4139.61 84,-4200 94.89,-4212.66 111.37,-4218.56 127.83,-4220.97"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.56,-2680.8 25.03,-2670.81 21.56,-2680.82 28.56,-2680.8"/>
-</g>
-<!-- Node408 -->
-<g id="node258" class="node">
-<title>Node408</title>
-<g id="a_node258"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types.">
-<polygon fill="white" stroke="black" points="140,-4171.5 140,-4190.5 230,-4190.5 230,-4171.5 140,-4171.5"/>
-<text text-anchor="middle" x="185" y="-4178.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node408 -->
-<g id="edge257" class="edge">
-<title>Node151&#45;&gt;Node408</title>
-<path fill="none" stroke="midnightblue" d="M25.08,-2680.74C25.87,-2853.51 33.3,-4103.15 84,-4162 97.55,-4177.73 119.73,-4183.02 139.76,-4184.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.58,-2680.55 25.04,-2670.57 21.58,-2680.58 28.58,-2680.55"/>
+<path fill="none" stroke="midnightblue" d="M25.01,-2681.76C25.15,-2864.19 28.09,-4249.87 84,-4315 97.35,-4330.55 119.14,-4335.91 138.97,-4337.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.51,-2681.7 25,-2671.71 21.51,-2681.71 28.51,-2681.7"/>
 </g>
-<!-- Node418 -->
-<g id="node268" class="node">
-<title>Node418</title>
-<g id="a_node268"><a xlink:href="classtvm_1_1arith_1_1ConstIntBoundNode.html" target="_top" xlink:title="Constant integer up and lower bound(inclusive). Useful for value bound analysis.">
-<polygon fill="white" stroke="black" points="101.5,-4133.5 101.5,-4152.5 268.5,-4152.5 268.5,-4133.5 101.5,-4133.5"/>
-<text text-anchor="middle" x="185" y="-4140.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ConstIntBoundNode</text>
+<!-- Node409 -->
+<g id="node259" class="node">
+<title>Node409</title>
+<g id="a_node259"><a xlink:href="classtvm_1_1TargetKindNode.html" target="_top" xlink:title="Target kind, specifies the kind of the target.">
+<polygon fill="white" stroke="black" points="125.5,-4286.5 125.5,-4305.5 244.5,-4305.5 244.5,-4286.5 125.5,-4286.5"/>
+<text text-anchor="middle" x="185" y="-4293.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetKindNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node418 -->
-<g id="edge267" class="edge">
-<title>Node151&#45;&gt;Node418</title>
-<path fill="none" stroke="midnightblue" d="M25.1,-2680.77C26.06,-2851.13 34.6,-4066.72 84,-4124 88.85,-4129.62 94.8,-4133.91 101.35,-4137.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.6,-2680.69 25.05,-2670.7 21.6,-2680.72 28.6,-2680.69"/>
+<!-- Node151&#45;&gt;Node409 -->
+<g id="edge258" class="edge">
+<title>Node151&#45;&gt;Node409</title>
+<path fill="none" stroke="midnightblue" d="M25.02,-2682.13C25.33,-2863.67 29.43,-4213.49 84,-4277 94.36,-4289.06 109.8,-4294.99 125.46,-4297.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.52,-2681.88 25.01,-2671.89 21.52,-2681.89 28.52,-2681.88"/>
 </g>
-<!-- Node419 -->
-<g id="node269" class="node">
-<title>Node419</title>
-<g id="a_node269"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsNode.html" target="_top" xlink:title="Represent integer constrains including (integer) variables, their ranges and the relations between th...">
-<polygon fill="white" stroke="black" points="103,-4095.5 103,-4114.5 267,-4114.5 267,-4095.5 103,-4095.5"/>
-<text text-anchor="middle" x="185" y="-4102.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraintsNode</text>
+<!-- Node410 -->
+<g id="node260" class="node">
+<title>Node410</title>
+<g id="a_node260"><a xlink:href="classtvm_1_1TargetNode.html" target="_top" xlink:title="Compilation target.">
+<polygon fill="white" stroke="black" points="136,-4248.5 136,-4267.5 234,-4267.5 234,-4248.5 136,-4248.5"/>
+<text text-anchor="middle" x="185" y="-4255.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node419 -->
-<g id="edge268" class="edge">
-<title>Node151&#45;&gt;Node419</title>
-<path fill="none" stroke="midnightblue" d="M25.12,-2681.02C26.26,-2849.81 35.93,-4030.32 84,-4086 89.2,-4092.02 95.66,-4096.51 102.77,-4099.82"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.62,-2680.8 25.06,-2670.83 21.62,-2680.85 28.62,-2680.8"/>
+<!-- Node151&#45;&gt;Node410 -->
+<g id="edge259" class="edge">
+<title>Node151&#45;&gt;Node410</title>
+<path fill="none" stroke="midnightblue" d="M25.04,-2681.65C25.5,-2858.92 30.69,-4177 84,-4239 96.67,-4253.74 116.92,-4259.32 135.89,-4260.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.54,-2681.64 25.02,-2671.65 21.54,-2681.66 28.54,-2681.64"/>
 </g>
-<!-- Node420 -->
-<g id="node270" class="node">
-<title>Node420</title>
-<g id="a_node270"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" target="_top" xlink:title="We can have different set of variables to represent the same constraints. For example,...">
-<polygon fill="white" stroke="black" points="115.5,-4046 115.5,-4076 254.5,-4076 254.5,-4046 115.5,-4046"/>
-<text text-anchor="start" x="123.5" y="-4064" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraints</text>
-<text text-anchor="middle" x="185" y="-4053" font-family="Helvetica,sans-Serif" font-size="10.00">TransformNode</text>
+<!-- Node411 -->
+<g id="node261" class="node">
+<title>Node411</title>
+<g id="a_node261"><a xlink:href="classtvm_1_1TargetTagNode.html" target="_top" xlink:title="A target tag.">
+<polygon fill="white" stroke="black" points="128,-4210.5 128,-4229.5 242,-4229.5 242,-4210.5 128,-4210.5"/>
+<text text-anchor="middle" x="185" y="-4217.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TargetTagNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node420 -->
-<g id="edge269" class="edge">
-<title>Node151&#45;&gt;Node420</title>
-<path fill="none" stroke="midnightblue" d="M25.18,-2681.05C26.76,-2846.47 39.19,-3981.08 84,-4036 92.03,-4045.84 103.3,-4052.15 115.39,-4056.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.68,-2680.81 25.09,-2670.84 21.68,-2680.87 28.68,-2680.81"/>
+<!-- Node151&#45;&gt;Node411 -->
+<g id="edge260" class="edge">
+<title>Node151&#45;&gt;Node411</title>
+<path fill="none" stroke="midnightblue" d="M25.06,-2681.98C25.69,-2858.1 32.02,-4140.61 84,-4201 94.89,-4213.66 111.37,-4219.56 127.83,-4221.97"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.56,-2681.8 25.03,-2671.81 21.56,-2681.82 28.56,-2681.8"/>
 </g>
-<!-- Node421 -->
-<g id="node271" class="node">
-<title>Node421</title>
-<g id="a_node271"><a xlink:href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" target="_top" xlink:title="Represent integer grouped bounds which are classified into lower bounds (inclusive),...">
-<polygon fill="white" stroke="black" points="98,-4007.5 98,-4026.5 272,-4026.5 272,-4007.5 98,-4007.5"/>
-<text text-anchor="middle" x="185" y="-4014.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntGroupBoundsNode</text>
+<!-- Node412 -->
+<g id="node262" class="node">
+<title>Node412</title>
+<g id="a_node262"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types.">
+<polygon fill="white" stroke="black" points="140,-4172.5 140,-4191.5 230,-4191.5 230,-4172.5 140,-4172.5"/>
+<text text-anchor="middle" x="185" y="-4179.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node421 -->
-<g id="edge270" class="edge">
-<title>Node151&#45;&gt;Node421</title>
-<path fill="none" stroke="midnightblue" d="M25.18,-2681C26.74,-2843.75 38.93,-3945.95 84,-3998 87.93,-4002.54 92.58,-4006.21 97.7,-4009.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.68,-2680.55 25.08,-2670.58 21.68,-2680.61 28.68,-2680.55"/>
+<!-- Node151&#45;&gt;Node412 -->
+<g id="edge261" class="edge">
+<title>Node151&#45;&gt;Node412</title>
+<path fill="none" stroke="midnightblue" d="M25.08,-2681.74C25.87,-2854.51 33.3,-4104.15 84,-4163 97.55,-4178.73 119.73,-4184.02 139.76,-4185.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.58,-2681.55 25.04,-2671.57 21.58,-2681.58 28.58,-2681.55"/>
 </g>
 <!-- Node422 -->
 <g id="node272" class="node">
 <title>Node422</title>
-<g id="a_node272"><a xlink:href="classtvm_1_1arith_1_1IntSetNode.html" target="_top" xlink:title="Base class of all Integer set containers. represent a set of integers in one dimension.">
-<polygon fill="white" stroke="black" points="122.5,-3969.5 122.5,-3988.5 247.5,-3988.5 247.5,-3969.5 122.5,-3969.5"/>
-<text text-anchor="middle" x="185" y="-3976.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntSetNode</text>
+<g id="a_node272"><a xlink:href="classtvm_1_1arith_1_1ConstIntBoundNode.html" target="_top" xlink:title="Constant integer up and lower bound(inclusive). Useful for value bound analysis.">
+<polygon fill="white" stroke="black" points="101.5,-4134.5 101.5,-4153.5 268.5,-4153.5 268.5,-4134.5 101.5,-4134.5"/>
+<text text-anchor="middle" x="185" y="-4141.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ConstIntBoundNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node422 -->
 <g id="edge271" class="edge">
 <title>Node151&#45;&gt;Node422</title>
-<path fill="none" stroke="midnightblue" d="M25.21,-2680.92C26.95,-2840.76 40.23,-3909.5 84,-3960 93.72,-3971.22 107.83,-3977.12 122.4,-3979.98"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.7,-2680.63 25.1,-2670.66 21.7,-2680.7 28.7,-2680.63"/>
+<path fill="none" stroke="midnightblue" d="M25.1,-2681.77C26.06,-2852.13 34.6,-4067.72 84,-4125 88.85,-4130.62 94.8,-4134.91 101.35,-4138.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.6,-2681.69 25.05,-2671.7 21.6,-2681.72 28.6,-2681.69"/>
 </g>
 <!-- Node423 -->
 <g id="node273" class="node">
 <title>Node423</title>
-<g id="a_node273"><a xlink:href="classtvm_1_1arith_1_1IterMapResultNode.html" target="_top" xlink:title="Result of DetectIterMap.">
-<polygon fill="white" stroke="black" points="103,-3931.5 103,-3950.5 267,-3950.5 267,-3931.5 103,-3931.5"/>
-<text text-anchor="middle" x="185" y="-3938.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IterMapResultNode</text>
+<g id="a_node273"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsNode.html" target="_top" xlink:title="Represent integer constrains including (integer) variables, their ranges and the relations between th...">
+<polygon fill="white" stroke="black" points="103,-4096.5 103,-4115.5 267,-4115.5 267,-4096.5 103,-4096.5"/>
+<text text-anchor="middle" x="185" y="-4103.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraintsNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node423 -->
 <g id="edge272" class="edge">
 <title>Node151&#45;&gt;Node423</title>
-<path fill="none" stroke="midnightblue" d="M25.23,-2680.82C27.17,-2837.64 41.51,-3873.06 84,-3922 89.21,-3928.01 95.68,-3932.49 102.81,-3935.79"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.73,-2680.69 25.11,-2670.73 21.73,-2680.77 28.73,-2680.69"/>
+<path fill="none" stroke="midnightblue" d="M25.12,-2682.02C26.26,-2850.81 35.93,-4031.32 84,-4087 89.2,-4093.02 95.66,-4097.51 102.77,-4100.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.62,-2681.8 25.06,-2671.83 21.62,-2681.85 28.62,-2681.8"/>
 </g>
 <!-- Node424 -->
 <g id="node274" class="node">
 <title>Node424</title>
-<g id="a_node274"><a xlink:href="classtvm_1_1arith_1_1IterMarkNode.html" target="_top" xlink:title="Mark the source as an iterator in [0, extent).">
-<polygon fill="white" stroke="black" points="116.5,-3893.5 116.5,-3912.5 253.5,-3912.5 253.5,-3893.5 116.5,-3893.5"/>
-<text text-anchor="middle" x="185" y="-3900.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IterMarkNode</text>
+<g id="a_node274"><a xlink:href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html" target="_top" xlink:title="We can have different set of variables to represent the same constraints. For example,...">
+<polygon fill="white" stroke="black" points="115.5,-4047 115.5,-4077 254.5,-4077 254.5,-4047 115.5,-4047"/>
+<text text-anchor="start" x="123.5" y="-4065" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntConstraints</text>
+<text text-anchor="middle" x="185" y="-4054" font-family="Helvetica,sans-Serif" font-size="10.00">TransformNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node424 -->
 <g id="edge273" class="edge">
 <title>Node151&#45;&gt;Node424</title>
-<path fill="none" stroke="midnightblue" d="M25.27,-2681.16C27.42,-2836.39 42.84,-3836.65 84,-3884 92.41,-3893.67 104.07,-3899.39 116.47,-3902.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.76,-2680.74 25.13,-2670.79 21.76,-2680.83 28.76,-2680.74"/>
+<path fill="none" stroke="midnightblue" d="M25.18,-2682.05C26.76,-2847.47 39.19,-3982.08 84,-4037 92.03,-4046.84 103.3,-4053.15 115.39,-4057.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.68,-2681.81 25.09,-2671.84 21.68,-2681.87 28.68,-2681.81"/>
 </g>
 <!-- Node425 -->
 <g id="node275" class="node">
 <title>Node425</title>
-<g id="a_node275"><a xlink:href="classtvm_1_1arith_1_1ModularSetNode.html" target="_top" xlink:title="Range of a linear integer function. Use to do specify the possible index values.">
-<polygon fill="white" stroke="black" points="109,-3855.5 109,-3874.5 261,-3874.5 261,-3855.5 109,-3855.5"/>
-<text text-anchor="middle" x="185" y="-3862.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ModularSetNode</text>
+<g id="a_node275"><a xlink:href="classtvm_1_1arith_1_1IntGroupBoundsNode.html" target="_top" xlink:title="Represent integer grouped bounds which are classified into lower bounds (inclusive),...">
+<polygon fill="white" stroke="black" points="98,-4008.5 98,-4027.5 272,-4027.5 272,-4008.5 98,-4008.5"/>
+<text text-anchor="middle" x="185" y="-4015.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntGroupBoundsNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node425 -->
 <g id="edge274" class="edge">
 <title>Node151&#45;&gt;Node425</title>
-<path fill="none" stroke="midnightblue" d="M25.3,-2681.01C27.64,-2832.95 44.12,-3800.2 84,-3846 90.61,-3853.6 99.24,-3858.75 108.66,-3862.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.79,-2680.77 25.14,-2670.82 21.8,-2680.87 28.79,-2680.77"/>
+<path fill="none" stroke="midnightblue" d="M25.18,-2682C26.74,-2844.75 38.93,-3946.95 84,-3999 87.93,-4003.54 92.58,-4007.21 97.7,-4010.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.68,-2681.55 25.08,-2671.58 21.68,-2681.61 28.68,-2681.55"/>
 </g>
 <!-- Node426 -->
 <g id="node276" class="node">
 <title>Node426</title>
-<g id="a_node276"><a xlink:href="classtvm_1_1instrument_1_1PassInstrumentNode.html" target="_top" xlink:title="PassInstrumentNode forms an instrument implementation. It provides API for users to register callback...">
-<polygon fill="white" stroke="black" points="84,-3817.5 84,-3836.5 286,-3836.5 286,-3817.5 84,-3817.5"/>
-<text text-anchor="middle" x="185" y="-3824.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::instrument::PassInstrumentNode</text>
+<g id="a_node276"><a xlink:href="classtvm_1_1arith_1_1IntSetNode.html" target="_top" xlink:title="Base class of all Integer set containers. represent a set of integers in one dimension.">
+<polygon fill="white" stroke="black" points="122.5,-3970.5 122.5,-3989.5 247.5,-3989.5 247.5,-3970.5 122.5,-3970.5"/>
+<text text-anchor="middle" x="185" y="-3977.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IntSetNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node426 -->
 <g id="edge275" class="edge">
 <title>Node151&#45;&gt;Node426</title>
-<path fill="none" stroke="midnightblue" d="M25.33,-2680.81C27.87,-2829.31 45.4,-3763.74 84,-3808 87.14,-3811.6 90.72,-3814.64 94.63,-3817.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.82,-2680.45 25.15,-2670.51 21.82,-2680.57 28.82,-2680.45"/>
+<path fill="none" stroke="midnightblue" d="M25.21,-2681.92C26.95,-2841.76 40.23,-3910.5 84,-3961 93.72,-3972.22 107.83,-3978.12 122.4,-3980.98"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.7,-2681.63 25.1,-2671.66 21.7,-2681.7 28.7,-2681.63"/>
 </g>
 <!-- Node427 -->
 <g id="node277" class="node">
 <title>Node427</title>
-<g id="a_node277"><a xlink:href="classtvm_1_1relax_1_1BindingBlockNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="104,-3779.5 104,-3798.5 266,-3798.5 266,-3779.5 104,-3779.5"/>
-<text text-anchor="middle" x="185" y="-3786.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BindingBlockNode</text>
+<g id="a_node277"><a xlink:href="classtvm_1_1arith_1_1IterMapResultNode.html" target="_top" xlink:title="Result of DetectIterMap.">
+<polygon fill="white" stroke="black" points="103,-3932.5 103,-3951.5 267,-3951.5 267,-3932.5 103,-3932.5"/>
+<text text-anchor="middle" x="185" y="-3939.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IterMapResultNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node427 -->
 <g id="edge276" class="edge">
 <title>Node151&#45;&gt;Node427</title>
-<path fill="none" stroke="midnightblue" d="M25.36,-2680.6C28.11,-2825.61 46.68,-3727.28 84,-3770 89.46,-3776.25 96.29,-3780.85 103.8,-3784.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.86,-2680.45 25.17,-2670.52 21.86,-2680.58 28.86,-2680.45"/>
+<path fill="none" stroke="midnightblue" d="M25.23,-2681.82C27.17,-2838.64 41.51,-3874.06 84,-3923 89.21,-3929.01 95.68,-3933.49 102.81,-3936.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.73,-2681.69 25.11,-2671.73 21.73,-2681.77 28.73,-2681.69"/>
+</g>
+<!-- Node428 -->
+<g id="node278" class="node">
+<title>Node428</title>
+<g id="a_node278"><a xlink:href="classtvm_1_1arith_1_1IterMarkNode.html" target="_top" xlink:title="Mark the source as an iterator in [0, extent).">
+<polygon fill="white" stroke="black" points="116.5,-3894.5 116.5,-3913.5 253.5,-3913.5 253.5,-3894.5 116.5,-3894.5"/>
+<text text-anchor="middle" x="185" y="-3901.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IterMarkNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node428 -->
+<g id="edge277" class="edge">
+<title>Node151&#45;&gt;Node428</title>
+<path fill="none" stroke="midnightblue" d="M25.27,-2682.16C27.42,-2837.39 42.84,-3837.65 84,-3885 92.41,-3894.67 104.07,-3900.39 116.47,-3903.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.76,-2681.74 25.13,-2671.79 21.76,-2681.83 28.76,-2681.74"/>
 </g>
 <!-- Node429 -->
 <g id="node279" class="node">
 <title>Node429</title>
-<g id="a_node279"><a xlink:href="classtvm_1_1relax_1_1BindingNode.html" target="_top" xlink:title="The base class of a variable binding in Relax.">
-<polygon fill="white" stroke="black" points="117.5,-3741.5 117.5,-3760.5 252.5,-3760.5 252.5,-3741.5 117.5,-3741.5"/>
-<text text-anchor="middle" x="185" y="-3748.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BindingNode</text>
+<g id="a_node279"><a xlink:href="classtvm_1_1arith_1_1ModularSetNode.html" target="_top" xlink:title="Range of a linear integer function. Use to do specify the possible index values.">
+<polygon fill="white" stroke="black" points="109,-3856.5 109,-3875.5 261,-3875.5 261,-3856.5 109,-3856.5"/>
+<text text-anchor="middle" x="185" y="-3863.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::ModularSetNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node429 -->
 <g id="edge278" class="edge">
 <title>Node151&#45;&gt;Node429</title>
-<path fill="none" stroke="midnightblue" d="M25.4,-2680.8C28.39,-2823.52 47.99,-3690.86 84,-3732 92.61,-3741.84 104.6,-3747.58 117.3,-3750.76"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.9,-2680.44 25.19,-2670.51 21.9,-2680.58 28.9,-2680.44"/>
+<path fill="none" stroke="midnightblue" d="M25.3,-2682.01C27.64,-2833.95 44.12,-3801.2 84,-3847 90.61,-3854.6 99.24,-3859.75 108.66,-3863.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.79,-2681.77 25.14,-2671.82 21.8,-2681.87 28.79,-2681.77"/>
 </g>
-<!-- Node432 -->
-<g id="node282" class="node">
-<title>Node432</title>
-<g id="a_node282"><a xlink:href="classtvm_1_1relax_1_1BlockBuilderNode.html" target="_top" xlink:title="A builder to build Relax binding blocks.">
-<polygon fill="white" stroke="black" points="105,-3703.5 105,-3722.5 265,-3722.5 265,-3703.5 105,-3703.5"/>
-<text text-anchor="middle" x="185" y="-3710.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BlockBuilderNode</text>
+<!-- Node430 -->
+<g id="node280" class="node">
+<title>Node430</title>
+<g id="a_node280"><a xlink:href="classtvm_1_1instrument_1_1PassInstrumentNode.html" target="_top" xlink:title="PassInstrumentNode forms an instrument implementation. It provides API for users to register callback...">
+<polygon fill="white" stroke="black" points="84,-3818.5 84,-3837.5 286,-3837.5 286,-3818.5 84,-3818.5"/>
+<text text-anchor="middle" x="185" y="-3825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::instrument::PassInstrumentNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node432 -->
-<g id="edge281" class="edge">
-<title>Node151&#45;&gt;Node432</title>
-<path fill="none" stroke="midnightblue" d="M25.45,-2680.96C28.68,-2821.22 49.29,-3654.43 84,-3694 89.71,-3700.51 96.9,-3705.22 104.79,-3708.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.94,-2680.72 25.22,-2670.8 21.95,-2680.88 28.94,-2680.72"/>
+<!-- Node151&#45;&gt;Node430 -->
+<g id="edge279" class="edge">
+<title>Node151&#45;&gt;Node430</title>
+<path fill="none" stroke="midnightblue" d="M25.33,-2681.81C27.87,-2830.31 45.4,-3764.74 84,-3809 87.14,-3812.6 90.72,-3815.64 94.63,-3818.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.82,-2681.45 25.15,-2671.51 21.82,-2681.57 28.82,-2681.45"/>
+</g>
+<!-- Node431 -->
+<g id="node281" class="node">
+<title>Node431</title>
+<g id="a_node281"><a xlink:href="classtvm_1_1relax_1_1BindingBlockNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="104,-3780.5 104,-3799.5 266,-3799.5 266,-3780.5 104,-3780.5"/>
+<text text-anchor="middle" x="185" y="-3787.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BindingBlockNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node431 -->
+<g id="edge280" class="edge">
+<title>Node151&#45;&gt;Node431</title>
+<path fill="none" stroke="midnightblue" d="M25.36,-2681.6C28.11,-2826.61 46.68,-3728.28 84,-3771 89.46,-3777.25 96.29,-3781.85 103.8,-3785.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.86,-2681.45 25.17,-2671.52 21.86,-2681.58 28.86,-2681.45"/>
 </g>
 <!-- Node433 -->
 <g id="node283" class="node">
 <title>Node433</title>
-<g id="a_node283"><a xlink:href="classtvm_1_1relax_1_1DFConstraintNode.html" target="_top" xlink:title="Additional constraints on the graph.">
-<polygon fill="white" stroke="black" points="104,-3665.5 104,-3684.5 266,-3684.5 266,-3665.5 104,-3665.5"/>
-<text text-anchor="middle" x="185" y="-3672.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFConstraintNode</text>
+<g id="a_node283"><a xlink:href="classtvm_1_1relax_1_1BindingNode.html" target="_top" xlink:title="The base class of a variable binding in Relax.">
+<polygon fill="white" stroke="black" points="117.5,-3742.5 117.5,-3761.5 252.5,-3761.5 252.5,-3742.5 117.5,-3742.5"/>
+<text text-anchor="middle" x="185" y="-3749.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BindingNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node433 -->
 <g id="edge282" class="edge">
 <title>Node151&#45;&gt;Node433</title>
-<path fill="none" stroke="midnightblue" d="M25.49,-2681.06C28.97,-2818.6 50.59,-3618 84,-3656 89.48,-3662.24 96.32,-3666.83 103.84,-3670.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.99,-2680.66 25.24,-2670.76 21.99,-2680.84 28.99,-2680.66"/>
-</g>
-<!-- Node435 -->
-<g id="node285" class="node">
-<title>Node435</title>
-<g id="a_node285"><a xlink:href="classtvm_1_1relax_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns.">
-<polygon fill="white" stroke="black" points="112,-3627.5 112,-3646.5 258,-3646.5 258,-3627.5 112,-3627.5"/>
-<text text-anchor="middle" x="185" y="-3634.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFPatternNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node435 -->
-<g id="edge284" class="edge">
-<title>Node151&#45;&gt;Node435</title>
-<path fill="none" stroke="midnightblue" d="M24.79,-2680.67C23.61,-2810.83 19.84,-3545.18 84,-3618 91.42,-3626.42 101.31,-3631.83 111.99,-3635.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.29,-2680.6 24.89,-2670.57 21.3,-2680.54 28.29,-2680.6"/>
-</g>
-<!-- Node456 -->
-<g id="node306" class="node">
-<title>Node456</title>
-<g id="a_node306"><a xlink:href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html" target="_top" xlink:title="Statement rewriter for relax.DataflowBlock.">
-<polygon fill="white" stroke="black" points="113.5,-3578 113.5,-3608 256.5,-3608 256.5,-3578 113.5,-3578"/>
-<text text-anchor="start" x="121.5" y="-3596" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DataflowBlock</text>
-<text text-anchor="middle" x="185" y="-3585" font-family="Helvetica,sans-Serif" font-size="10.00">RewriteNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node456 -->
-<g id="edge305" class="edge">
-<title>Node151&#45;&gt;Node456</title>
-<path fill="none" stroke="midnightblue" d="M24.91,-2680.76C24.55,-2807 25.24,-3497.58 84,-3568 91.62,-3577.14 102.04,-3583.21 113.27,-3587.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.42,-2680.63 24.95,-2670.62 21.42,-2680.61 28.42,-2680.63"/>
+<path fill="none" stroke="midnightblue" d="M25.4,-2681.8C28.39,-2824.52 47.99,-3691.86 84,-3733 92.61,-3742.84 104.6,-3748.58 117.3,-3751.76"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.9,-2681.44 25.19,-2671.51 21.9,-2681.58 28.9,-2681.44"/>
 </g>
-<!-- Node457 -->
-<g id="node307" class="node">
-<title>Node457</title>
-<g id="a_node307"><a xlink:href="classtvm_1_1relax_1_1ExecBuilderNode.html" target="_top" xlink:title="A builder provides api to build VM executable with instructions.">
-<polygon fill="white" stroke="black" points="107.5,-3539.5 107.5,-3558.5 262.5,-3558.5 262.5,-3539.5 107.5,-3539.5"/>
-<text text-anchor="middle" x="185" y="-3546.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExecBuilderNode</text>
+<!-- Node436 -->
+<g id="node286" class="node">
+<title>Node436</title>
+<g id="a_node286"><a xlink:href="classtvm_1_1relax_1_1BlockBuilderNode.html" target="_top" xlink:title="A builder to build Relax binding blocks.">
+<polygon fill="white" stroke="black" points="105,-3704.5 105,-3723.5 265,-3723.5 265,-3704.5 105,-3704.5"/>
+<text text-anchor="middle" x="185" y="-3711.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::BlockBuilderNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node457 -->
-<g id="edge306" class="edge">
-<title>Node151&#45;&gt;Node457</title>
-<path fill="none" stroke="midnightblue" d="M24.92,-2680.73C24.63,-2803.91 25.81,-3464.37 84,-3530 90.33,-3537.14 98.44,-3542.11 107.3,-3545.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.42,-2680.53 24.96,-2670.52 21.42,-2680.51 28.42,-2680.53"/>
+<!-- Node151&#45;&gt;Node436 -->
+<g id="edge285" class="edge">
+<title>Node151&#45;&gt;Node436</title>
+<path fill="none" stroke="midnightblue" d="M25.45,-2681.96C28.68,-2822.22 49.29,-3655.43 84,-3695 89.71,-3701.51 96.9,-3706.22 104.79,-3709.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.94,-2681.72 25.22,-2671.8 21.95,-2681.88 28.94,-2681.72"/>
 </g>
-<!-- Node458 -->
-<g id="node308" class="node">
-<title>Node458</title>
-<g id="a_node308"><a xlink:href="classtvm_1_1relax_1_1IdNode.html" target="_top" xlink:title="The unique identifier of variables.">
-<polygon fill="white" stroke="black" points="131.5,-3501.5 131.5,-3520.5 238.5,-3520.5 238.5,-3501.5 131.5,-3501.5"/>
-<text text-anchor="middle" x="185" y="-3508.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::IdNode</text>
+<!-- Node437 -->
+<g id="node287" class="node">
+<title>Node437</title>
+<g id="a_node287"><a xlink:href="classtvm_1_1relax_1_1DFConstraintNode.html" target="_top" xlink:title="Additional constraints on the graph.">
+<polygon fill="white" stroke="black" points="104,-3666.5 104,-3685.5 266,-3685.5 266,-3666.5 104,-3666.5"/>
+<text text-anchor="middle" x="185" y="-3673.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFConstraintNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node458 -->
-<g id="edge307" class="edge">
-<title>Node151&#45;&gt;Node458</title>
-<path fill="none" stroke="midnightblue" d="M24.99,-2680.97C25.11,-2801.57 28.42,-3429.51 84,-3492 95.86,-3505.34 113.93,-3511.11 131.46,-3513.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.49,-2680.65 24.99,-2670.65 21.49,-2680.65 28.49,-2680.65"/>
+<!-- Node151&#45;&gt;Node437 -->
+<g id="edge286" class="edge">
+<title>Node151&#45;&gt;Node437</title>
+<path fill="none" stroke="midnightblue" d="M25.49,-2682.06C28.97,-2819.6 50.59,-3619 84,-3657 89.48,-3663.24 96.32,-3667.83 103.84,-3671.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.99,-2681.66 25.24,-2671.76 21.99,-2681.84 28.99,-2681.66"/>
 </g>
-<!-- Node459 -->
-<g id="node309" class="node">
-<title>Node459</title>
-<g id="a_node309"><a xlink:href="classtvm_1_1relax_1_1MatchResultNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="105.5,-3463.5 105.5,-3482.5 264.5,-3482.5 264.5,-3463.5 105.5,-3463.5"/>
-<text text-anchor="middle" x="185" y="-3470.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MatchResultNode</text>
+<!-- Node439 -->
+<g id="node289" class="node">
+<title>Node439</title>
+<g id="a_node289"><a xlink:href="classtvm_1_1relax_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns.">
+<polygon fill="white" stroke="black" points="112,-3628.5 112,-3647.5 258,-3647.5 258,-3628.5 112,-3628.5"/>
+<text text-anchor="middle" x="185" y="-3635.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFPatternNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node459 -->
-<g id="edge308" class="edge">
-<title>Node151&#45;&gt;Node459</title>
-<path fill="none" stroke="midnightblue" d="M25.06,-2680.79C25.6,-2797.67 30.96,-3394.57 84,-3454 89.88,-3460.59 97.28,-3465.33 105.38,-3468.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.56,-2680.74 25.02,-2670.75 21.56,-2680.76 28.56,-2680.74"/>
+<!-- Node151&#45;&gt;Node439 -->
+<g id="edge288" class="edge">
+<title>Node151&#45;&gt;Node439</title>
+<path fill="none" stroke="midnightblue" d="M24.79,-2681.67C23.61,-2811.83 19.84,-3546.18 84,-3619 91.42,-3627.42 101.31,-3632.83 111.99,-3636.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.29,-2681.6 24.89,-2671.57 21.3,-2681.54 28.29,-2681.6"/>
 </g>
 <!-- Node460 -->
 <g id="node310" class="node">
 <title>Node460</title>
-<g id="a_node310"><a xlink:href="classtvm_1_1relax_1_1PatternContextNode.html" target="_top" xlink:title="A context to manage the graph&#45;level pattern matching.">
-<polygon fill="white" stroke="black" points="99.5,-3425.5 99.5,-3444.5 270.5,-3444.5 270.5,-3425.5 99.5,-3425.5"/>
-<text text-anchor="middle" x="185" y="-3432.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PatternContextNode</text>
+<g id="a_node310"><a xlink:href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html" target="_top" xlink:title="Statement rewriter for relax.DataflowBlock.">
+<polygon fill="white" stroke="black" points="113.5,-3579 113.5,-3609 256.5,-3609 256.5,-3579 113.5,-3579"/>
+<text text-anchor="start" x="121.5" y="-3597" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DataflowBlock</text>
+<text text-anchor="middle" x="185" y="-3586" font-family="Helvetica,sans-Serif" font-size="10.00">RewriteNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node460 -->
 <g id="edge309" class="edge">
 <title>Node151&#45;&gt;Node460</title>
-<path fill="none" stroke="midnightblue" d="M25.14,-2680.88C26.12,-2794.61 33.53,-3359.67 84,-3416 88.36,-3420.87 93.55,-3424.73 99.24,-3427.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.64,-2680.52 25.06,-2670.54 21.64,-2680.57 28.64,-2680.52"/>
+<path fill="none" stroke="midnightblue" d="M24.91,-2681.76C24.55,-2808 25.24,-3498.58 84,-3569 91.62,-3578.14 102.04,-3584.21 113.27,-3588.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.42,-2681.63 24.95,-2671.62 21.42,-2681.61 28.42,-2681.63"/>
 </g>
 <!-- Node461 -->
 <g id="node311" class="node">
 <title>Node461</title>
-<g id="a_node311"><a xlink:href="classtvm_1_1relax_1_1PatternSeqNode.html" target="_top" xlink:title="A sequence of DFPatterns that the previous DFPattern is connected to the next one.">
-<polygon fill="white" stroke="black" points="109.5,-3387.5 109.5,-3406.5 260.5,-3406.5 260.5,-3387.5 109.5,-3387.5"/>
-<text text-anchor="middle" x="185" y="-3394.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PatternSeqNode</text>
+<g id="a_node311"><a xlink:href="classtvm_1_1relax_1_1ExecBuilderNode.html" target="_top" xlink:title="A builder provides api to build VM executable with instructions.">
+<polygon fill="white" stroke="black" points="107.5,-3540.5 107.5,-3559.5 262.5,-3559.5 262.5,-3540.5 107.5,-3540.5"/>
+<text text-anchor="middle" x="185" y="-3547.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExecBuilderNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node461 -->
 <g id="edge310" class="edge">
 <title>Node151&#45;&gt;Node461</title>
-<path fill="none" stroke="midnightblue" d="M25.23,-2680.9C26.67,-2791.23 36.1,-3324.75 84,-3378 90.85,-3385.62 99.74,-3390.76 109.37,-3394.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.72,-2680.53 25.1,-2670.57 21.72,-2680.61 28.72,-2680.53"/>
+<path fill="none" stroke="midnightblue" d="M24.92,-2681.73C24.63,-2804.91 25.81,-3465.37 84,-3531 90.33,-3538.14 98.44,-3543.11 107.3,-3546.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.42,-2681.53 24.96,-2671.52 21.42,-2681.51 28.42,-2681.53"/>
 </g>
 <!-- Node462 -->
 <g id="node312" class="node">
 <title>Node462</title>
-<g id="a_node312"><a xlink:href="classtvm_1_1relax_1_1StructInfoNode.html" target="_top" xlink:title="Base type of all structure information.">
-<polygon fill="white" stroke="black" points="112,-3349.5 112,-3368.5 258,-3368.5 258,-3349.5 112,-3349.5"/>
-<text text-anchor="middle" x="185" y="-3356.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StructInfoNode</text>
+<g id="a_node312"><a xlink:href="classtvm_1_1relax_1_1IdNode.html" target="_top" xlink:title="The unique identifier of variables.">
+<polygon fill="white" stroke="black" points="131.5,-3502.5 131.5,-3521.5 238.5,-3521.5 238.5,-3502.5 131.5,-3502.5"/>
+<text text-anchor="middle" x="185" y="-3509.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::IdNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node462 -->
 <g id="edge311" class="edge">
 <title>Node151&#45;&gt;Node462</title>
-<path fill="none" stroke="midnightblue" d="M25.32,-2680.85C27.24,-2787.53 38.65,-3289.81 84,-3340 91.46,-3348.26 101.31,-3353.61 111.92,-3356.97"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.82,-2680.74 25.15,-2670.81 21.82,-2680.86 28.82,-2680.74"/>
+<path fill="none" stroke="midnightblue" d="M24.99,-2681.97C25.11,-2802.57 28.42,-3430.51 84,-3493 95.86,-3506.34 113.93,-3512.11 131.46,-3514.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.49,-2681.65 24.99,-2671.65 21.49,-2681.65 28.49,-2681.65"/>
 </g>
-<!-- Node470 -->
-<g id="node320" class="node">
-<title>Node470</title>
-<g id="a_node320"><a xlink:href="classtvm_1_1relax_1_1distributed_1_1PlacementNode.html" target="_top" xlink:title="Describes how data is distributed in each dimension of the device mesh.">
-<polygon fill="white" stroke="black" points="122.5,-3300 122.5,-3330 247.5,-3330 247.5,-3300 122.5,-3300"/>
-<text text-anchor="start" x="130.5" y="-3318" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::distributed</text>
-<text text-anchor="middle" x="185" y="-3307" font-family="Helvetica,sans-Serif" font-size="10.00">::PlacementNode</text>
+<!-- Node463 -->
+<g id="node313" class="node">
+<title>Node463</title>
+<g id="a_node313"><a xlink:href="classtvm_1_1relax_1_1MatchResultNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="105.5,-3464.5 105.5,-3483.5 264.5,-3483.5 264.5,-3464.5 105.5,-3464.5"/>
+<text text-anchor="middle" x="185" y="-3471.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::MatchResultNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node470 -->
-<g id="edge319" class="edge">
-<title>Node151&#45;&gt;Node470</title>
-<path fill="none" stroke="midnightblue" d="M25.5,-2680.63C28.26,-2782.05 43.03,-3243.75 84,-3291 93.77,-3302.26 107.8,-3308.73 122.28,-3312.34"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="29,-2680.46 25.23,-2670.56 22,-2680.64 29,-2680.46"/>
+<!-- Node151&#45;&gt;Node463 -->
+<g id="edge312" class="edge">
+<title>Node151&#45;&gt;Node463</title>
+<path fill="none" stroke="midnightblue" d="M25.06,-2681.79C25.6,-2798.67 30.96,-3395.57 84,-3455 89.88,-3461.59 97.28,-3466.33 105.38,-3469.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.56,-2681.74 25.02,-2671.75 21.56,-2681.76 28.56,-2681.74"/>
 </g>
-<!-- Node471 -->
-<g id="node321" class="node">
-<title>Node471</title>
-<g id="a_node321"><a xlink:href="classtvm_1_1relax_1_1distributed_1_1PlacementSpecNode.html" target="_top" xlink:title="Describes how data is distributed in one dimension of the device mesh.">
-<polygon fill="white" stroke="black" points="122.5,-3251 122.5,-3281 247.5,-3281 247.5,-3251 122.5,-3251"/>
-<text text-anchor="start" x="130.5" y="-3269" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::distributed</text>
-<text text-anchor="middle" x="185" y="-3258" font-family="Helvetica,sans-Serif" font-size="10.00">::PlacementSpecNode</text>
+<!-- Node464 -->
+<g id="node314" class="node">
+<title>Node464</title>
+<g id="a_node314"><a xlink:href="classtvm_1_1relax_1_1PatternContextNode.html" target="_top" xlink:title="A context to manage the graph&#45;level pattern matching.">
+<polygon fill="white" stroke="black" points="99.5,-3426.5 99.5,-3445.5 270.5,-3445.5 270.5,-3426.5 99.5,-3426.5"/>
+<text text-anchor="middle" x="185" y="-3433.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PatternContextNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node471 -->
-<g id="edge320" class="edge">
-<title>Node151&#45;&gt;Node471</title>
-<path fill="none" stroke="midnightblue" d="M25.67,-2680.9C29.14,-2777.97 46.25,-3198.81 84,-3242 93.81,-3253.23 107.86,-3259.68 122.34,-3263.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="29.17,-2680.59 25.32,-2670.72 22.17,-2680.83 29.17,-2680.59"/>
+<!-- Node151&#45;&gt;Node464 -->
+<g id="edge313" class="edge">
+<title>Node151&#45;&gt;Node464</title>
+<path fill="none" stroke="midnightblue" d="M25.14,-2681.88C26.12,-2795.61 33.53,-3360.67 84,-3417 88.36,-3421.87 93.55,-3425.73 99.24,-3428.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.64,-2681.52 25.06,-2671.54 21.64,-2681.57 28.64,-2681.52"/>
 </g>
-<!-- Node473 -->
-<g id="node323" class="node">
-<title>Node473</title>
-<g id="a_node323"><a xlink:href="classtvm_1_1relax_1_1transform_1_1FusionPatternNode.html" target="_top" xlink:title="The pattern object used as the input of FuseOpsByPattern. For bindings to be fused,...">
-<polygon fill="white" stroke="black" points="124.5,-3202 124.5,-3232 245.5,-3232 245.5,-3202 124.5,-3202"/>
-<text text-anchor="start" x="132.5" y="-3220" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::transform</text>
-<text text-anchor="middle" x="185" y="-3209" font-family="Helvetica,sans-Serif" font-size="10.00">::FusionPatternNode</text>
+<!-- Node465 -->
+<g id="node315" class="node">
+<title>Node465</title>
+<g id="a_node315"><a xlink:href="classtvm_1_1relax_1_1PatternSeqNode.html" target="_top" xlink:title="A sequence of DFPatterns that the previous DFPattern is connected to the next one.">
+<polygon fill="white" stroke="black" points="109.5,-3388.5 109.5,-3407.5 260.5,-3407.5 260.5,-3388.5 109.5,-3388.5"/>
+<text text-anchor="middle" x="185" y="-3395.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::PatternSeqNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node473 -->
-<g id="edge322" class="edge">
-<title>Node151&#45;&gt;Node473</title>
-<path fill="none" stroke="midnightblue" d="M25.87,-2680.93C30.07,-2772.95 49.44,-3153.82 84,-3193 94.33,-3204.72 109.29,-3211.23 124.49,-3214.72"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="29.36,-2680.6 25.42,-2670.76 22.37,-2680.91 29.36,-2680.6"/>
+<!-- Node151&#45;&gt;Node465 -->
+<g id="edge314" class="edge">
+<title>Node151&#45;&gt;Node465</title>
+<path fill="none" stroke="midnightblue" d="M25.23,-2681.9C26.67,-2792.23 36.1,-3325.75 84,-3379 90.85,-3386.62 99.74,-3391.76 109.37,-3395.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.72,-2681.53 25.1,-2671.57 21.72,-2681.61 28.72,-2681.53"/>
+</g>
+<!-- Node466 -->
+<g id="node316" class="node">
+<title>Node466</title>
+<g id="a_node316"><a xlink:href="classtvm_1_1relax_1_1StructInfoNode.html" target="_top" xlink:title="Base type of all structure information.">
+<polygon fill="white" stroke="black" points="112,-3350.5 112,-3369.5 258,-3369.5 258,-3350.5 112,-3350.5"/>
+<text text-anchor="middle" x="185" y="-3357.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StructInfoNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node466 -->
+<g id="edge315" class="edge">
+<title>Node151&#45;&gt;Node466</title>
+<path fill="none" stroke="midnightblue" d="M25.32,-2681.85C27.24,-2788.53 38.65,-3290.81 84,-3341 91.46,-3349.26 101.31,-3354.61 111.92,-3357.97"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.82,-2681.74 25.15,-2671.81 21.82,-2681.86 28.82,-2681.74"/>
 </g>
 <!-- Node474 -->
 <g id="node324" class="node">
 <title>Node474</title>
-<g id="a_node324"><a xlink:href="classtvm_1_1relax_1_1transform_1_1PatternCheckContextNode.html" target="_top" xlink:title="The input of FusionPattern::check.">
-<polygon fill="white" stroke="black" points="109.5,-3153 109.5,-3183 260.5,-3183 260.5,-3153 109.5,-3153"/>
-<text text-anchor="start" x="117.5" y="-3171" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::transform</text>
-<text text-anchor="middle" x="185" y="-3160" font-family="Helvetica,sans-Serif" font-size="10.00">::PatternCheckContextNode</text>
+<g id="a_node324"><a xlink:href="classtvm_1_1relax_1_1distributed_1_1PlacementNode.html" target="_top" xlink:title="Describes how data is distributed in each dimension of the device mesh.">
+<polygon fill="white" stroke="black" points="122.5,-3301 122.5,-3331 247.5,-3331 247.5,-3301 122.5,-3301"/>
+<text text-anchor="start" x="130.5" y="-3319" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::distributed</text>
+<text text-anchor="middle" x="185" y="-3308" font-family="Helvetica,sans-Serif" font-size="10.00">::PlacementNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node474 -->
 <g id="edge323" class="edge">
 <title>Node151&#45;&gt;Node474</title>
-<path fill="none" stroke="midnightblue" d="M24.56,-2680.98C23.17,-2763.02 22.14,-3073.01 84,-3143 90.87,-3150.78 99.77,-3156.31 109.41,-3160.23"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.07,-2680.65 24.76,-2670.58 21.07,-2680.51 28.07,-2680.65"/>
+<path fill="none" stroke="midnightblue" d="M25.5,-2681.63C28.26,-2783.05 43.03,-3244.75 84,-3292 93.77,-3303.26 107.8,-3309.73 122.28,-3313.34"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="29,-2681.46 25.23,-2671.56 22,-2681.64 29,-2681.46"/>
 </g>
 <!-- Node475 -->
 <g id="node325" class="node">
 <title>Node475</title>
-<g id="a_node325"><a xlink:href="classtvm_1_1runtime_1_1DRefObj.html" target="_top" xlink:title="An object that exists on all workers.">
-<polygon fill="white" stroke="black" points="121.5,-3114.5 121.5,-3133.5 248.5,-3133.5 248.5,-3114.5 121.5,-3114.5"/>
-<text text-anchor="middle" x="185" y="-3121.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DRefObj</text>
+<g id="a_node325"><a xlink:href="classtvm_1_1relax_1_1distributed_1_1PlacementSpecNode.html" target="_top" xlink:title="Describes how data is distributed in one dimension of the device mesh.">
+<polygon fill="white" stroke="black" points="122.5,-3252 122.5,-3282 247.5,-3282 247.5,-3252 122.5,-3252"/>
+<text text-anchor="start" x="130.5" y="-3270" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::distributed</text>
+<text text-anchor="middle" x="185" y="-3259" font-family="Helvetica,sans-Serif" font-size="10.00">::PlacementSpecNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node475 -->
 <g id="edge324" class="edge">
 <title>Node151&#45;&gt;Node475</title>
-<path fill="none" stroke="midnightblue" d="M24.69,-2680.98C23.89,-2759.11 25.17,-3042.8 84,-3105 93.84,-3115.4 107.46,-3121.12 121.49,-3124.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.19,-2680.67 24.82,-2670.62 21.19,-2680.58 28.19,-2680.67"/>
-</g>
-<!-- Node476 -->
-<g id="node326" class="node">
-<title>Node476</title>
-<g id="a_node326"><a xlink:href="classtvm_1_1runtime_1_1SessionObj.html" target="_top" xlink:title="A Disco interactive session. It allows users to interact with the Disco command queue with various ff...">
-<polygon fill="white" stroke="black" points="115,-3076.5 115,-3095.5 255,-3095.5 255,-3076.5 115,-3076.5"/>
-<text text-anchor="middle" x="185" y="-3083.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::SessionObj</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node476 -->
-<g id="edge325" class="edge">
-<title>Node151&#45;&gt;Node476</title>
-<path fill="none" stroke="midnightblue" d="M24.96,-2680.67C25.24,-2754.08 30.11,-3010.72 84,-3067 92.31,-3075.68 103.26,-3081.09 114.86,-3084.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.46,-2680.51 24.95,-2670.52 21.46,-2680.52 28.46,-2680.51"/>
+<path fill="none" stroke="midnightblue" d="M25.67,-2681.9C29.14,-2778.97 46.25,-3199.81 84,-3243 93.81,-3254.23 107.86,-3260.68 122.34,-3264.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="29.17,-2681.59 25.32,-2671.72 22.17,-2681.83 29.17,-2681.59"/>
 </g>
 <!-- Node477 -->
 <g id="node327" class="node">
 <title>Node477</title>
-<g id="a_node327"><a xlink:href="classtvm_1_1runtime_1_1TimerNode.html" target="_top" xlink:title="Base class for all implementations.">
-<polygon fill="white" stroke="black" points="115,-3038.5 115,-3057.5 255,-3057.5 255,-3038.5 115,-3038.5"/>
-<text text-anchor="middle" x="185" y="-3045.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::TimerNode</text>
+<g id="a_node327"><a xlink:href="classtvm_1_1relax_1_1transform_1_1FusionPatternNode.html" target="_top" xlink:title="The pattern object used as the input of FuseOpsByPattern. For bindings to be fused,...">
+<polygon fill="white" stroke="black" points="124.5,-3203 124.5,-3233 245.5,-3233 245.5,-3203 124.5,-3203"/>
+<text text-anchor="start" x="132.5" y="-3221" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::transform</text>
+<text text-anchor="middle" x="185" y="-3210" font-family="Helvetica,sans-Serif" font-size="10.00">::FusionPatternNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node477 -->
 <g id="edge326" class="edge">
 <title>Node151&#45;&gt;Node477</title>
-<path fill="none" stroke="midnightblue" d="M25.29,-2681.01C26.74,-2750.35 35.2,-2978.77 84,-3029 92.37,-3037.62 103.35,-3043 114.97,-3046.25"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="28.79,-2680.58 25.11,-2670.64 21.79,-2680.71 28.79,-2680.58"/>
+<path fill="none" stroke="midnightblue" d="M25.87,-2681.93C30.07,-2773.95 49.44,-3154.82 84,-3194 94.33,-3205.72 109.29,-3212.23 124.49,-3215.72"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="29.36,-2681.6 25.42,-2671.76 22.37,-2681.91 29.36,-2681.6"/>
 </g>
 <!-- Node478 -->
 <g id="node328" class="node">
 <title>Node478</title>
-<g id="a_node328"><a xlink:href="classtvm_1_1runtime_1_1cuda__ipc_1_1CUDAIPCMemoryObj.html" target="_top" xlink:title="The CUDA IPC (interprocess communication) memory object, which internally contains data pointers to C...">
-<polygon fill="white" stroke="black" points="113.5,-2989 113.5,-3019 256.5,-3019 256.5,-2989 113.5,-2989"/>
-<text text-anchor="start" x="121.5" y="-3007" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::cuda</text>
-<text text-anchor="middle" x="185" y="-2996" font-family="Helvetica,sans-Serif" font-size="10.00">_ipc::CUDAIPCMemoryObj</text>
+<g id="a_node328"><a xlink:href="classtvm_1_1relax_1_1transform_1_1PatternCheckContextNode.html" target="_top" xlink:title="The input of FusionPattern::check.">
+<polygon fill="white" stroke="black" points="109.5,-3154 109.5,-3184 260.5,-3184 260.5,-3154 109.5,-3154"/>
+<text text-anchor="start" x="117.5" y="-3172" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::transform</text>
+<text text-anchor="middle" x="185" y="-3161" font-family="Helvetica,sans-Serif" font-size="10.00">::PatternCheckContextNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node478 -->
 <g id="edge327" class="edge">
 <title>Node151&#45;&gt;Node478</title>
-<path fill="none" stroke="midnightblue" d="M25.91,-2680.67C29.2,-2743.28 42.58,-2936.34 84,-2980 91.99,-2988.42 102.37,-2994.11 113.41,-2997.92"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="29.4,-2680.38 25.41,-2670.57 22.41,-2680.73 29.4,-2680.38"/>
+<path fill="none" stroke="midnightblue" d="M24.56,-2681.98C23.17,-2764.02 22.14,-3074.01 84,-3144 90.87,-3151.78 99.77,-3157.31 109.41,-3161.23"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.07,-2681.65 24.76,-2671.58 21.07,-2681.51 28.07,-2681.65"/>
 </g>
 <!-- Node479 -->
 <g id="node329" class="node">
 <title>Node479</title>
-<g id="a_node329"><a xlink:href="classtvm_1_1runtime_1_1memory_1_1StorageObj.html" target="_top" xlink:title="An object representing a storage allocation.">
-<polygon fill="white" stroke="black" points="121,-2940 121,-2970 249,-2970 249,-2940 121,-2940"/>
-<text text-anchor="start" x="129" y="-2958" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::memory</text>
-<text text-anchor="middle" x="185" y="-2947" font-family="Helvetica,sans-Serif" font-size="10.00">::StorageObj</text>
+<g id="a_node329"><a xlink:href="classtvm_1_1runtime_1_1DRefObj.html" target="_top" xlink:title="An object that exists on all workers.">
+<polygon fill="white" stroke="black" points="121.5,-3115.5 121.5,-3134.5 248.5,-3134.5 248.5,-3115.5 121.5,-3115.5"/>
+<text text-anchor="middle" x="185" y="-3122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DRefObj</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node479 -->
 <g id="edge328" class="edge">
 <title>Node151&#45;&gt;Node479</title>
-<path fill="none" stroke="midnightblue" d="M26.61,-2680.51C31.62,-2736.34 48.74,-2895.01 84,-2931 93.87,-2941.07 107.17,-2947.22 120.85,-2950.89"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="30.1,-2680.17 25.75,-2670.51 23.12,-2680.77 30.1,-2680.17"/>
+<path fill="none" stroke="midnightblue" d="M24.69,-2681.98C23.89,-2760.11 25.17,-3043.8 84,-3106 93.84,-3116.4 107.46,-3122.12 121.49,-3125.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.19,-2681.67 24.82,-2671.62 21.19,-2681.58 28.19,-2681.67"/>
 </g>
 <!-- Node480 -->
 <g id="node330" class="node">
 <title>Node480</title>
-<g id="a_node330"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="122,-2891 122,-2921 248,-2921 248,-2891 122,-2891"/>
-<text text-anchor="start" x="130" y="-2909" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2898" font-family="Helvetica,sans-Serif" font-size="10.00">::CountNode</text>
+<g id="a_node330"><a xlink:href="classtvm_1_1runtime_1_1SessionObj.html" target="_top" xlink:title="A Disco interactive session. It allows users to interact with the Disco command queue with various ff...">
+<polygon fill="white" stroke="black" points="115,-3077.5 115,-3096.5 255,-3096.5 255,-3077.5 115,-3077.5"/>
+<text text-anchor="middle" x="185" y="-3084.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::SessionObj</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node480 -->
 <g id="edge329" class="edge">
 <title>Node151&#45;&gt;Node480</title>
-<path fill="none" stroke="midnightblue" d="M27.66,-2680.72C34.63,-2729.45 54.91,-2853.64 84,-2882 94.29,-2892.03 108,-2898.13 121.95,-2901.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="31.09,-2679.97 26.25,-2670.55 24.16,-2680.93 31.09,-2679.97"/>
+<path fill="none" stroke="midnightblue" d="M24.96,-2681.67C25.24,-2755.08 30.11,-3011.72 84,-3068 92.31,-3076.68 103.26,-3082.09 114.86,-3085.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.46,-2681.51 24.95,-2671.52 21.46,-2681.52 28.46,-2681.51"/>
 </g>
 <!-- Node481 -->
 <g id="node331" class="node">
 <title>Node481</title>
-<g id="a_node331"><a xlink:href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html" target="_top" xlink:title="Wrapper for Device because Device is not passable across the ffi::Function interface.">
-<polygon fill="white" stroke="black" points="122,-2842 122,-2872 248,-2872 248,-2842 122,-2842"/>
-<text text-anchor="start" x="130" y="-2860" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2849" font-family="Helvetica,sans-Serif" font-size="10.00">::DeviceWrapperNode</text>
+<g id="a_node331"><a xlink:href="classtvm_1_1runtime_1_1TimerNode.html" target="_top" xlink:title="Base class for all implementations.">
+<polygon fill="white" stroke="black" points="115,-3039.5 115,-3058.5 255,-3058.5 255,-3039.5 115,-3039.5"/>
+<text text-anchor="middle" x="185" y="-3046.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::TimerNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node481 -->
 <g id="edge330" class="edge">
 <title>Node151&#45;&gt;Node481</title>
-<path fill="none" stroke="midnightblue" d="M25.84,-2680.62C28.47,-2716.42 39.32,-2792.37 84,-2833 94.5,-2842.55 108.12,-2848.48 121.92,-2852.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="29.33,-2680.28 25.24,-2670.51 22.34,-2680.7 29.33,-2680.28"/>
+<path fill="none" stroke="midnightblue" d="M25.29,-2682.01C26.74,-2751.35 35.2,-2979.77 84,-3030 92.37,-3038.62 103.35,-3044 114.97,-3047.25"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="28.79,-2681.58 25.11,-2671.64 21.79,-2681.71 28.79,-2681.58"/>
 </g>
 <!-- Node482 -->
 <g id="node332" class="node">
 <title>Node482</title>
-<g id="a_node332"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="122,-2793 122,-2823 248,-2823 248,-2793 122,-2793"/>
-<text text-anchor="start" x="130" y="-2811" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2800" font-family="Helvetica,sans-Serif" font-size="10.00">::DurationNode</text>
+<g id="a_node332"><a xlink:href="classtvm_1_1runtime_1_1cuda__ipc_1_1CUDAIPCMemoryObj.html" target="_top" xlink:title="The CUDA IPC (interprocess communication) memory object, which internally contains data pointers to C...">
+<polygon fill="white" stroke="black" points="113.5,-2990 113.5,-3020 256.5,-3020 256.5,-2990 113.5,-2990"/>
+<text text-anchor="start" x="121.5" y="-3008" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::cuda</text>
+<text text-anchor="middle" x="185" y="-2997" font-family="Helvetica,sans-Serif" font-size="10.00">_ipc::CUDAIPCMemoryObj</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node482 -->
 <g id="edge331" class="edge">
 <title>Node151&#45;&gt;Node482</title>
-<path fill="none" stroke="midnightblue" d="M28.92,-2680.73C35.42,-2708.16 51.13,-2757.44 84,-2784 94.83,-2792.75 108.35,-2798.4 121.9,-2802.02"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="32.29,-2679.77 26.73,-2670.75 25.45,-2681.27 32.29,-2679.77"/>
+<path fill="none" stroke="midnightblue" d="M25.91,-2681.67C29.2,-2744.28 42.58,-2937.34 84,-2981 91.99,-2989.42 102.37,-2995.11 113.41,-2998.92"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="29.4,-2681.38 25.41,-2671.57 22.41,-2681.73 29.4,-2681.38"/>
 </g>
 <!-- Node483 -->
 <g id="node333" class="node">
 <title>Node483</title>
-<g id="a_node333"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html" target="_top" xlink:title="Interface for user defined profiling metric collection.">
-<polygon fill="white" stroke="black" points="122,-2744 122,-2774 248,-2774 248,-2744 122,-2744"/>
-<text text-anchor="start" x="130" y="-2762" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2751" font-family="Helvetica,sans-Serif" font-size="10.00">::MetricCollectorNode</text>
+<g id="a_node333"><a xlink:href="classtvm_1_1runtime_1_1memory_1_1StorageObj.html" target="_top" xlink:title="An object representing a storage allocation.">
+<polygon fill="white" stroke="black" points="121,-2941 121,-2971 249,-2971 249,-2941 121,-2941"/>
+<text text-anchor="start" x="129" y="-2959" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::memory</text>
+<text text-anchor="middle" x="185" y="-2948" font-family="Helvetica,sans-Serif" font-size="10.00">::StorageObj</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node483 -->
 <g id="edge332" class="edge">
 <title>Node151&#45;&gt;Node483</title>
-<path fill="none" stroke="midnightblue" d="M35.01,-2679.65C45.13,-2696.67 62.33,-2721.21 84,-2735 95.37,-2742.24 108.74,-2747.29 121.93,-2750.82"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="37.88,-2677.61 29.9,-2670.64 31.79,-2681.06 37.88,-2677.61"/>
+<path fill="none" stroke="midnightblue" d="M26.61,-2681.51C31.62,-2737.34 48.74,-2896.01 84,-2932 93.87,-2942.07 107.17,-2948.22 120.85,-2951.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="30.1,-2681.17 25.75,-2671.51 23.12,-2681.77 30.1,-2681.17"/>
 </g>
 <!-- Node484 -->
 <g id="node334" class="node">
 <title>Node484</title>
-<g id="a_node334"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="122,-2695 122,-2725 248,-2725 248,-2695 122,-2695"/>
-<text text-anchor="start" x="130" y="-2713" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2702" font-family="Helvetica,sans-Serif" font-size="10.00">::PercentNode</text>
+<g id="a_node334"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="122,-2892 122,-2922 248,-2922 248,-2892 122,-2892"/>
+<text text-anchor="start" x="130" y="-2910" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2899" font-family="Helvetica,sans-Serif" font-size="10.00">::CountNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node484 -->
 <g id="edge333" class="edge">
 <title>Node151&#45;&gt;Node484</title>
-<path fill="none" stroke="midnightblue" d="M54.41,-2674.59C63.75,-2678.6 74.2,-2682.77 84,-2686 96.12,-2689.99 109.28,-2693.63 121.94,-2696.79"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="55.72,-2671.34 45.16,-2670.52 52.91,-2677.75 55.72,-2671.34"/>
+<path fill="none" stroke="midnightblue" d="M27.66,-2681.72C34.63,-2730.45 54.91,-2854.64 84,-2883 94.29,-2893.03 108,-2899.13 121.95,-2902.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="31.09,-2680.97 26.25,-2671.55 24.16,-2681.93 31.09,-2680.97"/>
 </g>
 <!-- Node485 -->
 <g id="node335" class="node">
 <title>Node485</title>
-<g id="a_node335"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1RatioNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="122,-2646 122,-2676 248,-2676 248,-2646 122,-2646"/>
-<text text-anchor="start" x="130" y="-2664" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2653" font-family="Helvetica,sans-Serif" font-size="10.00">::RatioNode</text>
+<g id="a_node335"><a xlink:href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html" target="_top" xlink:title="Wrapper for Device because Device is not passable across the ffi::Function interface.">
+<polygon fill="white" stroke="black" points="122,-2843 122,-2873 248,-2873 248,-2843 122,-2843"/>
+<text text-anchor="start" x="130" y="-2861" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2850" font-family="Helvetica,sans-Serif" font-size="10.00">::DeviceWrapperNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node485 -->
 <g id="edge334" class="edge">
 <title>Node151&#45;&gt;Node485</title>
-<path fill="none" stroke="midnightblue" d="M58.3,-2661C76.67,-2661 100.08,-2661 121.7,-2661"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="58.12,-2657.5 48.12,-2661 58.12,-2664.5 58.12,-2657.5"/>
+<path fill="none" stroke="midnightblue" d="M25.84,-2681.62C28.47,-2717.42 39.32,-2793.37 84,-2834 94.5,-2843.55 108.12,-2849.48 121.92,-2853.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="29.33,-2681.28 25.24,-2671.51 22.34,-2681.7 29.33,-2681.28"/>
 </g>
 <!-- Node486 -->
 <g id="node336" class="node">
 <title>Node486</title>
-<g id="a_node336"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1ReportNode.html" target="_top" xlink:title="Data collected from a profiling run. Includes per&#45;call metrics and per&#45;device metrics.">
-<polygon fill="white" stroke="black" points="122,-2597 122,-2627 248,-2627 248,-2597 122,-2597"/>
-<text text-anchor="start" x="130" y="-2615" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
-<text text-anchor="middle" x="185" y="-2604" font-family="Helvetica,sans-Serif" font-size="10.00">::ReportNode</text>
+<g id="a_node336"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="122,-2794 122,-2824 248,-2824 248,-2794 122,-2794"/>
+<text text-anchor="start" x="130" y="-2812" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2801" font-family="Helvetica,sans-Serif" font-size="10.00">::DurationNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node486 -->
 <g id="edge335" class="edge">
 <title>Node151&#45;&gt;Node486</title>
-<path fill="none" stroke="midnightblue" d="M55.66,-2647.57C64.69,-2643.87 74.66,-2640.05 84,-2637 96.16,-2633.03 109.33,-2629.32 122,-2626.05"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="54.18,-2644.39 46.31,-2651.48 56.88,-2650.85 54.18,-2644.39"/>
+<path fill="none" stroke="midnightblue" d="M28.92,-2681.73C35.42,-2709.16 51.13,-2758.44 84,-2785 94.83,-2793.75 108.35,-2799.4 121.9,-2803.02"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="32.29,-2680.77 26.73,-2671.75 25.45,-2682.27 32.29,-2680.77"/>
 </g>
 <!-- Node487 -->
 <g id="node337" class="node">
 <title>Node487</title>
-<g id="a_node337"><a xlink:href="classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html" target="_top" xlink:title="An object representing a vm closure.">
-<polygon fill="white" stroke="black" points="96.5,-2558.5 96.5,-2577.5 273.5,-2577.5 273.5,-2558.5 96.5,-2558.5"/>
-<text text-anchor="middle" x="185" y="-2565.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::vm::VMClosureObj</text>
+<g id="a_node337"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html" target="_top" xlink:title="Interface for user defined profiling metric collection.">
+<polygon fill="white" stroke="black" points="122,-2745 122,-2775 248,-2775 248,-2745 122,-2745"/>
+<text text-anchor="start" x="130" y="-2763" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2752" font-family="Helvetica,sans-Serif" font-size="10.00">::MetricCollectorNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node487 -->
 <g id="edge336" class="edge">
 <title>Node151&#45;&gt;Node487</title>
-<path fill="none" stroke="midnightblue" d="M34.96,-2642.41C45.03,-2625.49 62.21,-2601.19 84,-2588 91.19,-2583.65 99.16,-2580.22 107.37,-2577.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="31.76,-2640.96 29.87,-2651.39 37.85,-2644.42 31.76,-2640.96"/>
+<path fill="none" stroke="midnightblue" d="M35.01,-2680.65C45.13,-2697.67 62.33,-2722.21 84,-2736 95.37,-2743.24 108.74,-2748.29 121.93,-2751.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="37.88,-2678.61 29.9,-2671.64 31.79,-2682.06 37.88,-2678.61"/>
 </g>
 <!-- Node488 -->
 <g id="node338" class="node">
 <title>Node488</title>
-<g id="a_node338"><a xlink:href="classtvm_1_1runtime_1_1vm_1_1VMExtensionNode.html" target="_top" xlink:title="Represent a VM extension. A VM extension allows the user to extend the VM with target specific functi...">
-<polygon fill="white" stroke="black" points="86.5,-2520.5 86.5,-2539.5 283.5,-2539.5 283.5,-2520.5 86.5,-2520.5"/>
-<text text-anchor="middle" x="185" y="-2527.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::vm::VMExtensionNode</text>
+<g id="a_node338"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="122,-2696 122,-2726 248,-2726 248,-2696 122,-2696"/>
+<text text-anchor="start" x="130" y="-2714" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2703" font-family="Helvetica,sans-Serif" font-size="10.00">::PercentNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node488 -->
 <g id="edge337" class="edge">
 <title>Node151&#45;&gt;Node488</title>
-<path fill="none" stroke="midnightblue" d="M29.68,-2641.37C36.85,-2615.86 53.06,-2571.88 84,-2549 89.11,-2545.22 94.77,-2542.12 100.71,-2539.6"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="26.22,-2640.79 27.08,-2651.35 32.99,-2642.56 26.22,-2640.79"/>
+<path fill="none" stroke="midnightblue" d="M54.41,-2675.59C63.75,-2679.6 74.2,-2683.77 84,-2687 96.12,-2690.99 109.28,-2694.63 121.94,-2697.79"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="55.72,-2672.34 45.16,-2671.52 52.91,-2678.75 55.72,-2672.34"/>
 </g>
 <!-- Node489 -->
 <g id="node339" class="node">
 <title>Node489</title>
-<g id="a_node339"><a xlink:href="classtvm_1_1s__tir_1_1InstructionKindNode.html" target="_top" xlink:title="Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its...">
-<polygon fill="white" stroke="black" points="101,-2482.5 101,-2501.5 269,-2501.5 269,-2482.5 101,-2482.5"/>
-<text text-anchor="middle" x="185" y="-2489.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::InstructionKindNode</text>
+<g id="a_node339"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1RatioNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="122,-2647 122,-2677 248,-2677 248,-2647 122,-2647"/>
+<text text-anchor="start" x="130" y="-2665" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2654" font-family="Helvetica,sans-Serif" font-size="10.00">::RatioNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node489 -->
 <g id="edge338" class="edge">
 <title>Node151&#45;&gt;Node489</title>
-<path fill="none" stroke="midnightblue" d="M26.77,-2641.44C30.8,-2609.01 43.71,-2544.38 84,-2511 89.03,-2506.83 94.7,-2503.47 100.72,-2500.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="23.28,-2641.14 25.68,-2651.46 30.24,-2641.9 23.28,-2641.14"/>
+<path fill="none" stroke="midnightblue" d="M58.3,-2662C76.67,-2662 100.08,-2662 121.7,-2662"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="58.12,-2658.5 48.12,-2662 58.12,-2665.5 58.12,-2658.5"/>
 </g>
 <!-- Node490 -->
 <g id="node340" class="node">
 <title>Node490</title>
-<g id="a_node340"><a xlink:href="classtvm_1_1s__tir_1_1InstructionNode.html" target="_top" xlink:title="Schedule instructions each corresponds to a schedule primitive.">
-<polygon fill="white" stroke="black" points="112,-2444.5 112,-2463.5 258,-2463.5 258,-2444.5 112,-2444.5"/>
-<text text-anchor="middle" x="185" y="-2451.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::InstructionNode</text>
+<g id="a_node340"><a xlink:href="classtvm_1_1runtime_1_1profiling_1_1ReportNode.html" target="_top" xlink:title="Data collected from a profiling run. Includes per&#45;call metrics and per&#45;device metrics.">
+<polygon fill="white" stroke="black" points="122,-2598 122,-2628 248,-2628 248,-2598 122,-2598"/>
+<text text-anchor="start" x="130" y="-2616" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::profiling</text>
+<text text-anchor="middle" x="185" y="-2605" font-family="Helvetica,sans-Serif" font-size="10.00">::ReportNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node490 -->
 <g id="edge339" class="edge">
 <title>Node151&#45;&gt;Node490</title>
-<path fill="none" stroke="midnightblue" d="M24.98,-2640.99C26.11,-2602.28 34.44,-2517.11 84,-2473 91.92,-2465.95 101.62,-2461.16 111.83,-2457.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.48,-2641.36 24.83,-2651.41 28.48,-2641.46 21.48,-2641.36"/>
+<path fill="none" stroke="midnightblue" d="M55.66,-2648.57C64.69,-2644.87 74.66,-2641.05 84,-2638 96.16,-2634.03 109.33,-2630.32 122,-2627.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="54.18,-2645.39 46.31,-2652.48 56.88,-2651.85 54.18,-2645.39"/>
 </g>
 <!-- Node491 -->
 <g id="node341" class="node">
 <title>Node491</title>
-<g id="a_node341"><a xlink:href="classtvm_1_1s__tir_1_1LoopRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR for loop.">
-<polygon fill="white" stroke="black" points="119.5,-2406.5 119.5,-2425.5 250.5,-2425.5 250.5,-2406.5 119.5,-2406.5"/>
-<text text-anchor="middle" x="185" y="-2413.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::LoopRVNode</text>
+<g id="a_node341"><a xlink:href="classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html" target="_top" xlink:title="An object representing a vm closure.">
+<polygon fill="white" stroke="black" points="96.5,-2559.5 96.5,-2578.5 273.5,-2578.5 273.5,-2559.5 96.5,-2559.5"/>
+<text text-anchor="middle" x="185" y="-2566.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::vm::VMClosureObj</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node491 -->
 <g id="edge340" class="edge">
 <title>Node151&#45;&gt;Node491</title>
-<path fill="none" stroke="midnightblue" d="M27.43,-2641.4C33.97,-2591.85 53.56,-2463.45 84,-2435 93.68,-2425.95 106.28,-2420.57 119.24,-2417.49"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="23.94,-2641.1 26.14,-2651.46 30.88,-2641.99 23.94,-2641.1"/>
+<path fill="none" stroke="midnightblue" d="M34.96,-2643.41C45.03,-2626.49 62.21,-2602.19 84,-2589 91.19,-2584.65 99.16,-2581.22 107.37,-2578.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="31.76,-2641.96 29.87,-2652.39 37.85,-2645.42 31.76,-2641.96"/>
 </g>
 <!-- Node492 -->
 <g id="node342" class="node">
 <title>Node492</title>
-<g id="a_node342"><a xlink:href="classtvm_1_1s__tir_1_1SBlockRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR block.">
-<polygon fill="white" stroke="black" points="114.5,-2368.5 114.5,-2387.5 255.5,-2387.5 255.5,-2368.5 114.5,-2368.5"/>
-<text text-anchor="middle" x="185" y="-2375.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::SBlockRVNode</text>
+<g id="a_node342"><a xlink:href="classtvm_1_1runtime_1_1vm_1_1VMExtensionNode.html" target="_top" xlink:title="Represent a VM extension. A VM extension allows the user to extend the VM with target specific functi...">
+<polygon fill="white" stroke="black" points="86.5,-2521.5 86.5,-2540.5 283.5,-2540.5 283.5,-2521.5 86.5,-2521.5"/>
+<text text-anchor="middle" x="185" y="-2528.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::vm::VMExtensionNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node492 -->
 <g id="edge341" class="edge">
 <title>Node151&#45;&gt;Node492</title>
-<path fill="none" stroke="midnightblue" d="M26.66,-2641.12C31.71,-2585.68 48.72,-2431.16 84,-2397 92.38,-2388.89 103.08,-2383.69 114.36,-2380.45"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="23.15,-2641.1 25.76,-2651.37 30.12,-2641.72 23.15,-2641.1"/>
+<path fill="none" stroke="midnightblue" d="M29.68,-2642.37C36.85,-2616.86 53.06,-2572.88 84,-2550 89.11,-2546.22 94.77,-2543.12 100.71,-2540.6"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="26.22,-2641.79 27.08,-2652.35 32.99,-2643.56 26.22,-2641.79"/>
 </g>
 <!-- Node493 -->
 <g id="node343" class="node">
 <title>Node493</title>
-<g id="a_node343"><a xlink:href="classtvm_1_1s__tir_1_1ScheduleNode.html" target="_top" xlink:title="The user&#45;facing schedule class.">
-<polygon fill="white" stroke="black" points="115.5,-2330.5 115.5,-2349.5 254.5,-2349.5 254.5,-2330.5 115.5,-2330.5"/>
-<text text-anchor="middle" x="185" y="-2337.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::ScheduleNode</text>
+<g id="a_node343"><a xlink:href="classtvm_1_1s__tir_1_1InstructionKindNode.html" target="_top" xlink:title="Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its...">
+<polygon fill="white" stroke="black" points="101,-2483.5 101,-2502.5 269,-2502.5 269,-2483.5 101,-2483.5"/>
+<text text-anchor="middle" x="185" y="-2490.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::InstructionKindNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node493 -->
 <g id="edge342" class="edge">
 <title>Node151&#45;&gt;Node493</title>
-<path fill="none" stroke="midnightblue" d="M26.06,-2641.11C29.7,-2580.38 43.8,-2399 84,-2359 92.58,-2350.46 103.73,-2345.13 115.46,-2341.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="22.55,-2641.1 25.48,-2651.28 29.54,-2641.5 22.55,-2641.1"/>
+<path fill="none" stroke="midnightblue" d="M26.77,-2642.44C30.8,-2610.01 43.71,-2545.38 84,-2512 89.03,-2507.83 94.7,-2504.47 100.72,-2501.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="23.28,-2642.14 25.68,-2652.46 30.24,-2642.9 23.28,-2642.14"/>
 </g>
 <!-- Node494 -->
 <g id="node344" class="node">
 <title>Node494</title>
-<g id="a_node344"><a xlink:href="classtvm_1_1s__tir_1_1ScheduleStateNode.html" target="_top" xlink:title="The state of scheduling, which exposes a Replace method as the primary interface for all the scheduli...">
-<polygon fill="white" stroke="black" points="103,-2292.5 103,-2311.5 267,-2311.5 267,-2292.5 103,-2292.5"/>
-<text text-anchor="middle" x="185" y="-2299.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::ScheduleStateNode</text>
+<g id="a_node344"><a xlink:href="classtvm_1_1s__tir_1_1InstructionNode.html" target="_top" xlink:title="Schedule instructions each corresponds to a schedule primitive.">
+<polygon fill="white" stroke="black" points="112,-2445.5 112,-2464.5 258,-2464.5 258,-2445.5 112,-2445.5"/>
+<text text-anchor="middle" x="185" y="-2452.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::InstructionNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node494 -->
 <g id="edge343" class="edge">
 <title>Node151&#45;&gt;Node494</title>
-<path fill="none" stroke="midnightblue" d="M25.58,-2641.24C27.91,-2575.68 38.81,-2366.92 84,-2321 89.33,-2315.58 95.69,-2311.45 102.59,-2308.32"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="22.07,-2641.33 25.24,-2651.43 29.07,-2641.55 22.07,-2641.33"/>
+<path fill="none" stroke="midnightblue" d="M24.98,-2641.99C26.11,-2603.28 34.44,-2518.11 84,-2474 91.92,-2466.95 101.62,-2462.16 111.83,-2458.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.48,-2642.36 24.83,-2652.41 28.48,-2642.46 21.48,-2642.36"/>
 </g>
 <!-- Node495 -->
 <g id="node345" class="node">
 <title>Node495</title>
-<g id="a_node345"><a xlink:href="classtvm_1_1s__tir_1_1TraceNode.html" target="_top" xlink:title="An execution trace of a scheduling program.">
-<polygon fill="white" stroke="black" points="125,-2254.5 125,-2273.5 245,-2273.5 245,-2254.5 125,-2254.5"/>
-<text text-anchor="middle" x="185" y="-2261.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::TraceNode</text>
+<g id="a_node345"><a xlink:href="classtvm_1_1s__tir_1_1LoopRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR for loop.">
+<polygon fill="white" stroke="black" points="119.5,-2407.5 119.5,-2426.5 250.5,-2426.5 250.5,-2407.5 119.5,-2407.5"/>
+<text text-anchor="middle" x="185" y="-2414.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::LoopRVNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node495 -->
 <g id="edge344" class="edge">
 <title>Node151&#45;&gt;Node495</title>
-<path fill="none" stroke="midnightblue" d="M25.2,-2641.35C26.31,-2571.24 33.8,-2334.88 84,-2283 94.69,-2271.95 109.66,-2266.22 124.78,-2263.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.69,-2641.4 25.06,-2651.45 28.69,-2641.5 21.69,-2641.4"/>
+<path fill="none" stroke="midnightblue" d="M27.43,-2642.4C33.97,-2592.85 53.56,-2464.45 84,-2436 93.68,-2426.95 106.28,-2421.57 119.24,-2418.49"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="23.94,-2642.1 26.14,-2652.46 30.88,-2642.99 23.94,-2642.1"/>
 </g>
 <!-- Node496 -->
 <g id="node346" class="node">
 <title>Node496</title>
-<g id="a_node346"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ArgInfoNode.html" target="_top" xlink:title="The argument information.">
-<polygon fill="white" stroke="black" points="113.5,-2205 113.5,-2235 256.5,-2235 256.5,-2205 113.5,-2205"/>
-<text text-anchor="start" x="121.5" y="-2223" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-2212" font-family="Helvetica,sans-Serif" font-size="10.00">::ArgInfoNode</text>
+<g id="a_node346"><a xlink:href="classtvm_1_1s__tir_1_1SBlockRVNode.html" target="_top" xlink:title="A random variable that evaluates to a TensorIR block.">
+<polygon fill="white" stroke="black" points="114.5,-2369.5 114.5,-2388.5 255.5,-2388.5 255.5,-2369.5 114.5,-2369.5"/>
+<text text-anchor="middle" x="185" y="-2376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::SBlockRVNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node496 -->
 <g id="edge345" class="edge">
 <title>Node151&#45;&gt;Node496</title>
-<path fill="none" stroke="midnightblue" d="M24.99,-2640.95C25.38,-2566.1 30.58,-2304.29 84,-2245 91.85,-2236.29 102.22,-2230.4 113.32,-2226.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.49,-2641.29 24.96,-2651.3 28.49,-2641.31 21.49,-2641.29"/>
+<path fill="none" stroke="midnightblue" d="M26.66,-2642.12C31.71,-2586.68 48.72,-2432.16 84,-2398 92.38,-2389.89 103.08,-2384.69 114.36,-2381.45"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="23.15,-2642.1 25.76,-2652.37 30.12,-2642.72 23.15,-2642.1"/>
+</g>
+<!-- Node497 -->
+<g id="node347" class="node">
+<title>Node497</title>
+<g id="a_node347"><a xlink:href="classtvm_1_1s__tir_1_1ScheduleNode.html" target="_top" xlink:title="The user&#45;facing schedule class.">
+<polygon fill="white" stroke="black" points="115.5,-2331.5 115.5,-2350.5 254.5,-2350.5 254.5,-2331.5 115.5,-2331.5"/>
+<text text-anchor="middle" x="185" y="-2338.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::ScheduleNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node497 -->
+<g id="edge346" class="edge">
+<title>Node151&#45;&gt;Node497</title>
+<path fill="none" stroke="midnightblue" d="M26.06,-2642.11C29.7,-2581.38 43.8,-2400 84,-2360 92.58,-2351.46 103.73,-2346.13 115.46,-2342.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="22.55,-2642.1 25.48,-2652.28 29.54,-2642.5 22.55,-2642.1"/>
 </g>
 <!-- Node498 -->
 <g id="node348" class="node">
 <title>Node498</title>
-<g id="a_node348"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1BuilderInputNode.html" target="_top" xlink:title="The builder&#39;s input, containing an IRModule and the target.">
-<polygon fill="white" stroke="black" points="113.5,-2156 113.5,-2186 256.5,-2186 256.5,-2156 113.5,-2156"/>
-<text text-anchor="start" x="121.5" y="-2174" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-2163" font-family="Helvetica,sans-Serif" font-size="10.00">::BuilderInputNode</text>
+<g id="a_node348"><a xlink:href="classtvm_1_1s__tir_1_1ScheduleStateNode.html" target="_top" xlink:title="The state of scheduling, which exposes a Replace method as the primary interface for all the scheduli...">
+<polygon fill="white" stroke="black" points="103,-2293.5 103,-2312.5 267,-2312.5 267,-2293.5 103,-2293.5"/>
+<text text-anchor="middle" x="185" y="-2300.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::ScheduleStateNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node498 -->
 <g id="edge347" class="edge">
 <title>Node151&#45;&gt;Node498</title>
-<path fill="none" stroke="midnightblue" d="M24.66,-2641.21C23.71,-2561.27 24.27,-2263.28 84,-2196 91.84,-2187.17 102.29,-2181.23 113.47,-2177.28"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.16,-2641.42 24.81,-2651.37 28.16,-2641.32 21.16,-2641.42"/>
+<path fill="none" stroke="midnightblue" d="M25.58,-2642.24C27.91,-2576.68 38.81,-2367.92 84,-2322 89.33,-2316.58 95.69,-2312.45 102.59,-2309.32"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="22.07,-2642.33 25.24,-2652.43 29.07,-2642.55 22.07,-2642.33"/>
 </g>
 <!-- Node499 -->
 <g id="node349" class="node">
 <title>Node499</title>
-<g id="a_node349"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1BuilderNode.html" target="_top" xlink:title="The abstract builder interface.">
-<polygon fill="white" stroke="black" points="113.5,-2107 113.5,-2137 256.5,-2137 256.5,-2107 113.5,-2107"/>
-<text text-anchor="start" x="121.5" y="-2125" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-2114" font-family="Helvetica,sans-Serif" font-size="10.00">::BuilderNode</text>
+<g id="a_node349"><a xlink:href="classtvm_1_1s__tir_1_1TraceNode.html" target="_top" xlink:title="An execution trace of a scheduling program.">
+<polygon fill="white" stroke="black" points="125,-2255.5 125,-2274.5 245,-2274.5 245,-2255.5 125,-2255.5"/>
+<text text-anchor="middle" x="185" y="-2262.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::TraceNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node499 -->
 <g id="edge348" class="edge">
 <title>Node151&#45;&gt;Node499</title>
-<path fill="none" stroke="midnightblue" d="M25.97,-2640.9C30.5,-2550.55 50.81,-2184.84 84,-2147 91.79,-2138.12 102.21,-2132.16 113.38,-2128.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="22.46,-2640.98 25.46,-2651.14 29.45,-2641.32 22.46,-2640.98"/>
+<path fill="none" stroke="midnightblue" d="M25.2,-2642.35C26.31,-2572.24 33.8,-2335.88 84,-2284 94.69,-2272.95 109.66,-2267.22 124.78,-2264.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.69,-2642.4 25.06,-2652.45 28.69,-2642.5 21.69,-2642.4"/>
 </g>
-<!-- Node501 -->
-<g id="node351" class="node">
-<title>Node501</title>
-<g id="a_node351"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1BuilderResultNode.html" target="_top" xlink:title="The builder&#39;s output, containing the artifact path or error message if any.">
-<polygon fill="white" stroke="black" points="113.5,-2058 113.5,-2088 256.5,-2088 256.5,-2058 113.5,-2058"/>
-<text text-anchor="start" x="121.5" y="-2076" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-2065" font-family="Helvetica,sans-Serif" font-size="10.00">::BuilderResultNode</text>
+<!-- Node500 -->
+<g id="node350" class="node">
+<title>Node500</title>
+<g id="a_node350"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ArgInfoNode.html" target="_top" xlink:title="The argument information.">
+<polygon fill="white" stroke="black" points="113.5,-2206 113.5,-2236 256.5,-2236 256.5,-2206 113.5,-2206"/>
+<text text-anchor="start" x="121.5" y="-2224" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-2213" font-family="Helvetica,sans-Serif" font-size="10.00">::ArgInfoNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node501 -->
-<g id="edge350" class="edge">
-<title>Node151&#45;&gt;Node501</title>
-<path fill="none" stroke="midnightblue" d="M25.75,-2641.12C29.51,-2545.96 47.62,-2139.89 84,-2098 91.74,-2089.08 102.14,-2083.1 113.31,-2079.14"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="22.25,-2641.01 25.36,-2651.14 29.25,-2641.28 22.25,-2641.01"/>
+<!-- Node151&#45;&gt;Node500 -->
+<g id="edge349" class="edge">
+<title>Node151&#45;&gt;Node500</title>
+<path fill="none" stroke="midnightblue" d="M24.99,-2641.95C25.38,-2567.1 30.58,-2305.29 84,-2246 91.85,-2237.29 102.22,-2231.4 113.32,-2227.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.49,-2642.29 24.96,-2652.3 28.49,-2642.31 21.49,-2642.29"/>
 </g>
 <!-- Node502 -->
 <g id="node352" class="node">
 <title>Node502</title>
-<g id="a_node352"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1CostModelNode.html" target="_top" xlink:title="Cost model.">
-<polygon fill="white" stroke="black" points="113.5,-2009 113.5,-2039 256.5,-2039 256.5,-2009 113.5,-2009"/>
-<text text-anchor="start" x="121.5" y="-2027" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-2016" font-family="Helvetica,sans-Serif" font-size="10.00">::CostModelNode</text>
+<g id="a_node352"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1BuilderInputNode.html" target="_top" xlink:title="The builder&#39;s input, containing an IRModule and the target.">
+<polygon fill="white" stroke="black" points="113.5,-2157 113.5,-2187 256.5,-2187 256.5,-2157 113.5,-2157"/>
+<text text-anchor="start" x="121.5" y="-2175" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-2164" font-family="Helvetica,sans-Serif" font-size="10.00">::BuilderInputNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node502 -->
 <g id="edge351" class="edge">
 <title>Node151&#45;&gt;Node502</title>
-<path fill="none" stroke="midnightblue" d="M25.58,-2641C28.65,-2540.64 44.47,-2094.9 84,-2049 91.71,-2040.05 102.09,-2034.05 113.25,-2030.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="22.07,-2641.15 25.27,-2651.25 29.07,-2641.36 22.07,-2641.15"/>
+<path fill="none" stroke="midnightblue" d="M24.66,-2642.21C23.71,-2562.27 24.27,-2264.28 84,-2197 91.84,-2188.17 102.29,-2182.23 113.47,-2178.28"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.16,-2642.42 24.81,-2652.37 28.16,-2642.32 21.16,-2642.42"/>
 </g>
-<!-- Node504 -->
-<g id="node354" class="node">
-<title>Node504</title>
-<g id="a_node354"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1DatabaseNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="113.5,-1960 113.5,-1990 256.5,-1990 256.5,-1960 113.5,-1960"/>
-<text text-anchor="start" x="121.5" y="-1978" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1967" font-family="Helvetica,sans-Serif" font-size="10.00">::DatabaseNode</text>
+<!-- Node503 -->
+<g id="node353" class="node">
+<title>Node503</title>
+<g id="a_node353"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1BuilderNode.html" target="_top" xlink:title="The abstract builder interface.">
+<polygon fill="white" stroke="black" points="113.5,-2108 113.5,-2138 256.5,-2138 256.5,-2108 113.5,-2108"/>
+<text text-anchor="start" x="121.5" y="-2126" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-2115" font-family="Helvetica,sans-Serif" font-size="10.00">::BuilderNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node504 -->
-<g id="edge353" class="edge">
-<title>Node151&#45;&gt;Node504</title>
-<path fill="none" stroke="midnightblue" d="M25.42,-2641.4C27.81,-2537.09 41.24,-2050.01 84,-2000 91.73,-1990.96 102.2,-1984.92 113.45,-1980.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.92,-2641.4 25.19,-2651.47 28.92,-2641.55 21.92,-2641.4"/>
+<!-- Node151&#45;&gt;Node503 -->
+<g id="edge352" class="edge">
+<title>Node151&#45;&gt;Node503</title>
+<path fill="none" stroke="midnightblue" d="M25.97,-2641.9C30.5,-2551.55 50.81,-2185.84 84,-2148 91.79,-2139.12 102.21,-2133.16 113.38,-2129.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="22.46,-2641.98 25.46,-2652.14 29.45,-2642.32 22.46,-2641.98"/>
+</g>
+<!-- Node505 -->
+<g id="node355" class="node">
+<title>Node505</title>
+<g id="a_node355"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1BuilderResultNode.html" target="_top" xlink:title="The builder&#39;s output, containing the artifact path or error message if any.">
+<polygon fill="white" stroke="black" points="113.5,-2059 113.5,-2089 256.5,-2089 256.5,-2059 113.5,-2059"/>
+<text text-anchor="start" x="121.5" y="-2077" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-2066" font-family="Helvetica,sans-Serif" font-size="10.00">::BuilderResultNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node505 -->
+<g id="edge354" class="edge">
+<title>Node151&#45;&gt;Node505</title>
+<path fill="none" stroke="midnightblue" d="M25.75,-2642.12C29.51,-2546.96 47.62,-2140.89 84,-2099 91.74,-2090.08 102.14,-2084.1 113.31,-2080.14"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="22.25,-2642.01 25.36,-2652.14 29.25,-2642.28 22.25,-2642.01"/>
 </g>
 <!-- Node506 -->
 <g id="node356" class="node">
 <title>Node506</title>
-<g id="a_node356"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ExtractedTaskNode.html" target="_top" xlink:title="A tuning task extracted from the high&#45;level IR.">
-<polygon fill="white" stroke="black" points="113.5,-1911 113.5,-1941 256.5,-1941 256.5,-1911 113.5,-1911"/>
-<text text-anchor="start" x="121.5" y="-1929" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1918" font-family="Helvetica,sans-Serif" font-size="10.00">::ExtractedTaskNode</text>
+<g id="a_node356"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1CostModelNode.html" target="_top" xlink:title="Cost model.">
+<polygon fill="white" stroke="black" points="113.5,-2010 113.5,-2040 256.5,-2040 256.5,-2010 113.5,-2010"/>
+<text text-anchor="start" x="121.5" y="-2028" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-2017" font-family="Helvetica,sans-Serif" font-size="10.00">::CostModelNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node506 -->
 <g id="edge355" class="edge">
 <title>Node151&#45;&gt;Node506</title>
-<path fill="none" stroke="midnightblue" d="M25.3,-2640.99C27.1,-2531.2 38.12,-2005 84,-1951 91.71,-1941.93 102.16,-1935.89 113.41,-1931.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.79,-2641.24 25.13,-2651.29 28.79,-2641.35 21.79,-2641.24"/>
+<path fill="none" stroke="midnightblue" d="M25.58,-2642C28.65,-2541.64 44.47,-2095.9 84,-2050 91.71,-2041.05 102.09,-2035.05 113.25,-2031.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="22.07,-2642.15 25.27,-2652.25 29.07,-2642.36 22.07,-2642.15"/>
 </g>
-<!-- Node507 -->
-<g id="node357" class="node">
-<title>Node507</title>
-<g id="a_node357"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1FeatureExtractorNode.html" target="_top" xlink:title="Extractor for features from measure candidates for use in cost model.">
-<polygon fill="white" stroke="black" points="113.5,-1862 113.5,-1892 256.5,-1892 256.5,-1862 113.5,-1862"/>
-<text text-anchor="start" x="121.5" y="-1880" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1869" font-family="Helvetica,sans-Serif" font-size="10.00">::FeatureExtractorNode</text>
+<!-- Node508 -->
+<g id="node358" class="node">
+<title>Node508</title>
+<g id="a_node358"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1DatabaseNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="113.5,-1961 113.5,-1991 256.5,-1991 256.5,-1961 113.5,-1961"/>
+<text text-anchor="start" x="121.5" y="-1979" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1968" font-family="Helvetica,sans-Serif" font-size="10.00">::DatabaseNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node507 -->
-<g id="edge356" class="edge">
-<title>Node151&#45;&gt;Node507</title>
-<path fill="none" stroke="midnightblue" d="M25.18,-2641.4C26.39,-2528.12 34.87,-1960.13 84,-1902 91.68,-1892.91 102.12,-1886.86 113.37,-1882.87"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.68,-2641.39 25.08,-2651.43 28.68,-2641.46 21.68,-2641.39"/>
+<!-- Node151&#45;&gt;Node508 -->
+<g id="edge357" class="edge">
+<title>Node151&#45;&gt;Node508</title>
+<path fill="none" stroke="midnightblue" d="M25.42,-2642.4C27.81,-2538.09 41.24,-2051.01 84,-2001 91.73,-1991.96 102.2,-1985.92 113.45,-1981.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.92,-2642.4 25.19,-2652.47 28.92,-2642.55 21.92,-2642.4"/>
 </g>
-<!-- Node509 -->
-<g id="node359" class="node">
-<title>Node509</title>
-<g id="a_node359"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1MeasureCallbackNode.html" target="_top" xlink:title="Rules to apply after measure results is available.">
-<polygon fill="white" stroke="black" points="113.5,-1813 113.5,-1843 256.5,-1843 256.5,-1813 113.5,-1813"/>
-<text text-anchor="start" x="121.5" y="-1831" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1820" font-family="Helvetica,sans-Serif" font-size="10.00">::MeasureCallbackNode</text>
+<!-- Node510 -->
+<g id="node360" class="node">
+<title>Node510</title>
+<g id="a_node360"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ExtractedTaskNode.html" target="_top" xlink:title="A tuning task extracted from the high&#45;level IR.">
+<polygon fill="white" stroke="black" points="113.5,-1912 113.5,-1942 256.5,-1942 256.5,-1912 113.5,-1912"/>
+<text text-anchor="start" x="121.5" y="-1930" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1919" font-family="Helvetica,sans-Serif" font-size="10.00">::ExtractedTaskNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node509 -->
-<g id="edge358" class="edge">
-<title>Node151&#45;&gt;Node509</title>
-<path fill="none" stroke="midnightblue" d="M25.08,-2641.25C25.75,-2523.33 31.7,-1915.17 84,-1853 91.66,-1843.89 102.09,-1837.83 113.33,-1833.85"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.58,-2641.35 25.03,-2651.36 28.58,-2641.38 21.58,-2641.35"/>
+<!-- Node151&#45;&gt;Node510 -->
+<g id="edge359" class="edge">
+<title>Node151&#45;&gt;Node510</title>
+<path fill="none" stroke="midnightblue" d="M25.3,-2641.99C27.1,-2532.2 38.12,-2006 84,-1952 91.71,-1942.93 102.16,-1936.89 113.41,-1932.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.79,-2642.24 25.13,-2652.29 28.79,-2642.35 21.79,-2642.24"/>
 </g>
 <!-- Node511 -->
 <g id="node361" class="node">
 <title>Node511</title>
-<g id="a_node361"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1MeasureCandidateNode.html" target="_top" xlink:title="The schedule (with input shapes) to be measured.">
-<polygon fill="white" stroke="black" points="113.5,-1764 113.5,-1794 256.5,-1794 256.5,-1764 113.5,-1764"/>
-<text text-anchor="start" x="121.5" y="-1782" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1771" font-family="Helvetica,sans-Serif" font-size="10.00">::MeasureCandidateNode</text>
+<g id="a_node361"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1FeatureExtractorNode.html" target="_top" xlink:title="Extractor for features from measure candidates for use in cost model.">
+<polygon fill="white" stroke="black" points="113.5,-1863 113.5,-1893 256.5,-1893 256.5,-1863 113.5,-1863"/>
+<text text-anchor="start" x="121.5" y="-1881" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1870" font-family="Helvetica,sans-Serif" font-size="10.00">::FeatureExtractorNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node511 -->
 <g id="edge360" class="edge">
 <title>Node151&#45;&gt;Node511</title>
-<path fill="none" stroke="midnightblue" d="M24.99,-2641.21C25.14,-2519.01 28.51,-1870.25 84,-1804 91.64,-1794.88 102.06,-1788.81 113.3,-1784.82"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.49,-2641.35 24.99,-2651.35 28.49,-2641.35 21.49,-2641.35"/>
+<path fill="none" stroke="midnightblue" d="M25.18,-2642.4C26.39,-2529.12 34.87,-1961.13 84,-1903 91.68,-1893.91 102.12,-1887.86 113.37,-1883.87"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.68,-2642.39 25.08,-2652.43 28.68,-2642.46 21.68,-2642.39"/>
 </g>
-<!-- Node512 -->
-<g id="node362" class="node">
-<title>Node512</title>
-<g id="a_node362"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1MutatorNode.html" target="_top" xlink:title="Mutator is designed to mutate the trace to explore the design space.">
-<polygon fill="white" stroke="black" points="113.5,-1715 113.5,-1745 256.5,-1745 256.5,-1715 113.5,-1715"/>
-<text text-anchor="start" x="121.5" y="-1733" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1722" font-family="Helvetica,sans-Serif" font-size="10.00">::MutatorNode</text>
+<!-- Node513 -->
+<g id="node363" class="node">
+<title>Node513</title>
+<g id="a_node363"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1MeasureCallbackNode.html" target="_top" xlink:title="Rules to apply after measure results is available.">
+<polygon fill="white" stroke="black" points="113.5,-1814 113.5,-1844 256.5,-1844 256.5,-1814 113.5,-1814"/>
+<text text-anchor="start" x="121.5" y="-1832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1821" font-family="Helvetica,sans-Serif" font-size="10.00">::MeasureCallbackNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node512 -->
-<g id="edge361" class="edge">
-<title>Node151&#45;&gt;Node512</title>
-<path fill="none" stroke="midnightblue" d="M24.92,-2641.26C24.56,-2515.17 25.3,-1825.34 84,-1755 91.62,-1745.86 102.04,-1739.79 113.27,-1735.8"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.42,-2641.4 24.95,-2651.39 28.42,-2641.38 21.42,-2641.4"/>
+<!-- Node151&#45;&gt;Node513 -->
+<g id="edge362" class="edge">
+<title>Node151&#45;&gt;Node513</title>
+<path fill="none" stroke="midnightblue" d="M25.08,-2642.25C25.75,-2524.33 31.7,-1916.17 84,-1854 91.66,-1844.89 102.09,-1838.83 113.33,-1834.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.58,-2642.35 25.03,-2652.36 28.58,-2642.38 21.58,-2642.35"/>
 </g>
-<!-- Node514 -->
-<g id="node364" class="node">
-<title>Node514</title>
-<g id="a_node364"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1PostprocNode.html" target="_top" xlink:title="Rules to apply a postprocessor to a schedule.">
-<polygon fill="white" stroke="black" points="113.5,-1666 113.5,-1696 256.5,-1696 256.5,-1666 113.5,-1666"/>
-<text text-anchor="start" x="121.5" y="-1684" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1673" font-family="Helvetica,sans-Serif" font-size="10.00">::PostprocNode</text>
+<!-- Node515 -->
+<g id="node365" class="node">
+<title>Node515</title>
+<g id="a_node365"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1MeasureCandidateNode.html" target="_top" xlink:title="The schedule (with input shapes) to be measured.">
+<polygon fill="white" stroke="black" points="113.5,-1765 113.5,-1795 256.5,-1795 256.5,-1765 113.5,-1765"/>
+<text text-anchor="start" x="121.5" y="-1783" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1772" font-family="Helvetica,sans-Serif" font-size="10.00">::MeasureCandidateNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node514 -->
-<g id="edge363" class="edge">
-<title>Node151&#45;&gt;Node514</title>
-<path fill="none" stroke="midnightblue" d="M24.85,-2641.41C24.01,-2511.8 22.07,-1780.46 84,-1706 91.61,-1696.85 102.01,-1690.77 113.25,-1686.78"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.35,-2641.5 24.92,-2651.47 28.35,-2641.45 21.35,-2641.5"/>
+<!-- Node151&#45;&gt;Node515 -->
+<g id="edge364" class="edge">
+<title>Node151&#45;&gt;Node515</title>
+<path fill="none" stroke="midnightblue" d="M24.99,-2642.21C25.14,-2520.01 28.51,-1871.25 84,-1805 91.64,-1795.88 102.06,-1789.81 113.3,-1785.82"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.49,-2642.35 24.99,-2652.35 28.49,-2642.35 21.49,-2642.35"/>
 </g>
 <!-- Node516 -->
 <g id="node366" class="node">
 <title>Node516</title>
-<g id="a_node366"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ProfilerNode.html" target="_top" xlink:title="A generic profiler.">
-<polygon fill="white" stroke="black" points="113.5,-1617 113.5,-1647 256.5,-1647 256.5,-1617 113.5,-1617"/>
-<text text-anchor="start" x="121.5" y="-1635" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1624" font-family="Helvetica,sans-Serif" font-size="10.00">::ProfilerNode</text>
+<g id="a_node366"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1MutatorNode.html" target="_top" xlink:title="Mutator is designed to mutate the trace to explore the design space.">
+<polygon fill="white" stroke="black" points="113.5,-1716 113.5,-1746 256.5,-1746 256.5,-1716 113.5,-1716"/>
+<text text-anchor="start" x="121.5" y="-1734" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1723" font-family="Helvetica,sans-Serif" font-size="10.00">::MutatorNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node516 -->
 <g id="edge365" class="edge">
 <title>Node151&#45;&gt;Node516</title>
-<path fill="none" stroke="midnightblue" d="M24.78,-2641.24C23.49,-2507.31 18.89,-1735.53 84,-1657 91.65,-1647.77 102.15,-1641.66 113.48,-1637.67"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.28,-2641.33 24.89,-2651.29 28.28,-2641.26 21.28,-2641.33"/>
-</g>
-<!-- Node517 -->
-<g id="node367" class="node">
-<title>Node517</title>
-<g id="a_node367"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerFutureNode.html" target="_top" xlink:title="A class to asynchronously fetch runner&#39;s output.">
-<polygon fill="white" stroke="black" points="113.5,-1568 113.5,-1598 256.5,-1598 256.5,-1568 113.5,-1568"/>
-<text text-anchor="start" x="121.5" y="-1586" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1575" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerFutureNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node517 -->
-<g id="edge366" class="edge">
-<title>Node151&#45;&gt;Node517</title>
-<path fill="none" stroke="midnightblue" d="M25.45,-2641.12C28.72,-2499.61 49.78,-1649.39 84,-1608 91.64,-1598.76 102.13,-1592.64 113.46,-1588.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.94,-2641.26 25.21,-2651.34 28.94,-2641.42 21.94,-2641.26"/>
+<path fill="none" stroke="midnightblue" d="M24.92,-2642.26C24.56,-2516.17 25.3,-1826.34 84,-1756 91.62,-1746.86 102.04,-1740.79 113.27,-1736.8"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.42,-2642.4 24.95,-2652.39 28.42,-2642.38 21.42,-2642.4"/>
 </g>
 <!-- Node518 -->
 <g id="node368" class="node">
 <title>Node518</title>
-<g id="a_node368"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerInputNode.html" target="_top" xlink:title="Runner&#39;s input containing path of artifact, type of device and argument info.">
-<polygon fill="white" stroke="black" points="113.5,-1519 113.5,-1549 256.5,-1549 256.5,-1519 113.5,-1519"/>
-<text text-anchor="start" x="121.5" y="-1537" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1526" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerInputNode</text>
+<g id="a_node368"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1PostprocNode.html" target="_top" xlink:title="Rules to apply a postprocessor to a schedule.">
+<polygon fill="white" stroke="black" points="113.5,-1667 113.5,-1697 256.5,-1697 256.5,-1667 113.5,-1667"/>
+<text text-anchor="start" x="121.5" y="-1685" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1674" font-family="Helvetica,sans-Serif" font-size="10.00">::PostprocNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node518 -->
 <g id="edge367" class="edge">
 <title>Node151&#45;&gt;Node518</title>
-<path fill="none" stroke="midnightblue" d="M25.4,-2641.09C28.39,-2495.75 48.17,-1602.44 84,-1559 91.63,-1549.75 102.11,-1543.63 113.44,-1539.63"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.9,-2641.15 25.19,-2651.22 28.89,-2641.3 21.9,-2641.15"/>
+<path fill="none" stroke="midnightblue" d="M24.85,-2642.41C24.01,-2512.8 22.07,-1781.46 84,-1707 91.61,-1697.85 102.01,-1691.77 113.25,-1687.78"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.35,-2642.5 24.92,-2652.47 28.35,-2642.45 21.35,-2642.5"/>
 </g>
-<!-- Node519 -->
-<g id="node369" class="node">
-<title>Node519</title>
-<g id="a_node369"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerNode.html" target="_top" xlink:title="The abstract runner interface.">
-<polygon fill="white" stroke="black" points="113.5,-1470 113.5,-1500 256.5,-1500 256.5,-1470 113.5,-1470"/>
-<text text-anchor="start" x="121.5" y="-1488" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1477" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerNode</text>
+<!-- Node520 -->
+<g id="node370" class="node">
+<title>Node520</title>
+<g id="a_node370"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ProfilerNode.html" target="_top" xlink:title="A generic profiler.">
+<polygon fill="white" stroke="black" points="113.5,-1618 113.5,-1648 256.5,-1648 256.5,-1618 113.5,-1618"/>
+<text text-anchor="start" x="121.5" y="-1636" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1625" font-family="Helvetica,sans-Serif" font-size="10.00">::ProfilerNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node519 -->
-<g id="edge368" class="edge">
-<title>Node151&#45;&gt;Node519</title>
-<path fill="none" stroke="midnightblue" d="M25.35,-2641.14C28.06,-2492.27 46.56,-1555.51 84,-1510 91.62,-1500.74 102.1,-1494.62 113.42,-1490.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.85,-2641.41 25.17,-2651.47 28.84,-2641.53 21.85,-2641.41"/>
+<!-- Node151&#45;&gt;Node520 -->
+<g id="edge369" class="edge">
+<title>Node151&#45;&gt;Node520</title>
+<path fill="none" stroke="midnightblue" d="M24.78,-2642.24C23.49,-2508.31 18.89,-1736.53 84,-1658 91.65,-1648.77 102.15,-1642.66 113.48,-1638.67"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.28,-2642.33 24.89,-2652.29 28.28,-2642.26 21.28,-2642.33"/>
 </g>
 <!-- Node521 -->
 <g id="node371" class="node">
 <title>Node521</title>
-<g id="a_node371"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerResultNode.html" target="_top" xlink:title="Runner&#39;s output containing measurement result of MeasureCandidate or error msg if any.">
-<polygon fill="white" stroke="black" points="113.5,-1421 113.5,-1451 256.5,-1451 256.5,-1421 113.5,-1421"/>
-<text text-anchor="start" x="121.5" y="-1439" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1428" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerResultNode</text>
+<g id="a_node371"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerFutureNode.html" target="_top" xlink:title="A class to asynchronously fetch runner&#39;s output.">
+<polygon fill="white" stroke="black" points="113.5,-1569 113.5,-1599 256.5,-1599 256.5,-1569 113.5,-1569"/>
+<text text-anchor="start" x="121.5" y="-1587" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1576" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerFutureNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node521 -->
 <g id="edge370" class="edge">
 <title>Node151&#45;&gt;Node521</title>
-<path fill="none" stroke="midnightblue" d="M25.31,-2641.23C27.74,-2489.08 44.94,-1508.58 84,-1461 91.61,-1451.73 102.08,-1445.61 113.41,-1441.61"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.8,-2641.35 25.15,-2651.41 28.8,-2641.47 21.8,-2641.35"/>
+<path fill="none" stroke="midnightblue" d="M25.45,-2642.12C28.72,-2500.61 49.78,-1650.39 84,-1609 91.64,-1599.76 102.13,-1593.64 113.46,-1589.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.94,-2642.26 25.21,-2652.34 28.94,-2642.42 21.94,-2642.26"/>
 </g>
 <!-- Node522 -->
 <g id="node372" class="node">
 <title>Node522</title>
-<g id="a_node372"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ScheduleRuleNode.html" target="_top" xlink:title="Rules to modify a block in a schedule.">
-<polygon fill="white" stroke="black" points="113.5,-1372 113.5,-1402 256.5,-1402 256.5,-1372 113.5,-1372"/>
-<text text-anchor="start" x="121.5" y="-1390" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1379" font-family="Helvetica,sans-Serif" font-size="10.00">::ScheduleRuleNode</text>
+<g id="a_node372"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerInputNode.html" target="_top" xlink:title="Runner&#39;s input containing path of artifact, type of device and argument info.">
+<polygon fill="white" stroke="black" points="113.5,-1520 113.5,-1550 256.5,-1550 256.5,-1520 113.5,-1520"/>
+<text text-anchor="start" x="121.5" y="-1538" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1527" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerInputNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node522 -->
 <g id="edge371" class="edge">
 <title>Node151&#45;&gt;Node522</title>
-<path fill="none" stroke="midnightblue" d="M25.27,-2640.92C27.47,-2484.17 43.35,-1461.6 84,-1412 91.6,-1402.73 102.07,-1396.59 113.39,-1392.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.77,-2641.32 25.13,-2651.37 28.76,-2641.42 21.77,-2641.32"/>
+<path fill="none" stroke="midnightblue" d="M25.4,-2642.09C28.39,-2496.75 48.17,-1603.44 84,-1560 91.63,-1550.75 102.11,-1544.63 113.44,-1540.63"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.9,-2642.15 25.19,-2652.22 28.89,-2642.3 21.9,-2642.15"/>
 </g>
-<!-- Node524 -->
-<g id="node374" class="node">
-<title>Node524</title>
-<g id="a_node374"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1SearchStrategyNode.html" target="_top" xlink:title="The search strategy for measure candidates generation.">
-<polygon fill="white" stroke="black" points="113.5,-1323 113.5,-1353 256.5,-1353 256.5,-1323 113.5,-1323"/>
-<text text-anchor="start" x="121.5" y="-1341" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1330" font-family="Helvetica,sans-Serif" font-size="10.00">::SearchStrategyNode</text>
+<!-- Node523 -->
+<g id="node373" class="node">
+<title>Node523</title>
+<g id="a_node373"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerNode.html" target="_top" xlink:title="The abstract runner interface.">
+<polygon fill="white" stroke="black" points="113.5,-1471 113.5,-1501 256.5,-1501 256.5,-1471 113.5,-1471"/>
+<text text-anchor="start" x="121.5" y="-1489" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1478" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node524 -->
-<g id="edge373" class="edge">
-<title>Node151&#45;&gt;Node524</title>
-<path fill="none" stroke="midnightblue" d="M25.23,-2641.11C27.17,-2481.57 41.72,-1414.69 84,-1363 91.59,-1353.72 102.06,-1347.58 113.38,-1343.58"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.73,-2641.31 25.11,-2651.35 28.73,-2641.4 21.73,-2641.31"/>
+<!-- Node151&#45;&gt;Node523 -->
+<g id="edge372" class="edge">
+<title>Node151&#45;&gt;Node523</title>
+<path fill="none" stroke="midnightblue" d="M25.35,-2642.14C28.06,-2493.27 46.56,-1556.51 84,-1511 91.62,-1501.74 102.1,-1495.62 113.42,-1491.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.85,-2642.41 25.17,-2652.47 28.84,-2642.53 21.85,-2642.41"/>
+</g>
+<!-- Node525 -->
+<g id="node375" class="node">
+<title>Node525</title>
+<g id="a_node375"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1RunnerResultNode.html" target="_top" xlink:title="Runner&#39;s output containing measurement result of MeasureCandidate or error msg if any.">
+<polygon fill="white" stroke="black" points="113.5,-1422 113.5,-1452 256.5,-1452 256.5,-1422 113.5,-1422"/>
+<text text-anchor="start" x="121.5" y="-1440" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1429" font-family="Helvetica,sans-Serif" font-size="10.00">::RunnerResultNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node525 -->
+<g id="edge374" class="edge">
+<title>Node151&#45;&gt;Node525</title>
+<path fill="none" stroke="midnightblue" d="M25.31,-2642.23C27.74,-2490.08 44.94,-1509.58 84,-1462 91.61,-1452.73 102.08,-1446.61 113.41,-1442.61"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.8,-2642.35 25.15,-2652.41 28.8,-2642.47 21.8,-2642.35"/>
 </g>
 <!-- Node526 -->
 <g id="node376" class="node">
 <title>Node526</title>
-<g id="a_node376"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1SpaceGeneratorNode.html" target="_top" xlink:title="The abstract class for design space generation.">
-<polygon fill="white" stroke="black" points="113.5,-1274 113.5,-1304 256.5,-1304 256.5,-1274 113.5,-1274"/>
-<text text-anchor="start" x="121.5" y="-1292" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1281" font-family="Helvetica,sans-Serif" font-size="10.00">::SpaceGeneratorNode</text>
+<g id="a_node376"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1ScheduleRuleNode.html" target="_top" xlink:title="Rules to modify a block in a schedule.">
+<polygon fill="white" stroke="black" points="113.5,-1373 113.5,-1403 256.5,-1403 256.5,-1373 113.5,-1373"/>
+<text text-anchor="start" x="121.5" y="-1391" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1380" font-family="Helvetica,sans-Serif" font-size="10.00">::ScheduleRuleNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node526 -->
 <g id="edge375" class="edge">
 <title>Node151&#45;&gt;Node526</title>
-<path fill="none" stroke="midnightblue" d="M25.2,-2641.36C26.89,-2479.3 40.08,-1367.78 84,-1314 91.58,-1304.71 102.05,-1298.58 113.36,-1294.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.7,-2641.32 25.09,-2651.36 28.7,-2641.39 21.7,-2641.32"/>
+<path fill="none" stroke="midnightblue" d="M25.27,-2641.92C27.47,-2485.17 43.35,-1462.6 84,-1413 91.6,-1403.73 102.07,-1397.59 113.39,-1393.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.77,-2642.32 25.13,-2652.37 28.76,-2642.42 21.77,-2642.32"/>
 </g>
 <!-- Node528 -->
 <g id="node378" class="node">
 <title>Node528</title>
-<g id="a_node378"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TaskRecordNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="113.5,-1225 113.5,-1255 256.5,-1255 256.5,-1225 113.5,-1225"/>
-<text text-anchor="start" x="121.5" y="-1243" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1232" font-family="Helvetica,sans-Serif" font-size="10.00">::TaskRecordNode</text>
+<g id="a_node378"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1SearchStrategyNode.html" target="_top" xlink:title="The search strategy for measure candidates generation.">
+<polygon fill="white" stroke="black" points="113.5,-1324 113.5,-1354 256.5,-1354 256.5,-1324 113.5,-1324"/>
+<text text-anchor="start" x="121.5" y="-1342" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1331" font-family="Helvetica,sans-Serif" font-size="10.00">::SearchStrategyNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node528 -->
 <g id="edge377" class="edge">
 <title>Node151&#45;&gt;Node528</title>
-<path fill="none" stroke="midnightblue" d="M25.17,-2641.16C26.64,-2475.07 38.48,-1320.83 84,-1265 91.58,-1255.71 102.04,-1249.57 113.35,-1245.56"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.66,-2641.35 25.08,-2651.38 28.66,-2641.41 21.66,-2641.35"/>
-</g>
-<!-- Node529 -->
-<g id="node379" class="node">
-<title>Node529</title>
-<g id="a_node379"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TaskSchedulerNode.html" target="_top" xlink:title="The abstract interface of task schedulers.">
-<polygon fill="white" stroke="black" points="113.5,-1176 113.5,-1206 256.5,-1206 256.5,-1176 113.5,-1176"/>
-<text text-anchor="start" x="121.5" y="-1194" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1183" font-family="Helvetica,sans-Serif" font-size="10.00">::TaskSchedulerNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node529 -->
-<g id="edge378" class="edge">
-<title>Node151&#45;&gt;Node529</title>
-<path fill="none" stroke="midnightblue" d="M25.14,-2641.24C26.38,-2472.2 36.86,-1273.9 84,-1216 91.57,-1206.7 102.03,-1200.56 113.34,-1196.56"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.63,-2641.4 25.06,-2651.42 28.63,-2641.45 21.63,-2641.4"/>
+<path fill="none" stroke="midnightblue" d="M25.23,-2642.11C27.17,-2482.57 41.72,-1415.69 84,-1364 91.59,-1354.72 102.06,-1348.58 113.38,-1344.58"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.73,-2642.31 25.11,-2652.35 28.73,-2642.4 21.73,-2642.31"/>
 </g>
-<!-- Node531 -->
-<g id="node381" class="node">
-<title>Node531</title>
-<g id="a_node381"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TuneContextNode.html" target="_top" xlink:title="The auto tuning context.">
-<polygon fill="white" stroke="black" points="113.5,-1127 113.5,-1157 256.5,-1157 256.5,-1127 113.5,-1127"/>
-<text text-anchor="start" x="121.5" y="-1145" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1134" font-family="Helvetica,sans-Serif" font-size="10.00">::TuneContextNode</text>
+<!-- Node530 -->
+<g id="node380" class="node">
+<title>Node530</title>
+<g id="a_node380"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1SpaceGeneratorNode.html" target="_top" xlink:title="The abstract class for design space generation.">
+<polygon fill="white" stroke="black" points="113.5,-1275 113.5,-1305 256.5,-1305 256.5,-1275 113.5,-1275"/>
+<text text-anchor="start" x="121.5" y="-1293" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1282" font-family="Helvetica,sans-Serif" font-size="10.00">::SpaceGeneratorNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node531 -->
-<g id="edge380" class="edge">
-<title>Node151&#45;&gt;Node531</title>
-<path fill="none" stroke="midnightblue" d="M25.11,-2641.37C26.13,-2469.59 35.23,-1226.99 84,-1167 91.56,-1157.7 102.02,-1151.55 113.33,-1147.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.61,-2641.47 25.05,-2651.49 28.61,-2641.51 21.61,-2641.47"/>
+<!-- Node151&#45;&gt;Node530 -->
+<g id="edge379" class="edge">
+<title>Node151&#45;&gt;Node530</title>
+<path fill="none" stroke="midnightblue" d="M25.2,-2642.36C26.89,-2480.3 40.08,-1368.78 84,-1315 91.58,-1305.71 102.05,-1299.58 113.36,-1295.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.7,-2642.32 25.09,-2652.36 28.7,-2642.39 21.7,-2642.32"/>
 </g>
 <!-- Node532 -->
 <g id="node382" class="node">
 <title>Node532</title>
-<g id="a_node382"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TuningRecordNode.html" target="_top" xlink:title="The class of tuning records.">
-<polygon fill="white" stroke="black" points="113.5,-1078 113.5,-1108 256.5,-1108 256.5,-1078 113.5,-1078"/>
-<text text-anchor="start" x="121.5" y="-1096" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1085" font-family="Helvetica,sans-Serif" font-size="10.00">::TuningRecordNode</text>
+<g id="a_node382"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TaskRecordNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="113.5,-1226 113.5,-1256 256.5,-1256 256.5,-1226 113.5,-1226"/>
+<text text-anchor="start" x="121.5" y="-1244" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1233" font-family="Helvetica,sans-Serif" font-size="10.00">::TaskRecordNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node532 -->
 <g id="edge381" class="edge">
 <title>Node151&#45;&gt;Node532</title>
-<path fill="none" stroke="midnightblue" d="M25.08,-2640.99C25.91,-2464.59 33.64,-1180.02 84,-1118 91.56,-1108.69 102.01,-1102.54 113.32,-1098.54"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.58,-2641.16 25.04,-2651.17 28.58,-2641.19 21.58,-2641.16"/>
+<path fill="none" stroke="midnightblue" d="M25.17,-2642.16C26.64,-2476.07 38.48,-1321.83 84,-1266 91.58,-1256.71 102.04,-1250.57 113.35,-1246.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.66,-2642.35 25.08,-2652.38 28.66,-2642.41 21.66,-2642.35"/>
 </g>
 <!-- Node533 -->
 <g id="node383" class="node">
 <title>Node533</title>
-<g id="a_node383"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1WorkloadNode.html" target="_top" xlink:title="A workload, i.e. an IRModule and its structural hash.">
-<polygon fill="white" stroke="black" points="113.5,-1029 113.5,-1059 256.5,-1059 256.5,-1029 113.5,-1029"/>
-<text text-anchor="start" x="121.5" y="-1047" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
-<text text-anchor="middle" x="185" y="-1036" font-family="Helvetica,sans-Serif" font-size="10.00">::WorkloadNode</text>
+<g id="a_node383"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TaskSchedulerNode.html" target="_top" xlink:title="The abstract interface of task schedulers.">
+<polygon fill="white" stroke="black" points="113.5,-1177 113.5,-1207 256.5,-1207 256.5,-1177 113.5,-1177"/>
+<text text-anchor="start" x="121.5" y="-1195" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1184" font-family="Helvetica,sans-Serif" font-size="10.00">::TaskSchedulerNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node533 -->
 <g id="edge382" class="edge">
 <title>Node151&#45;&gt;Node533</title>
-<path fill="none" stroke="midnightblue" d="M25.06,-2641.18C25.68,-2462.41 32.01,-1133.11 84,-1069 91.55,-1059.69 102,-1053.54 113.31,-1049.53"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.56,-2641.25 25.03,-2651.27 28.56,-2641.28 21.56,-2641.25"/>
-</g>
-<!-- Node534 -->
-<g id="node384" class="node">
-<title>Node534</title>
-<g id="a_node384"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="123.5,-980 123.5,-1010 246.5,-1010 246.5,-980 123.5,-980"/>
-<text text-anchor="start" x="131.5" y="-998" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="185" y="-987" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderFrameNode</text>
-</a>
-</g>
-</g>
-<!-- Node151&#45;&gt;Node534 -->
-<g id="edge383" class="edge">
-<title>Node151&#45;&gt;Node534</title>
-<path fill="none" stroke="midnightblue" d="M25.04,-2641.13C25.46,-2459.11 30.39,-1086.18 84,-1020 93.74,-1007.97 108.32,-1001.22 123.35,-997.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.54,-2641.37 25.02,-2651.37 28.54,-2641.38 21.54,-2641.37"/>
+<path fill="none" stroke="midnightblue" d="M25.14,-2642.24C26.38,-2473.2 36.86,-1274.9 84,-1217 91.57,-1207.7 102.03,-1201.56 113.34,-1197.56"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.63,-2642.4 25.06,-2652.42 28.63,-2642.45 21.63,-2642.4"/>
 </g>
-<!-- Node555 -->
-<g id="node405" class="node">
-<title>Node555</title>
-<g id="a_node405"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html" target="_top" xlink:title="A dialect&#45;agnostic IRBuilder that constructs any IR of TVM. An idiomatic use of this class is to put ...">
-<polygon fill="white" stroke="black" points="124.5,-931 124.5,-961 245.5,-961 245.5,-931 124.5,-931"/>
-<text text-anchor="start" x="132.5" y="-949" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="185" y="-938" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderNode</text>
+<!-- Node535 -->
+<g id="node385" class="node">
+<title>Node535</title>
+<g id="a_node385"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TuneContextNode.html" target="_top" xlink:title="The auto tuning context.">
+<polygon fill="white" stroke="black" points="113.5,-1128 113.5,-1158 256.5,-1158 256.5,-1128 113.5,-1128"/>
+<text text-anchor="start" x="121.5" y="-1146" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1135" font-family="Helvetica,sans-Serif" font-size="10.00">::TuneContextNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node555 -->
-<g id="edge404" class="edge">
-<title>Node151&#45;&gt;Node555</title>
-<path fill="none" stroke="midnightblue" d="M25.02,-2641.39C25.24,-2457.39 28.74,-1039.28 84,-971 93.96,-958.69 108.99,-951.9 124.39,-948.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.52,-2641.49 25,-2651.5 28.52,-2641.5 21.52,-2641.49"/>
+<!-- Node151&#45;&gt;Node535 -->
+<g id="edge384" class="edge">
+<title>Node151&#45;&gt;Node535</title>
+<path fill="none" stroke="midnightblue" d="M25.11,-2642.37C26.13,-2470.59 35.23,-1227.99 84,-1168 91.56,-1158.7 102.02,-1152.55 113.33,-1148.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.61,-2642.47 25.05,-2652.49 28.61,-2642.51 21.61,-2642.47"/>
 </g>
-<!-- Node556 -->
-<g id="node406" class="node">
-<title>Node556</title>
-<g id="a_node406"><a xlink:href="classtvm_1_1script_1_1printer_1_1DocNode.html" target="_top" xlink:title="The base class of all Doc.">
-<polygon fill="white" stroke="black" points="131.5,-882 131.5,-912 238.5,-912 238.5,-882 131.5,-882"/>
-<text text-anchor="start" x="139.5" y="-900" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::printer</text>
-<text text-anchor="middle" x="185" y="-889" font-family="Helvetica,sans-Serif" font-size="10.00">::DocNode</text>
+<!-- Node536 -->
+<g id="node386" class="node">
+<title>Node536</title>
+<g id="a_node386"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1TuningRecordNode.html" target="_top" xlink:title="The class of tuning records.">
+<polygon fill="white" stroke="black" points="113.5,-1079 113.5,-1109 256.5,-1109 256.5,-1079 113.5,-1079"/>
+<text text-anchor="start" x="121.5" y="-1097" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1086" font-family="Helvetica,sans-Serif" font-size="10.00">::TuningRecordNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node556 -->
-<g id="edge405" class="edge">
-<title>Node151&#45;&gt;Node556</title>
-<path fill="none" stroke="midnightblue" d="M25,-2641.1C25.03,-2452.95 27.15,-992.32 84,-922 95.48,-907.81 113.68,-900.95 131.43,-897.85"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.5,-2641.22 25,-2651.22 28.5,-2641.22 21.5,-2641.22"/>
+<!-- Node151&#45;&gt;Node536 -->
+<g id="edge385" class="edge">
+<title>Node151&#45;&gt;Node536</title>
+<path fill="none" stroke="midnightblue" d="M25.08,-2641.99C25.91,-2465.59 33.64,-1181.02 84,-1119 91.56,-1109.69 102.01,-1103.54 113.32,-1099.54"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.58,-2642.16 25.04,-2652.17 28.58,-2642.19 21.58,-2642.16"/>
 </g>
-<!-- Node583 -->
-<g id="node433" class="node">
-<title>Node583</title>
-<g id="a_node433"><a xlink:href="classtvm_1_1script_1_1printer_1_1FrameNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="131.5,-833 131.5,-863 238.5,-863 238.5,-833 131.5,-833"/>
-<text text-anchor="start" x="139.5" y="-851" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::printer</text>
-<text text-anchor="middle" x="185" y="-840" font-family="Helvetica,sans-Serif" font-size="10.00">::FrameNode</text>
+<!-- Node537 -->
+<g id="node387" class="node">
+<title>Node537</title>
+<g id="a_node387"><a xlink:href="classtvm_1_1s__tir_1_1meta__schedule_1_1WorkloadNode.html" target="_top" xlink:title="A workload, i.e. an IRModule and its structural hash.">
+<polygon fill="white" stroke="black" points="113.5,-1030 113.5,-1060 256.5,-1060 256.5,-1030 113.5,-1030"/>
+<text text-anchor="start" x="121.5" y="-1048" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::s_tir::meta_schedule</text>
+<text text-anchor="middle" x="185" y="-1037" font-family="Helvetica,sans-Serif" font-size="10.00">::WorkloadNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node583 -->
-<g id="edge432" class="edge">
-<title>Node151&#45;&gt;Node583</title>
-<path fill="none" stroke="midnightblue" d="M24.98,-2641.13C24.83,-2450.16 25.52,-945.4 84,-873 95.47,-858.8 113.67,-851.95 131.43,-848.84"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.48,-2641.38 24.99,-2651.37 28.48,-2641.37 21.48,-2641.38"/>
+<!-- Node151&#45;&gt;Node537 -->
+<g id="edge386" class="edge">
+<title>Node151&#45;&gt;Node537</title>
+<path fill="none" stroke="midnightblue" d="M25.06,-2642.18C25.68,-2463.41 32.01,-1134.11 84,-1070 91.55,-1060.69 102,-1054.54 113.31,-1050.53"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.56,-2642.25 25.03,-2652.27 28.56,-2642.28 21.56,-2642.25"/>
 </g>
-<!-- Node584 -->
-<g id="node434" class="node">
-<title>Node584</title>
-<g id="a_node434"><a xlink:href="classtvm_1_1script_1_1printer_1_1IRDocsifierNode.html" target="_top" xlink:title="IRDocsifier is the top&#45;level interface in the IR&#45;&gt;Doc process.">
-<polygon fill="white" stroke="black" points="131.5,-784 131.5,-814 238.5,-814 238.5,-784 131.5,-784"/>
-<text text-anchor="start" x="139.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::printer</text>
-<text text-anchor="middle" x="185" y="-791" font-family="Helvetica,sans-Serif" font-size="10.00">::IRDocsifierNode</text>
+<!-- Node538 -->
+<g id="node388" class="node">
+<title>Node538</title>
+<g id="a_node388"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="123.5,-981 123.5,-1011 246.5,-1011 246.5,-981 123.5,-981"/>
+<text text-anchor="start" x="131.5" y="-999" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="185" y="-988" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderFrameNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node584 -->
-<g id="edge433" class="edge">
-<title>Node151&#45;&gt;Node584</title>
-<path fill="none" stroke="midnightblue" d="M24.96,-2640.88C24.63,-2445.93 23.92,-898.45 84,-824 95.46,-809.79 113.67,-802.94 131.42,-799.83"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.46,-2641.12 24.98,-2651.11 28.46,-2641.1 21.46,-2641.12"/>
+<!-- Node151&#45;&gt;Node538 -->
+<g id="edge387" class="edge">
+<title>Node151&#45;&gt;Node538</title>
+<path fill="none" stroke="midnightblue" d="M25.04,-2642.13C25.46,-2460.11 30.39,-1087.18 84,-1021 93.74,-1008.97 108.32,-1002.22 123.35,-998.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.54,-2642.37 25.02,-2652.37 28.54,-2642.38 21.54,-2642.37"/>
 </g>
-<!-- Node585 -->
-<g id="node435" class="node">
-<title>Node585</title>
-<g id="a_node435"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes.">
-<polygon fill="white" stroke="black" points="119.5,-745.5 119.5,-764.5 250.5,-764.5 250.5,-745.5 119.5,-745.5"/>
-<text text-anchor="middle" x="185" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::OperationNode</text>
+<!-- Node559 -->
+<g id="node409" class="node">
+<title>Node559</title>
+<g id="a_node409"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html" target="_top" xlink:title="A dialect&#45;agnostic IRBuilder that constructs any IR of TVM. An idiomatic use of this class is to put ...">
+<polygon fill="white" stroke="black" points="124.5,-932 124.5,-962 245.5,-962 245.5,-932 124.5,-932"/>
+<text text-anchor="start" x="132.5" y="-950" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="185" y="-939" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node585 -->
-<g id="edge434" class="edge">
-<title>Node151&#45;&gt;Node585</title>
-<path fill="none" stroke="midnightblue" d="M24.92,-2641.23C24.22,-2444.85 20.46,-850.09 84,-775 92.98,-764.39 105.85,-758.41 119.39,-755.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.42,-2641.29 24.96,-2651.28 28.42,-2641.26 21.42,-2641.29"/>
+<!-- Node151&#45;&gt;Node559 -->
+<g id="edge408" class="edge">
+<title>Node151&#45;&gt;Node559</title>
+<path fill="none" stroke="midnightblue" d="M25.02,-2642.39C25.24,-2458.39 28.74,-1040.28 84,-972 93.96,-959.69 108.99,-952.9 124.39,-949.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.52,-2642.49 25,-2652.5 28.52,-2642.5 21.52,-2642.49"/>
 </g>
-<!-- Node591 -->
-<g id="node441" class="node">
-<title>Node591</title>
-<g id="a_node441"><a xlink:href="classtvm_1_1tirx_1_1BijectiveLayoutNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="102,-707.5 102,-726.5 268,-726.5 268,-707.5 102,-707.5"/>
-<text text-anchor="middle" x="185" y="-714.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::BijectiveLayoutNode</text>
+<!-- Node560 -->
+<g id="node410" class="node">
+<title>Node560</title>
+<g id="a_node410"><a xlink:href="classtvm_1_1script_1_1printer_1_1DocNode.html" target="_top" xlink:title="The base class of all Doc.">
+<polygon fill="white" stroke="black" points="131.5,-883 131.5,-913 238.5,-913 238.5,-883 131.5,-883"/>
+<text text-anchor="start" x="139.5" y="-901" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::printer</text>
+<text text-anchor="middle" x="185" y="-890" font-family="Helvetica,sans-Serif" font-size="10.00">::DocNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node591 -->
-<g id="edge440" class="edge">
-<title>Node151&#45;&gt;Node591</title>
-<path fill="none" stroke="midnightblue" d="M24.9,-2640.82C24.01,-2440.34 18.8,-812.34 84,-736 88.93,-730.22 95.03,-725.85 101.77,-722.57"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.4,-2641.09 24.95,-2651.07 28.4,-2641.06 21.4,-2641.09"/>
+<!-- Node151&#45;&gt;Node560 -->
+<g id="edge409" class="edge">
+<title>Node151&#45;&gt;Node560</title>
+<path fill="none" stroke="midnightblue" d="M25,-2642.1C25.03,-2453.95 27.15,-993.32 84,-923 95.48,-908.81 113.68,-901.95 131.43,-898.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.5,-2642.22 25,-2652.22 28.5,-2642.22 21.5,-2642.22"/>
 </g>
-<!-- Node592 -->
-<g id="node442" class="node">
-<title>Node592</title>
-<g id="a_node442"><a xlink:href="classtvm_1_1tirx_1_1BufferNode.html" target="_top" xlink:title="Node to represent a buffer.">
-<polygon fill="white" stroke="black" points="125.5,-669.5 125.5,-688.5 244.5,-688.5 244.5,-669.5 125.5,-669.5"/>
-<text text-anchor="middle" x="185" y="-676.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::BufferNode</text>
+<!-- Node587 -->
+<g id="node437" class="node">
+<title>Node587</title>
+<g id="a_node437"><a xlink:href="classtvm_1_1script_1_1printer_1_1FrameNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="131.5,-834 131.5,-864 238.5,-864 238.5,-834 131.5,-834"/>
+<text text-anchor="start" x="139.5" y="-852" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::printer</text>
+<text text-anchor="middle" x="185" y="-841" font-family="Helvetica,sans-Serif" font-size="10.00">::FrameNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node592 -->
-<g id="edge441" class="edge">
-<title>Node151&#45;&gt;Node592</title>
-<path fill="none" stroke="midnightblue" d="M24.89,-2641.04C23.87,-2439.38 17.47,-775.95 84,-698 94.33,-685.9 109.75,-679.96 125.41,-677.35"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.39,-2641.35 24.94,-2651.33 28.39,-2641.31 21.39,-2641.35"/>
+<!-- Node151&#45;&gt;Node587 -->
+<g id="edge436" class="edge">
+<title>Node151&#45;&gt;Node587</title>
+<path fill="none" stroke="midnightblue" d="M24.98,-2642.13C24.83,-2451.16 25.52,-946.4 84,-874 95.47,-859.8 113.67,-852.95 131.43,-849.84"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.48,-2642.38 24.99,-2652.37 28.48,-2642.37 21.48,-2642.38"/>
 </g>
-<!-- Node593 -->
-<g id="node443" class="node">
-<title>Node593</title>
-<g id="a_node443"><a xlink:href="classtvm_1_1tirx_1_1CommReducerNode.html" target="_top" xlink:title="A commutative reducer node to represent a commutative binary operator with identity element.">
-<polygon fill="white" stroke="black" points="104,-631.5 104,-650.5 266,-650.5 266,-631.5 104,-631.5"/>
-<text text-anchor="middle" x="185" y="-638.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::CommReducerNode</text>
+<!-- Node588 -->
+<g id="node438" class="node">
+<title>Node588</title>
+<g id="a_node438"><a xlink:href="classtvm_1_1script_1_1printer_1_1IRDocsifierNode.html" target="_top" xlink:title="IRDocsifier is the top&#45;level interface in the IR&#45;&gt;Doc process.">
+<polygon fill="white" stroke="black" points="131.5,-785 131.5,-815 238.5,-815 238.5,-785 131.5,-785"/>
+<text text-anchor="start" x="139.5" y="-803" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::printer</text>
+<text text-anchor="middle" x="185" y="-792" font-family="Helvetica,sans-Serif" font-size="10.00">::IRDocsifierNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node593 -->
-<g id="edge442" class="edge">
-<title>Node151&#45;&gt;Node593</title>
-<path fill="none" stroke="midnightblue" d="M24.88,-2640.96C23.72,-2436.78 16.17,-739.52 84,-660 89.39,-653.68 96.17,-649.04 103.65,-645.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.38,-2641.16 24.94,-2651.14 28.38,-2641.12 21.38,-2641.16"/>
+<!-- Node151&#45;&gt;Node588 -->
+<g id="edge437" class="edge">
+<title>Node151&#45;&gt;Node588</title>
+<path fill="none" stroke="midnightblue" d="M24.96,-2641.88C24.63,-2446.93 23.92,-899.45 84,-825 95.46,-810.79 113.67,-803.94 131.42,-800.83"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.46,-2642.12 24.98,-2652.11 28.46,-2642.1 21.46,-2642.12"/>
 </g>
-<!-- Node594 -->
-<g id="node444" class="node">
-<title>Node594</title>
-<g id="a_node444"><a xlink:href="classtvm_1_1tirx_1_1DependencyNode.html" target="_top" xlink:title="A tuple (src, dst, kind) representing certain types of dependency. For example, (A,...">
-<polygon fill="white" stroke="black" points="109.5,-593.5 109.5,-612.5 260.5,-612.5 260.5,-593.5 109.5,-593.5"/>
-<text text-anchor="middle" x="185" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::DependencyNode</text>
+<!-- Node589 -->
+<g id="node439" class="node">
+<title>Node589</title>
+<g id="a_node439"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes.">
+<polygon fill="white" stroke="black" points="119.5,-746.5 119.5,-765.5 250.5,-765.5 250.5,-746.5 119.5,-746.5"/>
+<text text-anchor="middle" x="185" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::OperationNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node594 -->
-<g id="edge443" class="edge">
-<title>Node151&#45;&gt;Node594</title>
-<path fill="none" stroke="midnightblue" d="M25.23,-2641.09C27.67,-2433 49.4,-662.58 84,-622 90.65,-614.2 99.42,-608.96 109.01,-605.52"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.73,-2641.16 25.11,-2651.2 28.73,-2641.24 21.73,-2641.16"/>
+<!-- Node151&#45;&gt;Node589 -->
+<g id="edge438" class="edge">
+<title>Node151&#45;&gt;Node589</title>
+<path fill="none" stroke="midnightblue" d="M24.92,-2642.23C24.22,-2445.85 20.46,-851.09 84,-776 92.98,-765.39 105.85,-759.41 119.39,-756.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.42,-2642.29 24.96,-2652.28 28.42,-2642.26 21.42,-2642.29"/>
 </g>
 <!-- Node595 -->
 <g id="node445" class="node">
 <title>Node595</title>
-<g id="a_node445"><a xlink:href="classtvm_1_1tirx_1_1IndexMapNode.html" target="_top" xlink:title="Defines a mapping between two representations of indices into a buffer.">
-<polygon fill="white" stroke="black" points="116,-555.5 116,-574.5 254,-574.5 254,-555.5 116,-555.5"/>
-<text text-anchor="middle" x="185" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::IndexMapNode</text>
+<g id="a_node445"><a xlink:href="classtvm_1_1tirx_1_1BijectiveLayoutNode.html" target="_top" xlink:title=" ">
+<polygon fill="white" stroke="black" points="102,-708.5 102,-727.5 268,-727.5 268,-708.5 102,-708.5"/>
+<text text-anchor="middle" x="185" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::BijectiveLayoutNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node595 -->
 <g id="edge444" class="edge">
 <title>Node151&#45;&gt;Node595</title>
-<path fill="none" stroke="midnightblue" d="M25.22,-2641.37C27.55,-2432.43 48.73,-625.39 84,-584 92.19,-574.38 103.61,-568.66 115.81,-565.4"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.71,-2641.44 25.1,-2651.48 28.71,-2641.52 21.71,-2641.44"/>
+<path fill="none" stroke="midnightblue" d="M24.9,-2641.82C24.01,-2441.34 18.8,-813.34 84,-737 88.93,-731.22 95.03,-726.85 101.77,-723.57"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.4,-2642.09 24.95,-2652.07 28.4,-2642.06 21.4,-2642.09"/>
 </g>
 <!-- Node596 -->
 <g id="node446" class="node">
 <title>Node596</title>
-<g id="a_node446"><a xlink:href="classtvm_1_1tirx_1_1LayoutNode.html" target="_top" xlink:title="Layout is to describe how data is organized within an N&#45;dimention tensor. It is composed of upper cas...">
-<polygon fill="white" stroke="black" points="123.5,-517.5 123.5,-536.5 246.5,-536.5 246.5,-517.5 123.5,-517.5"/>
-<text text-anchor="middle" x="185" y="-524.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::LayoutNode</text>
+<g id="a_node446"><a xlink:href="classtvm_1_1tirx_1_1BufferNode.html" target="_top" xlink:title="Node to represent a buffer.">
+<polygon fill="white" stroke="black" points="125.5,-670.5 125.5,-689.5 244.5,-689.5 244.5,-670.5 125.5,-670.5"/>
+<text text-anchor="middle" x="185" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::BufferNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node596 -->
 <g id="edge445" class="edge">
 <title>Node151&#45;&gt;Node596</title>
-<path fill="none" stroke="midnightblue" d="M25.21,-2641.01C27.47,-2428.25 48.1,-588.16 84,-546 93.85,-534.43 108.37,-528.49 123.31,-525.7"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.71,-2641.27 25.1,-2651.31 28.71,-2641.34 21.71,-2641.27"/>
+<path fill="none" stroke="midnightblue" d="M24.89,-2642.04C23.87,-2440.38 17.47,-776.95 84,-699 94.33,-686.9 109.75,-680.96 125.41,-678.35"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.39,-2642.35 24.94,-2652.33 28.39,-2642.31 21.39,-2642.35"/>
 </g>
 <!-- Node597 -->
 <g id="node447" class="node">
 <title>Node597</title>
-<g id="a_node447"><a xlink:href="classtvm_1_1tirx_1_1MatchBufferRegionNode.html" target="_top" xlink:title="Match introduces a constraint that the source buffer region can be remapped to the data layout specif...">
-<polygon fill="white" stroke="black" points="93.5,-479.5 93.5,-498.5 276.5,-498.5 276.5,-479.5 93.5,-479.5"/>
-<text text-anchor="middle" x="185" y="-486.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::MatchBufferRegionNode</text>
+<g id="a_node447"><a xlink:href="classtvm_1_1tirx_1_1CommReducerNode.html" target="_top" xlink:title="A commutative reducer node to represent a commutative binary operator with identity element.">
+<polygon fill="white" stroke="black" points="104,-632.5 104,-651.5 266,-651.5 266,-632.5 104,-632.5"/>
+<text text-anchor="middle" x="185" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::CommReducerNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node597 -->
 <g id="edge446" class="edge">
 <title>Node151&#45;&gt;Node597</title>
-<path fill="none" stroke="midnightblue" d="M25.2,-2640.97C27.38,-2425.93 47.44,-550.94 84,-508 87.09,-504.37 90.65,-501.29 94.53,-498.69"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.7,-2641.1 25.1,-2651.13 28.7,-2641.17 21.7,-2641.1"/>
+<path fill="none" stroke="midnightblue" d="M24.88,-2641.96C23.72,-2437.78 16.17,-740.52 84,-661 89.39,-654.68 96.17,-650.04 103.65,-646.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.38,-2642.16 24.94,-2652.14 28.38,-2642.12 21.38,-2642.16"/>
 </g>
 <!-- Node598 -->
 <g id="node448" class="node">
 <title>Node598</title>
-<g id="a_node448"><a xlink:href="classtvm_1_1tirx_1_1SBlockDependenceInfoNode.html" target="_top" xlink:title="An object that helps build and query block level dependences using the 2 core objects SBlockScope and...">
-<polygon fill="white" stroke="black" points="106,-430 106,-460 264,-460 264,-430 106,-430"/>
-<text text-anchor="start" x="114" y="-448" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::SBlockDependence</text>
-<text text-anchor="middle" x="185" y="-437" font-family="Helvetica,sans-Serif" font-size="10.00">InfoNode</text>
+<g id="a_node448"><a xlink:href="classtvm_1_1tirx_1_1DependencyNode.html" target="_top" xlink:title="A tuple (src, dst, kind) representing certain types of dependency. For example, (A,...">
+<polygon fill="white" stroke="black" points="109.5,-594.5 109.5,-613.5 260.5,-613.5 260.5,-594.5 109.5,-594.5"/>
+<text text-anchor="middle" x="185" y="-601.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::DependencyNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node598 -->
 <g id="edge447" class="edge">
 <title>Node151&#45;&gt;Node598</title>
-<path fill="none" stroke="midnightblue" d="M25.2,-2641.29C27.41,-2425.78 48.04,-514.8 84,-470 89.83,-462.74 97.41,-457.4 105.8,-453.5"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.7,-2641.41 25.1,-2651.44 28.7,-2641.48 21.7,-2641.41"/>
+<path fill="none" stroke="midnightblue" d="M25.23,-2642.09C27.67,-2434 49.4,-663.58 84,-623 90.65,-615.2 99.42,-609.96 109.01,-606.52"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.73,-2642.16 25.11,-2652.2 28.73,-2642.24 21.73,-2642.16"/>
 </g>
 <!-- Node599 -->
 <g id="node449" class="node">
 <title>Node599</title>
-<g id="a_node449"><a xlink:href="classtvm_1_1tirx_1_1SBlockScopeNode.html" target="_top" xlink:title="An object with 1&#45;to&#45;1 correspondence with each block reference in the sref tree. This data structure ...">
-<polygon fill="white" stroke="black" points="109,-391.5 109,-410.5 261,-410.5 261,-391.5 109,-391.5"/>
-<text text-anchor="middle" x="185" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::SBlockScopeNode</text>
+<g id="a_node449"><a xlink:href="classtvm_1_1tirx_1_1IndexMapNode.html" target="_top" xlink:title="Defines a mapping between two representations of indices into a buffer.">
+<polygon fill="white" stroke="black" points="116,-556.5 116,-575.5 254,-575.5 254,-556.5 116,-556.5"/>
+<text text-anchor="middle" x="185" y="-563.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::IndexMapNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node599 -->
 <g id="edge448" class="edge">
 <title>Node151&#45;&gt;Node599</title>
-<path fill="none" stroke="midnightblue" d="M25.18,-2641.17C27.18,-2422.37 46.15,-465.95 84,-421 90.61,-413.15 99.36,-407.82 108.94,-404.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.68,-2641.19 25.09,-2651.22 28.68,-2641.25 21.68,-2641.19"/>
+<path fill="none" stroke="midnightblue" d="M25.22,-2642.37C27.55,-2433.43 48.73,-626.39 84,-585 92.19,-575.38 103.61,-569.66 115.81,-566.4"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.71,-2642.44 25.1,-2652.48 28.71,-2642.52 21.71,-2642.44"/>
 </g>
 <!-- Node600 -->
 <g id="node450" class="node">
 <title>Node600</title>
-<g id="a_node450"><a xlink:href="classtvm_1_1tirx_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements.">
-<polygon fill="white" stroke="black" points="128.5,-349.5 128.5,-368.5 241.5,-368.5 241.5,-349.5 128.5,-349.5"/>
-<text text-anchor="middle" x="185" y="-356.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::StmtNode</text>
+<g id="a_node450"><a xlink:href="classtvm_1_1tirx_1_1LayoutNode.html" target="_top" xlink:title="Layout is to describe how data is organized within an N&#45;dimention tensor. It is composed of upper cas...">
+<polygon fill="white" stroke="black" points="123.5,-518.5 123.5,-537.5 246.5,-537.5 246.5,-518.5 123.5,-518.5"/>
+<text text-anchor="middle" x="185" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::LayoutNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node600 -->
 <g id="edge449" class="edge">
 <title>Node151&#45;&gt;Node600</title>
-<path fill="none" stroke="midnightblue" d="M25.18,-2640.83C27.18,-2418.28 46.16,-428.29 84,-382 94.82,-368.76 111.59,-362.21 128.32,-359.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.68,-2641.02 25.09,-2651.05 28.68,-2641.09 21.68,-2641.02"/>
+<path fill="none" stroke="midnightblue" d="M25.21,-2642.01C27.47,-2429.25 48.1,-589.16 84,-547 93.85,-535.43 108.37,-529.49 123.31,-526.7"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.71,-2642.27 25.1,-2652.31 28.71,-2642.34 21.71,-2642.27"/>
 </g>
-<!-- Node614 -->
-<g id="node464" class="node">
-<title>Node614</title>
-<g id="a_node464"><a xlink:href="classtvm_1_1tirx_1_1StmtSRefNode.html" target="_top" xlink:title="An object that refers to schedulable elements (block/for&#45;loop) in TensorIR, aka &quot;sref&quot;.">
-<polygon fill="white" stroke="black" points="117,-311.5 117,-330.5 253,-330.5 253,-311.5 117,-311.5"/>
-<text text-anchor="middle" x="185" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::StmtSRefNode</text>
+<!-- Node601 -->
+<g id="node451" class="node">
+<title>Node601</title>
+<g id="a_node451"><a xlink:href="classtvm_1_1tirx_1_1MatchBufferRegionNode.html" target="_top" xlink:title="Match introduces a constraint that the source buffer region can be remapped to the data layout specif...">
+<polygon fill="white" stroke="black" points="93.5,-480.5 93.5,-499.5 276.5,-499.5 276.5,-480.5 93.5,-480.5"/>
+<text text-anchor="middle" x="185" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::MatchBufferRegionNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node614 -->
-<g id="edge463" class="edge">
-<title>Node151&#45;&gt;Node614</title>
-<path fill="none" stroke="midnightblue" d="M25.16,-2641.13C26.97,-2417.84 44.54,-386.45 84,-340 92.41,-330.1 104.23,-324.32 116.82,-321.11"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.66,-2641.33 25.08,-2651.36 28.66,-2641.39 21.66,-2641.33"/>
+<!-- Node151&#45;&gt;Node601 -->
+<g id="edge450" class="edge">
+<title>Node151&#45;&gt;Node601</title>
+<path fill="none" stroke="midnightblue" d="M25.2,-2641.97C27.38,-2426.93 47.44,-551.94 84,-509 87.09,-505.37 90.65,-502.29 94.53,-499.69"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.7,-2642.1 25.1,-2652.13 28.7,-2642.17 21.7,-2642.1"/>
 </g>
-<!-- Node615 -->
-<g id="node465" class="node">
-<title>Node615</title>
-<g id="a_node465"><a xlink:href="classtvm_1_1tirx_1_1TensorIntrinNode.html" target="_top" xlink:title="Tensor intrinsics for tensorization.">
-<polygon fill="white" stroke="black" points="111.5,-273.5 111.5,-292.5 258.5,-292.5 258.5,-273.5 111.5,-273.5"/>
-<text text-anchor="middle" x="185" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::TensorIntrinNode</text>
+<!-- Node602 -->
+<g id="node452" class="node">
+<title>Node602</title>
+<g id="a_node452"><a xlink:href="classtvm_1_1tirx_1_1SBlockDependenceInfoNode.html" target="_top" xlink:title="An object that helps build and query block level dependences using the 2 core objects SBlockScope and...">
+<polygon fill="white" stroke="black" points="106,-431 106,-461 264,-461 264,-431 106,-431"/>
+<text text-anchor="start" x="114" y="-449" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::SBlockDependence</text>
+<text text-anchor="middle" x="185" y="-438" font-family="Helvetica,sans-Serif" font-size="10.00">InfoNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node615 -->
-<g id="edge464" class="edge">
-<title>Node151&#45;&gt;Node615</title>
-<path fill="none" stroke="midnightblue" d="M25.15,-2641.15C26.88,-2415.92 43.88,-349.24 84,-302 91.21,-293.51 100.92,-288.05 111.48,-284.64"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.65,-2641.18 25.07,-2651.2 28.65,-2641.23 21.65,-2641.18"/>
+<!-- Node151&#45;&gt;Node602 -->
+<g id="edge451" class="edge">
+<title>Node151&#45;&gt;Node602</title>
+<path fill="none" stroke="midnightblue" d="M25.2,-2642.29C27.41,-2426.78 48.04,-515.8 84,-471 89.83,-463.74 97.41,-458.4 105.8,-454.5"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.7,-2642.41 25.1,-2652.44 28.7,-2642.48 21.7,-2642.41"/>
 </g>
-<!-- Node616 -->
-<g id="node466" class="node">
-<title>Node616</title>
-<g id="a_node466"><a xlink:href="classtvm_1_1transform_1_1PassContextNode.html" target="_top" xlink:title="PassContextNode contains the information that a pass can rely on, such as analysis results.">
-<polygon fill="white" stroke="black" points="94,-235.5 94,-254.5 276,-254.5 276,-235.5 94,-235.5"/>
-<text text-anchor="middle" x="185" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassContextNode</text>
+<!-- Node603 -->
+<g id="node453" class="node">
+<title>Node603</title>
+<g id="a_node453"><a xlink:href="classtvm_1_1tirx_1_1SBlockScopeNode.html" target="_top" xlink:title="An object with 1&#45;to&#45;1 correspondence with each block reference in the sref tree. This data structure ...">
+<polygon fill="white" stroke="black" points="109,-392.5 109,-411.5 261,-411.5 261,-392.5 109,-392.5"/>
+<text text-anchor="middle" x="185" y="-399.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::SBlockScopeNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node616 -->
-<g id="edge465" class="edge">
-<title>Node151&#45;&gt;Node616</title>
-<path fill="none" stroke="midnightblue" d="M25.14,-2640.83C26.81,-2411.97 43.25,-312.01 84,-264 87.09,-260.36 90.64,-257.28 94.51,-254.68"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.64,-2641.02 25.07,-2651.05 28.64,-2641.07 21.64,-2641.02"/>
+<!-- Node151&#45;&gt;Node603 -->
+<g id="edge452" class="edge">
+<title>Node151&#45;&gt;Node603</title>
+<path fill="none" stroke="midnightblue" d="M25.18,-2642.17C27.18,-2423.37 46.15,-466.95 84,-422 90.61,-414.15 99.36,-408.82 108.94,-405.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.68,-2642.19 25.09,-2652.22 28.68,-2642.25 21.68,-2642.19"/>
 </g>
-<!-- Node617 -->
-<g id="node467" class="node">
-<title>Node617</title>
-<g id="a_node467"><a xlink:href="classtvm_1_1transform_1_1PassInfoNode.html" target="_top" xlink:title="Meta data that will be used to help optimization and analysis.">
-<polygon fill="white" stroke="black" points="104,-197.5 104,-216.5 266,-216.5 266,-197.5 104,-197.5"/>
-<text text-anchor="middle" x="185" y="-204.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassInfoNode</text>
+<!-- Node604 -->
+<g id="node454" class="node">
+<title>Node604</title>
+<g id="a_node454"><a xlink:href="classtvm_1_1tirx_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements.">
+<polygon fill="white" stroke="black" points="128.5,-352.5 128.5,-371.5 241.5,-371.5 241.5,-352.5 128.5,-352.5"/>
+<text text-anchor="middle" x="185" y="-359.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::StmtNode</text>
 </a>
 </g>
 </g>
-<!-- Node151&#45;&gt;Node617 -->
-<g id="edge466" class="edge">
-<title>Node151&#45;&gt;Node617</title>
-<path fill="none" stroke="midnightblue" d="M25.13,-2641.21C26.71,-2412.36 42.57,-274.83 84,-226 89.37,-219.67 96.14,-215.02 103.62,-211.65"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.63,-2641.37 25.06,-2651.39 28.63,-2641.42 21.63,-2641.37"/>
+<!-- Node151&#45;&gt;Node604 -->
+<g id="edge453" class="edge">
+<title>Node151&#45;&gt;Node604</title>
+<path fill="none" stroke="midnightblue" d="M25.17,-2641.82C27.13,-2419.24 45.72,-428.92 84,-383 94.9,-369.92 111.69,-363.69 128.42,-361.03"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.67,-2642.02 25.08,-2652.05 28.67,-2642.08 21.67,-2642.02"/>
 </g>
 <!-- Node618 -->
 <g id="node468" class="node">
 <title>Node618</title>
-<g id="a_node468"><a xlink:href="classtvm_1_1transform_1_1PassNode.html" target="_top" xlink:title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">
-<polygon fill="white" stroke="black" points="113.5,-83.5 113.5,-102.5 256.5,-102.5 256.5,-83.5 113.5,-83.5"/>
-<text text-anchor="middle" x="185" y="-90.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassNode</text>
+<g id="a_node468"><a xlink:href="classtvm_1_1tirx_1_1StmtSRefNode.html" target="_top" xlink:title="An object that refers to schedulable elements (block/for&#45;loop) in TensorIR, aka &quot;sref&quot;.">
+<polygon fill="white" stroke="black" points="117,-314.5 117,-333.5 253,-333.5 253,-314.5 117,-314.5"/>
+<text text-anchor="middle" x="185" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::StmtSRefNode</text>
 </a>
 </g>
 </g>
 <!-- Node151&#45;&gt;Node618 -->
 <g id="edge467" class="edge">
 <title>Node151&#45;&gt;Node618</title>
-<path fill="none" stroke="midnightblue" d="M25.04,-2640.8C25.51,-2411.62 31.32,-306.78 84,-188 101.48,-148.6 143.81,-117.64 167.41,-102.73"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="21.54,-2641.03 25.02,-2651.04 28.54,-2641.04 21.54,-2641.03"/>
+<path fill="none" stroke="midnightblue" d="M25.16,-2642.15C26.97,-2419.05 44.57,-389.41 84,-343 92.41,-333.1 104.23,-327.32 116.82,-324.11"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.66,-2642.34 25.08,-2652.37 28.66,-2642.4 21.66,-2642.34"/>
+</g>
+<!-- Node619 -->
+<g id="node469" class="node">
+<title>Node619</title>
+<g id="a_node469"><a xlink:href="classtvm_1_1tirx_1_1TensorIntrinNode.html" target="_top" xlink:title="Tensor intrinsics for tensorization.">
+<polygon fill="white" stroke="black" points="111.5,-276.5 111.5,-295.5 258.5,-295.5 258.5,-276.5 111.5,-276.5"/>
+<text text-anchor="middle" x="185" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::TensorIntrinNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node619 -->
+<g id="edge468" class="edge">
+<title>Node151&#45;&gt;Node619</title>
+<path fill="none" stroke="midnightblue" d="M25.15,-2642.16C26.89,-2417.12 43.92,-352.2 84,-305 91.21,-296.51 100.92,-291.05 111.48,-287.64"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.65,-2642.19 25.07,-2652.21 28.65,-2642.24 21.65,-2642.19"/>
+</g>
+<!-- Node620 -->
+<g id="node470" class="node">
+<title>Node620</title>
+<g id="a_node470"><a xlink:href="classtvm_1_1transform_1_1PassContextNode.html" target="_top" xlink:title="PassContextNode contains the information that a pass can rely on, such as analysis results.">
+<polygon fill="white" stroke="black" points="94,-238.5 94,-257.5 276,-257.5 276,-238.5 94,-238.5"/>
+<text text-anchor="middle" x="185" y="-245.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassContextNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node620 -->
+<g id="edge469" class="edge">
+<title>Node151&#45;&gt;Node620</title>
+<path fill="none" stroke="midnightblue" d="M25.14,-2641.84C26.82,-2413.18 43.28,-314.97 84,-267 87.09,-263.36 90.64,-260.28 94.51,-257.68"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.64,-2642.03 25.07,-2652.05 28.64,-2642.08 21.64,-2642.03"/>
+</g>
+<!-- Node621 -->
+<g id="node471" class="node">
+<title>Node621</title>
+<g id="a_node471"><a xlink:href="classtvm_1_1transform_1_1PassInfoNode.html" target="_top" xlink:title="Meta data that will be used to help optimization and analysis.">
+<polygon fill="white" stroke="black" points="104,-200.5 104,-219.5 266,-219.5 266,-200.5 104,-200.5"/>
+<text text-anchor="middle" x="185" y="-207.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassInfoNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node621 -->
+<g id="edge470" class="edge">
+<title>Node151&#45;&gt;Node621</title>
+<path fill="none" stroke="midnightblue" d="M25.13,-2642.23C26.72,-2413.56 42.6,-277.79 84,-229 89.37,-222.67 96.15,-218.02 103.62,-214.65"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.63,-2642.38 25.06,-2652.4 28.63,-2642.43 21.63,-2642.38"/>
+</g>
+<!-- Node622 -->
+<g id="node472" class="node">
+<title>Node622</title>
+<g id="a_node472"><a xlink:href="classtvm_1_1transform_1_1PassNode.html" target="_top" xlink:title="PassNode is the base type of differnt types of optimization passes. It is designed as a pure class an...">
+<polygon fill="white" stroke="black" points="113.5,-76.5 113.5,-95.5 256.5,-95.5 256.5,-76.5 113.5,-76.5"/>
+<text text-anchor="middle" x="185" y="-83.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::transform::PassNode</text>
+</a>
+</g>
+</g>
+<!-- Node151&#45;&gt;Node622 -->
+<g id="edge471" class="edge">
+<title>Node151&#45;&gt;Node622</title>
+<path fill="none" stroke="midnightblue" d="M25.06,-2641.83C25.84,-2412.97 34.35,-310.96 84,-191 101.91,-147.74 146.58,-111.91 169.68,-95.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="21.56,-2642.04 25.03,-2652.05 28.56,-2642.06 21.56,-2642.04"/>
 </g>
 <!-- Node154 -->
 <g id="node4" class="node">
 <title>Node154</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-10041 351,-10071 499,-10071 499,-10041 351,-10041"/>
-<text text-anchor="start" x="359" y="-10059" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-10048" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SliceScatterAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-10140 351,-10170 499,-10170 499,-10140 351,-10140"/>
+<text text-anchor="start" x="359" y="-10158" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-10147" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SliceScatterAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node154 -->
 <g id="edge3" class="edge">
 <title>Node153&#45;&gt;Node154</title>
-<path fill="none" stroke="midnightblue" d="M252.51,-8107.89C265.36,-8111.06 277.46,-8116.88 286,-8127 354.27,-8207.89 255.5,-9949.65 322,-10032 329.43,-10041.2 339.66,-10047.28 350.79,-10051.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.07,-8104.43 242.58,-8105.95 251.73,-8111.3 253.07,-8104.43"/>
+<path fill="none" stroke="midnightblue" d="M252.51,-8157.88C265.36,-8161.06 277.46,-8166.88 286,-8177 356.01,-8259.99 253.81,-10046.51 322,-10131 329.43,-10140.2 339.66,-10146.28 350.79,-10150.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.07,-8154.43 242.59,-8155.94 251.73,-8161.3 253.07,-8154.43"/>
 </g>
 <!-- Node156 -->
 <g id="node6" class="node">
 <title>Node156</title>
 <g id="a_node6"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9992 351,-10022 499,-10022 499,-9992 351,-9992"/>
-<text text-anchor="start" x="359" y="-10010" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9999" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterCollectiveAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-10091 351,-10121 499,-10121 499,-10091 351,-10091"/>
+<text text-anchor="start" x="359" y="-10109" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-10098" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterCollectiveAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node156 -->
 <g id="edge5" class="edge">
 <title>Node153&#45;&gt;Node156</title>
-<path fill="none" stroke="midnightblue" d="M252.51,-8107.89C265.36,-8111.06 277.46,-8116.89 286,-8127 352.53,-8205.8 257.19,-9902.78 322,-9983 329.43,-9992.2 339.66,-9998.27 350.8,-10002.22"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8104.43 242.58,-8105.95 251.72,-8111.3 253.06,-8104.43"/>
+<path fill="none" stroke="midnightblue" d="M252.51,-8157.89C265.36,-8161.06 277.46,-8166.88 286,-8177 354.27,-8257.89 255.5,-9999.65 322,-10082 329.43,-10091.2 339.66,-10097.28 350.79,-10101.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.07,-8154.43 242.58,-8155.95 251.73,-8161.3 253.07,-8154.43"/>
 </g>
 <!-- Node158 -->
 <g id="node8" class="node">
 <title>Node158</title>
 <g id="a_node8"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9943 351,-9973 499,-9973 499,-9943 351,-9943"/>
-<text text-anchor="start" x="359" y="-9961" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9950" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; HintOnDeviceAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-10042 351,-10072 499,-10072 499,-10042 351,-10042"/>
+<text text-anchor="start" x="359" y="-10060" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-10049" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; HintOnDeviceAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node158 -->
 <g id="edge7" class="edge">
 <title>Node153&#45;&gt;Node158</title>
-<path fill="none" stroke="midnightblue" d="M252.5,-8107.89C265.35,-8111.07 277.46,-8116.89 286,-8127 350.8,-8203.7 258.88,-9855.91 322,-9934 329.43,-9943.2 339.67,-9949.27 350.8,-9953.21"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8104.43 242.57,-8105.95 251.72,-8111.3 253.06,-8104.43"/>
+<path fill="none" stroke="midnightblue" d="M252.51,-8157.89C265.36,-8161.06 277.46,-8166.89 286,-8177 352.53,-8255.8 257.19,-9952.78 322,-10033 329.43,-10042.2 339.66,-10048.27 350.8,-10052.22"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8154.43 242.58,-8155.95 251.72,-8161.3 253.06,-8154.43"/>
 </g>
 <!-- Node160 -->
 <g id="node10" class="node">
 <title>Node160</title>
 <g id="a_node10"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9894 351,-9924 499,-9924 499,-9894 351,-9894"/>
-<text text-anchor="start" x="359" y="-9912" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9901" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GridSampleAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9993 351,-10023 499,-10023 499,-9993 351,-9993"/>
+<text text-anchor="start" x="359" y="-10011" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-10000" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GridSampleAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node160 -->
 <g id="edge9" class="edge">
 <title>Node153&#45;&gt;Node160</title>
-<path fill="none" stroke="midnightblue" d="M252.5,-8107.9C265.35,-8111.07 277.45,-8116.89 286,-8127 349.03,-8201.56 260.96,-9807.81 322,-9884 329.41,-9893.25 339.63,-9899.41 350.76,-9903.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8104.44 242.57,-8105.96 251.71,-8111.31 253.06,-8104.44"/>
+<path fill="none" stroke="midnightblue" d="M252.5,-8157.89C265.35,-8161.07 277.46,-8166.89 286,-8177 350.76,-8253.66 259.28,-9904.67 322,-9983 329.41,-9992.25 339.63,-9998.42 350.76,-10002.47"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8154.43 242.57,-8155.95 251.72,-8161.3 253.06,-8154.43"/>
 </g>
 <!-- Node162 -->
 <g id="node12" class="node">
 <title>Node162</title>
 <g id="a_node12"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="327.5,-9833.5 327.5,-9874.5 522.5,-9874.5 522.5,-9833.5 327.5,-9833.5"/>
-<text text-anchor="start" x="335.5" y="-9862.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="start" x="335.5" y="-9851.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllClassNonMaximumSuppression</text>
-<text text-anchor="middle" x="425" y="-9840.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
+<polygon fill="white" stroke="black" points="327.5,-9932.5 327.5,-9973.5 522.5,-9973.5 522.5,-9932.5 327.5,-9932.5"/>
+<text text-anchor="start" x="335.5" y="-9961.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="start" x="335.5" y="-9950.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllClassNonMaximumSuppression</text>
+<text text-anchor="middle" x="425" y="-9939.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node162 -->
 <g id="edge11" class="edge">
 <title>Node153&#45;&gt;Node162</title>
-<path fill="none" stroke="midnightblue" d="M252.49,-8107.9C265.34,-8111.08 277.45,-8116.89 286,-8127 346.9,-8198.99 264.71,-9749.1 322,-9824 324.69,-9827.52 327.77,-9830.64 331.15,-9833.41"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.05,-8104.44 242.56,-8105.96 251.71,-8111.31 253.05,-8104.44"/>
+<path fill="none" stroke="midnightblue" d="M252.5,-8157.9C265.35,-8161.07 277.45,-8166.89 286,-8177 348.64,-8251.09 263.08,-9845.92 322,-9923 324.69,-9926.52 327.77,-9929.64 331.15,-9932.41"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8154.44 242.57,-8155.96 251.71,-8161.31 253.06,-8154.44"/>
 </g>
 <!-- Node164 -->
 <g id="node14" class="node">
 <title>Node164</title>
 <g id="a_node14"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9784 351,-9814 499,-9814 499,-9784 351,-9784"/>
-<text text-anchor="start" x="359" y="-9802" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9791" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TakeAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9883 351,-9913 499,-9913 499,-9883 351,-9883"/>
+<text text-anchor="start" x="359" y="-9901" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9890" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TakeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node164 -->
 <g id="edge13" class="edge">
 <title>Node153&#45;&gt;Node164</title>
-<path fill="none" stroke="midnightblue" d="M252.49,-8107.9C265.34,-8111.08 277.45,-8116.9 286,-8127 345.17,-8196.9 264.36,-9703.84 322,-9775 329.44,-9784.19 339.68,-9790.26 350.82,-9794.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.05,-8104.45 242.56,-8105.96 251.7,-8111.32 253.05,-8104.45"/>
+<path fill="none" stroke="midnightblue" d="M252.49,-8157.9C265.34,-8161.08 277.45,-8166.89 286,-8177 346.9,-8248.99 262.67,-9800.7 322,-9874 329.44,-9883.19 339.68,-9889.26 350.81,-9893.21"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.05,-8154.44 242.56,-8155.96 251.71,-8161.31 253.05,-8154.44"/>
 </g>
 <!-- Node166 -->
 <g id="node16" class="node">
 <title>Node166</title>
 <g id="a_node16"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9735 351,-9765 499,-9765 499,-9735 351,-9735"/>
-<text text-anchor="start" x="359" y="-9753" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9742" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterElementsAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9834 351,-9864 499,-9864 499,-9834 351,-9834"/>
+<text text-anchor="start" x="359" y="-9852" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9841" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterElementsAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node166 -->
 <g id="edge15" class="edge">
 <title>Node153&#45;&gt;Node166</title>
-<path fill="none" stroke="midnightblue" d="M252.48,-8107.91C265.33,-8111.08 277.44,-8116.9 286,-8127 343.43,-8194.8 266.05,-9656.97 322,-9726 329.45,-9735.19 339.69,-9741.26 350.82,-9745.2"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8104.45 242.55,-8105.97 251.7,-8111.32 253.04,-8104.45"/>
+<path fill="none" stroke="midnightblue" d="M252.49,-8157.9C265.34,-8161.08 277.45,-8166.9 286,-8177 345.17,-8246.9 264.36,-9753.84 322,-9825 329.44,-9834.19 339.68,-9840.26 350.82,-9844.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.05,-8154.45 242.56,-8155.96 251.7,-8161.32 253.05,-8154.45"/>
 </g>
 <!-- Node168 -->
 <g id="node18" class="node">
 <title>Node168</title>
 <g id="a_node18"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9686 351,-9716 499,-9716 499,-9686 351,-9686"/>
-<text text-anchor="start" x="359" y="-9704" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9693" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MeshgridAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9785 351,-9815 499,-9815 499,-9785 351,-9785"/>
+<text text-anchor="start" x="359" y="-9803" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9792" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MeshgridAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node168 -->
 <g id="edge17" class="edge">
 <title>Node153&#45;&gt;Node168</title>
-<path fill="none" stroke="midnightblue" d="M252.48,-8107.91C265.33,-8111.09 277.44,-8116.9 286,-8127 341.7,-8192.71 267.74,-9610.1 322,-9677 329.45,-9686.18 339.69,-9692.25 350.83,-9696.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8104.46 242.55,-8105.97 251.69,-8111.33 253.04,-8104.46"/>
+<path fill="none" stroke="midnightblue" d="M252.48,-8157.91C265.33,-8161.08 277.44,-8166.9 286,-8177 343.43,-8244.8 266.05,-9706.97 322,-9776 329.45,-9785.19 339.69,-9791.26 350.82,-9795.2"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8154.45 242.55,-8155.97 251.7,-8161.32 253.04,-8154.45"/>
 </g>
 <!-- Node170 -->
 <g id="node20" class="node">
 <title>Node170</title>
 <g id="a_node20"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9637 351,-9667 499,-9667 499,-9637 351,-9637"/>
-<text text-anchor="start" x="359" y="-9655" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9644" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherElementsAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9736 351,-9766 499,-9766 499,-9736 351,-9736"/>
+<text text-anchor="start" x="359" y="-9754" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9743" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherElementsAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node170 -->
 <g id="edge19" class="edge">
 <title>Node153&#45;&gt;Node170</title>
-<path fill="none" stroke="midnightblue" d="M252.47,-8107.92C265.32,-8111.09 277.44,-8116.91 286,-8127 339.96,-8190.61 269.43,-9563.24 322,-9628 329.45,-9637.18 339.7,-9643.25 350.83,-9647.19"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.03,-8104.46 242.54,-8105.98 251.69,-8111.33 253.03,-8104.46"/>
+<path fill="none" stroke="midnightblue" d="M252.48,-8157.91C265.33,-8161.09 277.44,-8166.9 286,-8177 341.7,-8242.71 267.74,-9660.1 322,-9727 329.45,-9736.18 339.69,-9742.25 350.83,-9746.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8154.46 242.55,-8155.97 251.69,-8161.33 253.04,-8154.46"/>
 </g>
 <!-- Node172 -->
 <g id="node22" class="node">
 <title>Node172</title>
 <g id="a_node22"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9588 351,-9618 499,-9618 499,-9588 351,-9588"/>
-<text text-anchor="start" x="359" y="-9606" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9595" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; EinsumAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9687 351,-9717 499,-9717 499,-9687 351,-9687"/>
+<text text-anchor="start" x="359" y="-9705" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9694" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; EinsumAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node172 -->
 <g id="edge21" class="edge">
 <title>Node153&#45;&gt;Node172</title>
-<path fill="none" stroke="midnightblue" d="M252.46,-8107.92C265.32,-8111.1 277.43,-8116.91 286,-8127 390.45,-8250.02 220.24,-9453.74 322,-9579 329.46,-9588.18 339.7,-9594.24 350.84,-9598.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8104.47 242.54,-8105.98 251.68,-8111.34 253.02,-8104.47"/>
+<path fill="none" stroke="midnightblue" d="M252.47,-8157.92C265.32,-8161.09 277.44,-8166.91 286,-8177 339.96,-8240.61 269.43,-9613.24 322,-9678 329.45,-9687.18 339.7,-9693.25 350.83,-9697.19"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.03,-8154.46 242.54,-8155.98 251.69,-8161.33 253.03,-8154.46"/>
 </g>
 <!-- Node174 -->
 <g id="node24" class="node">
 <title>Node174</title>
 <g id="a_node24"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9539 351,-9569 499,-9569 499,-9539 351,-9539"/>
-<text text-anchor="start" x="359" y="-9557" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9546" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DistributionAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9638 351,-9668 499,-9668 499,-9638 351,-9638"/>
+<text text-anchor="start" x="359" y="-9656" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9645" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DistributionAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node174 -->
 <g id="edge23" class="edge">
 <title>Node153&#45;&gt;Node174</title>
-<path fill="none" stroke="midnightblue" d="M252.46,-8107.93C265.31,-8111.1 277.43,-8116.91 286,-8127 386.98,-8245.83 223.62,-9409.01 322,-9530 329.46,-9539.17 339.71,-9545.24 350.85,-9549.18"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8104.47 242.53,-8105.99 251.67,-8111.34 253.02,-8104.47"/>
+<path fill="none" stroke="midnightblue" d="M252.46,-8157.92C265.32,-8161.1 277.43,-8166.91 286,-8177 390.45,-8300.02 220.24,-9503.74 322,-9629 329.46,-9638.18 339.7,-9644.24 350.84,-9648.18"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8154.47 242.54,-8155.98 251.68,-8161.34 253.02,-8154.47"/>
 </g>
 <!-- Node176 -->
 <g id="node26" class="node">
 <title>Node176</title>
 <g id="a_node26"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="350,-9490 350,-9520 500,-9520 500,-9490 350,-9490"/>
-<text text-anchor="start" x="358" y="-9508" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9497" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallInplacePackedAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="350,-9589 350,-9619 500,-9619 500,-9589 350,-9589"/>
+<text text-anchor="start" x="358" y="-9607" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9596" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallInplacePackedAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node176 -->
 <g id="edge25" class="edge">
 <title>Node153&#45;&gt;Node176</title>
-<path fill="none" stroke="midnightblue" d="M252.45,-8107.93C265.3,-8111.11 277.42,-8116.92 286,-8127 383.51,-8241.64 227,-9364.28 322,-9481 329.23,-9489.89 339.09,-9495.86 349.83,-9499.8"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.01,-8104.48 242.52,-8105.99 251.67,-8111.35 253.01,-8104.48"/>
+<path fill="none" stroke="midnightblue" d="M252.46,-8157.93C265.31,-8161.1 277.43,-8166.91 286,-8177 386.98,-8295.83 223.62,-9459.01 322,-9580 329.23,-9588.89 339.08,-9594.86 349.82,-9598.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8154.47 242.53,-8155.99 251.67,-8161.34 253.02,-8154.47"/>
 </g>
 <!-- Node178 -->
 <g id="node28" class="node">
 <title>Node178</title>
 <g id="a_node28"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9441 351,-9471 499,-9471 499,-9441 351,-9441"/>
-<text text-anchor="start" x="359" y="-9459" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9448" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AttentionAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9540 351,-9570 499,-9570 499,-9540 351,-9540"/>
+<text text-anchor="start" x="359" y="-9558" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9547" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AttentionAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node178 -->
 <g id="edge27" class="edge">
 <title>Node153&#45;&gt;Node178</title>
-<path fill="none" stroke="midnightblue" d="M252.44,-8107.94C265.3,-8111.11 277.42,-8116.92 286,-8127 380.03,-8237.45 230.38,-9319.54 322,-9432 329.47,-9441.17 339.72,-9447.23 350.86,-9451.17"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253,-8104.48 242.52,-8106 251.66,-8111.35 253,-8104.48"/>
+<path fill="none" stroke="midnightblue" d="M252.45,-8157.93C265.3,-8161.11 277.42,-8166.92 286,-8177 383.51,-8291.64 227,-9414.28 322,-9531 329.46,-9540.17 339.71,-9546.23 350.85,-9550.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.01,-8154.48 242.52,-8155.99 251.67,-8161.35 253.01,-8154.48"/>
 </g>
 <!-- Node180 -->
 <g id="node30" class="node">
 <title>Node180</title>
 <g id="a_node30"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9392 351,-9422 499,-9422 499,-9392 351,-9392"/>
-<text text-anchor="start" x="359" y="-9410" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9399" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllReduceAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9491 351,-9521 499,-9521 499,-9491 351,-9491"/>
+<text text-anchor="start" x="359" y="-9509" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9498" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllReduceAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node180 -->
 <g id="edge29" class="edge">
 <title>Node153&#45;&gt;Node180</title>
-<path fill="none" stroke="midnightblue" d="M252.43,-8107.95C265.29,-8111.12 277.41,-8116.93 286,-8127 376.56,-8233.25 233.76,-9274.81 322,-9383 329.47,-9392.16 339.73,-9398.22 350.87,-9402.16"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="252.99,-8104.49 242.51,-8106.01 251.65,-8111.36 252.99,-8104.49"/>
+<path fill="none" stroke="midnightblue" d="M252.44,-8157.94C265.3,-8161.11 277.42,-8166.92 286,-8177 380.03,-8287.45 230.38,-9369.54 322,-9482 329.47,-9491.17 339.72,-9497.23 350.86,-9501.17"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253,-8154.48 242.52,-8156 251.66,-8161.35 253,-8154.48"/>
 </g>
 <!-- Node182 -->
 <g id="node32" class="node">
 <title>Node182</title>
 <g id="a_node32"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9343 351,-9373 499,-9373 499,-9343 351,-9343"/>
-<text text-anchor="start" x="359" y="-9361" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9350" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool2DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9442 351,-9472 499,-9472 499,-9442 351,-9442"/>
+<text text-anchor="start" x="359" y="-9460" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9449" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node182 -->
 <g id="edge31" class="edge">
 <title>Node153&#45;&gt;Node182</title>
-<path fill="none" stroke="midnightblue" d="M252.63,-8108.01C265.41,-8111.19 277.45,-8116.98 286,-8127 373.09,-8229.06 237.14,-9230.08 322,-9334 329.48,-9343.16 339.74,-9349.21 350.88,-9353.15"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.25,-8104.56 242.76,-8106.05 251.89,-8111.43 253.25,-8104.56"/>
+<path fill="none" stroke="midnightblue" d="M252.43,-8157.95C265.29,-8161.12 277.41,-8166.93 286,-8177 376.56,-8283.25 233.76,-9324.81 322,-9433 329.47,-9442.16 339.73,-9448.22 350.87,-9452.16"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="252.99,-8154.49 242.51,-8156.01 251.65,-8161.36 252.99,-8154.49"/>
 </g>
 <!-- Node184 -->
 <g id="node34" class="node">
 <title>Node184</title>
 <g id="a_node34"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9294 351,-9324 499,-9324 499,-9294 351,-9294"/>
-<text text-anchor="start" x="359" y="-9312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9301" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterNDAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9393 351,-9423 499,-9423 499,-9393 351,-9393"/>
+<text text-anchor="start" x="359" y="-9411" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9400" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterNDAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node184 -->
 <g id="edge33" class="edge">
 <title>Node153&#45;&gt;Node184</title>
-<path fill="none" stroke="midnightblue" d="M252.62,-8108.01C265.4,-8111.2 277.45,-8116.99 286,-8127 369.62,-8224.87 240.52,-9185.34 322,-9285 329.48,-9294.15 339.74,-9300.21 350.89,-9304.14"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.24,-8104.57 242.75,-8106.06 251.88,-8111.44 253.24,-8104.57"/>
+<path fill="none" stroke="midnightblue" d="M252.63,-8158.01C265.41,-8161.19 277.45,-8166.98 286,-8177 373.09,-8279.06 237.14,-9280.08 322,-9384 329.48,-9393.16 339.74,-9399.21 350.88,-9403.15"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.25,-8154.56 242.76,-8156.05 251.89,-8161.43 253.25,-8154.56"/>
 </g>
 <!-- Node186 -->
 <g id="node36" class="node">
 <title>Node186</title>
 <g id="a_node36"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9245 351,-9275 499,-9275 499,-9245 351,-9245"/>
-<text text-anchor="start" x="359" y="-9263" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9252" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InitAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9344 351,-9374 499,-9374 499,-9344 351,-9344"/>
+<text text-anchor="start" x="359" y="-9362" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9351" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InitAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node186 -->
 <g id="edge35" class="edge">
 <title>Node153&#45;&gt;Node186</title>
-<path fill="none" stroke="midnightblue" d="M252.61,-8108.02C265.39,-8111.21 277.44,-8117 286,-8127 366.15,-8220.68 243.9,-9140.61 322,-9236 329.49,-9245.15 339.75,-9251.2 350.9,-9255.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.23,-8104.58 242.74,-8106.07 251.87,-8111.44 253.23,-8104.58"/>
+<path fill="none" stroke="midnightblue" d="M252.62,-8158.01C265.4,-8161.2 277.45,-8166.99 286,-8177 369.62,-8274.87 240.52,-9235.34 322,-9335 329.48,-9344.15 339.74,-9350.21 350.89,-9354.14"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.24,-8154.57 242.75,-8156.06 251.88,-8161.44 253.24,-8154.57"/>
 </g>
 <!-- Node188 -->
 <g id="node38" class="node">
 <title>Node188</title>
 <g id="a_node38"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9196 351,-9226 499,-9226 499,-9196 351,-9196"/>
-<text text-anchor="start" x="359" y="-9214" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9203" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; FlipAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9295 351,-9325 499,-9325 499,-9295 351,-9295"/>
+<text text-anchor="start" x="359" y="-9313" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9302" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; FlipAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node188 -->
 <g id="edge37" class="edge">
 <title>Node153&#45;&gt;Node188</title>
-<path fill="none" stroke="midnightblue" d="M252.6,-8108.03C265.38,-8111.21 277.43,-8117 286,-8127 362.68,-8216.49 247.28,-9095.87 322,-9187 329.5,-9196.14 339.76,-9202.19 350.91,-9206.13"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.22,-8104.59 242.73,-8106.08 251.86,-8111.45 253.22,-8104.59"/>
+<path fill="none" stroke="midnightblue" d="M252.61,-8158.02C265.39,-8161.21 277.44,-8167 286,-8177 366.15,-8270.68 243.9,-9190.61 322,-9286 329.49,-9295.15 339.75,-9301.2 350.9,-9305.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.23,-8154.58 242.74,-8156.07 251.87,-8161.44 253.23,-8154.58"/>
 </g>
 <!-- Node190 -->
 <g id="node40" class="node">
 <title>Node190</title>
 <g id="a_node40"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9147 351,-9177 499,-9177 499,-9147 351,-9147"/>
-<text text-anchor="start" x="359" y="-9165" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9154" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllGatherAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9246 351,-9276 499,-9276 499,-9246 351,-9246"/>
+<text text-anchor="start" x="359" y="-9264" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9253" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllGatherAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node190 -->
 <g id="edge39" class="edge">
 <title>Node153&#45;&gt;Node190</title>
-<path fill="none" stroke="midnightblue" d="M252.59,-8108.04C265.37,-8111.22 277.42,-8117.01 286,-8127 359.21,-8212.29 250.65,-9051.14 322,-9138 329.51,-9147.14 339.78,-9153.18 350.92,-9157.12"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.21,-8104.6 242.72,-8106.09 251.85,-8111.47 253.21,-8104.6"/>
+<path fill="none" stroke="midnightblue" d="M252.6,-8158.03C265.38,-8161.21 277.43,-8167 286,-8177 362.68,-8266.49 247.28,-9145.87 322,-9237 329.5,-9246.14 339.76,-9252.19 350.91,-9256.13"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.22,-8154.59 242.73,-8156.08 251.86,-8161.45 253.22,-8154.59"/>
 </g>
 <!-- Node192 -->
 <g id="node42" class="node">
 <title>Node192</title>
 <g id="a_node42"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9098 351,-9128 499,-9128 499,-9098 351,-9098"/>
-<text text-anchor="start" x="359" y="-9116" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9105" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool3DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9197 351,-9227 499,-9227 499,-9197 351,-9197"/>
+<text text-anchor="start" x="359" y="-9215" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9204" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node192 -->
 <g id="edge41" class="edge">
 <title>Node153&#45;&gt;Node192</title>
-<path fill="none" stroke="midnightblue" d="M252.57,-8108.06C265.36,-8111.24 277.42,-8117.02 286,-8127 355.74,-8208.1 254.03,-9006.41 322,-9089 329.51,-9098.13 339.79,-9104.17 350.94,-9108.1"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.19,-8104.61 242.7,-8106.1 251.83,-8111.48 253.19,-8104.61"/>
+<path fill="none" stroke="midnightblue" d="M252.59,-8158.04C265.37,-8161.22 277.42,-8167.01 286,-8177 359.21,-8262.29 250.65,-9101.14 322,-9188 329.51,-9197.14 339.78,-9203.18 350.92,-9207.12"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.21,-8154.6 242.72,-8156.09 251.85,-8161.47 253.21,-8154.6"/>
 </g>
 <!-- Node194 -->
 <g id="node44" class="node">
 <title>Node194</title>
 <g id="a_node44"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9049 351,-9079 499,-9079 499,-9049 351,-9049"/>
-<text text-anchor="start" x="359" y="-9067" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9056" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ToVDeviceAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9148 351,-9178 499,-9178 499,-9148 351,-9148"/>
+<text text-anchor="start" x="359" y="-9166" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9155" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ToVDeviceAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node194 -->
 <g id="edge43" class="edge">
 <title>Node153&#45;&gt;Node194</title>
-<path fill="none" stroke="midnightblue" d="M252.56,-8108.07C265.34,-8111.25 277.41,-8117.03 286,-8127 352.27,-8203.91 257.41,-8961.67 322,-9040 329.52,-9049.12 339.8,-9055.16 350.95,-9059.09"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.18,-8104.62 242.69,-8106.12 251.82,-8111.49 253.18,-8104.62"/>
+<path fill="none" stroke="midnightblue" d="M252.57,-8158.06C265.36,-8161.24 277.42,-8167.02 286,-8177 355.74,-8258.1 254.03,-9056.41 322,-9139 329.51,-9148.13 339.79,-9154.17 350.94,-9158.1"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.19,-8154.61 242.7,-8156.1 251.83,-8161.48 253.19,-8154.61"/>
 </g>
 <!-- Node196 -->
 <g id="node46" class="node">
 <title>Node196</title>
 <g id="a_node46"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-9000 351,-9030 499,-9030 499,-9000 351,-9000"/>
-<text text-anchor="start" x="359" y="-9018" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-9007" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; IndexPutAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="329.5,-9099 329.5,-9129 520.5,-9129 520.5,-9099 329.5,-9099"/>
+<text text-anchor="start" x="337.5" y="-9117" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9106" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NonMaximumSuppressionAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node196 -->
 <g id="edge45" class="edge">
 <title>Node153&#45;&gt;Node196</title>
-<path fill="none" stroke="midnightblue" d="M252.54,-8108.08C265.33,-8111.26 277.39,-8117.03 286,-8127 348.8,-8199.72 260.79,-8916.94 322,-8991 329.53,-9000.11 339.82,-9006.15 350.97,-9010.08"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.16,-8104.64 242.67,-8106.13 251.8,-8111.5 253.16,-8104.64"/>
+<path fill="none" stroke="midnightblue" d="M252.56,-8158.07C265.34,-8161.25 277.41,-8167.03 286,-8177 352.27,-8253.91 257.41,-9011.67 322,-9090 324.78,-9093.37 327.93,-9096.32 331.37,-9098.89"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.18,-8154.62 242.69,-8156.12 251.82,-8161.49 253.18,-8154.62"/>
 </g>
 <!-- Node198 -->
 <g id="node48" class="node">
 <title>Node198</title>
 <g id="a_node48"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8951 351,-8981 499,-8981 499,-8951 351,-8951"/>
-<text text-anchor="start" x="359" y="-8969" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8958" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ExpandDimsAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9050 351,-9080 499,-9080 499,-9050 351,-9050"/>
+<text text-anchor="start" x="359" y="-9068" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9057" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; IndexPutAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node198 -->
 <g id="edge47" class="edge">
 <title>Node153&#45;&gt;Node198</title>
-<path fill="none" stroke="midnightblue" d="M252.52,-8108.1C265.31,-8111.28 277.38,-8117.05 286,-8127 345.33,-8195.53 264.17,-8872.2 322,-8942 329.54,-8951.11 339.83,-8957.13 350.99,-8961.06"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.14,-8104.65 242.65,-8106.15 251.78,-8111.52 253.14,-8104.65"/>
+<path fill="none" stroke="midnightblue" d="M252.54,-8158.08C265.33,-8161.26 277.39,-8167.03 286,-8177 348.8,-8249.72 260.79,-8966.94 322,-9041 329.53,-9050.11 339.82,-9056.15 350.97,-9060.08"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.16,-8154.64 242.67,-8156.13 251.8,-8161.5 253.16,-8154.64"/>
 </g>
 <!-- Node200 -->
 <g id="node50" class="node">
 <title>Node200</title>
 <g id="a_node50"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8902 351,-8932 499,-8932 499,-8902 351,-8902"/>
-<text text-anchor="start" x="359" y="-8920" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8909" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ConcatAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-9001 351,-9031 499,-9031 499,-9001 351,-9001"/>
+<text text-anchor="start" x="359" y="-9019" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-9008" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ExpandDimsAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node200 -->
 <g id="edge49" class="edge">
 <title>Node153&#45;&gt;Node200</title>
-<path fill="none" stroke="midnightblue" d="M252.5,-8108.12C265.29,-8111.29 277.37,-8117.06 286,-8127 341.86,-8191.34 267.55,-8827.47 322,-8893 329.5,-8902.02 339.69,-8908.03 350.75,-8911.95"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.12,-8104.67 242.63,-8106.17 251.76,-8111.54 253.12,-8104.67"/>
+<path fill="none" stroke="midnightblue" d="M252.52,-8158.1C265.31,-8161.28 277.38,-8167.05 286,-8177 345.33,-8245.53 264.17,-8922.2 322,-8992 329.54,-9001.11 339.83,-9007.13 350.99,-9011.06"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.14,-8154.65 242.65,-8156.15 251.78,-8161.52 253.14,-8154.65"/>
 </g>
 <!-- Node202 -->
 <g id="node52" class="node">
 <title>Node202</title>
 <g id="a_node52"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8853 351,-8883 499,-8883 499,-8853 351,-8853"/>
-<text text-anchor="start" x="359" y="-8871" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8860" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TriluAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8952 351,-8982 499,-8982 499,-8952 351,-8952"/>
+<text text-anchor="start" x="359" y="-8970" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8959" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ConcatAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node202 -->
 <g id="edge51" class="edge">
 <title>Node153&#45;&gt;Node202</title>
-<path fill="none" stroke="midnightblue" d="M252.48,-8108.14C265.27,-8111.31 277.35,-8117.07 286,-8127 390.79,-8247.3 219.84,-8721.46 322,-8844 329.51,-8853.01 339.72,-8859.01 350.78,-8862.93"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.1,-8104.69 242.61,-8106.19 251.74,-8111.56 253.1,-8104.69"/>
+<path fill="none" stroke="midnightblue" d="M252.5,-8158.12C265.29,-8161.29 277.37,-8167.06 286,-8177 341.86,-8241.34 267.55,-8877.47 322,-8943 329.5,-8952.02 339.69,-8958.03 350.75,-8961.95"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.12,-8154.67 242.63,-8156.17 251.76,-8161.54 253.12,-8154.67"/>
 </g>
 <!-- Node204 -->
 <g id="node54" class="node">
 <title>Node204</title>
 <g id="a_node54"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8804 351,-8834 499,-8834 499,-8804 351,-8804"/>
-<text text-anchor="start" x="359" y="-8822" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8811" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftmaxAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8903 351,-8933 499,-8933 499,-8903 351,-8903"/>
+<text text-anchor="start" x="359" y="-8921" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8910" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TriluAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node204 -->
 <g id="edge53" class="edge">
 <title>Node153&#45;&gt;Node204</title>
-<path fill="none" stroke="midnightblue" d="M252.45,-8108.16C265.24,-8111.34 277.33,-8117.09 286,-8127 383.85,-8238.92 226.6,-8680.99 322,-8795 329.53,-8804 339.74,-8809.99 350.8,-8813.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.07,-8104.72 242.58,-8106.21 251.71,-8111.58 253.07,-8104.72"/>
+<path fill="none" stroke="midnightblue" d="M252.48,-8158.14C265.27,-8161.31 277.35,-8167.07 286,-8177 390.79,-8297.3 219.84,-8771.46 322,-8894 329.51,-8903.01 339.72,-8909.01 350.78,-8912.93"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.1,-8154.69 242.61,-8156.19 251.74,-8161.56 253.1,-8154.69"/>
 </g>
 <!-- Node206 -->
 <g id="node56" class="node">
 <title>Node206</title>
 <g id="a_node56"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8755 351,-8785 499,-8785 499,-8755 351,-8755"/>
-<text text-anchor="start" x="359" y="-8773" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8762" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ROIAlignAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8854 351,-8884 499,-8884 499,-8854 351,-8854"/>
+<text text-anchor="start" x="359" y="-8872" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8861" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftmaxAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node206 -->
 <g id="edge55" class="edge">
 <title>Node153&#45;&gt;Node206</title>
-<path fill="none" stroke="midnightblue" d="M252.42,-8108.19C265.21,-8111.36 277.31,-8117.11 286,-8127 376.91,-8230.54 233.35,-8640.52 322,-8746 329.55,-8754.98 339.77,-8760.96 350.84,-8764.88"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8104.74 242.55,-8106.24 251.68,-8111.61 253.04,-8104.74"/>
+<path fill="none" stroke="midnightblue" d="M252.45,-8158.16C265.24,-8161.34 277.33,-8167.09 286,-8177 383.85,-8288.92 226.6,-8730.99 322,-8845 329.53,-8854 339.74,-8859.99 350.8,-8863.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.07,-8154.72 242.58,-8156.21 251.71,-8161.58 253.07,-8154.72"/>
 </g>
 <!-- Node208 -->
 <g id="node58" class="node">
 <title>Node208</title>
 <g id="a_node58"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8706 351,-8736 499,-8736 499,-8706 351,-8706"/>
-<text text-anchor="start" x="359" y="-8724" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8713" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool1DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8805 351,-8835 499,-8835 499,-8805 351,-8805"/>
+<text text-anchor="start" x="359" y="-8823" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8812" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ROIAlignAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node208 -->
 <g id="edge57" class="edge">
 <title>Node153&#45;&gt;Node208</title>
-<path fill="none" stroke="midnightblue" d="M252.38,-8108.22C265.18,-8111.39 277.29,-8117.13 286,-8127 369.98,-8222.16 240.1,-8600.04 322,-8697 329.57,-8705.96 339.8,-8711.93 350.87,-8715.85"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253,-8104.78 242.51,-8106.27 251.64,-8111.64 253,-8104.78"/>
+<path fill="none" stroke="midnightblue" d="M252.42,-8158.19C265.21,-8161.36 277.31,-8167.11 286,-8177 376.91,-8280.54 233.35,-8690.52 322,-8796 329.55,-8804.98 339.77,-8810.96 350.84,-8814.88"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8154.74 242.55,-8156.24 251.68,-8161.61 253.04,-8154.74"/>
 </g>
 <!-- Node210 -->
 <g id="node60" class="node">
 <title>Node210</title>
 <g id="a_node60"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8657 351,-8687 499,-8687 499,-8657 351,-8657"/>
-<text text-anchor="start" x="359" y="-8675" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8664" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftplusAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8756 351,-8786 499,-8786 499,-8756 351,-8756"/>
+<text text-anchor="start" x="359" y="-8774" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8763" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool1DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node210 -->
 <g id="edge59" class="edge">
 <title>Node153&#45;&gt;Node210</title>
-<path fill="none" stroke="midnightblue" d="M252.54,-8108.31C265.26,-8111.49 277.31,-8117.21 286,-8127 363.05,-8213.79 246.85,-8559.56 322,-8648 329.6,-8656.94 339.84,-8662.9 350.92,-8666.81"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.22,-8104.88 242.73,-8106.35 251.85,-8111.74 253.22,-8104.88"/>
+<path fill="none" stroke="midnightblue" d="M252.38,-8158.22C265.18,-8161.39 277.29,-8167.13 286,-8177 369.98,-8272.16 240.1,-8650.04 322,-8747 329.57,-8755.96 339.8,-8761.93 350.87,-8765.85"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253,-8154.78 242.51,-8156.27 251.64,-8161.64 253,-8154.78"/>
 </g>
 <!-- Node212 -->
 <g id="node62" class="node">
 <title>Node212</title>
 <g id="a_node62"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8608 351,-8638 499,-8638 499,-8608 351,-8608"/>
-<text text-anchor="start" x="359" y="-8626" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8615" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize3DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8707 351,-8737 499,-8737 499,-8707 351,-8707"/>
+<text text-anchor="start" x="359" y="-8725" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8714" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftplusAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node212 -->
 <g id="edge61" class="edge">
 <title>Node153&#45;&gt;Node212</title>
-<path fill="none" stroke="midnightblue" d="M252.49,-8108.36C265.21,-8111.53 277.27,-8117.24 286,-8127 356.12,-8205.42 253.6,-8519.08 322,-8599 329.63,-8607.91 339.89,-8613.86 350.97,-8617.77"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.17,-8104.93 242.67,-8106.4 251.79,-8111.79 253.17,-8104.93"/>
+<path fill="none" stroke="midnightblue" d="M252.54,-8158.31C265.26,-8161.49 277.31,-8167.21 286,-8177 363.05,-8263.79 246.85,-8609.56 322,-8698 329.6,-8706.94 339.84,-8712.9 350.92,-8716.81"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.22,-8154.88 242.73,-8156.35 251.85,-8161.74 253.22,-8154.88"/>
 </g>
 <!-- Node214 -->
 <g id="node64" class="node">
 <title>Node214</title>
 <g id="a_node64"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8559 351,-8589 499,-8589 499,-8559 351,-8559"/>
-<text text-anchor="start" x="359" y="-8577" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8566" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MatmulAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8658 351,-8688 499,-8688 499,-8658 351,-8658"/>
+<text text-anchor="start" x="359" y="-8676" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8665" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node214 -->
 <g id="edge63" class="edge">
 <title>Node153&#45;&gt;Node214</title>
-<path fill="none" stroke="midnightblue" d="M252.43,-8108.42C265.15,-8111.59 277.23,-8117.28 286,-8127 349.19,-8197.05 260.34,-8478.6 322,-8550 329.61,-8558.81 339.79,-8564.72 350.78,-8568.62"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.1,-8104.98 242.61,-8106.46 251.73,-8111.85 253.1,-8104.98"/>
+<path fill="none" stroke="midnightblue" d="M252.49,-8158.36C265.21,-8161.53 277.27,-8167.24 286,-8177 356.12,-8255.42 253.6,-8569.08 322,-8649 329.63,-8657.91 339.89,-8663.86 350.97,-8667.77"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.17,-8154.93 242.67,-8156.4 251.79,-8161.79 253.17,-8154.93"/>
 </g>
 <!-- Node216 -->
 <g id="node66" class="node">
 <title>Node216</title>
 <g id="a_node66"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8510 351,-8540 499,-8540 499,-8510 351,-8510"/>
-<text text-anchor="start" x="359" y="-8528" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8517" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgmaxArgminAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8609 351,-8639 499,-8639 499,-8609 351,-8609"/>
+<text text-anchor="start" x="359" y="-8627" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8616" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MatmulAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node216 -->
 <g id="edge65" class="edge">
 <title>Node153&#45;&gt;Node216</title>
-<path fill="none" stroke="midnightblue" d="M252.34,-8108.49C265.08,-8111.66 277.17,-8117.32 286,-8127 342.27,-8188.69 267.08,-8438.11 322,-8501 329.66,-8509.77 339.86,-8515.65 350.86,-8519.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8105.06 242.53,-8106.53 251.65,-8111.92 253.02,-8105.06"/>
+<path fill="none" stroke="midnightblue" d="M252.43,-8158.42C265.15,-8161.59 277.23,-8167.28 286,-8177 349.19,-8247.05 260.34,-8528.6 322,-8600 329.61,-8608.81 339.79,-8614.72 350.78,-8618.62"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.1,-8154.98 242.61,-8156.46 251.73,-8161.85 253.1,-8154.98"/>
 </g>
 <!-- Node218 -->
 <g id="node68" class="node">
 <title>Node218</title>
 <g id="a_node68"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8461 351,-8491 499,-8491 499,-8461 351,-8461"/>
-<text text-anchor="start" x="359" y="-8479" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8468" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize2DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8560 351,-8590 499,-8590 499,-8560 351,-8560"/>
+<text text-anchor="start" x="359" y="-8578" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8567" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgmaxArgminAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node218 -->
 <g id="edge67" class="edge">
 <title>Node153&#45;&gt;Node218</title>
-<path fill="none" stroke="midnightblue" d="M252.82,-8108.73C265.35,-8111.92 277.24,-8117.53 286,-8127 384.71,-8233.66 225.63,-8343.22 322,-8452 329.72,-8460.71 339.96,-8466.57 350.97,-8470.46"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.18,-8105.23 242.68,-8106.67 251.78,-8112.09 253.18,-8105.23"/>
+<path fill="none" stroke="midnightblue" d="M252.34,-8158.49C265.08,-8161.66 277.17,-8167.32 286,-8177 342.27,-8238.69 267.08,-8488.11 322,-8551 329.66,-8559.77 339.86,-8565.65 350.86,-8569.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8155.06 242.53,-8156.53 251.65,-8161.92 253.02,-8155.06"/>
 </g>
 <!-- Node220 -->
 <g id="node70" class="node">
 <title>Node220</title>
 <g id="a_node70"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8412 351,-8442 499,-8442 499,-8412 351,-8412"/>
-<text text-anchor="start" x="359" y="-8430" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8419" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool3DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8511 351,-8541 499,-8541 499,-8511 351,-8511"/>
+<text text-anchor="start" x="359" y="-8529" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8518" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node220 -->
 <g id="edge69" class="edge">
 <title>Node153&#45;&gt;Node220</title>
-<path fill="none" stroke="midnightblue" d="M252.68,-8108.86C265.21,-8112.04 277.15,-8117.62 286,-8127 370.9,-8216.98 239.07,-8311.21 322,-8403 329.74,-8411.57 339.92,-8417.37 350.85,-8421.24"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8105.37 242.54,-8106.8 251.64,-8112.22 253.04,-8105.37"/>
+<path fill="none" stroke="midnightblue" d="M252.82,-8158.73C265.35,-8161.92 277.24,-8167.53 286,-8177 384.71,-8283.66 225.63,-8393.22 322,-8502 329.72,-8510.71 339.96,-8516.57 350.97,-8520.46"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.18,-8155.23 242.68,-8156.67 251.78,-8162.09 253.18,-8155.23"/>
 </g>
 <!-- Node222 -->
 <g id="node72" class="node">
 <title>Node222</title>
 <g id="a_node72"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8363 351,-8393 499,-8393 499,-8363 351,-8363"/>
-<text text-anchor="start" x="359" y="-8381" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8370" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayerNormAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8462 351,-8492 499,-8492 499,-8462 351,-8462"/>
+<text text-anchor="start" x="359" y="-8480" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8469" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool3DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node222 -->
 <g id="edge71" class="edge">
 <title>Node153&#45;&gt;Node222</title>
-<path fill="none" stroke="midnightblue" d="M252.68,-8109.1C265.16,-8112.28 277.07,-8117.79 286,-8127 357.12,-8200.32 252.48,-8279.15 322,-8354 329.8,-8362.4 339.94,-8368.12 350.79,-8371.96"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.1,-8105.62 242.6,-8107.03 251.69,-8112.47 253.1,-8105.62"/>
+<path fill="none" stroke="midnightblue" d="M252.68,-8158.86C265.21,-8162.04 277.15,-8167.62 286,-8177 370.9,-8266.98 239.07,-8361.21 322,-8453 329.74,-8461.57 339.92,-8467.37 350.85,-8471.24"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.04,-8155.37 242.54,-8156.8 251.64,-8162.22 253.04,-8155.37"/>
 </g>
 <!-- Node224 -->
 <g id="node74" class="node">
 <title>Node224</title>
 <g id="a_node74"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8314 351,-8344 499,-8344 499,-8314 351,-8314"/>
-<text text-anchor="start" x="359" y="-8332" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8321" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SqueezeAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8413 351,-8443 499,-8443 499,-8413 351,-8413"/>
+<text text-anchor="start" x="359" y="-8431" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8420" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayerNormAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node224 -->
 <g id="edge73" class="edge">
 <title>Node153&#45;&gt;Node224</title>
-<path fill="none" stroke="midnightblue" d="M252.59,-8109.45C265.01,-8112.61 276.93,-8118.03 286,-8127 343.41,-8183.74 265.83,-8247.03 322,-8305 329.91,-8313.17 340.04,-8318.77 350.83,-8322.59"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8105.97 242.56,-8107.37 251.64,-8112.83 253.06,-8105.97"/>
+<path fill="none" stroke="midnightblue" d="M252.68,-8159.1C265.16,-8162.28 277.07,-8167.79 286,-8177 357.12,-8250.32 252.48,-8329.15 322,-8404 329.8,-8412.4 339.94,-8418.12 350.79,-8421.96"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.1,-8155.62 242.6,-8157.03 251.69,-8162.47 253.1,-8155.62"/>
 </g>
 <!-- Node226 -->
 <g id="node76" class="node">
 <title>Node226</title>
 <g id="a_node76"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8265 351,-8295 499,-8295 499,-8265 351,-8265"/>
-<text text-anchor="start" x="359" y="-8283" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8272" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool2DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8364 351,-8394 499,-8394 499,-8364 351,-8364"/>
+<text text-anchor="start" x="359" y="-8382" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8371" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SqueezeAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node226 -->
 <g id="edge75" class="edge">
 <title>Node153&#45;&gt;Node226</title>
-<path fill="none" stroke="midnightblue" d="M252.5,-8110.07C264.82,-8113.21 276.71,-8118.46 286,-8127 329.83,-8167.28 279.06,-8214.78 322,-8256 330.07,-8263.75 340.15,-8269.16 350.81,-8272.91"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.09,-8106.62 242.58,-8107.99 251.65,-8113.47 253.09,-8106.62"/>
+<path fill="none" stroke="midnightblue" d="M252.59,-8159.45C265.01,-8162.61 276.93,-8168.03 286,-8177 343.41,-8233.74 265.83,-8297.03 322,-8355 329.91,-8363.17 340.04,-8368.77 350.83,-8372.59"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.06,-8155.97 242.56,-8157.37 251.64,-8162.83 253.06,-8155.97"/>
 </g>
 <!-- Node228 -->
 <g id="node78" class="node">
 <title>Node228</title>
 <g id="a_node78"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8216 351,-8246 499,-8246 499,-8216 351,-8216"/>
-<text text-anchor="start" x="359" y="-8234" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8223" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; OneHotAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8315 351,-8345 499,-8345 499,-8315 351,-8315"/>
+<text text-anchor="start" x="359" y="-8333" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8322" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool2DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node228 -->
 <g id="edge77" class="edge">
 <title>Node153&#45;&gt;Node228</title>
-<path fill="none" stroke="midnightblue" d="M252.72,-8111.5C264.7,-8114.57 276.41,-8119.43 286,-8127 316.61,-8151.15 291.92,-8182.2 322,-8207 330.42,-8213.94 340.5,-8218.95 350.99,-8222.55"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.15,-8108.01 242.64,-8109.32 251.68,-8114.85 253.15,-8108.01"/>
+<path fill="none" stroke="midnightblue" d="M252.5,-8160.07C264.82,-8163.21 276.71,-8168.46 286,-8177 329.83,-8217.28 279.06,-8264.78 322,-8306 330.07,-8313.75 340.15,-8319.16 350.81,-8322.91"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.09,-8156.62 242.58,-8157.99 251.65,-8163.47 253.09,-8156.62"/>
 </g>
 <!-- Node230 -->
 <g id="node80" class="node">
 <title>Node230</title>
 <g id="a_node80"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8167 351,-8197 499,-8197 499,-8167 351,-8167"/>
-<text text-anchor="start" x="359" y="-8185" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8174" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NLLLossAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8266 351,-8296 499,-8296 499,-8266 351,-8266"/>
+<text text-anchor="start" x="359" y="-8284" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8273" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; OneHotAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node230 -->
 <g id="edge79" class="edge">
 <title>Node153&#45;&gt;Node230</title>
-<path fill="none" stroke="midnightblue" d="M252.67,-8115.62C264.13,-8118.33 275.66,-8122.01 286,-8127 305.02,-8136.17 303.18,-8148.42 322,-8158 331,-8162.58 340.89,-8166.3 350.86,-8169.33"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.17,-8112.15 242.66,-8113.47 251.7,-8118.99 253.17,-8112.15"/>
+<path fill="none" stroke="midnightblue" d="M252.72,-8161.5C264.7,-8164.57 276.41,-8169.43 286,-8177 316.61,-8201.15 291.92,-8232.2 322,-8257 330.42,-8263.94 340.5,-8268.95 350.99,-8272.55"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.15,-8158.01 242.64,-8159.32 251.68,-8164.85 253.15,-8158.01"/>
 </g>
 <!-- Node232 -->
 <g id="node82" class="node">
 <title>Node232</title>
 <g id="a_node82"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8118 351,-8148 499,-8148 499,-8118 351,-8118"/>
-<text text-anchor="start" x="359" y="-8136" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8125" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BatchNormAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8217 351,-8247 499,-8247 499,-8217 351,-8217"/>
+<text text-anchor="start" x="359" y="-8235" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8224" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NLLLossAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node232 -->
 <g id="edge81" class="edge">
 <title>Node153&#45;&gt;Node232</title>
-<path fill="none" stroke="midnightblue" d="M252.8,-8115.02C283.25,-8118.22 319.39,-8122.01 350.59,-8125.29"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8111.52 242.7,-8113.96 252.28,-8118.48 253.02,-8111.52"/>
+<path fill="none" stroke="midnightblue" d="M252.67,-8165.62C264.13,-8168.33 275.66,-8172.01 286,-8177 305.02,-8186.17 303.18,-8198.42 322,-8208 331,-8212.58 340.89,-8216.3 350.86,-8219.33"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.17,-8162.15 242.66,-8163.47 251.7,-8168.99 253.17,-8162.15"/>
 </g>
 <!-- Node234 -->
 <g id="node84" class="node">
 <title>Node234</title>
 <g id="a_node84"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8069 351,-8099 499,-8099 499,-8069 351,-8069"/>
-<text text-anchor="start" x="359" y="-8087" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8076" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RepeatAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8168 351,-8198 499,-8198 499,-8168 351,-8168"/>
+<text text-anchor="start" x="359" y="-8186" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8175" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BatchNormAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node234 -->
 <g id="edge83" class="edge">
 <title>Node153&#45;&gt;Node234</title>
-<path fill="none" stroke="midnightblue" d="M252.8,-8101.26C283.25,-8098.19 319.39,-8094.55 350.59,-8091.4"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="252.3,-8097.8 242.7,-8102.28 253.01,-8104.76 252.3,-8097.8"/>
+<path fill="none" stroke="midnightblue" d="M252.8,-8165.02C283.25,-8168.22 319.39,-8172.01 350.59,-8175.29"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="253.02,-8161.52 242.7,-8163.96 252.28,-8168.48 253.02,-8161.52"/>
 </g>
 <!-- Node236 -->
 <g id="node86" class="node">
 <title>Node236</title>
 <g id="a_node86"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-8020 351,-8050 499,-8050 499,-8020 351,-8020"/>
-<text text-anchor="start" x="359" y="-8038" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-8027" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool1DAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8119 351,-8149 499,-8149 499,-8119 351,-8119"/>
+<text text-anchor="start" x="359" y="-8137" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8126" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RepeatAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node236 -->
 <g id="edge85" class="edge">
 <title>Node153&#45;&gt;Node236</title>
-<path fill="none" stroke="midnightblue" d="M220.31,-8094.83C247.63,-8084.6 286.95,-8070.45 322,-8060 333.71,-8056.51 346.27,-8053.13 358.44,-8050.05"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="218.95,-8091.6 210.82,-8098.4 221.41,-8098.15 218.95,-8091.6"/>
+<path fill="none" stroke="midnightblue" d="M252.8,-8151.26C283.25,-8148.19 319.39,-8144.55 350.59,-8141.4"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="252.3,-8147.8 242.7,-8152.28 253.01,-8154.76 252.3,-8147.8"/>
 </g>
 <!-- Node238 -->
 <g id="node88" class="node">
 <title>Node238</title>
 <g id="a_node88"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-7971 351,-8001 499,-8001 499,-7971 351,-7971"/>
-<text text-anchor="start" x="359" y="-7989" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-7978" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StackAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8070 351,-8100 499,-8100 499,-8070 351,-8070"/>
+<text text-anchor="start" x="359" y="-8088" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8077" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool1DAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node238 -->
 <g id="edge87" class="edge">
 <title>Node153&#45;&gt;Node238</title>
-<path fill="none" stroke="midnightblue" d="M203.91,-8091.77C228.67,-8070.19 275.58,-8032.29 322,-8011 331.12,-8006.82 341.02,-8003.28 350.96,-8000.3"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="201.57,-8089.17 196.4,-8098.42 206.2,-8094.41 201.57,-8089.17"/>
+<path fill="none" stroke="midnightblue" d="M220.31,-8144.83C247.63,-8134.6 286.95,-8120.45 322,-8110 333.71,-8106.51 346.27,-8103.13 358.44,-8100.05"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="218.95,-8141.6 210.82,-8148.4 221.41,-8148.15 218.95,-8141.6"/>
 </g>
 <!-- Node240 -->
 <g id="node90" class="node">
 <title>Node240</title>
 <g id="a_node90"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-7922 351,-7952 499,-7952 499,-7922 351,-7922"/>
-<text text-anchor="start" x="359" y="-7940" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-7929" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScanopAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-8021 351,-8051 499,-8051 499,-8021 351,-8021"/>
+<text text-anchor="start" x="359" y="-8039" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-8028" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StackAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node240 -->
 <g id="edge89" class="edge">
 <title>Node153&#45;&gt;Node240</title>
-<path fill="none" stroke="midnightblue" d="M197.63,-8089.79C218.56,-8058.58 265.68,-7995.04 322,-7962 330.88,-7956.79 340.82,-7952.66 350.9,-7949.39"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="194.56,-8088.09 192,-8098.37 200.41,-8091.94 194.56,-8088.09"/>
+<path fill="none" stroke="midnightblue" d="M203.91,-8141.77C228.67,-8120.19 275.58,-8082.29 322,-8061 331.12,-8056.82 341.02,-8053.28 350.96,-8050.3"/>
+<polygon fill="midnightblue" stroke="midnightblue" points="201.57,-8139.17 196.4,-8148.42 206.2,-8144.41 201.57,-8139.17"/>
 </g>
 <!-- Node242 -->
 <g id="node92" class="node">
 <title>Node242</title>
 <g id="a_node92"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="351,-7873 351,-7903 499,-7903 499,-7873 351,-7873"/>
-<text text-anchor="start" x="359" y="-7891" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="425" y="-7880" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LeakyReluAttrs &gt;</text>
+<polygon fill="white" stroke="black" points="351,-7972 351,-8002 499,-8002 499,-7972 351,-7972"/>
+<text text-anchor="start" x="359" y="-7990" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="425" y="-7979" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScanopAttrs &gt;</text>
 </a>
 </g>
 </g>
 <!-- Node153&#45;&gt;Node242 -->
 <g id="edge91" class="edge">
 <title>Node153&#45;&gt;Node242</title>
-<path fill="none" stroke="midnightblue" d="M193.67,-8088.99C210.58,-8049.62 254.96,-7958.97 322,-7913 330.72,-7907.02 340.73,-7902.47 350.99,-7899"/>
-<polygon fill="midnightblue" stroke="midnightblue" points="190.34,-8087.88 189.72,-8098.46 196.8,-8090.58 190.34,-8087.88"/>
+<path fill="none" stroke="midnightblue" d="M197.63,-8139.79C218.56,-8108.58 265.68,-8045.04 322,-8012 330.88,-8006.79 340.82,-8002.66 350.9,-7999.39"/>
... 33763 lines suppressed ...