You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2022/08/03 11:36:32 UTC
[tvm-site] branch asf-site updated: deploying docs (apache/tvm@39ffe0a5ce14c2105b7d48ee420e82e194787d8f)
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 96bf4e1cd deploying docs (apache/tvm@39ffe0a5ce14c2105b7d48ee420e82e194787d8f)
96bf4e1cd is described below
commit 96bf4e1cd9d72d0d4c6e787c6d93b2576ebb62a0
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Wed Aug 3 11:36:22 2022 +0000
deploying docs (apache/tvm@39ffe0a5ce14c2105b7d48ee420e82e194787d8f)
---
.../how_to/compile_models/from_darknet.rst.txt | 5 -
.../how_to/compile_models/from_mxnet.rst.txt | 2 +-
.../how_to/compile_models/from_oneflow.rst.txt | 2 +-
.../how_to/compile_models/from_pytorch.rst.txt | 2 +-
.../how_to/compile_models/from_tensorflow.rst.txt | 2 +-
.../compile_models/sg_execution_times.rst.txt | 22 +-
.../deploy_models/deploy_model_on_android.rst.txt | 2 +-
.../deploy_object_detection_pytorch.rst.txt | 4 +-
.../deploy_models/deploy_prequantized.rst.txt | 6 +-
.../deploy_prequantized_tflite.rst.txt | 4 +-
.../how_to/deploy_models/deploy_quantized.rst.txt | 2 +-
.../deploy_models/deploy_ssd_gluoncv.rst.txt | 4 +-
.../deploy_models/sg_execution_times.rst.txt | 18 +-
.../extend_tvm/bring_your_own_datatypes.rst.txt | 2 +-
.../how_to/extend_tvm/sg_execution_times.rst.txt | 8 +-
.../how_to/extend_tvm/use_pass_instrument.rst.txt | 16 +-
.../optimize_operators/opt_conv_cuda.rst.txt | 2 +-
.../optimize_operators/opt_conv_tensorcore.rst.txt | 2 +-
.../how_to/optimize_operators/opt_gemm.rst.txt | 16 +-
.../optimize_operators/sg_execution_times.rst.txt | 8 +-
.../sg_execution_times.rst.txt | 14 +-
.../tune_conv2d_layer_cuda.rst.txt | 396 +-
.../tune_network_cuda.rst.txt | 2 +-
.../tune_network_x86.rst.txt | 4 +-
.../tune_sparse_x86.rst.txt | 229 +-
.../tune_with_autotvm/sg_execution_times.rst.txt | 6 +-
.../tune_with_autotvm/tune_conv2d_cuda.rst.txt | 26 +-
.../work_with_microtvm/micro_autotune.rst.txt | 16 +-
.../how_to/work_with_microtvm/micro_train.rst.txt | 16 +-
.../work_with_microtvm/sg_execution_times.rst.txt | 10 +-
.../work_with_relay/sg_execution_times.rst.txt | 8 +-
.../how_to/work_with_schedules/intrin_math.rst.txt | 2 +-
.../work_with_schedules/sg_execution_times.rst.txt | 12 +-
.../how_to/work_with_schedules/tensorize.rst.txt | 2 +-
.../tutorials/autotvm/sg_execution_times.rst.txt | 4 +-
.../frontend/deploy_classification.rst.txt | 2 +-
.../tutorials/frontend/deploy_detection.rst.txt | 2 +-
.../tutorials/frontend/sg_execution_times.rst.txt | 6 +-
.../tutorials/optimize/sg_execution_times.rst.txt | 6 +-
.../topic/vta/tutorials/sg_execution_times.rst.txt | 6 +-
.../tutorial/auto_scheduler_matmul_x86.rst.txt | 13 +-
docs/_sources/tutorial/autotvm_matmul_x86.rst.txt | 20 +-
docs/_sources/tutorial/autotvm_relay_x86.rst.txt | 54 +-
.../tutorial/cross_compilation_and_rpc.rst.txt | 2 +-
docs/_sources/tutorial/intro_topi.rst.txt | 2 +-
docs/_sources/tutorial/sg_execution_times.rst.txt | 22 +-
.../tutorial/tensor_expr_get_started.rst.txt | 48 +-
docs/commit_hash | 2 +-
docs/genindex.html | 8 +-
docs/how_to/compile_models/from_darknet.html | 1 -
docs/how_to/compile_models/from_mxnet.html | 2 +-
docs/how_to/compile_models/from_oneflow.html | 12 +-
docs/how_to/compile_models/from_pytorch.html | 6 +-
docs/how_to/compile_models/from_tensorflow.html | 2 +-
docs/how_to/compile_models/sg_execution_times.html | 22 +-
.../deploy_models/deploy_model_on_android.html | 2 +-
.../deploy_object_detection_pytorch.html | 19 +-
docs/how_to/deploy_models/deploy_prequantized.html | 14 +-
.../deploy_models/deploy_prequantized_tflite.html | 4 +-
docs/how_to/deploy_models/deploy_quantized.html | 2 +-
docs/how_to/deploy_models/deploy_ssd_gluoncv.html | 38 +-
docs/how_to/deploy_models/sg_execution_times.html | 18 +-
.../extend_tvm/bring_your_own_datatypes.html | 2 +-
docs/how_to/extend_tvm/sg_execution_times.html | 8 +-
docs/how_to/extend_tvm/use_pass_instrument.html | 16 +-
docs/how_to/optimize_operators/opt_conv_cuda.html | 2 +-
.../optimize_operators/opt_conv_tensorcore.html | 2 +-
docs/how_to/optimize_operators/opt_gemm.html | 16 +-
.../optimize_operators/sg_execution_times.html | 8 +-
.../sg_execution_times.html | 14 +-
.../tune_conv2d_layer_cuda.html | 396 +-
.../tune_with_autoscheduler/tune_network_cuda.html | 2 +-
.../tune_with_autoscheduler/tune_network_x86.html | 4 +-
.../tune_with_autoscheduler/tune_sparse_x86.html | 229 +-
.../tune_with_autotvm/sg_execution_times.html | 6 +-
.../how_to/tune_with_autotvm/tune_conv2d_cuda.html | 26 +-
docs/how_to/work_with_microtvm/micro_autotune.html | 16 +-
docs/how_to/work_with_microtvm/micro_train.html | 16 +-
.../work_with_microtvm/sg_execution_times.html | 10 +-
.../how_to/work_with_relay/sg_execution_times.html | 8 +-
docs/how_to/work_with_schedules/intrin_math.html | 2 +-
.../work_with_schedules/sg_execution_times.html | 12 +-
docs/how_to/work_with_schedules/tensorize.html | 2 +-
docs/objects.inv | Bin 22959 -> 22996 bytes
docs/reference/api/doxygen/affine__type_8h.html | 2 +-
.../api/doxygen/affine__type_8h__incl.svg | 1749 ++---
.../api/doxygen/affine__type_8h_source.html | 2 +-
docs/reference/api/doxygen/algorithm_8h.html | 2 +-
docs/reference/api/doxygen/algorithm_8h__incl.svg | 2422 ++++---
docs/reference/api/doxygen/algorithms_8h__incl.svg | 692 +-
docs/reference/api/doxygen/analyzer_8h.html | 2 +-
.../api/doxygen/analyzer_8h__dep__incl.svg | 644 +-
docs/reference/api/doxygen/analyzer_8h__incl.svg | 1988 +++---
docs/reference/api/doxygen/analyzer_8h_source.html | 2 +-
docs/reference/api/doxygen/annotated.html | 166 +-
docs/reference/api/doxygen/annotation_8h.html | 2 +-
docs/reference/api/doxygen/annotation_8h__incl.svg | 1799 ++---
.../api/doxygen/apply__history__best_8h__incl.svg | 860 +--
.../api/doxygen/arg__info_8h__dep__incl.svg | 140 +-
docs/reference/api/doxygen/arg__info_8h__incl.svg | 798 +--
.../api/doxygen/array__utils_8h__dep__incl.svg | 44 +-
.../api/doxygen/array__utils_8h__incl.svg | 698 +-
docs/reference/api/doxygen/auto__schedule_8h.html | 2 +-
.../api/doxygen/auto__schedule_8h__incl.svg | 1940 +++---
.../doxygen/auto__scheduler_2cost__model_8h.html | 2 +-
.../auto__scheduler_2cost__model_8h__incl.svg | 1859 ++---
.../doxygen/auto__scheduler_2feature_8h__incl.svg | 720 +-
docs/reference/api/doxygen/autodiff_8h.html | 2 +-
docs/reference/api/doxygen/autodiff_8h__incl.svg | 2021 +++---
docs/reference/api/doxygen/bias__add_8h__incl.svg | 816 +--
docs/reference/api/doxygen/bitserial_8h.html | 2 +-
docs/reference/api/doxygen/bitserial_8h__incl.svg | 2099 +++---
docs/reference/api/doxygen/block__scope_8h.html | 2 +-
.../api/doxygen/block__scope_8h__dep__incl.svg | 152 +-
.../api/doxygen/block__scope_8h__incl.svg | 1939 +++---
docs/reference/api/doxygen/bound_8h.html | 2 +-
docs/reference/api/doxygen/bound_8h__dep__incl.svg | 628 +-
docs/reference/api/doxygen/bound_8h__incl.svg | 2043 +++---
.../api/doxygen/broadcast_8h__dep__incl.svg | 92 +-
docs/reference/api/doxygen/broadcast_8h__incl.svg | 840 +--
docs/reference/api/doxygen/buffer_8h.html | 2 +-
.../reference/api/doxygen/buffer_8h__dep__incl.svg | 640 +-
docs/reference/api/doxygen/buffer_8h__incl.svg | 1819 ++---
docs/reference/api/doxygen/buffer_8h_source.html | 4 +-
.../api/doxygen/builder_8h__dep__incl.svg | 40 +-
docs/reference/api/doxygen/builder_8h__incl.svg | 808 +--
.../api/doxygen/builtin_8h__dep__incl.svg | 108 +-
docs/reference/api/doxygen/builtin_8h__incl.svg | 670 +-
docs/reference/api/doxygen/call_8h.html | 2 +-
docs/reference/api/doxygen/call_8h__incl.svg | 1799 ++---
docs/reference/api/doxygen/classes.html | 436 +-
.../api/doxygen/classtvm_1_1BaseValueEqual.html | 2 +-
.../classtvm_1_1BaseValueEqual__coll__graph.svg | 4 +-
.../classtvm_1_1BaseValueEqual__inherit__graph.svg | 77 +-
.../classtvm_1_1ObjectPathPair-members.html | 101 +
.../api/doxygen/classtvm_1_1ObjectPathPair.html | 231 +
.../classtvm_1_1ObjectPathPairNode-members.html | 115 +
.../doxygen/classtvm_1_1ObjectPathPairNode.html | 316 +
...classtvm_1_1ObjectPathPairNode__coll__graph.svg | 168 +
...sstvm_1_1ObjectPathPairNode__inherit__graph.svg | 76 +
.../classtvm_1_1ObjectPathPair__coll__graph.svg | 90 +
.../classtvm_1_1ObjectPathPair__inherit__graph.svg | 60 +
.../doxygen/classtvm_1_1SEqualReducer-members.html | 30 +-
.../api/doxygen/classtvm_1_1SEqualReducer.html | 446 +-
...asstvm_1_1SEqualReducer_1_1Handler-members.html | 8 +-
.../classtvm_1_1SEqualReducer_1_1Handler.html | 86 +-
...vm_1_1SEqualReducer_1_1Handler__coll__graph.svg | 23 +-
.../classtvm_1_1SEqualReducer__coll__graph.svg | 62 +-
.../classtvm_1_1SEqualReducer__inherit__graph.svg | 55 -
.../api/doxygen/classtvm_1_1runtime_1_1Object.html | 2 +-
.../doxygen/classtvm_1_1runtime_1_1ObjectRef.html | 2 +-
...asstvm_1_1runtime_1_1ObjectRef__coll__graph.svg | 12 +-
.../classtvm_1_1runtime_1_1Object__coll__graph.svg | 8 +-
docs/reference/api/doxygen/codegen_8h__incl.svg | 808 +--
.../doxygen/compilation__config_8h__dep__incl.svg | 20 +-
.../api/doxygen/compilation__config_8h__incl.svg | 712 +-
.../api/doxygen/compute__dag_8h__dep__incl.svg | 76 +-
.../api/doxygen/compute__dag_8h__incl.svg | 702 +-
.../api/doxygen/constant__utils_8h__dep__incl.svg | 168 +-
.../api/doxygen/constant__utils_8h__incl.svg | 904 +--
.../reference/api/doxygen/cublas_8h__dep__incl.svg | 20 +-
docs/reference/api/doxygen/cublas_8h__incl.svg | 734 +-
.../api/doxygen/cuda_2dense_8h__dep__incl.svg | 12 +-
.../reference/api/doxygen/cuda_2dense_8h__incl.svg | 560 +-
.../api/doxygen/cuda_2injective_8h__dep__incl.svg | 12 +-
.../api/doxygen/cuda_2injective_8h__incl.svg | 560 +-
.../api/doxygen/cuda_2pooling_8h__dep__incl.svg | 12 +-
.../api/doxygen/cuda_2pooling_8h__incl.svg | 532 +-
.../api/doxygen/cuda_2reduction_8h__dep__incl.svg | 12 +-
.../api/doxygen/cuda_2reduction_8h__incl.svg | 560 +-
.../api/doxygen/cuda_2softmax_8h__dep__incl.svg | 12 +-
.../api/doxygen/cuda_2softmax_8h__incl.svg | 560 +-
.../api/doxygen/data__layout_8h__dep__incl.svg | 112 +-
.../api/doxygen/data__layout_8h__incl.svg | 666 +-
.../api/doxygen/database_8h__dep__incl.svg | 56 +-
docs/reference/api/doxygen/database_8h__incl.svg | 808 +--
docs/reference/api/doxygen/database_8h_source.html | 2 +-
.../api/doxygen/dataflow__matcher_8h__incl.svg | 834 +--
.../doxygen/dataflow__pattern_8h__dep__incl.svg | 24 +-
.../api/doxygen/dataflow__pattern_8h__incl.svg | 862 +--
.../dataflow__pattern__functor_8h__dep__incl.svg | 12 +-
.../dataflow__pattern__functor_8h__incl.svg | 838 +--
.../doxygen/detail_2broadcast_8h__dep__incl.svg | 104 +-
.../api/doxygen/detail_2broadcast_8h__incl.svg | 808 +--
.../api/doxygen/detail_2extern_8h__dep__incl.svg | 40 +-
.../api/doxygen/detail_2extern_8h__incl.svg | 764 +--
docs/reference/api/doxygen/device__copy_8h.html | 2 +-
.../api/doxygen/device__copy_8h__incl.svg | 1973 +++---
.../api/doxygen/diagnostic_8h__dep__incl.svg | 532 +-
docs/reference/api/doxygen/diagnostic_8h__incl.svg | 712 +-
.../api/doxygen/diagnostic_8h_source.html | 2 +-
docs/reference/api/doxygen/dilate_8h__incl.svg | 730 +-
docs/reference/api/doxygen/doc_8h.html | 2 +-
docs/reference/api/doxygen/doc_8h__dep__incl.svg | 12 +-
docs/reference/api/doxygen/doc_8h__incl.svg | 1757 ++---
docs/reference/api/doxygen/doc__printer_8h.html | 2 +-
.../api/doxygen/doc__printer_8h__incl.svg | 1767 ++---
.../reference/api/doxygen/driver__api_8h__incl.svg | 920 +--
docs/reference/api/doxygen/einsum_8h__incl.svg | 808 +--
.../api/doxygen/elemwise_8h__dep__incl.svg | 48 +-
docs/reference/api/doxygen/elemwise_8h__incl.svg | 598 +-
docs/reference/api/doxygen/env__func_8h.html | 2 +-
.../api/doxygen/env__func_8h__dep__incl.svg | 548 +-
docs/reference/api/doxygen/env__func_8h__incl.svg | 1457 ++--
.../reference/api/doxygen/env__func_8h_source.html | 2 +-
docs/reference/api/doxygen/error_8h__dep__incl.svg | 520 +-
docs/reference/api/doxygen/error_8h__incl.svg | 722 +-
docs/reference/api/doxygen/executor_8h.html | 2 +-
docs/reference/api/doxygen/executor_8h__incl.svg | 2210 +++---
docs/reference/api/doxygen/executor_8h_source.html | 4 +-
docs/reference/api/doxygen/extracted__task_8h.html | 2 +-
.../api/doxygen/extracted__task_8h__incl.svg | 2145 +++---
.../api/doxygen/feature__extractor_8h.html | 2 +-
.../api/doxygen/feature__extractor_8h__incl.svg | 1767 ++---
docs/reference/api/doxygen/flatten_8h__incl.svg | 808 +--
docs/reference/api/doxygen/functions__.html | 1 +
docs/reference/api/doxygen/functions_d.html | 3 +
docs/reference/api/doxygen/functions_func_d.html | 9 +-
docs/reference/api/doxygen/functions_func_g.html | 5 +-
docs/reference/api/doxygen/functions_func_i.html | 11 +-
docs/reference/api/doxygen/functions_func_m.html | 2 +-
docs/reference/api/doxygen/functions_func_o.html | 40 +-
docs/reference/api/doxygen/functions_func_r.html | 9 +-
docs/reference/api/doxygen/functions_func_s.html | 6 +-
docs/reference/api/doxygen/functions_func_t.html | 8 +-
docs/reference/api/doxygen/functions_g.html | 7 +-
docs/reference/api/doxygen/functions_i.html | 7 +-
docs/reference/api/doxygen/functions_l.html | 3 +
docs/reference/api/doxygen/functions_o.html | 24 +-
docs/reference/api/doxygen/functions_p.html | 5 +-
docs/reference/api/doxygen/functions_r.html | 8 +-
docs/reference/api/doxygen/functions_s.html | 4 +-
docs/reference/api/doxygen/functions_t.html | 12 +-
docs/reference/api/doxygen/functions_type.html | 3 +
docs/reference/api/doxygen/functions_vars.html | 1 +
docs/reference/api/doxygen/functions_vars_l.html | 3 +
docs/reference/api/doxygen/functions_vars_r.html | 3 +
docs/reference/api/doxygen/fuse_8h__dep__incl.svg | 156 +-
docs/reference/api/doxygen/fuse_8h__incl.svg | 698 +-
.../api/doxygen/generic_2default_8h__incl.svg | 560 +-
.../api/doxygen/generic_2extern_8h__dep__incl.svg | 24 +-
.../api/doxygen/generic_2extern_8h__incl.svg | 548 +-
.../doxygen/generic_2injective_8h__dep__incl.svg | 32 +-
.../api/doxygen/generic_2injective_8h__incl.svg | 560 +-
.../api/doxygen/generic__func_8h__dep__incl.svg | 196 +-
.../api/doxygen/generic__func_8h__incl.svg | 280 +-
docs/reference/api/doxygen/greedy_8h__incl.svg | 736 +-
docs/reference/api/doxygen/hierarchy.html | 960 +--
docs/reference/api/doxygen/image_8h.html | 2 +-
docs/reference/api/doxygen/image_8h__incl.svg | 2099 +++---
docs/reference/api/doxygen/index__map_8h.html | 2 +-
.../api/doxygen/index__map_8h__dep__incl.svg | 592 +-
docs/reference/api/doxygen/index__map_8h__incl.svg | 1827 ++---
.../api/doxygen/index__map_8h_source.html | 4 +-
docs/reference/api/doxygen/inherit_graph_10.svg | 16 +-
docs/reference/api/doxygen/inherit_graph_108.svg | 7107 ++++++++++----------
docs/reference/api/doxygen/inherit_graph_117.svg | 4897 +++++++-------
docs/reference/api/doxygen/inherit_graph_185.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_186.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_187.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_188.svg | 14 +-
docs/reference/api/doxygen/inherit_graph_189.svg | 14 +-
docs/reference/api/doxygen/inherit_graph_190.svg | 28 +-
docs/reference/api/doxygen/inherit_graph_191.svg | 29 +-
docs/reference/api/doxygen/inherit_graph_192.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_193.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_194.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_195.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_196.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_197.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_198.svg | 17 +-
docs/reference/api/doxygen/inherit_graph_199.svg | 17 +-
docs/reference/api/doxygen/inherit_graph_200.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_201.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_202.svg | 14 +-
docs/reference/api/doxygen/inherit_graph_203.svg | 17 +-
docs/reference/api/doxygen/inherit_graph_204.svg | 80 +-
docs/reference/api/doxygen/inherit_graph_205.svg | 70 +-
docs/reference/api/doxygen/inherit_graph_206.svg | 79 +-
docs/reference/api/doxygen/inherit_graph_207.svg | 19 +-
docs/reference/api/doxygen/inherit_graph_208.svg | 19 +-
docs/reference/api/doxygen/inherit_graph_209.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_210.svg | 15 +-
docs/reference/api/doxygen/inherit_graph_211.svg | 29 +-
docs/reference/api/doxygen/inherit_graph_212.svg | 24 +-
docs/reference/api/doxygen/inherit_graph_213.svg | 30 +-
docs/reference/api/doxygen/inherit_graph_214.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_215.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_216.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_217.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_218.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_219.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_22.svg | 37 +-
docs/reference/api/doxygen/inherit_graph_220.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_221.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_222.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_223.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_224.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_225.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_226.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_227.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_228.svg | 12 +-
docs/reference/api/doxygen/inherit_graph_229.svg | 12 +-
...inherit_graph_229.svg => inherit_graph_230.svg} | 0
docs/reference/api/doxygen/inherit_graph_39.svg | 16 +-
docs/reference/api/doxygen/inherit_graph_43.svg | 8 +-
docs/reference/api/doxygen/inherits.html | 98 +-
docs/reference/api/doxygen/instruction_8h.html | 2 +-
.../api/doxygen/instruction_8h__dep__incl.svg | 180 +-
.../reference/api/doxygen/instruction_8h__incl.svg | 1451 ++--
docs/reference/api/doxygen/instrument_8h.html | 2 +-
.../api/doxygen/instrument_8h__dep__incl.svg | 512 +-
docs/reference/api/doxygen/instrument_8h__incl.svg | 1459 ++--
docs/reference/api/doxygen/int__set_8h.html | 2 +-
.../api/doxygen/int__set_8h__dep__incl.svg | 660 +-
docs/reference/api/doxygen/int__set_8h__incl.svg | 1973 +++---
.../reference/api/doxygen/int__solver_8h__incl.svg | 682 +-
.../api/doxygen/int__solver_8h_source.html | 2 +-
.../reference/api/doxygen/interpreter_8h__incl.svg | 772 +--
docs/reference/api/doxygen/ir_2adt_8h.html | 2 +-
.../api/doxygen/ir_2adt_8h__dep__incl.svg | 680 +-
docs/reference/api/doxygen/ir_2adt_8h__incl.svg | 1831 ++---
docs/reference/api/doxygen/ir_2adt_8h_source.html | 4 +-
docs/reference/api/doxygen/ir_2attrs_8h.html | 2 +-
.../api/doxygen/ir_2attrs_8h__dep__incl.svg | 580 +-
docs/reference/api/doxygen/ir_2attrs_8h__incl.svg | 1811 ++---
.../reference/api/doxygen/ir_2attrs_8h_source.html | 4 +-
docs/reference/api/doxygen/ir_2expr_8h.html | 2 +-
.../api/doxygen/ir_2expr_8h__dep__incl.svg | 624 +-
docs/reference/api/doxygen/ir_2expr_8h__incl.svg | 1731 ++---
docs/reference/api/doxygen/ir_2expr_8h_source.html | 4 +-
docs/reference/api/doxygen/ir_2function_8h.html | 2 +-
.../api/doxygen/ir_2function_8h__dep__incl.svg | 664 +-
.../api/doxygen/ir_2function_8h__incl.svg | 1835 ++---
docs/reference/api/doxygen/ir_2module_8h.html | 2 +-
.../api/doxygen/ir_2module_8h__dep__incl.svg | 684 +-
docs/reference/api/doxygen/ir_2module_8h__incl.svg | 2127 +++---
.../api/doxygen/ir_2module_8h_source.html | 2 +-
docs/reference/api/doxygen/ir_2op_8h.html | 2 +-
.../reference/api/doxygen/ir_2op_8h__dep__incl.svg | 560 +-
docs/reference/api/doxygen/ir_2op_8h__incl.svg | 2194 +++---
docs/reference/api/doxygen/ir_2op_8h_source.html | 2 +-
docs/reference/api/doxygen/ir_2span_8h.html | 2 +-
.../api/doxygen/ir_2span_8h__dep__incl.svg | 708 +-
docs/reference/api/doxygen/ir_2span_8h__incl.svg | 1577 ++---
docs/reference/api/doxygen/ir_2span_8h_source.html | 2 +-
.../api/doxygen/ir_2transform_8h__dep__incl.svg | 520 +-
.../api/doxygen/ir_2transform_8h__incl.svg | 756 +--
docs/reference/api/doxygen/ir_2type_8h.html | 2 +-
.../api/doxygen/ir_2type_8h__dep__incl.svg | 692 +-
docs/reference/api/doxygen/ir_2type_8h__incl.svg | 1629 ++---
docs/reference/api/doxygen/ir_2type_8h_source.html | 6 +-
.../api/doxygen/iter__affine__map_8h__incl.svg | 730 +-
.../api/doxygen/iter__affine__map_8h_source.html | 2 +-
.../api/doxygen/local__response__norm_8h__incl.svg | 710 +-
docs/reference/api/doxygen/loop__state_8h.html | 2 +-
.../api/doxygen/loop__state_8h__dep__incl.svg | 88 +-
.../reference/api/doxygen/loop__state_8h__incl.svg | 2031 +++---
docs/reference/api/doxygen/mapping_8h__incl.svg | 710 +-
.../api/doxygen/measure_8h__dep__incl.svg | 48 +-
docs/reference/api/doxygen/measure_8h__incl.svg | 632 +-
.../doxygen/measure__callback_8h__dep__incl.svg | 12 +-
.../api/doxygen/measure__callback_8h__incl.svg | 952 +--
.../api/doxygen/measure__candidate_8h.html | 2 +-
.../doxygen/measure__candidate_8h__dep__incl.svg | 72 +-
.../api/doxygen/measure__candidate_8h__incl.svg | 1967 +++---
.../api/doxygen/measure__record_8h__incl.svg | 620 +-
.../api/doxygen/memory__pools_8h__dep__incl.svg | 44 +-
.../api/doxygen/memory__pools_8h__incl.svg | 324 +-
.../api/doxygen/memory__pools_8h_source.html | 2 +-
.../meta__schedule_2cost__model_8h__dep__incl.svg | 48 +-
.../meta__schedule_2cost__model_8h__incl.svg | 768 +--
docs/reference/api/doxygen/metadata_8h.html | 2 +-
docs/reference/api/doxygen/metadata_8h__incl.svg | 1794 +++--
docs/reference/api/doxygen/metadata__base_8h.html | 2 +-
.../api/doxygen/metadata__base_8h__dep__incl.svg | 12 +-
.../api/doxygen/metadata__base_8h__incl.svg | 1781 ++---
docs/reference/api/doxygen/mutator_8h.html | 2 +-
.../api/doxygen/mutator_8h__dep__incl.svg | 32 +-
docs/reference/api/doxygen/mutator_8h__incl.svg | 1862 +++--
.../api/doxygen/namespacemembers_func_g.html | 11 +-
.../api/doxygen/namespacemembers_func_p.html | 6 +-
docs/reference/api/doxygen/namespacemembers_g.html | 13 +-
docs/reference/api/doxygen/namespacemembers_p.html | 6 +-
docs/reference/api/doxygen/namespacetvm.html | 563 +-
docs/reference/api/doxygen/nn_2bnn_8h__incl.svg | 822 +--
.../api/doxygen/nn_2dense_8h__dep__incl.svg | 24 +-
docs/reference/api/doxygen/nn_2dense_8h__incl.svg | 710 +-
.../reference/api/doxygen/nn_2pooling_8h__incl.svg | 908 +--
.../reference/api/doxygen/nn_2softmax_8h__incl.svg | 872 +--
docs/reference/api/doxygen/node_8h.html | 2 +-
docs/reference/api/doxygen/node_8h__dep__incl.svg | 692 +-
docs/reference/api/doxygen/node_8h__incl.svg | 1557 ++---
.../reference/api/doxygen/object_8h__dep__incl.svg | 2 +-
docs/reference/api/doxygen/object__path_8h.html | 6 +
.../api/doxygen/object__path_8h__dep__incl.svg | 1138 ++++
docs/reference/api/doxygen/on__device_8h.html | 2 +-
docs/reference/api/doxygen/on__device_8h__incl.svg | 1973 +++---
.../api/doxygen/op__strategy_8h__incl.svg | 932 +--
.../api/doxygen/operation_8h__dep__incl.svg | 592 +-
docs/reference/api/doxygen/operation_8h__incl.svg | 698 +-
docs/reference/api/doxygen/optional_8h.html | 2 +-
.../api/doxygen/optional_8h__dep__incl.svg | 1781 +++--
.../api/doxygen/pad__utils_8h__dep__incl.svg | 12 +-
docs/reference/api/doxygen/pad__utils_8h__incl.svg | 706 +-
docs/reference/api/doxygen/parser_8h__incl.svg | 776 +--
docs/reference/api/doxygen/pattern_8h.html | 2 +-
docs/reference/api/doxygen/pattern_8h__incl.svg | 1959 +++---
.../api/doxygen/pattern__functor_8h__incl.svg | 776 +--
docs/reference/api/doxygen/postproc_8h.html | 2 +-
.../api/doxygen/postproc_8h__dep__incl.svg | 32 +-
docs/reference/api/doxygen/postproc_8h__incl.svg | 1888 +++---
docs/reference/api/doxygen/profiler_8h.html | 2 +-
docs/reference/api/doxygen/profiler_8h__incl.svg | 2303 +++----
docs/reference/api/doxygen/random_8h.html | 2 +-
docs/reference/api/doxygen/random_8h__incl.svg | 1789 ++---
.../api/doxygen/ravel__unravel_8h__dep__incl.svg | 84 +-
.../api/doxygen/ravel__unravel_8h__incl.svg | 698 +-
docs/reference/api/doxygen/reduce_8h.html | 2 +-
docs/reference/api/doxygen/reduce_8h__incl.svg | 1799 ++---
.../api/doxygen/reduction_8h__dep__incl.svg | 40 +-
docs/reference/api/doxygen/reduction_8h__incl.svg | 896 +--
docs/reference/api/doxygen/reflection_8h.html | 11 +-
.../api/doxygen/reflection_8h__dep__incl.svg | 720 +-
docs/reference/api/doxygen/reflection_8h__incl.svg | 1435 ++--
.../api/doxygen/reflection_8h_source.html | 6 +-
docs/reference/api/doxygen/relay_2adt_8h.html | 2 +-
.../api/doxygen/relay_2adt_8h__dep__incl.svg | 36 +-
docs/reference/api/doxygen/relay_2adt_8h__incl.svg | 2304 ++++---
.../api/doxygen/relay_2adt_8h_source.html | 4 +-
.../api/doxygen/relay_2analysis_8h__incl.svg | 856 +--
.../api/doxygen/relay_2attrs_2debug_8h.html | 2 +-
.../api/doxygen/relay_2attrs_2debug_8h__incl.svg | 1849 ++---
.../api/doxygen/relay_2attrs_2memory_8h.html | 2 +-
.../api/doxygen/relay_2attrs_2memory_8h__incl.svg | 2496 +++----
.../reference/api/doxygen/relay_2attrs_2nn_8h.html | 2 +-
.../api/doxygen/relay_2attrs_2nn_8h__incl.svg | 2097 +++---
.../api/doxygen/relay_2attrs_2transform_8h.html | 2 +-
.../relay_2attrs_2transform_8h__dep__incl.svg | 20 +-
.../doxygen/relay_2attrs_2transform_8h__incl.svg | 2441 +++----
.../reference/api/doxygen/relay_2attrs_2vm_8h.html | 2 +-
.../api/doxygen/relay_2attrs_2vm_8h__incl.svg | 1787 ++---
docs/reference/api/doxygen/relay_2base_8h.html | 2 +-
.../api/doxygen/relay_2base_8h__dep__incl.svg | 296 +-
.../reference/api/doxygen/relay_2base_8h__incl.svg | 1995 +++---
.../api/doxygen/relay_2base_8h_source.html | 4 +-
docs/reference/api/doxygen/relay_2expr_8h.html | 2 +-
.../api/doxygen/relay_2expr_8h__dep__incl.svg | 212 +-
.../reference/api/doxygen/relay_2expr_8h__incl.svg | 2584 ++++---
.../api/doxygen/relay_2expr_8h_source.html | 4 +-
.../api/doxygen/relay_2expr__functor_8h__incl.svg | 776 +--
.../api/doxygen/relay_2feature_8h__incl.svg | 768 +--
.../api/doxygen/relay_2function_8h__dep__incl.svg | 36 +-
.../api/doxygen/relay_2function_8h__incl.svg | 820 +--
.../api/doxygen/relay_2function_8h_source.html | 4 +-
.../api/doxygen/relay_2op_8h__dep__incl.svg | 36 +-
docs/reference/api/doxygen/relay_2op_8h__incl.svg | 854 +--
.../relay_2op__attr__types_8h__dep__incl.svg | 28 +-
.../doxygen/relay_2op__attr__types_8h__incl.svg | 916 +--
.../api/doxygen/relay_2qnn_2attrs_8h.html | 2 +-
.../api/doxygen/relay_2qnn_2attrs_8h__incl.svg | 1799 ++---
.../api/doxygen/relay_2qnn_2transform_8h__incl.svg | 760 +--
.../api/doxygen/relay_2transform_8h__dep__incl.svg | 12 +-
.../api/doxygen/relay_2transform_8h__incl.svg | 840 +--
docs/reference/api/doxygen/relay_2type_8h.html | 2 +-
.../api/doxygen/relay_2type_8h__dep__incl.svg | 240 +-
.../reference/api/doxygen/relay_2type_8h__incl.svg | 2416 ++++---
docs/reference/api/doxygen/reorg_8h__incl.svg | 940 +--
.../api/doxygen/rocblas_8h__dep__incl.svg | 12 +-
docs/reference/api/doxygen/rocblas_8h__incl.svg | 734 +-
.../reference/api/doxygen/rocm_2dense_8h__incl.svg | 572 +-
.../api/doxygen/rocm_2injective_8h__incl.svg | 560 +-
.../api/doxygen/rocm_2pooling_8h__incl.svg | 536 +-
.../api/doxygen/rocm_2reduction_8h__incl.svg | 560 +-
.../api/doxygen/rocm_2softmax_8h__incl.svg | 560 +-
docs/reference/api/doxygen/runner_8h.html | 2 +-
.../reference/api/doxygen/runner_8h__dep__incl.svg | 72 +-
docs/reference/api/doxygen/runner_8h__incl.svg | 2391 +++----
.../api/doxygen/runtime_2container_2base_8h.html | 2 +-
.../runtime_2container_2base_8h__dep__incl.svg | 1056 +--
docs/reference/api/doxygen/runtime_8h.html | 2 +-
docs/reference/api/doxygen/runtime_8h__incl.svg | 2210 +++---
docs/reference/api/doxygen/runtime_8h_source.html | 4 +-
.../api/doxygen/schedule__pass_8h__dep__incl.svg | 136 +-
.../api/doxygen/schedule__pass_8h__incl.svg | 718 +-
docs/reference/api/doxygen/schedule__rule_8h.html | 2 +-
.../api/doxygen/schedule__rule_8h__dep__incl.svg | 32 +-
.../api/doxygen/schedule__rule_8h__incl.svg | 1859 ++---
docs/reference/api/doxygen/search/all_1.js | 2 +-
docs/reference/api/doxygen/search/all_10.js | 6 +-
docs/reference/api/doxygen/search/all_11.js | 7 +-
docs/reference/api/doxygen/search/all_13.js | 10 +-
docs/reference/api/doxygen/search/all_14.js | 20 +-
docs/reference/api/doxygen/search/all_15.js | 14 +-
docs/reference/api/doxygen/search/all_16.js | 6 +-
docs/reference/api/doxygen/search/all_17.js | 2 +-
docs/reference/api/doxygen/search/all_5.js | 1 +
docs/reference/api/doxygen/search/all_6.js | 2 +-
docs/reference/api/doxygen/search/all_8.js | 2 +
docs/reference/api/doxygen/search/all_a.js | 3 +-
docs/reference/api/doxygen/search/all_d.js | 3 +-
docs/reference/api/doxygen/search/all_e.js | 4 +-
docs/reference/api/doxygen/search/classes_10.js | 4 +-
docs/reference/api/doxygen/search/classes_11.js | 6 +-
docs/reference/api/doxygen/search/classes_13.js | 2 +-
docs/reference/api/doxygen/search/classes_4.js | 2 +-
docs/reference/api/doxygen/search/classes_8.js | 2 +-
docs/reference/api/doxygen/search/classes_c.js | 2 +
docs/reference/api/doxygen/search/functions_10.js | 4 +-
docs/reference/api/doxygen/search/functions_12.js | 5 +-
docs/reference/api/doxygen/search/functions_13.js | 10 +-
docs/reference/api/doxygen/search/functions_14.js | 6 +-
docs/reference/api/doxygen/search/functions_15.js | 4 +-
docs/reference/api/doxygen/search/functions_4.js | 1 +
docs/reference/api/doxygen/search/functions_7.js | 2 +
docs/reference/api/doxygen/search/functions_9.js | 1 +
docs/reference/api/doxygen/search/functions_c.js | 2 +-
docs/reference/api/doxygen/search/functions_d.js | 4 +-
docs/reference/api/doxygen/search/functions_f.js | 6 +-
docs/reference/api/doxygen/search/typedefs_b.js | 1 +
docs/reference/api/doxygen/search/variables_0.js | 2 +-
docs/reference/api/doxygen/search/variables_10.js | 1 +
docs/reference/api/doxygen/search/variables_b.js | 1 +
docs/reference/api/doxygen/search__policy_8h.html | 2 +-
.../api/doxygen/search__policy_8h__dep__incl.svg | 12 +-
.../api/doxygen/search__policy_8h__incl.svg | 2022 +++---
.../api/doxygen/search__strategy_8h__dep__incl.svg | 36 +-
.../api/doxygen/search__strategy_8h__incl.svg | 868 +--
.../api/doxygen/search__task_8h__dep__incl.svg | 60 +-
.../api/doxygen/search__task_8h__incl.svg | 652 +-
docs/reference/api/doxygen/source__map_8h.html | 2 +-
.../api/doxygen/source__map_8h__dep__incl.svg | 680 +-
.../reference/api/doxygen/source__map_8h__incl.svg | 1705 ++---
.../api/doxygen/source__map_8h_source.html | 2 +-
.../api/doxygen/space__generator_8h__dep__incl.svg | 32 +-
.../api/doxygen/space__generator_8h__incl.svg | 756 +--
docs/reference/api/doxygen/state_8h__dep__incl.svg | 144 +-
docs/reference/api/doxygen/state_8h__incl.svg | 792 +--
docs/reference/api/doxygen/stmt_8h.html | 2 +-
docs/reference/api/doxygen/stmt_8h__dep__incl.svg | 600 +-
docs/reference/api/doxygen/stmt_8h__incl.svg | 1927 +++---
docs/reference/api/doxygen/stmt_8h_source.html | 4 +-
.../api/doxygen/stmt__functor_8h__dep__incl.svg | 12 +-
.../api/doxygen/stmt__functor_8h__incl.svg | 726 +-
.../api/doxygen/strided__slice_8h__dep__incl.svg | 72 +-
.../api/doxygen/strided__slice_8h__incl.svg | 690 +-
.../reference/api/doxygen/string_8h__dep__incl.svg | 38 +-
.../api/doxygen/structural__equal_8h.html | 8 +-
.../doxygen/structural__equal_8h__dep__incl.svg | 636 +-
.../api/doxygen/structural__equal_8h__incl.svg | 573 +-
.../api/doxygen/structural__equal_8h_source.html | 47 +-
.../api/doxygen/structural__hash_8h_source.html | 2 +-
docs/reference/api/doxygen/tag_8h.html | 2 +-
docs/reference/api/doxygen/tag_8h__incl.svg | 1805 ++---
.../reference/api/doxygen/target_8h__dep__incl.svg | 508 +-
docs/reference/api/doxygen/target_8h__incl.svg | 786 +--
docs/reference/api/doxygen/target_8h_source.html | 2 +-
docs/reference/api/doxygen/target__info_8h.html | 2 +-
.../api/doxygen/target__info_8h__incl.svg | 1747 ++---
docs/reference/api/doxygen/target__kind_8h.html | 2 +-
.../api/doxygen/target__kind_8h__dep__incl.svg | 508 +-
.../api/doxygen/target__kind_8h__incl.svg | 1985 +++---
.../api/doxygen/task__scheduler_8h__incl.svg | 1016 +--
.../api/doxygen/te_2schedule_8h__dep__incl.svg | 648 +-
.../api/doxygen/te_2schedule_8h__incl.svg | 606 +-
.../reference/api/doxygen/tensor_8h__dep__incl.svg | 628 +-
docs/reference/api/doxygen/tensor_8h__incl.svg | 662 +-
.../api/doxygen/tensor__intrin_8h__dep__incl.svg | 640 +-
.../api/doxygen/tensor__intrin_8h__incl.svg | 666 +-
docs/reference/api/doxygen/tensor__type_8h.html | 2 +-
.../api/doxygen/tensor__type_8h__dep__incl.svg | 248 +-
.../api/doxygen/tensor__type_8h__incl.svg | 1749 ++---
.../api/doxygen/tensor__type_8h_source.html | 2 +-
.../api/doxygen/tensor__utils_8h__dep__incl.svg | 80 +-
.../api/doxygen/tensor__utils_8h__incl.svg | 698 +-
.../api/doxygen/tir_2analysis_8h__dep__incl.svg | 176 +-
.../api/doxygen/tir_2analysis_8h__incl.svg | 844 +--
docs/reference/api/doxygen/tir_2expr_8h.html | 2 +-
.../api/doxygen/tir_2expr_8h__dep__incl.svg | 608 +-
docs/reference/api/doxygen/tir_2expr_8h__incl.svg | 1929 +++---
.../reference/api/doxygen/tir_2expr_8h_source.html | 4 +-
.../api/doxygen/tir_2expr__functor_8h.html | 2 +-
.../doxygen/tir_2expr__functor_8h__dep__incl.svg | 20 +-
.../api/doxygen/tir_2expr__functor_8h__incl.svg | 1917 +++---
.../api/doxygen/tir_2function_8h__dep__incl.svg | 536 +-
.../api/doxygen/tir_2function_8h__incl.svg | 662 +-
.../api/doxygen/tir_2function_8h_source.html | 4 +-
.../api/doxygen/tir_2op_8h__dep__incl.svg | 652 +-
docs/reference/api/doxygen/tir_2op_8h__incl.svg | 774 +--
.../api/doxygen/tir_2op__attr__types_8h.html | 2 +-
.../doxygen/tir_2op__attr__types_8h__dep__incl.svg | 184 +-
.../api/doxygen/tir_2op__attr__types_8h__incl.svg | 1761 ++---
.../tir_2schedule_2schedule_8h__dep__incl.svg | 136 +-
.../doxygen/tir_2schedule_2schedule_8h__incl.svg | 700 +-
.../api/doxygen/tir_2transform_8h__incl.svg | 740 +-
.../api/doxygen/tir_2usmp_2analysis_8h__incl.svg | 782 +--
.../api/doxygen/tir_2usmp_2transform_8h__incl.svg | 692 +-
.../api/doxygen/tir_2usmp_2utils_8h__dep__incl.svg | 36 +-
.../api/doxygen/tir_2usmp_2utils_8h__incl.svg | 728 +-
.../api/doxygen/tir_2usmp_2utils_8h_source.html | 2 +-
.../api/doxygen/topi_2nn_8h__dep__incl.svg | 12 +-
docs/reference/api/doxygen/topi_2nn_8h__incl.svg | 884 +--
.../api/doxygen/topi_2transform_8h__dep__incl.svg | 64 +-
.../api/doxygen/topi_2transform_8h__incl.svg | 792 +--
docs/reference/api/doxygen/topi_2utils_8h.html | 2 +-
.../reference/api/doxygen/topi_2utils_8h__incl.svg | 1749 ++---
docs/reference/api/doxygen/trace_8h.html | 2 +-
docs/reference/api/doxygen/trace_8h__dep__incl.svg | 172 +-
docs/reference/api/doxygen/trace_8h__incl.svg | 1459 ++--
docs/reference/api/doxygen/transform__step_8h.html | 2 +-
.../api/doxygen/transform__step_8h__dep__incl.svg | 96 +-
.../api/doxygen/transform__step_8h__incl.svg | 2047 +++---
.../api/doxygen/tune__context_8h__dep__incl.svg | 24 +-
.../api/doxygen/tune__context_8h__incl.svg | 1024 +--
.../api/doxygen/type__functor_8h__incl.svg | 804 +--
docs/reference/api/doxygen/type__relation_8h.html | 2 +-
.../api/doxygen/type__relation_8h__dep__incl.svg | 552 +-
.../api/doxygen/type__relation_8h__incl.svg | 2202 +++---
.../api/doxygen/type__relation_8h_source.html | 2 +-
docs/reference/api/doxygen/var_8h.html | 2 +-
docs/reference/api/doxygen/var_8h__dep__incl.svg | 644 +-
docs/reference/api/doxygen/var_8h__incl.svg | 1759 ++---
docs/reference/api/doxygen/var_8h_source.html | 6 +-
.../api/doxygen/virtual__device_8h__dep__incl.svg | 256 +-
.../api/doxygen/virtual__device_8h__incl.svg | 732 +-
docs/reference/api/doxygen/vision_8h.html | 2 +-
docs/reference/api/doxygen/vision_8h__incl.svg | 2099 +++---
docs/reference/api/doxygen/x86_2bnn_8h__incl.svg | 556 +-
.../api/doxygen/x86_2default_8h__incl.svg | 560 +-
.../api/doxygen/x86_2injective_8h__incl.svg | 556 +-
docs/reference/api/python/auto_scheduler.html | 4 +-
docs/reference/api/python/ir.html | 4 +-
docs/reference/api/python/runtime.html | 18 +
.../api/typedoc/classes/bytestreamreader.html | 12 +-
.../api/typedoc/classes/cachedcallstack.html | 34 +-
docs/reference/api/typedoc/classes/dldatatype.html | 12 +-
docs/reference/api/typedoc/classes/dldevice.html | 10 +-
.../reference/api/typedoc/classes/environment.html | 12 +-
docs/reference/api/typedoc/classes/ffilibrary.html | 20 +-
.../api/typedoc/classes/graphexecutor.html | 16 +-
docs/reference/api/typedoc/classes/instance.html | 40 +-
docs/reference/api/typedoc/classes/memory.html | 34 +-
docs/reference/api/typedoc/classes/module.html | 10 +-
docs/reference/api/typedoc/classes/ndarray.html | 22 +-
.../api/typedoc/classes/packedfunccell.html | 6 +-
docs/reference/api/typedoc/classes/rpcserver.html | 14 +-
docs/reference/api/typedoc/classes/scalar.html | 6 +-
.../api/typedoc/classes/webgpucontext.html | 12 +-
docs/reference/api/typedoc/enums/argtypecode.html | 30 +-
.../api/typedoc/enums/aynccallbackcode.html | 4 +-
.../api/typedoc/enums/dldatatypecode.html | 8 +-
.../api/typedoc/enums/rpcserverstate.html | 12 +-
docs/reference/api/typedoc/enums/sizeof.html | 18 +-
docs/reference/api/typedoc/index.html | 112 +-
.../api/typedoc/interfaces/disposable.html | 2 +-
.../api/typedoc/interfaces/functioninfo.html | 6 +-
.../api/typedoc/interfaces/libraryprovider.html | 4 +-
docs/searchindex.js | 2 +-
.../vta/tutorials/autotvm/sg_execution_times.html | 4 +-
.../tutorials/frontend/deploy_classification.html | 2 +-
.../vta/tutorials/frontend/deploy_detection.html | 2 +-
.../vta/tutorials/frontend/sg_execution_times.html | 6 +-
.../vta/tutorials/optimize/sg_execution_times.html | 6 +-
docs/topic/vta/tutorials/sg_execution_times.html | 6 +-
docs/tutorial/auto_scheduler_matmul_x86.html | 8 +-
docs/tutorial/autotvm_matmul_x86.html | 20 +-
docs/tutorial/autotvm_relay_x86.html | 258 +-
docs/tutorial/cross_compilation_and_rpc.html | 2 +-
docs/tutorial/intro_topi.html | 2 +-
docs/tutorial/sg_execution_times.html | 22 +-
docs/tutorial/tensor_expr_get_started.html | 48 +-
671 files changed, 137178 insertions(+), 133551 deletions(-)
diff --git a/docs/_sources/how_to/compile_models/from_darknet.rst.txt b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
index 8b5b44ff8..c05aaa119 100644
--- a/docs/_sources/how_to/compile_models/from_darknet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
@@ -315,11 +315,6 @@ The process is no different from other examples.
-.. rst-class:: sphx-glr-timing
-
- **Total running time of the script:** ( 1 minutes 2.892 seconds)
-
-
.. _sphx_glr_download_how_to_compile_models_from_darknet.py:
.. only:: html
diff --git a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
index 9120ba730..40f349bac 100644
--- a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
@@ -115,7 +115,7 @@ In this section, we download a pretrained imagenet model and classify an image.
.. code-block:: none
- Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip4f4ceae7-587c-407b-baa5-3c39fbb298a2 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+ Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip0d3a0413-fa36-45cf-a8bc-5f7830b62c7c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
x (1, 3, 224, 224)
diff --git a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
index 4f6709fec..56678709e 100644
--- a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
@@ -113,7 +113,7 @@ Load a pretrained OneFlow model and save model
.. code-block:: none
Downloading: "https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip" to /workspace/.oneflow/flowvision_cache/resnet18.zip
-
0%| | 0.00/41.5M [00:00<?, ?B/s]
15%|#5 | 6.33M/41.5M [00:00<00:01, 25.8MB/s]
21%|##1 | 8.80M/41.5M [00:00<00:01, 22.8MB/s]
39%|###8 | 16.0M/41.5M [00:00<00:00, 30.3MB/s]
58%|#####7 | 24.0M/41.5M [00:00<00:00, 36.1MB/s]
77%|#######7 | 32.1M/41.5M [00:00<00:00, 46.1MB/s]
96%|#########6| 40.0M/41.5M [00:01<00:00, 48.6MB/s]
100%|##########| 41.5M/41.5M [00:01<00:00, 41.5MB/s]
+
0%| | 0.00/41.5M [00:00<?, ?B/s]
24%|##4 | 10.0M/41.5M [00:00<00:00, 105MB/s]
50%|####9 | 20.7M/41.5M [00:00<00:00, 109MB/s]
75%|#######4 | 31.0M/41.5M [00:00<00:00, 80.3MB/s]
95%|#########4| 39.4M/41.5M [00:00<00:00, 69.5MB/s]
100%|##########| 41.5M/41.5M [00:00<00:00, 76.1MB/s]
diff --git a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
index 6ebf9a59e..449278d7e 100644
--- a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
@@ -94,7 +94,7 @@ Load a pretrained PyTorch model
.. code-block:: none
Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
-
0%| | 0.00/44.7M [00:00<?, ?B/s]
39%|###8 | 17.4M/44.7M [00:00<00:00, 182MB/s]
94%|#########4| 42.1M/44.7M [00:00<00:00, 227MB/s]
100%|##########| 44.7M/44.7M [00:00<00:00, 223MB/s]
+
0%| | 0.00/44.7M [00:00<?, ?B/s]
34%|###3 | 15.1M/44.7M [00:00<00:00, 159MB/s]
81%|######## | 36.1M/44.7M [00:00<00:00, 195MB/s]
100%|##########| 44.7M/44.7M [00:00<00:00, 194MB/s]
diff --git a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
index 2eac95388..12d3be83e 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -423,7 +423,7 @@ Run the corresponding model on tensorflow
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 3.505 seconds)
+ **Total running time of the script:** ( 1 minutes 1.957 seconds)
.. _sphx_glr_download_how_to_compile_models_from_tensorflow.py:
diff --git a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
index 34cad5a3d..b2fa11756 100644
--- a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
@@ -5,26 +5,26 @@
Computation times
=================
-**05:04.981** total execution time for **how_to_compile_models** files:
+**04:55.097** total execution time for **how_to_compile_models** files:
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:03.505 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:01.957 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``) | 01:02.892 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``) | 00:59.287 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``) | 00:40.122 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``) | 00:38.909 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``) | 00:28.902 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``) | 00:27.125 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``) | 00:25.848 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``) | 00:25.418 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``) | 00:24.301 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``) | 00:24.555 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``) | 00:22.366 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``) | 00:22.012 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``) | 00:19.868 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``) | 00:19.012 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``) | 00:14.765 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``) | 00:14.555 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``) | 00:02.412 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``) | 00:02.266 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
index 1a4afaae6..44613ab96 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
@@ -441,7 +441,7 @@ Execute on TVM
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 16.0346 16.0488 16.1480 15.9075 0.0729
+ 16.5360 16.5208 17.2108 15.5571 0.4012
diff --git a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
index aaa1e143b..904226926 100644
--- a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
@@ -123,7 +123,7 @@ Load pre-trained maskrcnn from torchvision and do tracing
.. code-block:: none
Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
-
0%| | 0.00/170M [00:00<?, ?B/s]
12%|#1 | 19.9M/170M [00:00<00:00, 208MB/s]
26%|##5 | 43.7M/170M [00:00<00:00, 233MB/s]
41%|#### | 69.1M/170M [00:00<00:00, 248MB/s]
55%|#####5 | 94.0M/170M [00:00<00:00, 253MB/s]
70%|######9 | 118M/170M [00:00<00:00, 254MB/s]
84%|########3 | 143M/170M [00:00<00:00, 166MB/s]
95%|#########5| 162M/170M [00:00<00:00, 165MB/s]
100%|##########| 170M/170M [00:00<00:00, 194MB/s]
+
0%| | 0.00/170M [00:00<?, ?B/s]
2%|2 | 4.05M/170M [00:00<00:04, 42.4MB/s]
5%|5 | 9.16M/170M [00:00<00:03, 49.0MB/s]
20%|## | 34.6M/170M [00:00<00:00, 148MB/s]
36%|###6 | 61.2M/170M [00:00<00:00, 200MB/s]
51%|#####1 | 87.3M/170M [00:00<00:00, 226MB/s]
67%|######6 | 114M/170M [00:00<00:00, 244MB/s]
83%|########2 | 141M/170M [00:00<00:00, 256MB/s]
99%|#########8| 167M/170M [00:00<00:00, 264MB/s]
100%|##########| 170M/170M [00:00<00:00, 220MB/s]
/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:3878: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
for i in range(dim)
/usr/local/lib/python3.7/dist-packages/torchvision/models/detection/anchor_utils.py:127: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
@@ -292,7 +292,7 @@ Get boxes with score larger than 0.9
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 3 minutes 0.372 seconds)
+ **Total running time of the script:** ( 2 minutes 54.051 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_object_detection_pytorch.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
index f54fdec44..4bcc7f88e 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -232,7 +232,7 @@ training. Other models require a full post training calibration.
.. code-block:: none
Downloading: "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
-
0%| | 0.00/13.6M [00:00<?, ?B/s]
0%| | 8.00k/13.6M [00:00<03:34, 66.3kB/s]
12%|#1 | 1.56M/13.6M [00:00<00:01, 8.58MB/s]
18%|#8 | 2.45M/13.6M [00:00<00:01, 6.62MB/s]
31%|###1 | 4.21M/13.6M [00:00<00:00, 10.3MB/s]
47%|####7 | 6.38M/13.6M [00:00<00:00, 14.1MB/s]
59%|#####8 | 7.94M/13.6M [00:00<00:00, 14.5MB/s]
80%|######## | 10.9M/13.6M [00:00<00:00, 19.3MB/s]
95%|#########4| 12.8M/13.6M [00:00<00:00, 19.6MB/s]
100%|##########| 13.6M/13.6M [00:00<00:00, 14.4MB/s]
+
0%| | 0.00/13.6M [00:00<?, ?B/s]
100%|##########| 13.6M/13.6M [00:00<00:00, 158MB/s]
@@ -412,7 +412,7 @@ Here we give an example of how to measure performance of TVM compiled models.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 90.4845 90.4181 93.3068 90.3024 0.3115
+ 90.3868 90.2162 94.0398 89.9375 0.5140
@@ -461,7 +461,7 @@ TODO
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 12.603 seconds)
+ **Total running time of the script:** ( 1 minutes 7.802 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_prequantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
index 11fcc56ba..036dfd57e 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
@@ -439,7 +439,7 @@ Here we give an example of how to measure performance of TVM compiled models.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 121.3248 121.3073 121.9176 120.7017 0.2461
+ 119.5377 119.6115 122.8401 117.5028 0.7521
@@ -476,7 +476,7 @@ Here we give an example of how to measure performance of TVM compiled models.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 54.400 seconds)
+ **Total running time of the script:** ( 1 minutes 52.330 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
index 85bf1151a..218634cab 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -255,7 +255,7 @@ We create a Relay VM to build and execute the model.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 33.067 seconds)
+ **Total running time of the script:** ( 1 minutes 27.919 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_quantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
index a97e0b7df..8755f576a 100644
--- a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
@@ -158,7 +158,7 @@ Convert and compile model for CPU.
data: None
input_sym_arg_type = in_param.infer_type()[0]
Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
-
0%| | 0/132723 [00:00<?, ?KB/s]
2%|1 | 2596/132723 [00:00<00:05, 25955.69KB/s]
6%|5 | 7901/132723 [00:00<00:02, 41887.05KB/s]
11%|#1 | 15221/132723 [00:00<00:02, 56179.11KB/s]
17%|#7 | 22652/132723 [00:00<00:01, 63334.82KB/s]
23%|##2 | 30031/132723 [00:00<00:01, 67102.54KB/s]
28%|##8 | 37546/132723 [00:00<00:01, 69833.06KB/s]
34%|###4 | 45162/132723 [00:00<00:01, 71888.91KB/s]
39%|###9 | 52351/132723 [00:00<00:01, 50650.09KB/s]
45%|####5 | 59854/132723 [00:01<00:01, 56563.62KB/s]
51%|##### | 67374/132723 [00:01<00:01, 61358.33KB/s]
56%|#####6 | 74729/132723 [00:01<00:00, 64634.23KB/s]
62%|######1 | 82113/132723 [00:01<00:00, 67186.64KB/s]
68%|######7 | 89646/132723 [00:01<00:00, 69495.47KB/s]
73%|#######3 | 97133/132723 [00:01<00:00, 71043.33KB/s]
79%|#######8 | 104780/132723 [00:01<00:00, 72619.64KB/s]
85%|########4 |
112330/132723 [00:01<00:00, 73466.13KB/s]
90%|######### | 119774/132723 [00:01<00:00, 65829.20KB/s]
96%|#########5| 127266/132723 [00:01<00:00, 68318.77KB/s]
100%|##########| 132723/132723 [00:02<00:00, 64880.48KB/s]
+
0%| | 0/132723 [00:00<?, ?KB/s]
5%|4 | 6260/132723 [00:00<00:02, 62594.24KB/s]
11%|#1 | 14705/132723 [00:00<00:01, 75446.53KB/s]
17%|#6 | 22250/132723 [00:00<00:02, 52510.37KB/s]
23%|##3 | 30635/132723 [00:00<00:01, 62288.79KB/s]
28%|##8 | 37491/132723 [00:00<00:01, 58814.66KB/s]
35%|###4 | 45895/132723 [00:00<00:01, 66065.19KB/s]
40%|#### | 53327/132723 [00:00<00:01, 68466.77KB/s]
47%|####6 | 61763/132723 [00:00<00:00, 73132.78KB/s]
53%|#####2 | 70250/132723 [00:01<00:00, 76600.68KB/s]
59%|#####9 | 78718/132723 [00:01<00:00, 78998.41KB/s]
66%|######5 | 87198/132723 [00:01<00:00, 80720.14KB/s]
72%|#######2 | 95617/132723 [00:01<00:00, 81753.42KB/s]
78%|#######8 | 103865/132723 [00:01<00:00, 72600.52KB/s]
85%|########4 | 112420/132723 [00:01<00:00, 76151.43KB/s]
91%|######### | 120235/132723 [00:01<00:00, 66843.54KB/s]
97%|########
#6| 128715/132723 [00:01<00:00, 71499.62KB/s]
100%|##########| 132723/132723 [00:01<00:00, 70947.62KB/s]
@@ -241,7 +241,7 @@ Display result
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 2 minutes 36.326 seconds)
+ **Total running time of the script:** ( 2 minutes 34.221 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
index 9c66eab4f..3cd7e7cbc 100644
--- a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
@@ -5,24 +5,24 @@
Computation times
=================
-**11:31.997** total execution time for **how_to_deploy_models** files:
+**11:08.598** total execution time for **how_to_deploy_models** files:
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:00.372 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 02:54.051 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``) | 02:36.326 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``) | 02:34.221 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``) | 01:54.400 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``) | 01:52.330 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``) | 01:33.067 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``) | 01:27.919 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``) | 01:12.603 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``) | 01:07.802 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``) | 00:30.367 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``) | 00:28.637 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``) | 00:22.687 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``) | 00:22.013 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``) | 00:22.168 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``) | 00:21.619 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``) | 00:00.006 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
index b07fa44a5..d6966c179 100644
--- a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
@@ -476,7 +476,7 @@ First let us define two helper functions to get the mobilenet model and a cat im
.. code-block:: none
- Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip9fd6de21-3bef-443a-a676-ffa07c4e8ea4 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+ Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipafe55a5b-9758-4ad4-a719-42954332a688 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
diff --git a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
index cacbeafca..52f5da4f4 100644
--- a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
Computation times
=================
-**00:41.300** total execution time for **how_to_extend_tvm** files:
+**00:39.991** total execution time for **how_to_extend_tvm** files:
+-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:38.108 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:36.919 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``) | 00:02.236 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``) | 00:02.157 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``) | 00:00.947 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``) | 00:00.908 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``) | 00:00.008 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
index c58e16192..2b6709454 100644
--- a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
@@ -216,10 +216,10 @@ profile the execution time of each passes.
.. code-block:: none
Printing results of timing profile...
- InferType: 6425us [6425us] (45.35%; 45.35%)
- FoldScaleAxis: 7743us [5us] (54.65%; 54.65%)
- FoldConstant: 7737us [1617us] (54.61%; 99.93%)
- InferType: 6121us [6121us] (43.20%; 79.11%)
+ InferType: 6551us [6551us] (44.36%; 44.36%)
+ FoldScaleAxis: 8216us [6us] (55.64%; 55.64%)
+ FoldConstant: 8211us [1641us] (55.60%; 99.93%)
+ InferType: 6569us [6569us] (44.49%; 80.01%)
@@ -258,10 +258,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
.. code-block:: none
Printing results of timing profile...
- InferType: 6185us [6185us] (44.65%; 44.65%)
- FoldScaleAxis: 7669us [5us] (55.35%; 55.35%)
- FoldConstant: 7664us [1585us] (55.32%; 99.94%)
- InferType: 6080us [6080us] (43.88%; 79.33%)
+ InferType: 6185us [6185us] (44.73%; 44.73%)
+ FoldScaleAxis: 7643us [5us] (55.27%; 55.27%)
+ FoldConstant: 7638us [1565us] (55.24%; 99.94%)
+ InferType: 6073us [6073us] (43.92%; 79.51%)
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
index 73f8d4104..fdcbb82de 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
@@ -340,7 +340,7 @@ latency of convolution.
.. code-block:: none
- Convolution: 54.189685 ms
+ Convolution: 39.209268 ms
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
index 1e90e750f..bf8c100a5 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
@@ -671,7 +671,7 @@ be able to run on our build server
.. code-block:: none
- conv2d with tensor core: 7.252896 ms
+ conv2d with tensor core: 9.369802 ms
diff --git a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
index 67980d685..a291e81c3 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
@@ -143,8 +143,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
.. code-block:: none
- Numpy running time: 0.019312
- Baseline: 3.505687
+ Numpy running time: 0.017842
+ Baseline: 3.533330
@@ -239,7 +239,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
.. code-block:: none
- Opt1: 0.319325
+ Opt1: 0.296766
@@ -342,7 +342,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
.. code-block:: none
- Opt2: 0.344203
+ Opt2: 0.330917
@@ -438,7 +438,7 @@ the access pattern for A matrix is more cache friendly.
.. code-block:: none
- Opt3: 0.118514
+ Opt3: 0.114255
@@ -563,7 +563,7 @@ flattening.
.. code-block:: none
- Opt4: 0.111258
+ Opt4: 0.110523
@@ -685,7 +685,7 @@ write to C when all the block results are ready.
.. code-block:: none
- Opt5: 0.112601
+ Opt5: 0.113233
@@ -810,7 +810,7 @@ Futhermore, we can also utilize multi-core processors to do the thread-level par
.. code-block:: none
- Opt6: 0.145577
+ Opt6: 0.145958
diff --git a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
index 8ce541c7d..fb6874eaa 100644
--- a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
@@ -5,12 +5,12 @@
Computation times
=================
-**00:35.365** total execution time for **how_to_optimize_operators** files:
+**00:34.706** total execution time for **how_to_optimize_operators** files:
+-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``) | 00:32.964 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``) | 00:32.436 | 0.0 MB |
+-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.310 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.238 | 0.0 MB |
+-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``) | 00:01.091 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``) | 00:01.032 | 0.0 MB |
+-----------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
index b3d6ac507..c7bcc5f76 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
@@ -5,18 +5,18 @@
Computation times
=================
-**06:06.060** total execution time for **how_to_tune_with_autoscheduler** files:
+**06:12.334** total execution time for **how_to_tune_with_autoscheduler** files:
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 03:18.676 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 03:28.018 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``) | 01:23.042 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``) | 01:22.102 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``) | 00:46.502 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``) | 00:45.734 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``) | 00:19.314 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``) | 00:19.364 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``) | 00:09.268 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``) | 00:08.626 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``) | 00:09.259 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``) | 00:08.490 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
index bc5dd4697..0c12618d3 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
@@ -240,201 +240,59 @@ cooperative fetching, unrolling and operator fusion.
compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute}
preflattened_buffer_map = {data_1: data_3: Buffer(data_2, float32, [1, 512, 7, 7], []), kernel_1: kernel_3: Buffer(kernel_2, float32, [512, 512, 3, 3], []), bias_1: bias_3: Buffer(bias_2, float32, [1, 512, 1, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [1, 512, 7, 7], [])} {
- attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 128;
+ attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 16;
allocate(conv2d_nchw: Pointer(local float32), float32, [2]), storage_scope = local;
- allocate(pad_temp.shared: Pointer(shared float32), float32, [5184]), storage_scope = shared;
- allocate(kernel.shared: Pointer(shared float32), float32, [2304]), storage_scope = shared;
- attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98 {
+ allocate(pad_temp.shared: Pointer(shared float32), float32, [2592]), storage_scope = shared;
+ allocate(kernel.shared: Pointer(shared float32), float32, [9216]), storage_scope = shared;
+ attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784 {
conv2d_nchw_1: Buffer(conv2d_nchw, float32, [1], [], scope="local", align=4)[0] = 0f32
conv2d_nchw_1[1] = 0f32
- for (rc.outer.outer: int32, 0, 8) {
- let cse_var_2: int32 = (rc.outer.outer*3136)
- let cse_var_1: int32 = (rc.outer.outer*576)
+ for (rc.outer.outer: int32, 0, 16) {
+ let cse_var_1: int32 = (rc.outer.outer*1568)
{
- attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1: Buffer(pad_temp.shared, float32, [5184], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((9 <= floormod(threadIdx.x_1, 81)) && (floormod(threadIdx.x_1, 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv(threadIdx.x_1, 81)*49)) + (floordiv(floormod(threadIdx.x_1, 81), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 98)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 17), 81)) && (floormod((threadIdx.x_1 + 17), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 98), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 17), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 196)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 34), 81)) && (floormod((threadIdx.x_1 + 34), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 196), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 34), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 294)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 51), 81)) && (floormod((threadIdx.x_1 + 51), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 294), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 51), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 392)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 68), 81)) && (floormod((threadIdx.x_1 + 68), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 392), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 68), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 490)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 4), 81)) && (floormod((threadIdx.x_1 + 4), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 490), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 4), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 588)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 21), 81)) && (floormod((threadIdx.x_1 + 21), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 588), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 21), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 686)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 38), 81)) && (floormod((threadIdx.x_1 + 38), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 686), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 38), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 55), 81)) && (floormod((threadIdx.x_1 + 55), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 784), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 55), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 882)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 8), 9)) && (floormod((threadIdx.x_1 + 72), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 882), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 8), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 980)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 8), 81)) && (floormod((threadIdx.x_1 + 8), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 980), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 8), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1078)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 25), 81)) && (floormod((threadIdx.x_1 + 25), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1078), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 25), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1176)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 42), 81)) && (floormod((threadIdx.x_1 + 42), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1176), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 42), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1274)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 59), 81)) && (floormod((threadIdx.x_1 + 59), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1274), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 59), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1372)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 76), 81)) && (floormod((threadIdx.x_1 + 76), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1372), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 76), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1470)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 12), 81)) && (floormod((threadIdx.x_1 + 12), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1470), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 12), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 29), 81)) && (floormod((threadIdx.x_1 + 29), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1568), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 29), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1666)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 46), 81)) && (floormod((threadIdx.x_1 + 46), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1666), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 46), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1764)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 7), 9)) && (floormod((threadIdx.x_1 + 63), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1764), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 7), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1862)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 80), 81)) && (floormod((threadIdx.x_1 + 80), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1862), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 80), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1960)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 16), 81)) && (floormod((threadIdx.x_1 + 16), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1960), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 16), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2058)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 33), 81)) && (floormod((threadIdx.x_1 + 33), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2058), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 33), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2156)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 50), 81)) && (floormod((threadIdx.x_1 + 50), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2156), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 50), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2254)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 67), 81)) && (floormod((threadIdx.x_1 + 67), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2254), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 67), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2352)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 3), 81)) && (floormod((threadIdx.x_1 + 3), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2352), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 3), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2450)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 20), 81)) && (floormod((threadIdx.x_1 + 20), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2450), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 20), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2548)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 37), 81)) && (floormod((threadIdx.x_1 + 37), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2548), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 37), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2646)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 6), 9)) && (floormod((threadIdx.x_1 + 54), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2646), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 6), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2744)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 71), 81)) && (floormod((threadIdx.x_1 + 71), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2744), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 71), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2842)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 7), 81)) && (floormod((threadIdx.x_1 + 7), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2842), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 7), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2940)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 24), 81)) && (floormod((threadIdx.x_1 + 24), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2940), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 24), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3038)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 41), 81)) && (floormod((threadIdx.x_1 + 41), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3038), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 41), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3136)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 58), 81)) && (floormod((threadIdx.x_1 + 58), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3136), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 58), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3234)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 75), 81)) && (floormod((threadIdx.x_1 + 75), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3234), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 75), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3332)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 11), 81)) && (floormod((threadIdx.x_1 + 11), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3332), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 11), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3430)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 28), 81)) && (floormod((threadIdx.x_1 + 28), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3430), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 28), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3528)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 5), 9)) && (floormod((threadIdx.x_1 + 45), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3528), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 5), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3626)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 62), 81)) && (floormod((threadIdx.x_1 + 62), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3626), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 62), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3724)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 79), 81)) && (floormod((threadIdx.x_1 + 79), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3724), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 79), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3822)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 15), 81)) && (floormod((threadIdx.x_1 + 15), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3822), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 15), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3920)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 32), 81)) && (floormod((threadIdx.x_1 + 32), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3920), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 32), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4018)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 49), 81)) && (floormod((threadIdx.x_1 + 49), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4018), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 49), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4116)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 66), 81)) && (floormod((threadIdx.x_1 + 66), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4116), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 66), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4214)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 2), 81)) && (floormod((threadIdx.x_1 + 2), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4214), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 2), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4312)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 19), 81)) && (floormod((threadIdx.x_1 + 19), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4312), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 19), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4410)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 4), 9)) && (floormod((threadIdx.x_1 + 36), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4410), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 4), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4508)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 53), 81)) && (floormod((threadIdx.x_1 + 53), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4508), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 53), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4606)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 70), 81)) && (floormod((threadIdx.x_1 + 70), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4606), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 70), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4704)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 6), 81)) && (floormod((threadIdx.x_1 + 6), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4704), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 6), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4802)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 23), 81)) && (floormod((threadIdx.x_1 + 23), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4802), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 23), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4900)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 40), 81)) && (floormod((threadIdx.x_1 + 40), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4900), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 40), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4998)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 57), 81)) && (floormod((threadIdx.x_1 + 57), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4998), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 57), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- if @tir.likely((threadIdx.x_1 < 88), dtype=bool) {
- pad_temp.shared_1[(threadIdx.x_1 + 5096)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 74), 81)) && (floormod((threadIdx.x_1 + 74), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 5096), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 74), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ pad_temp.shared_1: Buffer(pad_temp.shared, float32, [2592], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((9 <= floormod(threadIdx.x_1, 81)) && (floormod(threadIdx.x_1, 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_1 + (floordiv(threadIdx.x_1, 81)*49)) + (floordiv(floormod(threadIdx.x_1, 81), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 55), 81)) && (floormod((threadIdx.x_1 + 55), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_1 + (floordiv((threadIdx.x_1 + 784), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 55), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 29), 81)) && (floormod((threadIdx.x_1 + 29), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_1 + (floordiv((threadIdx.x_1 + 1568), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 29), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ if @tir.likely((threadIdx.x_1 < 240), dtype=bool) {
+ pad_temp.shared_1[(threadIdx.x_1 + 2352)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 3), 81)) && (floormod((threadIdx.x_1 + 3), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_1 + (floordiv((threadIdx.x_1 + 2352), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 3), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
}
- attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1: Buffer(kernel.shared, float32, [2304], [], scope="shared")[threadIdx.x_2] = kernel[(((blockIdx.x*18432) + cse_var_1) + threadIdx.x_2)]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 98)] = kernel[((((blockIdx.x*18432) + cse_var_1) + (floordiv((threadIdx.x_2 + 98), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 196)] = kernel[((((blockIdx.x*18432) + cse_var_1) + (floordiv((threadIdx.x_2 + 196), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 294)] = kernel[((((blockIdx.x*18432) + cse_var_1) + threadIdx.x_2) + 294)]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 392)] = kernel[((((blockIdx.x*18432) + cse_var_1) + (floordiv((threadIdx.x_2 + 392), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 490)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 490), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 490), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 588)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 588), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 4)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 686)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 686), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 110), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 784)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 784), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 208), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 882)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 882), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 102)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 980)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 980), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 404), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1078)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1078), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 502), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1176)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1176), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 8)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1274)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1274), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 122), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1372)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1372), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 220), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1470)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1470), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 106)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1568)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1568), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 416), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1666)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1666), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 514), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1764)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1764), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 12)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1862)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1862), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 134), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1960)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1960), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 232), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 2058)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 2058), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 110)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 2156)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 2156), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 428), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- if @tir.likely((threadIdx.x_2 < 50), dtype=bool) {
- kernel.shared_1[(threadIdx.x_2 + 2254)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 2254), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 526), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
+ attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ for (ax0.ax1.fused.ax2.fused.ax3.fused.inner.s: int32, 0, 24) {
+ if @tir.likely((threadIdx.x_2 < 384), dtype=bool) {
+ let cse_var_2: int32 = floordiv(ax0.ax1.fused.ax2.fused.ax3.fused.inner.s, 3)
+ kernel.shared_1: Buffer(kernel.shared, float32, [9216], [], scope="shared")[((threadIdx.x_2*24) + ax0.ax1.fused.ax2.fused.ax3.fused.inner.s)] = kernel[((((((blockIdx.x*147456) + (floordiv(threadIdx.x_2, 12)*4608)) + (rc.outer.outer*288)) + (floordiv(((floormod(threadIdx.x_2, 12)*8) + cse_var_2), 3)*9)) + (floormod(((threadIdx.x_2*2) + cse_var_2), 3)*3)) + floormod(ax0.ax1.fused.ax2.fused.ax3.fused.inner.s, 3))]
+ }
}
- for (rc.outer.inner: int32, 0, 2) {
- for (rc.inner: int32, 0, 32) {
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9))]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1152)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 1)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 1)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1153)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 2)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 2)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 2)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1154)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 9)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 3)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 9)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1155)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 10)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 4)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 10)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1156)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 11)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 5)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 11)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1157)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 18)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 6)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 18)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1158)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 19)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 7)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 19)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1159)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 20)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 8)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 20)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1160)]))
+ for (rc.outer.inner: int32, 0, 4) {
+ for (ry.outer.inner: int32, 0, 3) {
+ for (rx.outer.inner: int32, 0, 3) {
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4608)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 81)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 9)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 81)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4617)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 162)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 18)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 162)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4626)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 243)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 27)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 243)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4635)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 324)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 36)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 324)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4644)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 405)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 45)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 405)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4653)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 486)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 54)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 486)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4662)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 567)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 63)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 567)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4671)]))
+ }
}
}
}
}
- compute[((blockIdx.x*196) + threadIdx.x)] = max((conv2d_nchw_1[0] + bias[((blockIdx.x*4) + floordiv(threadIdx.x, 49))]), 0f32)
- compute[(((blockIdx.x*196) + threadIdx.x) + 98)] = max((conv2d_nchw_1[1] + bias[(((blockIdx.x*4) + floordiv(threadIdx.x, 49)) + 2)]), 0f32)
+ compute[((blockIdx.x*1568) + threadIdx.x)] = max((conv2d_nchw_1[0] + bias[((blockIdx.x*32) + floordiv(threadIdx.x, 49))]), 0f32)
+ compute[(((blockIdx.x*1568) + threadIdx.x) + 784)] = max((conv2d_nchw_1[1] + bias[(((blockIdx.x*32) + floordiv(threadIdx.x, 49)) + 16)]), 0f32)
}
}
@@ -488,7 +346,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 0.428 ms
+ Execution time of this operator: 0.406 ms
@@ -538,7 +396,7 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=1)
- conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=2)
+ conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=16)
conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=2)
conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
@@ -548,18 +406,18 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=1)
conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=7)
conv2d_nchw_xx_o_o_o_o, conv2d_nchw_xx_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_o_i, factor=1)
- conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=32)
- conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=2)
- conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=3)
- conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
- conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=3)
- conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=1)
+ conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=8)
+ conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=4)
+ conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
+ conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=3)
+ conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
+ conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=3)
s[conv2d_nchw].reorder(conv2d_nchw_nn_o_o_o_o, conv2d_nchw_ff_o_o_o_o, conv2d_nchw_yy_o_o_o_o, conv2d_nchw_xx_o_o_o_o, conv2d_nchw_nn_o_o_o_i, conv2d_nchw_ff_o_o_o_i, conv2d_nchw_yy_o_o_o_i, conv2d_nchw_xx_o_o_o_i, conv2d_nchw_nn_o_o_i, conv2d_nchw_ff_o_o_i, conv2d_nchw_yy_o_o_i, conv2d_nchw_xx_o_o_i, conv2d_nchw_rc_o_o, conv2d_nchw_ry_o_o, conv2d_nchw_rx_o_o, conv2d_nchw_rc_o_i, conv2d_nchw_ry_o_i, conv2d_nchw_rx_o_i, conv2d_nchw_nn_o_i, conv2d_nchw_ff_o_i, conv2d_nchw_yy_o_i, conv2 [...]
compute_i0_o_i, compute_i0_i = s[compute].split(compute_i0, factor=1)
compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
- compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=2)
+ compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=16)
compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=2)
compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
@@ -583,16 +441,16 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused = s[compute].fuse(compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i)
s[compute].bind(compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused, te.thread_axis("threadIdx.x"))
kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[kernel_shared].fuse(kernel_shared_ax0, kernel_shared_ax1, kernel_shared_ax2, kernel_shared_ax3)
- kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
+ kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=24)
s[kernel_shared].vectorize(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
- kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=98)
+ kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=784)
s[kernel_shared].bind(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[pad_temp_shared].fuse(pad_temp_shared_ax0, pad_temp_shared_ax1, pad_temp_shared_ax2, pad_temp_shared_ax3)
pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
- pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=98)
+ pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=784)
s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
- s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 64)
+ s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 16)
s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "unroll_explicit", True)
CUDA source code:
@@ -610,121 +468,51 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
#define int64_t long long
#define uint64_t unsigned long long
#endif
- extern "C" __global__ void __launch_bounds__(98) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+ extern "C" __global__ void __launch_bounds__(784) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
float conv2d_nchw[2];
- __shared__ float pad_temp_shared[5184];
- __shared__ float kernel_shared[2304];
+ __shared__ float pad_temp_shared[2592];
+ __shared__ float kernel_shared[9216];
conv2d_nchw[0] = 0.000000e+00f;
conv2d_nchw[1] = 0.000000e+00f;
- for (int rc_outer_outer = 0; rc_outer_outer < 8; ++rc_outer_outer) {
+ for (int rc_outer_outer = 0; rc_outer_outer < 16; ++rc_outer_outer) {
__syncthreads();
- pad_temp_shared[((int)threadIdx.x)] = (((((9 <= (((int)threadIdx.x) % 81)) && ((((int)threadIdx.x) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 81) * 49)) + (((((int)threadIdx.x) % 81) / 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 98)] = (((((9 <= ((((int)threadIdx.x) + 17) % 81)) && (((((int)threadIdx.x) + 17) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 98) / 81) * 49)) + ((((((int)threadIdx.x) + 17) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 196)] = (((((9 <= ((((int)threadIdx.x) + 34) % 81)) && (((((int)threadIdx.x) + 34) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 196) / 81) * 49)) + ((((((int)threadIdx.x) + 34) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 294)] = (((((9 <= ((((int)threadIdx.x) + 51) % 81)) && (((((int)threadIdx.x) + 51) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 294) / 81) * 49)) + ((((((int)threadIdx.x) + 51) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 392)] = (((((9 <= ((((int)threadIdx.x) + 68) % 81)) && (((((int)threadIdx.x) + 68) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 392) / 81) * 49)) + ((((((int)threadIdx.x) + 68) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 490)] = (((((9 <= ((((int)threadIdx.x) + 4) % 81)) && (((((int)threadIdx.x) + 4) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 490) / 81) * 49)) + ((((((int)threadIdx.x) + 4) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 588)] = (((((9 <= ((((int)threadIdx.x) + 21) % 81)) && (((((int)threadIdx.x) + 21) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 588) / 81) * 49)) + ((((((int)threadIdx.x) + 21) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 686)] = (((((9 <= ((((int)threadIdx.x) + 38) % 81)) && (((((int)threadIdx.x) + 38) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 686) / 81) * 49)) + ((((((int)threadIdx.x) + 38) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((9 <= ((((int)threadIdx.x) + 55) % 81)) && (((((int)threadIdx.x) + 55) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 784) / 81) * 49)) + ((((((int)threadIdx.x) + 55) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 882)] = (((((1 <= (((((int)threadIdx.x) / 9) + 8) % 9)) && (((((int)threadIdx.x) + 72) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 882) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 8) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 980)] = (((((9 <= ((((int)threadIdx.x) + 8) % 81)) && (((((int)threadIdx.x) + 8) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 980) / 81) * 49)) + ((((((int)threadIdx.x) + 8) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1078)] = (((((9 <= ((((int)threadIdx.x) + 25) % 81)) && (((((int)threadIdx.x) + 25) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1078) / 81) * 49)) + ((((((int)threadIdx.x) + 25) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1176)] = (((((9 <= ((((int)threadIdx.x) + 42) % 81)) && (((((int)threadIdx.x) + 42) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1176) / 81) * 49)) + ((((((int)threadIdx.x) + 42) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1274)] = (((((9 <= ((((int)threadIdx.x) + 59) % 81)) && (((((int)threadIdx.x) + 59) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1274) / 81) * 49)) + ((((((int)threadIdx.x) + 59) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1372)] = (((((9 <= ((((int)threadIdx.x) + 76) % 81)) && (((((int)threadIdx.x) + 76) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1372) / 81) * 49)) + ((((((int)threadIdx.x) + 76) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1470)] = (((((9 <= ((((int)threadIdx.x) + 12) % 81)) && (((((int)threadIdx.x) + 12) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1470) / 81) * 49)) + ((((((int)threadIdx.x) + 12) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((9 <= ((((int)threadIdx.x) + 29) % 81)) && (((((int)threadIdx.x) + 29) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1568) / 81) * 49)) + ((((((int)threadIdx.x) + 29) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1666)] = (((((9 <= ((((int)threadIdx.x) + 46) % 81)) && (((((int)threadIdx.x) + 46) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1666) / 81) * 49)) + ((((((int)threadIdx.x) + 46) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1764)] = (((((1 <= (((((int)threadIdx.x) / 9) + 7) % 9)) && (((((int)threadIdx.x) + 63) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1764) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 7) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1862)] = (((((9 <= ((((int)threadIdx.x) + 80) % 81)) && (((((int)threadIdx.x) + 80) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1862) / 81) * 49)) + ((((((int)threadIdx.x) + 80) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1960)] = (((((9 <= ((((int)threadIdx.x) + 16) % 81)) && (((((int)threadIdx.x) + 16) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1960) / 81) * 49)) + ((((((int)threadIdx.x) + 16) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2058)] = (((((9 <= ((((int)threadIdx.x) + 33) % 81)) && (((((int)threadIdx.x) + 33) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2058) / 81) * 49)) + ((((((int)threadIdx.x) + 33) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2156)] = (((((9 <= ((((int)threadIdx.x) + 50) % 81)) && (((((int)threadIdx.x) + 50) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2156) / 81) * 49)) + ((((((int)threadIdx.x) + 50) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2254)] = (((((9 <= ((((int)threadIdx.x) + 67) % 81)) && (((((int)threadIdx.x) + 67) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2254) / 81) * 49)) + ((((((int)threadIdx.x) + 67) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2352)] = (((((9 <= ((((int)threadIdx.x) + 3) % 81)) && (((((int)threadIdx.x) + 3) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2352) / 81) * 49)) + ((((((int)threadIdx.x) + 3) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2450)] = (((((9 <= ((((int)threadIdx.x) + 20) % 81)) && (((((int)threadIdx.x) + 20) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2450) / 81) * 49)) + ((((((int)threadIdx.x) + 20) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2548)] = (((((9 <= ((((int)threadIdx.x) + 37) % 81)) && (((((int)threadIdx.x) + 37) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2548) / 81) * 49)) + ((((((int)threadIdx.x) + 37) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2646)] = (((((1 <= (((((int)threadIdx.x) / 9) + 6) % 9)) && (((((int)threadIdx.x) + 54) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2646) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 6) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2744)] = (((((9 <= ((((int)threadIdx.x) + 71) % 81)) && (((((int)threadIdx.x) + 71) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2744) / 81) * 49)) + ((((((int)threadIdx.x) + 71) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2842)] = (((((9 <= ((((int)threadIdx.x) + 7) % 81)) && (((((int)threadIdx.x) + 7) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2842) / 81) * 49)) + ((((((int)threadIdx.x) + 7) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2940)] = (((((9 <= ((((int)threadIdx.x) + 24) % 81)) && (((((int)threadIdx.x) + 24) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2940) / 81) * 49)) + ((((((int)threadIdx.x) + 24) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3038)] = (((((9 <= ((((int)threadIdx.x) + 41) % 81)) && (((((int)threadIdx.x) + 41) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3038) / 81) * 49)) + ((((((int)threadIdx.x) + 41) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3136)] = (((((9 <= ((((int)threadIdx.x) + 58) % 81)) && (((((int)threadIdx.x) + 58) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3136) / 81) * 49)) + ((((((int)threadIdx.x) + 58) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3234)] = (((((9 <= ((((int)threadIdx.x) + 75) % 81)) && (((((int)threadIdx.x) + 75) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3234) / 81) * 49)) + ((((((int)threadIdx.x) + 75) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3332)] = (((((9 <= ((((int)threadIdx.x) + 11) % 81)) && (((((int)threadIdx.x) + 11) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3332) / 81) * 49)) + ((((((int)threadIdx.x) + 11) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3430)] = (((((9 <= ((((int)threadIdx.x) + 28) % 81)) && (((((int)threadIdx.x) + 28) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3430) / 81) * 49)) + ((((((int)threadIdx.x) + 28) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3528)] = (((((1 <= (((((int)threadIdx.x) / 9) + 5) % 9)) && (((((int)threadIdx.x) + 45) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3528) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 5) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3626)] = (((((9 <= ((((int)threadIdx.x) + 62) % 81)) && (((((int)threadIdx.x) + 62) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3626) / 81) * 49)) + ((((((int)threadIdx.x) + 62) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3724)] = (((((9 <= ((((int)threadIdx.x) + 79) % 81)) && (((((int)threadIdx.x) + 79) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3724) / 81) * 49)) + ((((((int)threadIdx.x) + 79) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3822)] = (((((9 <= ((((int)threadIdx.x) + 15) % 81)) && (((((int)threadIdx.x) + 15) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3822) / 81) * 49)) + ((((((int)threadIdx.x) + 15) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3920)] = (((((9 <= ((((int)threadIdx.x) + 32) % 81)) && (((((int)threadIdx.x) + 32) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3920) / 81) * 49)) + ((((((int)threadIdx.x) + 32) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4018)] = (((((9 <= ((((int)threadIdx.x) + 49) % 81)) && (((((int)threadIdx.x) + 49) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4018) / 81) * 49)) + ((((((int)threadIdx.x) + 49) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4116)] = (((((9 <= ((((int)threadIdx.x) + 66) % 81)) && (((((int)threadIdx.x) + 66) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4116) / 81) * 49)) + ((((((int)threadIdx.x) + 66) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4214)] = (((((9 <= ((((int)threadIdx.x) + 2) % 81)) && (((((int)threadIdx.x) + 2) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4214) / 81) * 49)) + ((((((int)threadIdx.x) + 2) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4312)] = (((((9 <= ((((int)threadIdx.x) + 19) % 81)) && (((((int)threadIdx.x) + 19) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4312) / 81) * 49)) + ((((((int)threadIdx.x) + 19) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4410)] = (((((1 <= (((((int)threadIdx.x) / 9) + 4) % 9)) && (((((int)threadIdx.x) + 36) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4410) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 4) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4508)] = (((((9 <= ((((int)threadIdx.x) + 53) % 81)) && (((((int)threadIdx.x) + 53) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4508) / 81) * 49)) + ((((((int)threadIdx.x) + 53) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4606)] = (((((9 <= ((((int)threadIdx.x) + 70) % 81)) && (((((int)threadIdx.x) + 70) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4606) / 81) * 49)) + ((((((int)threadIdx.x) + 70) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4704)] = (((((9 <= ((((int)threadIdx.x) + 6) % 81)) && (((((int)threadIdx.x) + 6) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4704) / 81) * 49)) + ((((((int)threadIdx.x) + 6) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4802)] = (((((9 <= ((((int)threadIdx.x) + 23) % 81)) && (((((int)threadIdx.x) + 23) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4802) / 81) * 49)) + ((((((int)threadIdx.x) + 23) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4900)] = (((((9 <= ((((int)threadIdx.x) + 40) % 81)) && (((((int)threadIdx.x) + 40) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4900) / 81) * 49)) + ((((((int)threadIdx.x) + 40) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4998)] = (((((9 <= ((((int)threadIdx.x) + 57) % 81)) && (((((int)threadIdx.x) + 57) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4998) / 81) * 49)) + ((((((int)threadIdx.x) + 57) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- if (((int)threadIdx.x) < 88) {
- pad_temp_shared[(((int)threadIdx.x) + 5096)] = (((((9 <= ((((int)threadIdx.x) + 74) % 81)) && (((((int)threadIdx.x) + 74) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 5096) / 81) * 49)) + ((((((int)threadIdx.x) + 74) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[((int)threadIdx.x)] = (((((9 <= (((int)threadIdx.x) % 81)) && ((((int)threadIdx.x) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + ((((int)threadIdx.x) / 81) * 49)) + (((((int)threadIdx.x) % 81) / 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((9 <= ((((int)threadIdx.x) + 55) % 81)) && (((((int)threadIdx.x) + 55) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 784) / 81) * 49)) + ((((((int)threadIdx.x) + 55) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((9 <= ((((int)threadIdx.x) + 29) % 81)) && (((((int)threadIdx.x) + 29) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1568) / 81) * 49)) + ((((((int)threadIdx.x) + 29) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
+ if (((int)threadIdx.x) < 240) {
+ pad_temp_shared[(((int)threadIdx.x) + 2352)] = (((((9 <= ((((int)threadIdx.x) + 3) % 81)) && (((((int)threadIdx.x) + 3) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 2352) / 81) * 49)) + ((((((int)threadIdx.x) + 3) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
}
- kernel_shared[((int)threadIdx.x)] = kernel[(((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + ((int)threadIdx.x))];
- kernel_shared[(((int)threadIdx.x) + 98)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 98) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 196)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 196) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 294)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 294)];
- kernel_shared[(((int)threadIdx.x) + 392)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 392) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 490)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 490) / 576) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 490) % 576) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 588)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 588) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 12)];
- kernel_shared[(((int)threadIdx.x) + 686)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 686) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 110) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 784)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 784) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 208) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 882)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 882) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 306)];
- kernel_shared[(((int)threadIdx.x) + 980)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 980) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 404) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1078)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1078) / 576) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 502) % 576) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1176)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1176) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 24)];
- kernel_shared[(((int)threadIdx.x) + 1274)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1274) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 122) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1372)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1372) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 220) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1470)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1470) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 318)];
- kernel_shared[(((int)threadIdx.x) + 1568)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1568) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 416) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1666)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1666) / 576) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 514) % 576) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1764)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1764) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 36)];
- kernel_shared[(((int)threadIdx.x) + 1862)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1862) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 134) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1960)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1960) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 232) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2058)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 2058) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 330)];
- kernel_shared[(((int)threadIdx.x) + 2156)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 2156) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 428) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- if (((int)threadIdx.x) < 50) {
- kernel_shared[(((int)threadIdx.x) + 2254)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 2254) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 526) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+ for (int ax0_ax1_fused_ax2_fused_ax3_fused_inner_s = 0; ax0_ax1_fused_ax2_fused_ax3_fused_inner_s < 24; ++ax0_ax1_fused_ax2_fused_ax3_fused_inner_s) {
+ if (((int)threadIdx.x) < 384) {
+ kernel_shared[((((int)threadIdx.x) * 24) + ax0_ax1_fused_ax2_fused_ax3_fused_inner_s)] = kernel[((((((((int)blockIdx.x) * 147456) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 288)) + (((((((int)threadIdx.x) % 12) * 8) + (ax0_ax1_fused_ax2_fused_ax3_fused_inner_s / 3)) / 3) * 9)) + ((((((int)threadIdx.x) * 2) + (ax0_ax1_fused_ax2_fused_ax3_fused_inner_s / 3)) % 3) * 3)) + (ax0_ax1_fused_ax2_fused_ax3_fused_inner_s % 3))];
+ }
}
__syncthreads();
- for (int rc_outer_inner = 0; rc_outer_inner < 2; ++rc_outer_inner) {
- for (int rc_inner = 0; rc_inner < 32; ++rc_inner) {
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9))]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1152)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 1)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 1)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1153)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 2)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 2)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 2)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1154)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 9)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 3)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 9)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1155)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 10)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 4)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 10)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1156)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 11)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 5)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 11)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1157)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 18)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 6)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 18)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1158)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 19)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 7)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 19)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1159)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 20)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 8)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 20)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1160)]));
+ for (int rc_outer_inner = 0; rc_outer_inner < 4; ++rc_outer_inner) {
+ for (int ry_outer_inner = 0; ry_outer_inner < 3; ++ry_outer_inner) {
+ for (int rx_outer_inner = 0; rx_outer_inner < 3; ++rx_outer_inner) {
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4608)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 81)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 9)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 81)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4617)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 162)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 18)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 162)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4626)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 243)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 27)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 243)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4635)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 324)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 36)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 324)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4644)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 405)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 45)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 405)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4653)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 486)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 54)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 486)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4662)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 567)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 63)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 567)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4671)]));
+ }
}
}
}
- compute[((((int)blockIdx.x) * 196) + ((int)threadIdx.x))] = max((conv2d_nchw[0] + bias[((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 49))]), 0.000000e+00f);
- compute[(((((int)blockIdx.x) * 196) + ((int)threadIdx.x)) + 98)] = max((conv2d_nchw[1] + bias[(((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 49)) + 2)]), 0.000000e+00f);
+ compute[((((int)blockIdx.x) * 1568) + ((int)threadIdx.x))] = max((conv2d_nchw[0] + bias[((((int)blockIdx.x) * 32) + (((int)threadIdx.x) / 49))]), 0.000000e+00f);
+ compute[(((((int)blockIdx.x) * 1568) + ((int)threadIdx.x)) + 784)] = max((conv2d_nchw[1] + bias[(((((int)blockIdx.x) * 32) + (((int)threadIdx.x) / 49)) + 16)]), 0.000000e+00f);
}
@@ -785,7 +573,7 @@ In the example below we resume the status and do more 5 trials.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 3 minutes 18.676 seconds)
+ **Total running time of the script:** ( 3 minutes 28.018 seconds)
.. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
index b7699c237..4440d243d 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
@@ -647,7 +647,7 @@ so we can read the log file and load the best schedules.
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 9.4077 9.4057 9.4270 9.3905 0.0150
+ 10.0830 10.0734 10.1306 10.0449 0.0356
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
index 4a71d75f9..aafde6264 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
@@ -666,7 +666,7 @@ so we can read the log file and load the best schedules.
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 762.7927 762.2913 765.9599 760.1269 2.4076
+ 759.1518 758.8800 761.1539 757.4216 1.5358
@@ -694,7 +694,7 @@ Other Tips
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 23.042 seconds)
+ **Total running time of the script:** ( 1 minutes 22.102 seconds)
.. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_x86.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
index f74801cff..8e720ec23 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
@@ -397,218 +397,29 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [65536], []),
compute: Buffer(compute_2: Pointer(float32), float32, [65536], [])}
buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute}
- preflattened_buffer_map = {placeholder_5: placeholder_15: Buffer(placeholder_10, float32, [128, 256], []), placeholder_6: placeholder_16: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_8: placeholder_17: Buffer(placeholder_13, int32, [33], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_7: placeholder_18: Buffer(placeholder_12, int32, [4916], []), placeholder_9: placeholder_19: Buffer(placeholder_14, float32, [128, 512], [])} {
- for (i0.outer.i1.outer.fused: int32, 0, 32) "parallel" {
- allocate(compute_4: Pointer(global float32), float32, [2048]), storage_scope = global {
- for (i.outer.inner: int32, 0, 16) {
- for (nb_j.inner: int32, 0, 2) {
- let cse_var_2: int32 = ((i.outer.inner*128) + (nb_j.inner*16))
- let cse_var_1: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
- {
- compute_5: Buffer(compute_4, float32, [2048], [])[cse_var_2] = 0f32
- compute_5[(cse_var_2 + 1)] = 0f32
- compute_5[(cse_var_2 + 2)] = 0f32
- compute_5[(cse_var_2 + 3)] = 0f32
- compute_5[(cse_var_2 + 4)] = 0f32
- compute_5[(cse_var_2 + 5)] = 0f32
- compute_5[(cse_var_2 + 6)] = 0f32
- compute_5[(cse_var_2 + 7)] = 0f32
- compute_5[(cse_var_2 + 8)] = 0f32
- compute_5[(cse_var_2 + 9)] = 0f32
- compute_5[(cse_var_2 + 10)] = 0f32
- compute_5[(cse_var_2 + 11)] = 0f32
- compute_5[(cse_var_2 + 12)] = 0f32
- compute_5[(cse_var_2 + 13)] = 0f32
- compute_5[(cse_var_2 + 14)] = 0f32
- compute_5[(cse_var_2 + 15)] = 0f32
- compute_5[(cse_var_2 + 32)] = 0f32
- compute_5[(cse_var_2 + 33)] = 0f32
- compute_5[(cse_var_2 + 34)] = 0f32
- compute_5[(cse_var_2 + 35)] = 0f32
- compute_5[(cse_var_2 + 36)] = 0f32
- compute_5[(cse_var_2 + 37)] = 0f32
- compute_5[(cse_var_2 + 38)] = 0f32
- compute_5[(cse_var_2 + 39)] = 0f32
- compute_5[(cse_var_2 + 40)] = 0f32
- compute_5[(cse_var_2 + 41)] = 0f32
- compute_5[(cse_var_2 + 42)] = 0f32
- compute_5[(cse_var_2 + 43)] = 0f32
- compute_5[(cse_var_2 + 44)] = 0f32
- compute_5[(cse_var_2 + 45)] = 0f32
- compute_5[(cse_var_2 + 46)] = 0f32
- compute_5[(cse_var_2 + 47)] = 0f32
- compute_5[(cse_var_2 + 64)] = 0f32
- compute_5[(cse_var_2 + 65)] = 0f32
- compute_5[(cse_var_2 + 66)] = 0f32
- compute_5[(cse_var_2 + 67)] = 0f32
- compute_5[(cse_var_2 + 68)] = 0f32
- compute_5[(cse_var_2 + 69)] = 0f32
- compute_5[(cse_var_2 + 70)] = 0f32
- compute_5[(cse_var_2 + 71)] = 0f32
- compute_5[(cse_var_2 + 72)] = 0f32
- compute_5[(cse_var_2 + 73)] = 0f32
- compute_5[(cse_var_2 + 74)] = 0f32
- compute_5[(cse_var_2 + 75)] = 0f32
- compute_5[(cse_var_2 + 76)] = 0f32
- compute_5[(cse_var_2 + 77)] = 0f32
- compute_5[(cse_var_2 + 78)] = 0f32
- compute_5[(cse_var_2 + 79)] = 0f32
- compute_5[(cse_var_2 + 96)] = 0f32
- compute_5[(cse_var_2 + 97)] = 0f32
- compute_5[(cse_var_2 + 98)] = 0f32
- compute_5[(cse_var_2 + 99)] = 0f32
- compute_5[(cse_var_2 + 100)] = 0f32
- compute_5[(cse_var_2 + 101)] = 0f32
- compute_5[(cse_var_2 + 102)] = 0f32
- compute_5[(cse_var_2 + 103)] = 0f32
- compute_5[(cse_var_2 + 104)] = 0f32
- compute_5[(cse_var_2 + 105)] = 0f32
- compute_5[(cse_var_2 + 106)] = 0f32
- compute_5[(cse_var_2 + 107)] = 0f32
- compute_5[(cse_var_2 + 108)] = 0f32
- compute_5[(cse_var_2 + 109)] = 0f32
- compute_5[(cse_var_2 + 110)] = 0f32
- compute_5[(cse_var_2 + 111)] = 0f32
- for (elem_idx: int32, 0, (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
- let cse_var_67: int32 = (elem_idx*16)
- let cse_var_66: int32 = (cse_var_2 + 99)
- let cse_var_65: int32 = (cse_var_2 + 98)
- let cse_var_64: int32 = (cse_var_2 + 97)
- let cse_var_63: int32 = (cse_var_2 + 96)
- let cse_var_62: int32 = (cse_var_2 + 9)
- let cse_var_61: int32 = (cse_var_2 + 8)
- let cse_var_60: int32 = (cse_var_2 + 79)
- let cse_var_59: int32 = (cse_var_2 + 78)
- let cse_var_58: int32 = (cse_var_2 + 77)
- let cse_var_57: int32 = (cse_var_2 + 76)
- let cse_var_56: int32 = (cse_var_2 + 75)
- let cse_var_55: int32 = (cse_var_2 + 74)
- let cse_var_54: int32 = (cse_var_2 + 73)
- let cse_var_53: int32 = (cse_var_2 + 72)
- let cse_var_52: int32 = (cse_var_2 + 71)
- let cse_var_51: int32 = (cse_var_2 + 70)
- let cse_var_50: int32 = (cse_var_2 + 7)
- let cse_var_49: int32 = (cse_var_2 + 69)
- let cse_var_48: int32 = (cse_var_2 + 68)
- let cse_var_47: int32 = (cse_var_2 + 67)
- let cse_var_46: int32 = (cse_var_2 + 66)
- let cse_var_45: int32 = (cse_var_2 + 65)
- let cse_var_44: int32 = (cse_var_2 + 64)
- let cse_var_43: int32 = (cse_var_2 + 6)
- let cse_var_42: int32 = (cse_var_2 + 5)
- let cse_var_41: int32 = (cse_var_2 + 47)
- let cse_var_40: int32 = (cse_var_2 + 46)
- let cse_var_39: int32 = (cse_var_2 + 45)
- let cse_var_38: int32 = (cse_var_2 + 44)
- let cse_var_37: int32 = (cse_var_2 + 43)
- let cse_var_36: int32 = (cse_var_2 + 42)
- let cse_var_35: int32 = (cse_var_2 + 41)
- let cse_var_34: int32 = (cse_var_2 + 40)
- let cse_var_33: int32 = (cse_var_2 + 4)
- let cse_var_32: int32 = (cse_var_2 + 39)
- let cse_var_31: int32 = (cse_var_2 + 38)
- let cse_var_30: int32 = (cse_var_2 + 37)
- let cse_var_29: int32 = (cse_var_2 + 36)
- let cse_var_28: int32 = (cse_var_2 + 35)
- let cse_var_27: int32 = (cse_var_2 + 34)
- let cse_var_26: int32 = (cse_var_2 + 33)
- let cse_var_25: int32 = (cse_var_2 + 32)
- let cse_var_24: int32 = (cse_var_2 + 3)
- let cse_var_23: int32 = (cse_var_2 + 2)
- let cse_var_22: int32 = (cse_var_2 + 15)
- let cse_var_21: int32 = (cse_var_2 + 14)
- let cse_var_20: int32 = (cse_var_2 + 13)
- let cse_var_19: int32 = (cse_var_2 + 12)
- let cse_var_18: int32 = (cse_var_2 + 111)
- let cse_var_17: int32 = (cse_var_2 + 110)
- let cse_var_16: int32 = (cse_var_2 + 11)
- let cse_var_15: int32 = (cse_var_2 + 109)
- let cse_var_14: int32 = (cse_var_2 + 108)
- let cse_var_13: int32 = (cse_var_2 + 107)
- let cse_var_12: int32 = (cse_var_2 + 106)
- let cse_var_11: int32 = (cse_var_2 + 105)
- let cse_var_10: int32 = (cse_var_2 + 104)
- let cse_var_9: int32 = (cse_var_2 + 103)
- let cse_var_8: int32 = (cse_var_2 + 102)
- let cse_var_7: int32 = (cse_var_2 + 101)
- let cse_var_6: int32 = (cse_var_2 + 100)
- let cse_var_5: int32 = (cse_var_2 + 10)
- let cse_var_4: int32 = (cse_var_2 + 1)
- let cse_var_3: int32 = ((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*1024))
- {
- compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_4] = (compute_5[cse_var_4] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_23] = (compute_5[cse_var_23] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_24] = (compute_5[cse_var_24] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_33] = (compute_5[cse_var_33] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_42] = (compute_5[cse_var_42] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_43] = (compute_5[cse_var_43] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_50] = (compute_5[cse_var_50] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_61] = (compute_5[cse_var_61] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_62] = (compute_5[cse_var_62] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_19] = (compute_5[cse_var_19] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_20] = (compute_5[cse_var_20] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_21] = (compute_5[cse_var_21] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_22] = (compute_5[cse_var_22] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_25] = (compute_5[cse_var_25] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_26] = (compute_5[cse_var_26] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_27] = (compute_5[cse_var_27] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_28] = (compute_5[cse_var_28] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_29] = (compute_5[cse_var_29] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_30] = (compute_5[cse_var_30] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_31] = (compute_5[cse_var_31] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_32] = (compute_5[cse_var_32] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_34] = (compute_5[cse_var_34] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_35] = (compute_5[cse_var_35] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_36] = (compute_5[cse_var_36] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_37] = (compute_5[cse_var_37] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_38] = (compute_5[cse_var_38] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_39] = (compute_5[cse_var_39] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_40] = (compute_5[cse_var_40] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_41] = (compute_5[cse_var_41] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_44] = (compute_5[cse_var_44] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_45] = (compute_5[cse_var_45] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_46] = (compute_5[cse_var_46] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_47] = (compute_5[cse_var_47] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_48] = (compute_5[cse_var_48] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_49] = (compute_5[cse_var_49] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_51] = (compute_5[cse_var_51] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_52] = (compute_5[cse_var_52] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_53] = (compute_5[cse_var_53] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_54] = (compute_5[cse_var_54] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_55] = (compute_5[cse_var_55] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_56] = (compute_5[cse_var_56] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_57] = (compute_5[cse_var_57] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_58] = (compute_5[cse_var_58] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_59] = (compute_5[cse_var_59] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_60] = (compute_5[cse_var_60] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_63] = (compute_5[cse_var_63] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_64] = (compute_5[cse_var_64] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_65] = (compute_5[cse_var_65] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_66] = (compute_5[cse_var_66] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_18] = (compute_5[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- }
+ preflattened_buffer_map = {placeholder_5: placeholder_15: Buffer(placeholder_10, float32, [128, 256], []), placeholder_9: placeholder_16: Buffer(placeholder_14, float32, [128, 512], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_7: placeholder_18: Buffer(placeholder_12, int32, [4916], []), placeholder_8: placeholder_19: Buffer(placeholder_13, int32, [33], [])} {
+ for (i0.outer.i1.outer.fused: int32, 0, 256) "parallel" {
+ allocate(compute_4: Pointer(global float32), float32, [256]), storage_scope = global {
+ for (i.inner.init: int32, 0, 16) {
+ for (j.init: int32, 0, 16) {
+ compute_5: Buffer(compute_4, float32, [256], [])[((i.inner.init*16) + j.init)] = 0f32
+ }
+ }
+ for (elem_idx: int32, 0, let cse_var_1: int32 = floormod(i0.outer.i1.outer.fused, 32) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
+ for (i.inner: int32, 0, 16) {
+ for (j: int32, 0, 16) {
+ let cse_var_2: int32 = floormod(i0.outer.i1.outer.fused, 32)
+ if @tir.likely((elem_idx < (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])), dtype=bool) {
+ let cse_var_3: int32 = ((i.inner*16) + j)
+ compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_2]*16) + (elem_idx*16)) + j)]*max(placeholder[(((floordiv(i0.outer.i1.outer.fused, 32)*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_2] + elem_idx)])], 0f32)))
}
}
}
}
- for (i0.inner: int32, 0, 64) {
- for (i1.inner: int32, 0, 32) {
- let cse_var_68: int32 = ((((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32)) + i1.inner)
- compute[cse_var_68] = max((compute_5[((i0.inner*32) + i1.inner)] + placeholder_4[cse_var_68]), 0f32)
+ for (i0.inner: int32, 0, 16) {
+ for (i1.inner: int32, 0, 16) {
+ let cse_var_4: int32 = ((((floordiv(i0.outer.i1.outer.fused, 32)*8192) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 32)*16)) + i1.inner)
+ compute[cse_var_4] = max((compute_5[((i0.inner*16) + i1.inner)] + placeholder_4[cse_var_4]), 0f32)
}
}
}
@@ -665,7 +476,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 3.026 ms
+ Execution time of this operator: 1.583 ms
diff --git a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
index 796d3e19c..adeb9a3e7 100644
--- a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
@@ -5,12 +5,12 @@
Computation times
=================
-**00:45.663** total execution time for **how_to_tune_with_autotvm** files:
+**00:47.218** total execution time for **how_to_tune_with_autotvm** files:
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``) | 00:45.632 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``) | 00:47.181 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``) | 00:00.016 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``) | 00:00.022 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``) | 00:00.005 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
index 677325884..1e97d8453 100644
--- a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
@@ -1156,8 +1156,8 @@ for this template
TimeoutError
[('tile_f', [-1, 2, 1, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4909501
- No: 9 GFLOPS: 174.28/174.28 result: MeasureResult(costs=(0.0013283072111111112,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8026371002197266, timestamp=1659503381.61291) [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5072689
- No: 10 GFLOPS: 0.00/174.28 result: Traceback (most recent call last):
+ No: 9 GFLOPS: 177.90/177.90 result: MeasureResult(costs=(0.0013012757333333335,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.871028184890747, timestamp=1659520832.5943336) [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5072689
+ No: 10 GFLOPS: 0.00/177.90 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1280,8 +1280,8 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 4, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 64, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5092711
- No: 11 GFLOPS: 261.18/261.18 result: MeasureResult(costs=(0.0008863681381215471,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7209622859954834, timestamp=1659503382.5184355) [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
- No: 12 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+ No: 11 GFLOPS: 260.84/260.84 result: MeasureResult(costs=(0.0008875297955801104,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7690956592559814, timestamp=1659520833.503096) [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
+ No: 12 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1404,7 +1404,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 128, 1, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,183542
- No: 13 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+ No: 13 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1527,7 +1527,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 8, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2482196
- No: 14 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+ No: 14 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1650,9 +1650,9 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 64, 1, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10306226
- No: 15 GFLOPS: 5.46/261.18 result: MeasureResult(costs=(0.0423712035,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8527755737304688, timestamp=1659503387.1330638) [('tile_f', [-1, 2, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5330964
- No: 16 GFLOPS: 3.34/261.18 result: MeasureResult(costs=(0.0692489565,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.613509893417358, timestamp=1659503388.3737907) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2140058
- No: 17 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+ No: 15 GFLOPS: 5.34/260.84 result: MeasureResult(costs=(0.04333320275,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8150696754455566, timestamp=1659520838.0333753) [('tile_f', [-1, 2, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5330964
+ No: 16 GFLOPS: 3.34/260.84 result: MeasureResult(costs=(0.06923714475,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.545543909072876, timestamp=1659520839.2751355) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2140058
+ No: 17 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 142, in build
res = future.result()
File "/usr/lib/python3.7/concurrent/futures/_base.py", line 435, in result
@@ -1670,8 +1670,8 @@ for this template
TimeoutError
[('tile_f', [-1, 2, 2, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10195251
- No: 18 GFLOPS: 26.11/261.18 result: MeasureResult(costs=(0.00886693325,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.1378345489501953, timestamp=1659503399.2496047) [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6068603
- No: 19 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+ No: 18 GFLOPS: 28.04/260.84 result: MeasureResult(costs=(0.008254677357142857,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.274148941040039, timestamp=1659520850.3161662) [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6068603
+ No: 19 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1794,7 +1794,7 @@ for this template
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 16, 4, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6956993
- No: 20 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+ No: 20 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1973,7 +1973,7 @@ and measure running time.
Best config:
[('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
Finish loading 20 records
- Time cost of this operator: 0.001277
+ Time cost of this operator: 0.001249
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
index c001fc422..567a4f4e3 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
@@ -329,10 +329,10 @@ Timing the untuned program
########## Build without Autotuning ##########
Node Name Ops Time(us) Time(%) Shape Inputs Outputs Measurements(us)
--------- --- -------- ------- ----- ------ ------- ----------------
- tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 326.0 98.772 (1, 2, 10, 10, 3) 2 1 [326.0]
- tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.08 0.933 (1, 6, 10, 10) 1 1 [3.08]
- tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.974 0.295 (1, 1, 10, 10, 3) 1 1 [0.974]
- Total_time - 330.054 - - - - -
+ tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 311.7 98.7 (1, 2, 10, 10, 3) 2 1 [311.7]
+ tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.142 0.995 (1, 6, 10, 10) 1 1 [3.142]
+ tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.963 0.305 (1, 1, 10, 10, 3) 1 1 [0.963]
+ Total_time - 315.806 - - - - -
@@ -398,10 +398,10 @@ Timing the tuned program
########## Build with Autotuning ##########
Node Name Ops Time(us) Time(%) Shape Inputs Outputs Measurements(us)
--------- --- -------- ------- ----- ------ ------- ----------------
- tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 193.7 98.477 (1, 6, 10, 10, 1) 2 1 [193.7]
- tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 2.017 1.026 (1, 6, 10, 10) 1 1 [2.017]
- tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.979 0.498 (1, 3, 10, 10, 1) 1 1 [0.979]
- Total_time - 196.696 - - - - -
+ tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 336.9 98.83 (1, 2, 10, 10, 3) 2 1 [336.9]
+ tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.147 0.923 (1, 6, 10, 10) 1 1 [3.147]
+ tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.84 0.246 (1, 3, 10, 10, 1) 1 1 [0.84]
+ Total_time - 340.887 - - - - -
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
index 999dfc6e0..fa7fc80ca 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
@@ -225,7 +225,7 @@ take about **2 minutes** to download the Stanford Cars, while COCO 2017 validati
.. code-block:: none
- '/tmp/tmpq3q3d4wv/images/random'
+ '/tmp/tmps5bbum4e/images/random'
@@ -325,8 +325,8 @@ objects to other stuff? We can display some examples from our datasets using ``m
.. code-block:: none
- /tmp/tmpq3q3d4wv/images/target contains 8144 images
- /tmp/tmpq3q3d4wv/images/random contains 5000 images
+ /tmp/tmps5bbum4e/images/target contains 8144 images
+ /tmp/tmps5bbum4e/images/random contains 5000 images
@@ -501,13 +501,13 @@ the time on our validation set).
.. code-block:: none
Epoch 1/3
- 328/328 - 55s - loss: 0.2264 - accuracy: 0.9224 - val_loss: 0.1354 - val_accuracy: 0.9600
+ 328/328 - 55s - loss: 0.2292 - accuracy: 0.9205 - val_loss: 0.1342 - val_accuracy: 0.9581
Epoch 2/3
- 328/328 - 52s - loss: 0.0963 - accuracy: 0.9647 - val_loss: 0.1125 - val_accuracy: 0.9653
+ 328/328 - 52s - loss: 0.1032 - accuracy: 0.9615 - val_loss: 0.1189 - val_accuracy: 0.9630
Epoch 3/3
- 328/328 - 52s - loss: 0.0713 - accuracy: 0.9730 - val_loss: 0.1016 - val_accuracy: 0.9664
+ 328/328 - 52s - loss: 0.0718 - accuracy: 0.9719 - val_loss: 0.1347 - val_accuracy: 0.9615
- <keras.callbacks.History object at 0x7fb21d9563d0>
+ <keras.callbacks.History object at 0x7f21510c5290>
@@ -864,7 +864,7 @@ Arduino tutorial for how to do that `on GitHub <https://github.com/guberti/tvm-a
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 5 minutes 8.771 seconds)
+ **Total running time of the script:** ( 5 minutes 39.316 seconds)
.. _sphx_glr_download_how_to_work_with_microtvm_micro_train.py:
diff --git a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
index 8286179c8..77f6e4d73 100644
--- a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
@@ -5,16 +5,16 @@
Computation times
=================
-**06:03.380** total execution time for **how_to_work_with_microtvm** files:
+**06:32.677** total execution time for **how_to_work_with_microtvm** files:
+---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``) | 05:08.771 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``) | 05:39.316 | 0.0 MB |
+---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``) | 00:43.051 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``) | 00:42.095 | 0.0 MB |
+---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``) | 00:08.136 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``) | 00:07.948 | 0.0 MB |
+---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``) | 00:03.420 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``) | 00:03.316 | 0.0 MB |
+---------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``) | 00:00.001 | 0.0 MB |
+---------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
index 9c57b400f..f45228f3a 100644
--- a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
Computation times
=================
-**00:42.347** total execution time for **how_to_work_with_relay** files:
+**00:42.162** total execution time for **how_to_work_with_relay** files:
+----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:31.049 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:30.619 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``) | 00:09.886 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``) | 00:09.958 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``) | 00:01.405 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``) | 00:01.579 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``) | 00:00.007 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
index 3e7d68cc9..b87c9e4ca 100644
--- a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
@@ -261,7 +261,7 @@ The following example customizes CUDA lowering rule for :code:`exp`.
.. code-block:: none
- <function my_cuda_math_rule at 0x7fb18879dd40>
+ <function my_cuda_math_rule at 0x7f20db708dd0>
diff --git a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
index f6376b6f8..c3b13e45c 100644
--- a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
@@ -5,20 +5,20 @@
Computation times
=================
-**00:04.273** total execution time for **how_to_work_with_schedules** files:
+**00:04.254** total execution time for **how_to_work_with_schedules** files:
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``) | 00:01.973 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``) | 00:01.947 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``) | 00:01.029 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``) | 00:01.056 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``) | 00:00.550 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``) | 00:00.546 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``) | 00:00.538 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``) | 00:00.523 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``) | 00:00.101 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.041 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.040 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``) | 00:00.027 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
index e85385ef2..2e2eb9778 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -347,7 +347,7 @@ The importing needs to happen before the tensorized GEMV being executed.
C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
buffer_map = {A_1: A, B_1: B, C_1: C}
preflattened_buffer_map = {A_1: A_3: Buffer(A_2, float32, [1024, 64], []), B_1: B_3: Buffer(B_2, float32, [512, 64], []), C_1: C_3: Buffer(C_2, float32, [1024, 512], [])} {
- attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpuqh6yq74/input0.cc'\nsource_filename = \"/tmp/tmpuqh6yq74/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n %7 = alloca float*, align 8\n %8 = alloca float*, align 8\n %9 = alloca floa [...]
+ attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpz83n3eig/input0.cc'\nsource_filename = \"/tmp/tmpz83n3eig/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n %7 = alloca float*, align 8\n %8 = alloca float*, align 8\n %9 = alloca floa [...]
for (i, 0, 1024) {
for (j.outer: int32, 0, 32) {
@tir.call_extern("gemv_update", @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
index 32b14fbc6..9a003e299 100644
--- a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
Computation times
=================
-**00:21.819** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:20.911** total execution time for **topic_vta_tutorials_autotvm** files:
+---------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:21.813 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:20.905 | 0.0 MB |
+---------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``) | 00:00.006 | 0.0 MB |
+---------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
index 029547fa4..d68bbd404 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -291,7 +291,7 @@ The compilation steps are:
DeprecationWarning,
/workspace/vta/tutorials/frontend/deploy_classification.py:213: DeprecationWarning: legacy graph executor behavior of producing json / lib / params will be removed in the next release. Please see documents of tvm.contrib.graph_executor.GraphModule for the new recommended usage.
relay_prog, target=tvm.target.Target(target, host=env.target_host), params=params
- resnet18_v1 inference graph built in 23.41s!
+ resnet18_v1 inference graph built in 22.77s!
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
index 797da0808..2da9f46b2 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -335,7 +335,7 @@ The compilation steps are:
"target_host parameter is going to be deprecated. "
/workspace/python/tvm/relay/build_module.py:411: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
DeprecationWarning,
- yolov3-tiny inference graph built in 16.60s!
+ yolov3-tiny inference graph built in 15.99s!
diff --git a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
index b3a47f3d0..efb91988c 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
Computation times
=================
-**01:33.638** total execution time for **topic_vta_tutorials_frontend** files:
+**01:30.229** total execution time for **topic_vta_tutorials_frontend** files:
+------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``) | 00:49.887 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``) | 00:47.556 | 0.0 MB |
+------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:43.751 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:42.673 | 0.0 MB |
+------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
index deb3795d2..659a01ed4 100644
--- a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
Computation times
=================
-**00:03.354** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.286** total execution time for **topic_vta_tutorials_optimize** files:
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``) | 00:02.926 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``) | 00:02.873 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.428 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.413 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
index 60c76687b..581864cfe 100644
--- a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
Computation times
=================
-**00:00.776** total execution time for **topic_vta_tutorials** files:
+**00:00.762** total execution time for **topic_vta_tutorials** files:
+---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.412 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.404 | 0.0 MB |
+---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.364 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.358 | 0.0 MB |
+---------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
index 48948fcc4..35f7812eb 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -205,13 +205,6 @@ trials, we can load the best schedule from the log file and apply it.
-.. rst-class:: sphx-glr-script-out
-
- .. code-block:: none
-
- *E
-
-
@@ -335,7 +328,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 93.422 ms
+ Execution time of this operator: 93.653 ms
@@ -435,7 +428,7 @@ resume the status and do more 5 trials.
Resume search:
/usr/local/lib/python3.7/dist-packages/xgboost/training.py:17: UserWarning: Old style callback is deprecated. See: https://xgboost.readthedocs.io/en/latest/python/callbacks.html
warnings.warn(f'Old style callback is deprecated. See: {link}', UserWarning)
-
+ *E
@@ -453,7 +446,7 @@ operations.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 10.743 seconds)
+ **Total running time of the script:** ( 1 minutes 12.481 seconds)
.. _sphx_glr_download_tutorial_auto_scheduler_matmul_x86.py:
diff --git a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
index a5f01226f..e7a7d935b 100644
--- a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
@@ -462,16 +462,16 @@ reduce variance, we take 5 measurements and average them.
waiting for device...
device available
Get devices for measurement successfully!
- No: 1 GFLOPS: 8.92/8.92 result: MeasureResult(costs=(0.0301037326,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6165452003479004, timestamp=1659502140.7902522) [('tile_y', [-1, 1]), ('tile_x', [-1, 256])],None,80
- No: 2 GFLOPS: 2.69/8.92 result: MeasureResult(costs=(0.0996814402,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7505898475646973, timestamp=1659502143.0859005) [('tile_y', [-1, 4]), ('tile_x', [-1, 8])],None,32
- No: 3 GFLOPS: 11.75/11.75 result: MeasureResult(costs=(0.0228491426,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.591402530670166, timestamp=1659502143.65736) [('tile_y', [-1, 64]), ('tile_x', [-1, 32])],None,56
- No: 4 GFLOPS: 1.55/11.75 result: MeasureResult(costs=(0.17337393259999997,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.886803388595581, timestamp=1659502147.1416934) [('tile_y', [-1, 1]), ('tile_x', [-1, 4])],None,20
- No: 5 GFLOPS: 3.57/11.75 result: MeasureResult(costs=(0.0750937858,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3430910110473633, timestamp=1659502148.6098127) [('tile_y', [-1, 256]), ('tile_x', [-1, 16])],None,48
- No: 6 GFLOPS: 1.66/11.75 result: MeasureResult(costs=(0.1620075534,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.774696111679077, timestamp=1659502151.4213572) [('tile_y', [-1, 512]), ('tile_x', [-1, 4])],None,29
- No: 7 GFLOPS: 0.86/11.75 result: MeasureResult(costs=(0.31230218120000003,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.125779151916504, timestamp=1659502157.1172595) [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
- No: 8 GFLOPS: 10.10/11.75 result: MeasureResult(costs=(0.0265796832,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.572739839553833, timestamp=1659502157.707189) [('tile_y', [-1, 4]), ('tile_x', [-1, 64])],None,62
- No: 9 GFLOPS: 1.66/11.75 result: MeasureResult(costs=(0.16208802220000001,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.703195571899414, timestamp=1659502160.530115) [('tile_y', [-1, 2]), ('tile_x', [-1, 2])],None,11
- No: 10 GFLOPS: 2.61/11.75 result: MeasureResult(costs=(0.10289147760000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7573740482330322, timestamp=1659502162.3454747) [('tile_y', [-1, 4]), ('tile_x', [-1, 4])],None,22
+ No: 1 GFLOPS: 10.45/10.45 result: MeasureResult(costs=(0.0256820206,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5566658973693848, timestamp=1659519624.6814108) [('tile_y', [-1, 1]), ('tile_x', [-1, 256])],None,80
+ No: 2 GFLOPS: 2.70/10.45 result: MeasureResult(costs=(0.099365337,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7398579120635986, timestamp=1659519626.4253428) [('tile_y', [-1, 4]), ('tile_x', [-1, 8])],None,32
+ No: 3 GFLOPS: 11.81/11.81 result: MeasureResult(costs=(0.022734757,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5454165935516357, timestamp=1659519627.5180595) [('tile_y', [-1, 64]), ('tile_x', [-1, 32])],None,56
+ No: 4 GFLOPS: 1.71/11.81 result: MeasureResult(costs=(0.15711391060000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.6681573390960693, timestamp=1659519630.7902198) [('tile_y', [-1, 1]), ('tile_x', [-1, 4])],None,20
+ No: 5 GFLOPS: 3.34/11.81 result: MeasureResult(costs=(0.08036448460000001,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.422966718673706, timestamp=1659519632.9183946) [('tile_y', [-1, 256]), ('tile_x', [-1, 16])],None,48
+ No: 6 GFLOPS: 1.66/11.81 result: MeasureResult(costs=(0.161835873,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.844027042388916, timestamp=1659519635.7765253) [('tile_y', [-1, 512]), ('tile_x', [-1, 4])],None,29
+ No: 7 GFLOPS: 0.81/11.81 result: MeasureResult(costs=(0.3313834128,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.5618510246276855, timestamp=1659519641.3826635) [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+ No: 8 GFLOPS: 9.80/11.81 result: MeasureResult(costs=(0.027405271800000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6103637218475342, timestamp=1659519641.994319) [('tile_y', [-1, 4]), ('tile_x', [-1, 64])],None,62
+ No: 9 GFLOPS: 1.51/11.81 result: MeasureResult(costs=(0.177827973,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.9458351135253906, timestamp=1659519645.060152) [('tile_y', [-1, 2]), ('tile_x', [-1, 2])],None,11
+ No: 10 GFLOPS: 2.39/11.81 result: MeasureResult(costs=(0.11209027619999998,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8993167877197266, timestamp=1659519647.0186746) [('tile_y', [-1, 4]), ('tile_x', [-1, 4])],None,22
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index 3936fe8ca..0cd6f9605 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -327,7 +327,7 @@ standard deviation.
.. code-block:: none
- {'mean': 496.0260501400626, 'median': 495.76679750007315, 'std': 0.7690579082579676}
+ {'mean': 496.5773109599968, 'median': 496.0773057999859, 'std': 2.0554179938332986}
@@ -563,30 +563,30 @@ the tuning data to.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
-
[Task 1/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 1/25] Current/Best: 17.46/ 17.46 GFLOPS | Progress: (4/20) | 6.96 s
[Task 1/25] Current/Best: 6.15/ 17.46 GFLOPS | Progress: (8/20) | 9.39 s
[Task 1/25] Current/Best: 11.52/ 22.78 GFLOPS | Progress: (12/20) | 11.85 s
[Task 1/25] Current/Best: 16.79/ 22.78 GFLOPS | Progress: (16/20) | 13.54 s
[Task 1/25] Current/Best: 11.54/ 23.88 GFLOPS | Progress: (20/20) | 15.27 s Done.
-
[Task 2/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 2/25] Current/Best: 12.17/ 12.82 GFLOPS | Progress: (4/20) | 3.84 s
[Task 2/25] Current/Best: 13.98/ 17.65 GFLOPS | Progress: (8/20) | 5.16 s
[Task 2/25] Current/Best: 21.15/ 21.15 GFLOPS | Progress: (12/20) | 6.49 s
[Task 2/25] Current/Best: 12.78/ 21.15 GFLOPS | Progress: (16/20) | 7.76 s
[Task 2/25] Current/Best: 19.79/ 21.15 GFLOPS | Progress: (20/20) | 9.32 s Done.
-
[Task 3/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 3/25] Current/Best: 1.63/ 10.52 GFLOPS | Progress: (4/20) | 5.89 s
[Task 3/25] Current/Best: 15.56/ 16.84 GFLOPS | Progress: (8/20) | 7.84 s
[Task 3/25] Current/Best: 14.87/ 16.84 GFLOPS | Progress: (12/20) | 9.58 s
[Task 3/25] Current/Best: 7.18/ 23.59 GFLOPS | Progress: (16/20) | 11.54 s
[Task 3/25] Current/Best: 12.56/ 23.59 GFLOPS | Progress: (20/20) | 16.08 s Done.
-
[Task 4/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 4/25] Current/Best: 9.53/ 20.34 GFLOPS | Progress: (4/20) | 2.42 s
[Task 4/25] Current/Best: 6.77/ 20.34 GFLOPS | Progress: (8/20) | 6.80 s
[Task 4/25] Current/Best: 21.95/ 21.95 GFLOPS | Progress: (12/20) | 11.29 s
[Task 4/25] Current/Best: 17.41/ 21.95 GFLOPS | Progress: (16/20) | 13.53 s
[Task 4/25] Current/Best: 13.36/ 21.95 GFLOPS | Progress: (20/20) | 15.44 s Done.
-
[Task 5/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 5/25] Current/Best: 9.52/ 10.21 GFLOPS | Progress: (4/20) | 2.63 s
[Task 5/25] Current/Best: 11.63/ 12.54 GFLOPS | Progress: (8/20) | 4.73 s
[Task 5/25] Current/Best: 11.06/ 17.93 GFLOPS | Progress: (12/20) | 7.81 s
[Task 5/25] Current/Best: 11.56/ 22.56 GFLOPS | Progress: (16/20) | 9.23 s
[Task 5/25] Current/Best: 11.99/ 22.56 GFLOPS | Progress: (20/20) | 11.08 s Done.
-
[Task 6/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 6/25] Current/Best: 12.21/ 20.82 GFLOPS | Progress: (4/20) | 4.03 s
[Task 6/25] Current/Best: 18.92/ 20.82 GFLOPS | Progress: (8/20) | 5.80 s
[Task 6/25] Current/Best: 13.27/ 20.82 GFLOPS | Progress: (12/20) | 7.73 s
[Task 6/25] Current/Best: 19.97/ 20.82 GFLOPS | Progress: (16/20) | 10.03 s
[Task 6/25] Current/Best: 3.72/ 20.82 GFLOPS | Progress: (20/20) | 12.58 s Done.
-
[Task 7/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 7/25] Current/Best: 11.20/ 12.86 GFLOPS | Progress: (4/20) | 3.67 s
[Task 7/25] Current/Best: 20.09/ 20.87 GFLOPS | Progress: (8/20) | 5.20 s
[Task 7/25] Current/Best: 15.83/ 20.91 GFLOPS | Progress: (12/20) | 7.11 s
[Task 7/25] Current/Best: 12.23/ 20.91 GFLOPS | Progress: (16/20) | 9.17 s
[Task 7/25] Current/Best: 6.29/ 21.59 GFLOPS | Progress: (20/20) | 11.65 s Done.
-
[Task 8/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 8/25] Current/Best: 10.15/ 14.01 GFLOPS | Progress: (4/20) | 2.97 s
[Task 8/25] Current/Best: 9.56/ 14.01 GFLOPS | Progress: (8/20) | 7.86 s
[Task 8/25] Current/Best: 12.91/ 14.01 GFLOPS | Progress: (12/20) | 14.03 s
[Task 8/25] Current/Best: 18.96/ 18.96 GFLOPS | Progress: (16/20) | 16.15 s
[Task 8/25] Current/Best: 19.37/ 19.37 GFLOPS | Progress: (20/20) | 22.80 s Done.
-
[Task 9/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 9/25] Current/Best: 13.77/ 15.70 GFLOPS | Progress: (4/20) | 11.98 s
[Task 9/25] Current/Best: 23.29/ 23.29 GFLOPS | Progress: (8/20) | 13.85 s
[Task 9/25] Current/Best: 8.24/ 23.29 GFLOPS | Progress: (12/20) | 16.24 s
[Task 9/25] Current/Best: 17.59/ 23.29 GFLOPS | Progress: (16/20) | 18.83 s
[Task 9/25] Current/Best: 9.17/ 23.29 GFLOPS | Progress: (20/20) | 26.62 s
[Task 10/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 10/25] Current/Best: 18.58/ 18.58 GFLOPS | Progress: (4/20) | 2.63 s
[Task 10/25] Current/Best: 15.53/ 18.58 GFLOPS | Progress: (8/20) | 4.22 s
[Task 10/25] Current/Best: 11.34/ 18.92 GFLOPS | Progress: (12/20) | 5.77 s
[Task 10/25] Current/Best: 19.07/ 20.25 GFLOPS | Progress: (16/20) | 6.88 s
[Task 10/25] Current/Best: 8.89/ 20.25 GFLOPS | Progress: (20/20
) | 8.42 s Done.
-
[Task 11/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 11/25] Current/Best: 11.89/ 18.14 GFLOPS | Progress: (4/20) | 3.38 s
[Task 11/25] Current/Best: 16.92/ 18.14 GFLOPS | Progress: (8/20) | 6.13 s
[Task 11/25] Current/Best: 18.11/ 18.14 GFLOPS | Progress: (12/20) | 8.20 s
[Task 11/25] Current/Best: 13.43/ 21.12 GFLOPS | Progress: (16/20) | 11.02 s
[Task 11/25] Current/Best: 19.46/ 21.55 GFLOPS | Progress: (20/20) | 13.04 s Done.
-
[Task 12/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 12/25] Current/Best: 7.79/ 17.97 GFLOPS | Progress: (4/20) | 5.49 s
[Task 12/25] Current/Best: 5.13/ 17.97 GFLOPS | Progress: (8/20) | 9.21 s
[Task 12/25] Current/Best: 18.87/ 18.87 GFLOPS | Progress: (12/20) | 11.21 s
[Task 12/25] Current/Best: 15.26/ 18.87 GFLOPS | Progress: (16/20) | 14.04 s
[Task 12/25] Current/Best: 15.14/ 18.87 GFLOPS | Progress: (20/20) | 15.96 s Done.
-
[Task 13/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 13/25] Current/Best: 8.81/ 17.10 GFLOPS | Progress: (4/20) | 3.70 s
[Task 13/25] Current/Best: 15.76/ 20.94 GFLOPS | Progress: (8/20) | 6.17 s
[Task 13/25] Current/Best: 19.36/ 21.03 GFLOPS | Progress: (12/20) | 9.13 s
[Task 13/25] Current/Best: 11.99/ 21.03 GFLOPS | Progress: (16/20) | 12.55 s
[Task 13/25] Current/Best: 18.63/ 21.03 GFLOPS | Progress: (20/20) | 14.81 s Done.
-
[Task 14/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 14/25] Current/Best: 13.54/ 13.54 GFLOPS | Progress: (4/20) | 3.36 s
[Task 14/25] Current/Best: 6.08/ 13.54 GFLOPS | Progress: (8/20) | 5.53 s
[Task 14/25] Current/Best: 20.66/ 20.66 GFLOPS | Progress: (12/20) | 8.09 s
[Task 14/25] Current/Best: 16.90/ 20.66 GFLOPS | Progress: (16/20) | 9.75 s Done.
-
[Task 14/25] Current/Best: 15.55/ 20.66 GFLOPS | Progress: (20/20) | 11.53 s
[Task 15/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 15/25] Current/Best: 16.10/ 17.59 GFLOPS | Progress: (4/20) | 2.79 s
[Task 15/25] Current/Best: 14.28/ 18.06 GFLOPS | Progress: (8/20) | 4.13 s
[Task 15/25] Current/Best: 10.39/ 22.19 GFLOPS | Progress: (12/20) | 6.22 s
[Task 15/25] Current/Best: 20.34/ 22.19 GFLOPS | Progress: (16/20) | 9.43 s
[Task 15/25] Current/Best: 9.66/ 22.19 GFLOPS | Progress: (20/20) | 10.45 s
[Task 16/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 16/25] Current/Best: 20.53/ 20.53 GFLOPS | Progress: (4/20) | 3.05 s
[Task 16/25] Current/Best: 3.01/ 20.53 GFLOPS | Progress: (8/20) | 4.70 s
[Task 16/25] Current/Best: 19.46/ 20.53 GFLOPS | Progress: (12/20) | 5.93 s
[Task 16/25] Current/Best: 17.38/ 20.53 GFLOPS | Progress: (16/20) |
7.27 s
[Task 16/25] Current/Best: 9.97/ 20.53 GFLOPS | Progress: (20/20) | 9.34 s Done.
-
[Task 17/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 17/25] Current/Best: 12.78/ 18.84 GFLOPS | Progress: (4/20) | 4.76 s
[Task 17/25] Current/Best: 14.46/ 23.25 GFLOPS | Progress: (8/20) | 7.53 s
[Task 17/25] Current/Best: 16.85/ 23.25 GFLOPS | Progress: (12/20) | 9.59 s
[Task 17/25] Current/Best: 16.48/ 23.25 GFLOPS | Progress: (16/20) | 11.74 s
[Task 17/25] Current/Best: 10.02/ 23.25 GFLOPS | Progress: (20/20) | 13.87 s Done.
-
[Task 18/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 18/25] Current/Best: 11.42/ 17.21 GFLOPS | Progress: (4/20) | 3.74 s
[Task 18/25] Current/Best: 10.59/ 19.73 GFLOPS | Progress: (8/20) | 7.19 s
[Task 18/25] Current/Best: 19.52/ 19.73 GFLOPS | Progress: (12/20) | 9.12 s
[Task 18/25] Current/Best: 9.97/ 19.73 GFLOPS | Progress: (16/20) | 12.73 s
[Task 18/25] Current/Best: 20.52/ 20.52 GFLOPS | Progress: (20/20) | 14.25 s Done.
-
[Task 19/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 19/25] Current/Best: 6.98/ 20.27 GFLOPS | Progress: (4/20) | 6.12 s
[Task 19/25] Current/Best: 2.61/ 20.27 GFLOPS | Progress: (8/20) | 9.39 s
[Task 19/25] Current/Best: 19.04/ 21.21 GFLOPS | Progress: (12/20) | 12.17 s
[Task 19/25] Current/Best: 15.12/ 21.21 GFLOPS | Progress: (16/20) | 15.02 s
[Task 19/25] Current/Best: 2.70/ 23.25 GFLOPS | Progress: (20/20) | 17.80 s Done.
-
[Task 20/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 20/25] Current/Best: 9.16/ 15.09 GFLOPS | Progress: (4/20) | 3.39 s Done.
+
[Task 1/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 1/25] Current/Best: 17.56/ 17.56 GFLOPS | Progress: (4/20) | 5.84 s
[Task 1/25] Current/Best: 6.16/ 17.56 GFLOPS | Progress: (8/20) | 9.37 s
[Task 1/25] Current/Best: 11.53/ 22.68 GFLOPS | Progress: (12/20) | 11.78 s
[Task 1/25] Current/Best: 16.67/ 22.78 GFLOPS | Progress: (16/20) | 13.47 s
[Task 1/25] Current/Best: 11.60/ 23.93 GFLOPS | Progress: (20/20) | 15.24 s Done.
+
[Task 2/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 2/25] Current/Best: 12.33/ 12.82 GFLOPS | Progress: (4/20) | 3.79 s
[Task 2/25] Current/Best: 13.68/ 18.39 GFLOPS | Progress: (8/20) | 5.08 s
[Task 2/25] Current/Best: 21.29/ 21.29 GFLOPS | Progress: (12/20) | 6.42 s
[Task 2/25] Current/Best: 12.78/ 21.29 GFLOPS | Progress: (16/20) | 7.67 s
[Task 2/25] Current/Best: 19.41/ 21.29 GFLOPS | Progress: (20/20) | 9.22 s Done.
+
[Task 3/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 3/25] Current/Best: 1.63/ 10.59 GFLOPS | Progress: (4/20) | 5.86 s
[Task 3/25] Current/Best: 15.60/ 16.89 GFLOPS | Progress: (8/20) | 7.78 s
[Task 3/25] Current/Best: 14.87/ 16.89 GFLOPS | Progress: (12/20) | 9.49 s
[Task 3/25] Current/Best: 7.19/ 23.79 GFLOPS | Progress: (16/20) | 11.42 s
[Task 3/25] Current/Best: 12.62/ 23.79 GFLOPS | Progress: (20/20) | 15.93 s Done.
+
[Task 4/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 4/25] Current/Best: 9.49/ 20.47 GFLOPS | Progress: (4/20) | 2.39 s
[Task 4/25] Current/Best: 6.78/ 20.47 GFLOPS | Progress: (8/20) | 6.67 s
[Task 4/25] Current/Best: 21.92/ 21.92 GFLOPS | Progress: (12/20) | 11.20 s
[Task 4/25] Current/Best: 16.84/ 21.92 GFLOPS | Progress: (16/20) | 13.48 s
[Task 4/25] Current/Best: 13.40/ 21.92 GFLOPS | Progress: (20/20) | 15.48 s Done.
+
[Task 5/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 5/25] Current/Best: 9.45/ 10.21 GFLOPS | Progress: (4/20) | 2.61 s
[Task 5/25] Current/Best: 11.77/ 12.70 GFLOPS | Progress: (8/20) | 4.70 s
[Task 5/25] Current/Best: 11.34/ 17.98 GFLOPS | Progress: (12/20) | 7.83 s
[Task 5/25] Current/Best: 11.65/ 22.38 GFLOPS | Progress: (16/20) | 9.25 s
[Task 5/25] Current/Best: 11.81/ 22.38 GFLOPS | Progress: (20/20) | 11.11 s Done.
+
[Task 6/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 6/25] Current/Best: 12.15/ 20.66 GFLOPS | Progress: (4/20) | 3.99 s
[Task 6/25] Current/Best: 19.00/ 20.66 GFLOPS | Progress: (8/20) | 5.75 s
[Task 6/25] Current/Best: 13.30/ 20.66 GFLOPS | Progress: (12/20) | 7.70 s
[Task 6/25] Current/Best: 20.10/ 20.66 GFLOPS | Progress: (16/20) | 9.95 s
[Task 6/25] Current/Best: 3.73/ 20.66 GFLOPS | Progress: (20/20) | 12.47 s Done.
+
[Task 7/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 7/25] Current/Best: 11.30/ 12.73 GFLOPS | Progress: (4/20) | 3.54 s
[Task 7/25] Current/Best: 20.25/ 21.21 GFLOPS | Progress: (8/20) | 5.05 s
[Task 7/25] Current/Best: 16.05/ 21.21 GFLOPS | Progress: (12/20) | 6.95 s
[Task 7/25] Current/Best: 12.26/ 21.21 GFLOPS | Progress: (16/20) | 9.01 s
[Task 7/25] Current/Best: 6.26/ 21.75 GFLOPS | Progress: (20/20) | 11.46 s Done.
+
[Task 8/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 8/25] Current/Best: 9.74/ 13.77 GFLOPS | Progress: (4/20) | 2.95 s
[Task 8/25] Current/Best: 9.79/ 13.77 GFLOPS | Progress: (8/20) | 7.72 s
[Task 8/25] Current/Best: 12.44/ 13.77 GFLOPS | Progress: (12/20) | 13.77 s
[Task 8/25] Current/Best: 18.78/ 18.78 GFLOPS | Progress: (16/20) | 15.87 s
[Task 8/25] Current/Best: 19.61/ 19.61 GFLOPS | Progress: (20/20) | 22.33 s Done.
+
[Task 9/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 9/25] Current/Best: 14.32/ 15.61 GFLOPS | Progress: (4/20) | 11.97 s
[Task 9/25] Current/Best: 23.51/ 23.51 GFLOPS | Progress: (8/20) | 13.74 s
[Task 9/25] Current/Best: 8.22/ 23.51 GFLOPS | Progress: (12/20) | 16.07 s
[Task 9/25] Current/Best: 17.92/ 23.51 GFLOPS | Progress: (16/20) | 18.72 s
[Task 9/25] Current/Best: 9.24/ 23.51 GFLOPS | Progress: (20/20) | 26.33 s
[Task 10/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 10/25] Current/Best: 18.16/ 18.16 GFLOPS | Progress: (4/20) | 2.56 s
[Task 10/25] Current/Best: 15.61/ 18.16 GFLOPS | Progress: (8/20) | 4.15 s
[Task 10/25] Current/Best: 12.30/ 18.77 GFLOPS | Progress: (12/20) | 5.67 s
[Task 10/25] Current/Best: 18.33/ 20.32 GFLOPS | Progress: (16/20) | 6.77 s
[Task 10/25] Current/Best: 8.77/ 20.32 GFLOPS | Progress: (20/20
) | 8.34 s Done.
+
[Task 11/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 11/25] Current/Best: 12.33/ 18.13 GFLOPS | Progress: (4/20) | 3.34 s
[Task 11/25] Current/Best: 16.86/ 18.13 GFLOPS | Progress: (8/20) | 6.09 s
[Task 11/25] Current/Best: 17.85/ 18.13 GFLOPS | Progress: (12/20) | 8.15 s
[Task 11/25] Current/Best: 13.41/ 21.16 GFLOPS | Progress: (16/20) | 10.95 s
[Task 11/25] Current/Best: 19.49/ 21.62 GFLOPS | Progress: (20/20) | 12.99 s Done.
+
[Task 12/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 12/25] Current/Best: 7.80/ 18.03 GFLOPS | Progress: (4/20) | 5.28 s
[Task 12/25] Current/Best: 5.19/ 18.03 GFLOPS | Progress: (8/20) | 8.93 s
[Task 12/25] Current/Best: 19.00/ 19.00 GFLOPS | Progress: (12/20) | 10.94 s
[Task 12/25] Current/Best: 15.18/ 19.00 GFLOPS | Progress: (16/20) | 13.67 s
[Task 12/25] Current/Best: 14.99/ 19.00 GFLOPS | Progress: (20/20) | 15.63 s Done.
+
[Task 13/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 13/25] Current/Best: 8.15/ 17.29 GFLOPS | Progress: (4/20) | 3.72 s
[Task 13/25] Current/Best: 15.27/ 20.82 GFLOPS | Progress: (8/20) | 6.19 s
[Task 13/25] Current/Best: 19.60/ 21.02 GFLOPS | Progress: (12/20) | 9.06 s
[Task 13/25] Current/Best: 12.28/ 21.02 GFLOPS | Progress: (16/20) | 12.48 s
[Task 13/25] Current/Best: 18.71/ 21.02 GFLOPS | Progress: (20/20) | 14.77 s Done.
+
[Task 14/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 14/25] Current/Best: 12.40/ 13.29 GFLOPS | Progress: (4/20) | 3.37 s
[Task 14/25] Current/Best: 6.10/ 13.30 GFLOPS | Progress: (8/20) | 5.60 s
[Task 14/25] Current/Best: 20.01/ 20.01 GFLOPS | Progress: (12/20) | 8.15 s
[Task 14/25] Current/Best: 17.00/ 20.01 GFLOPS | Progress: (16/20) | 9.79 s Done.
+
[Task 14/25] Current/Best: 16.99/ 20.01 GFLOPS | Progress: (20/20) | 11.52 s
[Task 15/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 15/25] Current/Best: 15.50/ 17.66 GFLOPS | Progress: (4/20) | 2.72 s
[Task 15/25] Current/Best: 14.31/ 18.10 GFLOPS | Progress: (8/20) | 4.02 s
[Task 15/25] Current/Best: 10.35/ 22.31 GFLOPS | Progress: (12/20) | 6.07 s
[Task 15/25] Current/Best: 20.37/ 22.31 GFLOPS | Progress: (16/20) | 8.97 s
[Task 15/25] Current/Best: 9.65/ 22.31 GFLOPS | Progress: (20/20) | 9.94 s
[Task 16/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 16/25] Current/Best: 19.54/ 19.54 GFLOPS | Progress: (4/20) | 3.03 s
[Task 16/25] Current/Best: 3.04/ 19.54 GFLOPS | Progress: (8/20) | 4.66 s
[Task 16/25] Current/Best: 19.23/ 19.54 GFLOPS | Progress: (12/20) | 5.89 s
[Task 16/25] Current/Best: 17.42/ 19.54 GFLOPS | Progress: (16/20) |
7.26 s
[Task 16/25] Current/Best: 10.08/ 20.39 GFLOPS | Progress: (20/20) | 9.31 s Done.
+
[Task 17/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 17/25] Current/Best: 12.50/ 18.90 GFLOPS | Progress: (4/20) | 4.72 s
[Task 17/25] Current/Best: 14.18/ 23.28 GFLOPS | Progress: (8/20) | 7.46 s
[Task 17/25] Current/Best: 17.25/ 23.28 GFLOPS | Progress: (12/20) | 9.52 s
[Task 17/25] Current/Best: 16.62/ 23.28 GFLOPS | Progress: (16/20) | 11.66 s
[Task 17/25] Current/Best: 10.05/ 23.28 GFLOPS | Progress: (20/20) | 13.78 s Done.
+
[Task 18/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 18/25] Current/Best: 11.41/ 17.79 GFLOPS | Progress: (4/20) | 3.70 s
[Task 18/25] Current/Best: 10.57/ 17.79 GFLOPS | Progress: (8/20) | 7.28 s
[Task 18/25] Current/Best: 18.54/ 18.54 GFLOPS | Progress: (12/20) | 9.23 s
[Task 18/25] Current/Best: 10.09/ 18.54 GFLOPS | Progress: (16/20) | 12.78 s
[Task 18/25] Current/Best: 20.78/ 20.78 GFLOPS | Progress: (20/20) | 14.30 s Done.
+
[Task 19/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 19/25] Current/Best: 7.26/ 19.85 GFLOPS | Progress: (4/20) | 6.02 s
[Task 19/25] Current/Best: 2.60/ 19.85 GFLOPS | Progress: (8/20) | 9.38 s
[Task 19/25] Current/Best: 19.75/ 21.87 GFLOPS | Progress: (12/20) | 12.19 s
[Task 19/25] Current/Best: 13.49/ 22.14 GFLOPS | Progress: (16/20) | 15.11 s
[Task 19/25] Current/Best: 2.70/ 23.83 GFLOPS | Progress: (20/20) | 17.95 s Done.
+
[Task 20/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 20/25] Current/Best: 8.91/ 14.85 GFLOPS | Progress: (4/20) | 3.30 s Done.
Done.
-
[Task 20/25] Current/Best: 10.00/ 15.09 GFLOPS | Progress: (8/20) | 6.83 s
[Task 20/25] Current/Best: 2.32/ 16.67 GFLOPS | Progress: (12/20) | 10.76 s
[Task 20/25] Current/Best: 12.55/ 16.67 GFLOPS | Progress: (16/20) | 14.36 s
[Task 20/25] Current/Best: 12.99/ 21.93 GFLOPS | Progress: (20/20) | 16.43 s
[Task 21/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 21/25] Current/Best: 6.39/ 17.73 GFLOPS | Progress: (4/20) | 3.27 s
[Task 21/25] Current/Best: 14.59/ 17.73 GFLOPS | Progress: (8/20) | 4.83 s
[Task 21/25] Current/Best: 1.61/ 17.73 GFLOPS | Progress: (12/20) | 6.98 s
[Task 21/25] Current/Best: 18.07/ 18.07 GFLOPS | Progress: (16/20) | 10.45 s
[Task 21/25] Current/Best: 4.45/ 18.07 GFLOPS | Progress: (20/20) | 17.58 s
[Task 22/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 22/25] Current/Best: 2.70/ 16.97 GFLOPS | Progress: (4/20
) | 2.71 s
[Task 22/25] Current/Best: 8.66/ 21.87 GFLOPS | Progress: (8/20) | 4.70 s
[Task 22/25] Current/Best: 20.03/ 21.87 GFLOPS | Progress: (12/20) | 7.02 s
[Task 22/25] Current/Best: 15.31/ 21.87 GFLOPS | Progress: (16/20) | 9.06 s
[Task 22/25] Current/Best: 13.64/ 21.87 GFLOPS | Progress: (20/20) | 10.81 s Done.
-
[Task 23/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 23/25] Current/Best: 17.35/ 20.28 GFLOPS | Progress: (4/20) | 3.28 s
[Task 23/25] Current/Best: 15.41/ 20.28 GFLOPS | Progress: (8/20) | 6.60 s
[Task 23/25] Current/Best: 20.81/ 21.08 GFLOPS | Progress: (12/20) | 8.42 s
[Task 23/25] Current/Best: 6.28/ 21.08 GFLOPS | Progress: (16/20) | 15.43 s
[Task 23/25] Current/Best: 7.59/ 21.08 GFLOPS | Progress: (20/20) | 19.67 s Done.
-
[Task 24/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 24/25] Current/Best: 8.33/ 8.33 GFLOPS | Progress: (4/20) | 11.85 s
[Task 24/25] Current/Best: 2.11/ 8.33 GFLOPS | Progress: (8/20) | 22.88 s
[Task 24/25] Current/Best: 4.18/ 8.33 GFLOPS | Progress: (12/20) | 34.47 s Done.
-
[Task 24/25] Current/Best: 6.83/ 8.56 GFLOPS | Progress: (16/20) | 39.88 s
[Task 24/25] Current/Best: 3.27/ 8.95 GFLOPS | Progress: (20/20) | 45.90 s Done.
-
[Task 25/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 25/25] Current/Best: 1.54/ 2.89 GFLOPS | Progress: (4/20) | 11.62 s
[Task 25/25] Current/Best: 5.78/ 7.72 GFLOPS | Progress: (8/20) | 22.90 s
[Task 25/25] Current/Best: 5.83/ 7.72 GFLOPS | Progress: (12/20) | 34.21 s
[Task 25/25] Current/Best: 5.64/ 9.20 GFLOPS | Progress: (16/20) | 36.10 s
[Task 25/25] Current/Best: 2.89/ 9.20 GFLOPS | Progress: (20/20) | 46.79 s
+
[Task 20/25] Current/Best: 9.60/ 14.85 GFLOPS | Progress: (8/20) | 6.78 s
[Task 20/25] Current/Best: 2.25/ 16.51 GFLOPS | Progress: (12/20) | 10.74 s
[Task 20/25] Current/Best: 12.32/ 16.51 GFLOPS | Progress: (16/20) | 14.41 s
[Task 20/25] Current/Best: 12.80/ 21.90 GFLOPS | Progress: (20/20) | 16.53 s
[Task 21/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 21/25] Current/Best: 6.42/ 17.66 GFLOPS | Progress: (4/20) | 3.22 s
[Task 21/25] Current/Best: 14.66/ 17.66 GFLOPS | Progress: (8/20) | 4.79 s
[Task 21/25] Current/Best: 1.61/ 17.66 GFLOPS | Progress: (12/20) | 6.92 s
[Task 21/25] Current/Best: 17.58/ 17.66 GFLOPS | Progress: (16/20) | 10.36 s
[Task 21/25] Current/Best: 4.46/ 17.66 GFLOPS | Progress: (20/20) | 17.44 s
[Task 22/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 22/25] Current/Best: 2.69/ 16.84 GFLOPS | Progress: (4/20
) | 2.70 s
[Task 22/25] Current/Best: 8.60/ 22.09 GFLOPS | Progress: (8/20) | 4.69 s
[Task 22/25] Current/Best: 19.94/ 22.09 GFLOPS | Progress: (12/20) | 7.02 s
[Task 22/25] Current/Best: 14.13/ 22.09 GFLOPS | Progress: (16/20) | 9.06 s
[Task 22/25] Current/Best: 13.38/ 22.09 GFLOPS | Progress: (20/20) | 10.79 s Done.
+
[Task 23/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 23/25] Current/Best: 17.58/ 20.92 GFLOPS | Progress: (4/20) | 3.24 s
[Task 23/25] Current/Best: 15.72/ 20.92 GFLOPS | Progress: (8/20) | 6.59 s
[Task 23/25] Current/Best: 20.98/ 21.77 GFLOPS | Progress: (12/20) | 8.40 s
[Task 23/25] Current/Best: 6.38/ 21.77 GFLOPS | Progress: (16/20) | 15.48 s
[Task 23/25] Current/Best: 7.97/ 21.77 GFLOPS | Progress: (20/20) | 19.69 s Done.
+
[Task 24/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 24/25] Current/Best: 8.20/ 8.20 GFLOPS | Progress: (4/20) | 11.79 s
[Task 24/25] Current/Best: 3.61/ 8.20 GFLOPS | Progress: (8/20) | 23.03 s
[Task 24/25] Current/Best: 4.31/ 8.20 GFLOPS | Progress: (12/20) | 33.75 s Done.
+
[Task 24/25] Current/Best: 6.20/ 8.65 GFLOPS | Progress: (16/20) | 39.11 s
[Task 24/25] Current/Best: 3.38/ 8.86 GFLOPS | Progress: (20/20) | 45.06 s Done.
+
[Task 25/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 25/25] Current/Best: 1.55/ 2.82 GFLOPS | Progress: (4/20) | 11.59 s
[Task 25/25] Current/Best: 6.07/ 8.14 GFLOPS | Progress: (8/20) | 22.83 s
[Task 25/25] Current/Best: 5.85/ 8.14 GFLOPS | Progress: (12/20) | 34.31 s
[Task 25/25] Current/Best: 5.86/ 8.96 GFLOPS | Progress: (16/20) | 36.22 s
[Task 25/25] Current/Best: 2.85/ 8.96 GFLOPS | Progress: (20/20) | 46.88 s
@@ -748,8 +748,8 @@ improvement in comparing the optimized model to the unoptimized model.
.. code-block:: none
- optimized: {'mean': 415.7589847399868, 'median': 415.6028793999212, 'std': 0.6730953304662574}
- unoptimized: {'mean': 496.0260501400626, 'median': 495.76679750007315, 'std': 0.7690579082579676}
+ optimized: {'mean': 407.47772763000285, 'median': 407.2680166999817, 'std': 1.2066755995795366}
+ unoptimized: {'mean': 496.5773109599968, 'median': 496.0773057999859, 'std': 2.0554179938332986}
@@ -772,7 +772,7 @@ profiling/benchmarking.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 10 minutes 22.517 seconds)
+ **Total running time of the script:** ( 10 minutes 12.924 seconds)
.. _sphx_glr_download_tutorial_autotvm_relay_x86.py:
diff --git a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
index de74183bb..6c9e8cfe1 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -282,7 +282,7 @@ device and returns the measured cost. Network overhead is excluded.
.. code-block:: none
- 1.233e-07 secs/op
+ 1.288e-07 secs/op
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index 9b7ac6cd5..725c9b245 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -263,7 +263,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
.. code-block:: none
- [stage(a, placeholder(a, 0x1fd622b0)), stage(b, placeholder(b, 0x19f7bf10)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
+ [stage(a, placeholder(a, 0x21e33130)), stage(b, placeholder(b, 0x21767210)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 3b82f9a56..d66aa4ad8 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,30 +5,30 @@
Computation times
=================
-**13:32.702** total execution time for **tutorial** files:
+**13:26.631** total execution time for **tutorial** files:
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``) | 10:22.517 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``) | 10:12.924 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:10.743 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:12.481 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``) | 01:01.893 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``) | 01:03.068 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``) | 00:30.730 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``) | 00:30.244 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``) | 00:25.151 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``) | 00:26.223 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``) | 00:00.781 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``) | 00:00.807 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``) | 00:00.711 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``) | 00:00.710 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.170 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.167 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``) | 00:00.005 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``) | 00:00.001 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``) | 00:00.001 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_tutorial_install.py` (``install.py``) | 00:00.001 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``) | 00:00.001 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``) | 00:00.001 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index b225e20fb..9bc8deb2d 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -301,8 +301,8 @@ helper function to run a profile of the TVM generated code.
.. code-block:: none
- Numpy running time: 0.000007
- naive: 0.000007
+ Numpy running time: 0.000011
+ naive: 0.000014
@@ -403,7 +403,7 @@ compile and run this new schedule with the parallel operation applied:
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- parallel: 0.000010
+ parallel: 0.000012
@@ -460,7 +460,7 @@ factor to be the number of threads on your CPU.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- vector: 0.000025
+ vector: 0.000045
@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
buffers = {A: Buffer(A_2: Pointer(float32), float32, [(stride: int32*n: int32)], [], type="auto"),
@@ -512,10 +512,10 @@ We can now compare the different schedules
.. code-block:: none
Operator Timing Performance
- numpy 7.119279998732963e-06 1.0
- naive 6.715100000000001e-06 0.9432274051863538
- parallel 9.5497e-06 1.3413856459781865
- vector 2.45926e-05 3.454366172474858
+ numpy 1.1285440000392556e-05 1.0
+ naive 1.3775299999999998e-05 1.2206258683330764
+ parallel 1.23541e-05 1.0946936937833414
+ vector 4.48431e-05 3.973535812377733
@@ -936,7 +936,7 @@ matrix multiplication.
.. code-block:: none
- Numpy running time: 0.018598
+ Numpy running time: 0.018519
@@ -996,7 +996,7 @@ optimizations.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- none: 3.485951
+ none: 3.523842
@@ -1101,7 +1101,7 @@ schedule.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- blocking: 0.301949
+ blocking: 0.306658
@@ -1199,7 +1199,7 @@ already cache friendly from our previous optimizations.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- vectorization: 0.339033
+ vectorization: 0.336926
@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1275,7 +1275,7 @@ more cache friendly.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- loop permutation: 0.115090
+ loop permutation: 0.115319
@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1376,7 +1376,7 @@ optimized schedule.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- array packing: 0.108705
+ array packing: 0.120749
@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1471,7 +1471,7 @@ to `C` when all the block results are ready.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- block caching: 0.111506
+ block caching: 0.137461
@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1559,7 +1559,7 @@ of thread-level parallelization.
/workspace/python/tvm/driver/build_module.py:268: UserWarning: target_host parameter is going to be deprecated. Please pass in tvm.target.Target(target, host=target_host) instead.
"target_host parameter is going to be deprecated. "
- parallelization: 0.145227
+ parallelization: 0.160951
@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1640,13 +1640,13 @@ working, we can compare the results.
.. code-block:: none
Operator Timing Performance
- none 3.4859510278 1.0
- blocking 0.30194886190000003 0.08661879053721572
- vectorization 0.33903336399999995 0.09725706451302774
- loop permutation 0.11508995150000001 0.033015366705433556
- array packing 0.10870517359999998 0.03118379252407465
- block caching 0.1115061852 0.031987306852779306
- parallelization 0.14522711979999997 0.041660688472624205
+ none 3.5238420772 1.0
+ blocking 0.3066582922 0.08702384655207557
+ vectorization 0.3369259984 0.09561325139397765
+ loop permutation 0.11531887360000001 0.032725323971280494
+ array packing 0.1207486306 0.03426618672308531
+ block caching 0.1374608887 0.03900881074932412
+ parallelization 0.1609505942 0.04567474667533605
@@ -1688,7 +1688,7 @@ the computation for specific platforms.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 1.893 seconds)
+ **Total running time of the script:** ( 1 minutes 3.068 seconds)
.. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
diff --git a/docs/commit_hash b/docs/commit_hash
index 9b7f276bb..369e789cd 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-85624ff6677c435d2d92533fbfcffcb4da5b040e
+39ffe0a5ce14c2105b7d48ee420e82e194787d8f
diff --git a/docs/genindex.html b/docs/genindex.html
index 1e77fd302..5569f9448 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -2919,6 +2919,10 @@
<li><a href="reference/api/python/runtime.html#tvm.runtime.Object">Object (class in tvm.runtime)</a>
</li>
<li><a href="reference/api/python/runtime.html#tvm.runtime.ObjectGeneric">ObjectGeneric (class in tvm.runtime)</a>
+</li>
+ <li><a href="reference/api/python/runtime.html#tvm.runtime.ObjectPath">ObjectPath (class in tvm.runtime)</a>
+</li>
+ <li><a href="reference/api/python/runtime.html#tvm.runtime.ObjectPathPair">ObjectPathPair (class in tvm.runtime)</a>
</li>
<li><a href="reference/api/python/tir.html#tvm.tir.Buffer.offset_of">offset_of() (tvm.tir.Buffer method)</a>
</li>
@@ -2937,11 +2941,11 @@
<li><a href="reference/api/python/runtime.html#tvm.runtime.opencl">opencl() (in module tvm.runtime)</a>
</li>
<li><a href="reference/api/python/error.html#tvm.error.OpError">OpError</a>
-</li>
- <li><a href="reference/api/python/error.html#tvm.error.OpNotImplemented">OpNotImplemented</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="reference/api/python/error.html#tvm.error.OpNotImplemented">OpNotImplemented</a>
+</li>
<li><a href="reference/api/python/contrib.html#tvm.contrib.spirv.optimize">optimize() (in module tvm.contrib.spirv)</a>
<ul>
diff --git a/docs/how_to/compile_models/from_darknet.html b/docs/how_to/compile_models/from_darknet.html
index b79d4c383..0c9a9aff0 100644
--- a/docs/how_to/compile_models/from_darknet.html
+++ b/docs/how_to/compile_models/from_darknet.html
@@ -574,7 +574,6 @@ class:['truck 0.9266'] left:471 top:83 right:689 bottom:169
class:['bicycle 0.9984'] left:111 top:113 right:577 bottom:447
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 2.892 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-darknet-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/7716f96385bd5abb6e822041e285be54/from_darknet.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_darknet.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index d24e7e6e2..fd6e543e2 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -427,7 +427,7 @@ to download the full example code</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"x"</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#tuple" title="builtins.tuple" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">x</span><span class="o">.</span><span class="n">shape</span></a><span class="p">)</span>
</pre></div>
</div>
-<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip4f4ceae7-587c-407b-baa5-3c39fbb298a2 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip0d3a0413-fa36-45cf-a8bc-5f7830b62c7c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
x (1, 3, 224, 224)
</pre></div>
</div>
diff --git a/docs/how_to/compile_models/from_oneflow.html b/docs/how_to/compile_models/from_oneflow.html
index d18b1a3e4..55f86475c 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -432,13 +432,11 @@ python3 -m pip install -f https://release.oneflow.info <span class="nv">oneflow<
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: "https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip" to /workspace/.oneflow/flowvision_cache/resnet18.zip
0%| | 0.00/41.5M [00:00<?, ?B/s]
- 15%|#5 | 6.33M/41.5M [00:00<00:01, 25.8MB/s]
- 21%|##1 | 8.80M/41.5M [00:00<00:01, 22.8MB/s]
- 39%|###8 | 16.0M/41.5M [00:00<00:00, 30.3MB/s]
- 58%|#####7 | 24.0M/41.5M [00:00<00:00, 36.1MB/s]
- 77%|#######7 | 32.1M/41.5M [00:00<00:00, 46.1MB/s]
- 96%|#########6| 40.0M/41.5M [00:01<00:00, 48.6MB/s]
-100%|##########| 41.5M/41.5M [00:01<00:00, 41.5MB/s]
+ 24%|##4 | 10.0M/41.5M [00:00<00:00, 105MB/s]
+ 50%|####9 | 20.7M/41.5M [00:00<00:00, 109MB/s]
+ 75%|#######4 | 31.0M/41.5M [00:00<00:00, 80.3MB/s]
+ 95%|#########4| 39.4M/41.5M [00:00<00:00, 69.5MB/s]
+100%|##########| 41.5M/41.5M [00:00<00:00, 76.1MB/s]
</pre></div>
</div>
</div>
diff --git a/docs/how_to/compile_models/from_pytorch.html b/docs/how_to/compile_models/from_pytorch.html
index c6bdd62d1..3e1b7fc19 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -414,9 +414,9 @@ be unstable.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
0%| | 0.00/44.7M [00:00<?, ?B/s]
- 39%|###8 | 17.4M/44.7M [00:00<00:00, 182MB/s]
- 94%|#########4| 42.1M/44.7M [00:00<00:00, 227MB/s]
-100%|##########| 44.7M/44.7M [00:00<00:00, 223MB/s]
+ 34%|###3 | 15.1M/44.7M [00:00<00:00, 159MB/s]
+ 81%|######## | 36.1M/44.7M [00:00<00:00, 195MB/s]
+100%|##########| 44.7M/44.7M [00:00<00:00, 194MB/s]
</pre></div>
</div>
</div>
diff --git a/docs/how_to/compile_models/from_tensorflow.html b/docs/how_to/compile_models/from_tensorflow.html
index 836d13ffa..845322d59 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -636,7 +636,7 @@ banana (score = 0.00022)
desk (score = 0.00019)
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 3.505 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 1.957 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-tensorflow-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/7f1d3d1b878694c201c614c807cdebc8/from_tensorflow.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_tensorflow.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/sg_execution_times.html b/docs/how_to/compile_models/sg_execution_times.html
index cfd6a6433..0e9252653 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-compile-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>05:04.981</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>04:55.097</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 81%" />
@@ -336,43 +336,43 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></td>
-<td><p>01:03.505</p></td>
+<td><p>01:01.957</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></td>
-<td><p>01:02.892</p></td>
+<td><p>00:59.287</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></td>
-<td><p>00:40.122</p></td>
+<td><p>00:38.909</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="from_oneflow.html#sphx-glr-how-to-compile-models-from-oneflow-py"><span class="std std-ref">Compile OneFlow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_oneflow.py</span></code>)</p></td>
-<td><p>00:28.902</p></td>
+<td><p>00:27.125</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="from_mxnet.html#sphx-glr-how-to-compile-models-from-mxnet-py"><span class="std std-ref">Compile MXNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_mxnet.py</span></code>)</p></td>
-<td><p>00:25.848</p></td>
+<td><p>00:25.418</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="from_tflite.html#sphx-glr-how-to-compile-models-from-tflite-py"><span class="std std-ref">Compile TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tflite.py</span></code>)</p></td>
-<td><p>00:24.301</p></td>
+<td><p>00:24.555</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="from_coreml.html#sphx-glr-how-to-compile-models-from-coreml-py"><span class="std std-ref">Compile CoreML Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_coreml.py</span></code>)</p></td>
-<td><p>00:22.366</p></td>
+<td><p>00:22.012</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="from_pytorch.html#sphx-glr-how-to-compile-models-from-pytorch-py"><span class="std std-ref">Compile PyTorch Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_pytorch.py</span></code>)</p></td>
-<td><p>00:19.868</p></td>
+<td><p>00:19.012</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="from_keras.html#sphx-glr-how-to-compile-models-from-keras-py"><span class="std std-ref">Compile Keras Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_keras.py</span></code>)</p></td>
-<td><p>00:14.765</p></td>
+<td><p>00:14.555</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="from_onnx.html#sphx-glr-how-to-compile-models-from-onnx-py"><span class="std std-ref">Compile ONNX Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_onnx.py</span></code>)</p></td>
-<td><p>00:02.412</p></td>
+<td><p>00:02.266</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>
diff --git a/docs/how_to/deploy_models/deploy_model_on_android.html b/docs/how_to/deploy_models/deploy_model_on_android.html
index d816f62fe..c7ddf50da 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -653,7 +653,7 @@ to the remote android device.</p>
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 16.0346 16.0488 16.1480 15.9075 0.0729
+ 16.5360 16.5208 17.2108 15.5571 0.4012
</pre></div>
</div>
</div>
diff --git a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
index 4e89e45b7..3e3225c5b 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -436,14 +436,15 @@ be unstable.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
0%| | 0.00/170M [00:00<?, ?B/s]
- 12%|#1 | 19.9M/170M [00:00<00:00, 208MB/s]
- 26%|##5 | 43.7M/170M [00:00<00:00, 233MB/s]
- 41%|#### | 69.1M/170M [00:00<00:00, 248MB/s]
- 55%|#####5 | 94.0M/170M [00:00<00:00, 253MB/s]
- 70%|######9 | 118M/170M [00:00<00:00, 254MB/s]
- 84%|########3 | 143M/170M [00:00<00:00, 166MB/s]
- 95%|#########5| 162M/170M [00:00<00:00, 165MB/s]
-100%|##########| 170M/170M [00:00<00:00, 194MB/s]
+ 2%|2 | 4.05M/170M [00:00<00:04, 42.4MB/s]
+ 5%|5 | 9.16M/170M [00:00<00:03, 49.0MB/s]
+ 20%|## | 34.6M/170M [00:00<00:00, 148MB/s]
+ 36%|###6 | 61.2M/170M [00:00<00:00, 200MB/s]
+ 51%|#####1 | 87.3M/170M [00:00<00:00, 226MB/s]
+ 67%|######6 | 114M/170M [00:00<00:00, 244MB/s]
+ 83%|########2 | 141M/170M [00:00<00:00, 256MB/s]
+ 99%|#########8| 167M/170M [00:00<00:00, 264MB/s]
+100%|##########| 170M/170M [00:00<00:00, 220MB/s]
/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:3878: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
for i in range(dim)
/usr/local/lib/python3.7/dist-packages/torchvision/models/detection/anchor_utils.py:127: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
@@ -538,7 +539,7 @@ torchvision rcnn models.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Get 9 valid boxes
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes 0.372 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 54.051 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-object-detection-pytorch-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/7795da4b258c8feff986668b95ef57ad/deploy_object_detection_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_object_detection_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized.html b/docs/how_to/deploy_models/deploy_prequantized.html
index ace4152f8..58a1955eb 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -480,15 +480,7 @@ training. Other models require a full post training calibration.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
0%| | 0.00/13.6M [00:00<?, ?B/s]
- 0%| | 8.00k/13.6M [00:00<03:34, 66.3kB/s]
- 12%|#1 | 1.56M/13.6M [00:00<00:01, 8.58MB/s]
- 18%|#8 | 2.45M/13.6M [00:00<00:01, 6.62MB/s]
- 31%|###1 | 4.21M/13.6M [00:00<00:00, 10.3MB/s]
- 47%|####7 | 6.38M/13.6M [00:00<00:00, 14.1MB/s]
- 59%|#####8 | 7.94M/13.6M [00:00<00:00, 14.5MB/s]
- 80%|######## | 10.9M/13.6M [00:00<00:00, 19.3MB/s]
- 95%|#########4| 12.8M/13.6M [00:00<00:00, 19.6MB/s]
-100%|##########| 13.6M/13.6M [00:00<00:00, 14.4MB/s]
+100%|##########| 13.6M/13.6M [00:00<00:00, 158MB/s]
</pre></div>
</div>
</div>
@@ -577,7 +569,7 @@ output values are identical out of 1000 outputs from mobilenet v2.</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)
- 90.4845 90.4181 93.3068 90.3024 0.3115
+ 90.3868 90.2162 94.0398 89.9375 0.5140
</pre></div>
</div>
<div class="admonition note">
@@ -616,7 +608,7 @@ This includes support for the VNNI 8 bit dot product instruction (CascadeLake or
<div class="section" id="deploy-a-quantized-tflite-model">
<h2>Deploy a quantized TFLite Model<a class="headerlink" href="#deploy-a-quantized-tflite-model" title="Permalink to this headline">¶</a></h2>
<p>TODO</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 12.603 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 7.802 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/fb8217c13f4351224c6cf3aacf1a87fc/deploy_prequantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized_tflite.html b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
index 418f4635f..0e9e58c92 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -573,7 +573,7 @@ TFLite Top-5 labels: [387 102 386 341 349]
</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)
- 121.3248 121.3073 121.9176 120.7017 0.2461
+ 119.5377 119.6115 122.8401 117.5028 0.7521
</pre></div>
</div>
<div class="admonition note">
@@ -601,7 +601,7 @@ network for ARM CPU</span></a>.</p></li>
</ul>
</div></blockquote>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 54.400 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 52.330 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-tflite-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/56691c7a27d45da61d112276334640d3/deploy_prequantized_tflite.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized_tflite.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_quantized.html b/docs/how_to/deploy_models/deploy_quantized.html
index 4b876ce6f..541173eb4 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -509,7 +509,7 @@ for calibration. But the accuracy might be impacted.</p>
DeprecationWarning,
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 33.067 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 27.919 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-quantized-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/7810ecf51bfc05f7d5e8a400ac3e815d/deploy_quantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_quantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index 26c3bef49..c8cdd585d 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -441,25 +441,23 @@ to your device.</p>
Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
0%| | 0/132723 [00:00<?, ?KB/s]
- 2%|1 | 2596/132723 [00:00<00:05, 25955.69KB/s]
- 6%|5 | 7901/132723 [00:00<00:02, 41887.05KB/s]
- 11%|#1 | 15221/132723 [00:00<00:02, 56179.11KB/s]
- 17%|#7 | 22652/132723 [00:00<00:01, 63334.82KB/s]
- 23%|##2 | 30031/132723 [00:00<00:01, 67102.54KB/s]
- 28%|##8 | 37546/132723 [00:00<00:01, 69833.06KB/s]
- 34%|###4 | 45162/132723 [00:00<00:01, 71888.91KB/s]
- 39%|###9 | 52351/132723 [00:00<00:01, 50650.09KB/s]
- 45%|####5 | 59854/132723 [00:01<00:01, 56563.62KB/s]
- 51%|##### | 67374/132723 [00:01<00:01, 61358.33KB/s]
- 56%|#####6 | 74729/132723 [00:01<00:00, 64634.23KB/s]
- 62%|######1 | 82113/132723 [00:01<00:00, 67186.64KB/s]
- 68%|######7 | 89646/132723 [00:01<00:00, 69495.47KB/s]
- 73%|#######3 | 97133/132723 [00:01<00:00, 71043.33KB/s]
- 79%|#######8 | 104780/132723 [00:01<00:00, 72619.64KB/s]
- 85%|########4 | 112330/132723 [00:01<00:00, 73466.13KB/s]
- 90%|######### | 119774/132723 [00:01<00:00, 65829.20KB/s]
- 96%|#########5| 127266/132723 [00:01<00:00, 68318.77KB/s]
-100%|##########| 132723/132723 [00:02<00:00, 64880.48KB/s]
+ 5%|4 | 6260/132723 [00:00<00:02, 62594.24KB/s]
+ 11%|#1 | 14705/132723 [00:00<00:01, 75446.53KB/s]
+ 17%|#6 | 22250/132723 [00:00<00:02, 52510.37KB/s]
+ 23%|##3 | 30635/132723 [00:00<00:01, 62288.79KB/s]
+ 28%|##8 | 37491/132723 [00:00<00:01, 58814.66KB/s]
+ 35%|###4 | 45895/132723 [00:00<00:01, 66065.19KB/s]
+ 40%|#### | 53327/132723 [00:00<00:01, 68466.77KB/s]
+ 47%|####6 | 61763/132723 [00:00<00:00, 73132.78KB/s]
+ 53%|#####2 | 70250/132723 [00:01<00:00, 76600.68KB/s]
+ 59%|#####9 | 78718/132723 [00:01<00:00, 78998.41KB/s]
+ 66%|######5 | 87198/132723 [00:01<00:00, 80720.14KB/s]
+ 72%|#######2 | 95617/132723 [00:01<00:00, 81753.42KB/s]
+ 78%|#######8 | 103865/132723 [00:01<00:00, 72600.52KB/s]
+ 85%|########4 | 112420/132723 [00:01<00:00, 76151.43KB/s]
+ 91%|######### | 120235/132723 [00:01<00:00, 66843.54KB/s]
+ 97%|#########6| 128715/132723 [00:01<00:00, 71499.62KB/s]
+100%|##########| 132723/132723 [00:01<00:00, 70947.62KB/s]
</pre></div>
</div>
<p>Create TVM runtime and do inference
@@ -502,7 +500,7 @@ Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from h
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
-<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 36.326 seconds)</p>
+<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 34.221 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-ssd-gluoncv-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/cccb17d28e5e8b2e94ea8cd5ec59f6ed/deploy_ssd_gluoncv.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_ssd_gluoncv.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/sg_execution_times.html b/docs/how_to/deploy_models/sg_execution_times.html
index fcd77c55b..57f1f52b3 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-deploy-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>11:31.997</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>11:08.598</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 86%" />
@@ -336,35 +336,35 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="deploy_object_detection_pytorch.html#sphx-glr-how-to-deploy-models-deploy-object-detection-pytorch-py"><span class="std std-ref">Compile PyTorch Object Detection Models</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_object_detection_pytorch.py</span></code>)</p></td>
-<td><p>03:00.372</p></td>
+<td><p>02:54.051</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="deploy_ssd_gluoncv.html#sphx-glr-how-to-deploy-models-deploy-ssd-gluoncv-py"><span class="std std-ref">Deploy Single Shot Multibox Detector(SSD) model</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_ssd_gluoncv.py</span></code>)</p></td>
-<td><p>02:36.326</p></td>
+<td><p>02:34.221</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized_tflite.html#sphx-glr-how-to-deploy-models-deploy-prequantized-tflite-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM - Part 3 (TFLite)</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized_tflite.py</span></code>)</p></td>
-<td><p>01:54.400</p></td>
+<td><p>01:52.330</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="deploy_quantized.html#sphx-glr-how-to-deploy-models-deploy-quantized-py"><span class="std std-ref">Deploy a Quantized Model on Cuda</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_quantized.py</span></code>)</p></td>
-<td><p>01:33.067</p></td>
+<td><p>01:27.919</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized.html#sphx-glr-how-to-deploy-models-deploy-prequantized-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized.py</span></code>)</p></td>
-<td><p>01:12.603</p></td>
+<td><p>01:07.802</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_android.html#sphx-glr-how-to-deploy-models-deploy-model-on-android-py"><span class="std std-ref">Deploy the Pretrained Model on Android</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_android.py</span></code>)</p></td>
-<td><p>00:30.367</p></td>
+<td><p>00:28.637</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="deploy_model_on_nano.html#sphx-glr-how-to-deploy-models-deploy-model-on-nano-py"><span class="std std-ref">Deploy the Pretrained Model on Jetson Nano</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_nano.py</span></code>)</p></td>
-<td><p>00:22.687</p></td>
+<td><p>00:22.013</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_rasp.html#sphx-glr-how-to-deploy-models-deploy-model-on-rasp-py"><span class="std std-ref">Deploy the Pretrained Model on Raspberry Pi</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_rasp.py</span></code>)</p></td>
-<td><p>00:22.168</p></td>
+<td><p>00:21.619</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="deploy_sparse.html#sphx-glr-how-to-deploy-models-deploy-sparse-py"><span class="std std-ref">Deploy a Hugging Face Pruned Model on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_sparse.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/bring_your_own_datatypes.html b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
index 360b60b69..bdc4372ea 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -612,7 +612,7 @@ In this alpha state of the Bring Your Own Datatypes framework, we have not imple
<span class="n">module</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#dict" title="builtins.dict" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">params</span></a> <span class="o">=</span> <span class="n">get_mobilenet</span><span class="p">()</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip9fd6de21-3bef-443a-a676-ffa07c4e8ea4 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipafe55a5b-9758-4ad4-a719-42954332a688 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
</pre></div>
</div>
<p>It’s easy to execute MobileNet with native TVM:</p>
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index 50a858423..3e6b22d55 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-extend-tvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:41.300</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:39.991</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 84%" />
@@ -336,15 +336,15 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="bring_your_own_datatypes.html#sphx-glr-how-to-extend-tvm-bring-your-own-datatypes-py"><span class="std std-ref">Bring Your Own Datatypes to TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_datatypes.py</span></code>)</p></td>
-<td><p>00:38.108</p></td>
+<td><p>00:36.919</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="use_pass_instrument.html#sphx-glr-how-to-extend-tvm-use-pass-instrument-py"><span class="std std-ref">How to Use TVM Pass Instrument</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_instrument.py</span></code>)</p></td>
-<td><p>00:02.236</p></td>
+<td><p>00:02.157</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="use_pass_infra.html#sphx-glr-how-to-extend-tvm-use-pass-infra-py"><span class="std std-ref">How to Use TVM Pass Infra</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_infra.py</span></code>)</p></td>
-<td><p>00:00.947</p></td>
+<td><p>00:00.908</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="low_level_custom_pass.html#sphx-glr-how-to-extend-tvm-low-level-custom-pass-py"><span class="std std-ref">Writing a Customized Pass</span></a> (<code class="docutils literal notranslate"><span class="pre">low_level_custom_pass.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index a908ff43d..4e2fee758 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -512,10 +512,10 @@ profile the execution time of each passes.</p>
</pre></div>
</div>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 6425us [6425us] (45.35%; 45.35%)
-FoldScaleAxis: 7743us [5us] (54.65%; 54.65%)
- FoldConstant: 7737us [1617us] (54.61%; 99.93%)
- InferType: 6121us [6121us] (43.20%; 79.11%)
+InferType: 6551us [6551us] (44.36%; 44.36%)
+FoldScaleAxis: 8216us [6us] (55.64%; 55.64%)
+ FoldConstant: 8211us [1641us] (55.60%; 99.93%)
+ InferType: 6569us [6569us] (44.49%; 80.01%)
</pre></div>
</div>
</div>
@@ -537,10 +537,10 @@ Refer to following sections and <a class="reference internal" href="../../refere
</pre></div>
</div>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 6185us [6185us] (44.65%; 44.65%)
-FoldScaleAxis: 7669us [5us] (55.35%; 55.35%)
- FoldConstant: 7664us [1585us] (55.32%; 99.94%)
- InferType: 6080us [6080us] (43.88%; 79.33%)
+InferType: 6185us [6185us] (44.73%; 44.73%)
+FoldScaleAxis: 7643us [5us] (55.27%; 55.27%)
+ FoldConstant: 7638us [1565us] (55.24%; 99.94%)
+ InferType: 6073us [6073us] (43.92%; 79.51%)
</pre></div>
</div>
<p>Register empty list to clear existing instruments.</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index fb4a961e6..06f6934c6 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -564,7 +564,7 @@ latency of convolution.</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Convolution: </span><span class="si">%f</span><span class="s2"> ms"</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">*</span> <span cl [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.189685 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 39.209268 ms
</pre></div>
</div>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-optimize-operators-opt-conv-cuda-py">
diff --git a/docs/how_to/optimize_operators/opt_conv_tensorcore.html b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
index c4f502d87..c23095a74 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -906,7 +906,7 @@ be able to run on our build server</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"conv2d with tensor core: </span><span class="si">%f</span><span class="s2"> ms"</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">* [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 7.252896 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 9.369802 ms
</pre></div>
</div>
</div>
diff --git a/docs/how_to/optimize_operators/opt_gemm.html b/docs/how_to/optimize_operators/opt_gemm.html
index 1062b2d7e..d9262b2dc 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -461,8 +461,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
<span class="nb">print</span><span class="p">(</span><span class="s2">"Baseline: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.019312
-Baseline: 3.505687
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.017842
+Baseline: 3.533330
</pre></div>
</div>
<p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -522,7 +522,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
<span class="nb">print</span><span class="p">(</span><span class="s2">"Opt1: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.319325
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.296766
</pre></div>
</div>
<p>Here is the generated IR after blocking.</p>
@@ -589,7 +589,7 @@ vastly.</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Opt2: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.344203
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.330917
</pre></div>
</div>
<p>Here is the generated IR after vectorization.</p>
@@ -650,7 +650,7 @@ the access pattern for A matrix is more cache friendly.</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Opt3: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.118514
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.114255
</pre></div>
</div>
<p>Here is the generated IR after loop permutation.</p>
@@ -733,7 +733,7 @@ flattening.</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Opt4: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.111258
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.110523
</pre></div>
</div>
<p>Here is the generated IR after array packing.</p>
@@ -819,7 +819,7 @@ write to C when all the block results are ready.</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Opt5: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.112601
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.113233
</pre></div>
</div>
<p>Here is the generated IR after blocking.</p>
@@ -909,7 +909,7 @@ write to C when all the block results are ready.</p>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Opt6: </span><span class="si">%f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">opt6_time</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.145577
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.145958
</pre></div>
</div>
<p>Here is the generated IR after parallelization.</p>
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index c2e86425d..694273381 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-optimize-operators-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:35.365</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:34.706</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 83%" />
@@ -336,15 +336,15 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="opt_gemm.html#sphx-glr-how-to-optimize-operators-opt-gemm-py"><span class="std std-ref">How to optimize GEMM on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_gemm.py</span></code>)</p></td>
-<td><p>00:32.964</p></td>
+<td><p>00:32.436</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="opt_conv_tensorcore.html#sphx-glr-how-to-optimize-operators-opt-conv-tensorcore-py"><span class="std std-ref">How to optimize convolution using TensorCores</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_tensorcore.py</span></code>)</p></td>
-<td><p>00:01.310</p></td>
+<td><p>00:01.238</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="opt_conv_cuda.html#sphx-glr-how-to-optimize-operators-opt-conv-cuda-py"><span class="std std-ref">How to optimize convolution on GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_cuda.py</span></code>)</p></td>
-<td><p>00:01.091</p></td>
+<td><p>00:01.032</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
index 818cc994d..fc1f68e98 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-tune-with-autoscheduler-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>06:06.060</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>06:12.334</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 85%" />
@@ -336,27 +336,27 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_layer_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py"><span class="std std-ref">Auto-scheduling a Convolution Layer for GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_layer_cuda.py</span></code>)</p></td>
-<td><p>03:18.676</p></td>
+<td><p>03:28.018</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tune_network_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-x86-py"><span class="std std-ref">Auto-scheduling a Neural Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_x86.py</span></code>)</p></td>
-<td><p>01:23.042</p></td>
+<td><p>01:22.102</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="tune_network_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-cuda-py"><span class="std std-ref">Auto-scheduling a Neural Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_cuda.py</span></code>)</p></td>
-<td><p>00:46.502</p></td>
+<td><p>00:45.734</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tune_sparse_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-sparse-x86-py"><span class="std std-ref">Auto-scheduling Sparse Matrix Multiplication on CPU with Custom Sketch Rule</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_sparse_x86.py</span></code>)</p></td>
-<td><p>00:19.314</p></td>
+<td><p>00:19.364</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="tune_network_mali.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-mali-py"><span class="std std-ref">Auto-scheduling a Neural Network for mali GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_mali.py</span></code>)</p></td>
-<td><p>00:09.268</p></td>
+<td><p>00:08.626</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tune_network_arm.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-arm-py"><span class="std std-ref">Auto-scheduling a Neural Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_arm.py</span></code>)</p></td>
-<td><p>00:09.259</p></td>
+<td><p>00:08.490</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
index f3e599d73..9bd6b6767 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
@@ -491,201 +491,59 @@ cooperative fetching, unrolling and operator fusion.</p>
compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute}
preflattened_buffer_map = {data_1: data_3: Buffer(data_2, float32, [1, 512, 7, 7], []), kernel_1: kernel_3: Buffer(kernel_2, float32, [512, 512, 3, 3], []), bias_1: bias_3: Buffer(bias_2, float32, [1, 512, 1, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [1, 512, 7, 7], [])} {
- attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 128;
+ attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 16;
allocate(conv2d_nchw: Pointer(local float32), float32, [2]), storage_scope = local;
- allocate(pad_temp.shared: Pointer(shared float32), float32, [5184]), storage_scope = shared;
- allocate(kernel.shared: Pointer(shared float32), float32, [2304]), storage_scope = shared;
- attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98 {
+ allocate(pad_temp.shared: Pointer(shared float32), float32, [2592]), storage_scope = shared;
+ allocate(kernel.shared: Pointer(shared float32), float32, [9216]), storage_scope = shared;
+ attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784 {
conv2d_nchw_1: Buffer(conv2d_nchw, float32, [1], [], scope="local", align=4)[0] = 0f32
conv2d_nchw_1[1] = 0f32
- for (rc.outer.outer: int32, 0, 8) {
- let cse_var_2: int32 = (rc.outer.outer*3136)
- let cse_var_1: int32 = (rc.outer.outer*576)
+ for (rc.outer.outer: int32, 0, 16) {
+ let cse_var_1: int32 = (rc.outer.outer*1568)
{
- attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1: Buffer(pad_temp.shared, float32, [5184], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((9 <= floormod(threadIdx.x_1, 81)) && (floormod(threadIdx.x_1, 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv(threadIdx.x_1, 81)*49)) + (floordiv(floormod(threadIdx.x_1, 81), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 98)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 17), 81)) && (floormod((threadIdx.x_1 + 17), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 98), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 17), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 196)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 34), 81)) && (floormod((threadIdx.x_1 + 34), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 196), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 34), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 294)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 51), 81)) && (floormod((threadIdx.x_1 + 51), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 294), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 51), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 392)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 68), 81)) && (floormod((threadIdx.x_1 + 68), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 392), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 68), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 490)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 4), 81)) && (floormod((threadIdx.x_1 + 4), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 490), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 4), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 588)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 21), 81)) && (floormod((threadIdx.x_1 + 21), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 588), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 21), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 686)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 38), 81)) && (floormod((threadIdx.x_1 + 38), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 686), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 38), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 55), 81)) && (floormod((threadIdx.x_1 + 55), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 784), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 55), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 882)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 8), 9)) && (floormod((threadIdx.x_1 + 72), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 882), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 8), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 980)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 8), 81)) && (floormod((threadIdx.x_1 + 8), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 980), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 8), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1078)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 25), 81)) && (floormod((threadIdx.x_1 + 25), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1078), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 25), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1176)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 42), 81)) && (floormod((threadIdx.x_1 + 42), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1176), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 42), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1274)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 59), 81)) && (floormod((threadIdx.x_1 + 59), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1274), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 59), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1372)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 76), 81)) && (floormod((threadIdx.x_1 + 76), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1372), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 76), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1470)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 12), 81)) && (floormod((threadIdx.x_1 + 12), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1470), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 12), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 29), 81)) && (floormod((threadIdx.x_1 + 29), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1568), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 29), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1666)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 46), 81)) && (floormod((threadIdx.x_1 + 46), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1666), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 46), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1764)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 7), 9)) && (floormod((threadIdx.x_1 + 63), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1764), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 7), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1862)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 80), 81)) && (floormod((threadIdx.x_1 + 80), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1862), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 80), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 1960)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 16), 81)) && (floormod((threadIdx.x_1 + 16), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 1960), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 16), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2058)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 33), 81)) && (floormod((threadIdx.x_1 + 33), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2058), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 33), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2156)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 50), 81)) && (floormod((threadIdx.x_1 + 50), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2156), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 50), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2254)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 67), 81)) && (floormod((threadIdx.x_1 + 67), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2254), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 67), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2352)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 3), 81)) && (floormod((threadIdx.x_1 + 3), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2352), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 3), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2450)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 20), 81)) && (floormod((threadIdx.x_1 + 20), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2450), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 20), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2548)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 37), 81)) && (floormod((threadIdx.x_1 + 37), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2548), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 37), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2646)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 6), 9)) && (floormod((threadIdx.x_1 + 54), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2646), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 6), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2744)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 71), 81)) && (floormod((threadIdx.x_1 + 71), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2744), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 71), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2842)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 7), 81)) && (floormod((threadIdx.x_1 + 7), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2842), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 7), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 2940)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 24), 81)) && (floormod((threadIdx.x_1 + 24), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 2940), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 24), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3038)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 41), 81)) && (floormod((threadIdx.x_1 + 41), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3038), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 41), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3136)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 58), 81)) && (floormod((threadIdx.x_1 + 58), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3136), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 58), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3234)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 75), 81)) && (floormod((threadIdx.x_1 + 75), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3234), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 75), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3332)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 11), 81)) && (floormod((threadIdx.x_1 + 11), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3332), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 11), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3430)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 28), 81)) && (floormod((threadIdx.x_1 + 28), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3430), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 28), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3528)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 5), 9)) && (floormod((threadIdx.x_1 + 45), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3528), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 5), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3626)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 62), 81)) && (floormod((threadIdx.x_1 + 62), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3626), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 62), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3724)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 79), 81)) && (floormod((threadIdx.x_1 + 79), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3724), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 79), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3822)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 15), 81)) && (floormod((threadIdx.x_1 + 15), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3822), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 15), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 3920)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 32), 81)) && (floormod((threadIdx.x_1 + 32), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 3920), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 32), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4018)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 49), 81)) && (floormod((threadIdx.x_1 + 49), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4018), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 49), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4116)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 66), 81)) && (floormod((threadIdx.x_1 + 66), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4116), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 66), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4214)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 2), 81)) && (floormod((threadIdx.x_1 + 2), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4214), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 2), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4312)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 19), 81)) && (floormod((threadIdx.x_1 + 19), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4312), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 19), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4410)] = @tir.if_then_else(((((1 <= floormod((floordiv(threadIdx.x_1, 9) + 4), 9)) && (floormod((threadIdx.x_1 + 36), 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4410), 81)*49)) + (floormod((floordiv(threadIdx.x_1, 9) + 4), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4508)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 53), 81)) && (floormod((threadIdx.x_1 + 53), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 8), 9))) && (floormod((threadIdx.x_1 + 8), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4508), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 53), 81), 9)*7)) + floormod((threadIdx.x_1 + 8), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4606)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 70), 81)) && (floormod((threadIdx.x_1 + 70), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4606), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 70), 81), 9)*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4704)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 6), 81)) && (floormod((threadIdx.x_1 + 6), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 6), 9))) && (floormod((threadIdx.x_1 + 6), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4704), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 6), 81), 9)*7)) + floormod((threadIdx.x_1 + 6), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4802)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 23), 81)) && (floormod((threadIdx.x_1 + 23), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 5), 9))) && (floormod((threadIdx.x_1 + 5), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4802), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 23), 81), 9)*7)) + floormod((threadIdx.x_1 + 5), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4900)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 40), 81)) && (floormod((threadIdx.x_1 + 40), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 4), 9))) && (floormod((threadIdx.x_1 + 4), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4900), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 40), 81), 9)*7)) + floormod((threadIdx.x_1 + 4), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- pad_temp.shared_1[(threadIdx.x_1 + 4998)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 57), 81)) && (floormod((threadIdx.x_1 + 57), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 4998), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 57), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
- attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- if @tir.likely((threadIdx.x_1 < 88), dtype=bool) {
- pad_temp.shared_1[(threadIdx.x_1 + 5096)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 74), 81)) && (floormod((threadIdx.x_1 + 74), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_2 + (floordiv((threadIdx.x_1 + 5096), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 74), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ pad_temp.shared_1: Buffer(pad_temp.shared, float32, [2592], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((9 <= floormod(threadIdx.x_1, 81)) && (floormod(threadIdx.x_1, 81) < 72)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[((((cse_var_1 + (floordiv(threadIdx.x_1, 81)*49)) + (floordiv(floormod(threadIdx.x_1, 81), 9)*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ pad_temp.shared_1[(threadIdx.x_1 + 784)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 55), 81)) && (floormod((threadIdx.x_1 + 55), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 1), 9))) && (floormod((threadIdx.x_1 + 1), 9) < 8)), data[((((cse_var_1 + (floordiv((threadIdx.x_1 + 784), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 55), 81), 9)*7)) + floormod((threadIdx.x_1 + 1), 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ pad_temp.shared_1[(threadIdx.x_1 + 1568)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 29), 81)) && (floormod((threadIdx.x_1 + 29), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 2), 9))) && (floormod((threadIdx.x_1 + 2), 9) < 8)), data[((((cse_var_1 + (floordiv((threadIdx.x_1 + 1568), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 29), 81), 9)*7)) + floormod((threadIdx.x_1 + 2), 9)) - 8)], 0f32, dtype=float32)
+ attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ if @tir.likely((threadIdx.x_1 < 240), dtype=bool) {
+ pad_temp.shared_1[(threadIdx.x_1 + 2352)] = @tir.if_then_else(((((9 <= floormod((threadIdx.x_1 + 3), 81)) && (floormod((threadIdx.x_1 + 3), 81) < 72)) && (1 <= floormod((threadIdx.x_1 + 3), 9))) && (floormod((threadIdx.x_1 + 3), 9) < 8)), data[((((cse_var_1 + (floordiv((threadIdx.x_1 + 2352), 81)*49)) + (floordiv(floormod((threadIdx.x_1 + 3), 81), 9)*7)) + floormod((threadIdx.x_1 + 3), 9)) - 8)], 0f32, dtype=float32)
}
- attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1: Buffer(kernel.shared, float32, [2304], [], scope="shared")[threadIdx.x_2] = kernel[(((blockIdx.x*18432) + cse_var_1) + threadIdx.x_2)]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 98)] = kernel[((((blockIdx.x*18432) + cse_var_1) + (floordiv((threadIdx.x_2 + 98), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 196)] = kernel[((((blockIdx.x*18432) + cse_var_1) + (floordiv((threadIdx.x_2 + 196), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 294)] = kernel[((((blockIdx.x*18432) + cse_var_1) + threadIdx.x_2) + 294)]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 392)] = kernel[((((blockIdx.x*18432) + cse_var_1) + (floordiv((threadIdx.x_2 + 392), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 490)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 490), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 490), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 588)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 588), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 4)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 686)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 686), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 110), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 784)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 784), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 208), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 882)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 882), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 102)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 980)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 980), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 404), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1078)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1078), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 502), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1176)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1176), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 8)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1274)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1274), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 122), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1372)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1372), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 220), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1470)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1470), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 106)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1568)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1568), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 416), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1666)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1666), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 514), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1764)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1764), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 12)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1862)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1862), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 134), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 1960)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 1960), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 232), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 2058)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 2058), 576)*4608)) + cse_var_1) + ((floordiv(threadIdx.x_2, 3) + 110)*3)) + floormod(threadIdx.x_2, 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- kernel.shared_1[(threadIdx.x_2 + 2156)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 2156), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 428), 576), 3)*3)) + floormod((threadIdx.x_2 + 2), 3))]
- attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 98;
- if @tir.likely((threadIdx.x_2 < 50), dtype=bool) {
- kernel.shared_1[(threadIdx.x_2 + 2254)] = kernel[(((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 2254), 576)*4608)) + cse_var_1) + (floordiv(floormod((threadIdx.x_2 + 526), 576), 3)*3)) + floormod((threadIdx.x_2 + 1), 3))]
+ attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 784;
+ for (ax0.ax1.fused.ax2.fused.ax3.fused.inner.s: int32, 0, 24) {
+ if @tir.likely((threadIdx.x_2 < 384), dtype=bool) {
+ let cse_var_2: int32 = floordiv(ax0.ax1.fused.ax2.fused.ax3.fused.inner.s, 3)
+ kernel.shared_1: Buffer(kernel.shared, float32, [9216], [], scope="shared")[((threadIdx.x_2*24) + ax0.ax1.fused.ax2.fused.ax3.fused.inner.s)] = kernel[((((((blockIdx.x*147456) + (floordiv(threadIdx.x_2, 12)*4608)) + (rc.outer.outer*288)) + (floordiv(((floormod(threadIdx.x_2, 12)*8) + cse_var_2), 3)*9)) + (floormod(((threadIdx.x_2*2) + cse_var_2), 3)*3)) + floormod(ax0.ax1.fused.ax2.fused.ax3.fused.inner.s, 3))]
+ }
}
- for (rc.outer.inner: int32, 0, 2) {
- for (rc.inner: int32, 0, 32) {
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9))]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1152)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 1)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 1)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1153)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 2)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 2)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 2)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1154)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 9)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 3)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 9)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1155)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 10)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 4)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 10)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1156)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 11)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 5)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 11)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1157)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 18)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 6)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 18)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1158)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 19)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 7)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 19)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1159)]))
- conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 20)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 8)]))
- conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*2592) + (rc.inner*81)) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + floormod(threadIdx.x, 7)) + 20)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*576) + (rc.outer.inner*288)) + (rc.inner*9)) + 1160)]))
+ for (rc.outer.inner: int32, 0, 4) {
+ for (ry.outer.inner: int32, 0, 3) {
+ for (rx.outer.inner: int32, 0, 3) {
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4608)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 81)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 9)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 81)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4617)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 162)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 18)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 162)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4626)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 243)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 27)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 243)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4635)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 324)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 36)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 324)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4644)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 405)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 45)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 405)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4653)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 486)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 54)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 486)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4662)]))
+ conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 567)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 63)]))
+ conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((((rc.outer.inner*648) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + (ry.outer.inner*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 567)]*kernel.shared_1[(((((floordiv(threadIdx.x, 49)*288) + (rc.outer.inner*72)) + (ry.outer.inner*3)) + rx.outer.inner) + 4671)]))
+ }
}
}
}
}
- compute[((blockIdx.x*196) + threadIdx.x)] = max((conv2d_nchw_1[0] + bias[((blockIdx.x*4) + floordiv(threadIdx.x, 49))]), 0f32)
- compute[(((blockIdx.x*196) + threadIdx.x) + 98)] = max((conv2d_nchw_1[1] + bias[(((blockIdx.x*4) + floordiv(threadIdx.x, 49)) + 2)]), 0f32)
+ compute[((blockIdx.x*1568) + threadIdx.x)] = max((conv2d_nchw_1[0] + bias[((blockIdx.x*32) + floordiv(threadIdx.x, 49))]), 0f32)
+ compute[(((blockIdx.x*1568) + threadIdx.x) + 784)] = max((conv2d_nchw_1[1] + bias[(((blockIdx.x*32) + floordiv(threadIdx.x, 49)) + 16)]), 0f32)
}
}
</pre></div>
@@ -721,7 +579,7 @@ cooperative fetching, unrolling and operator fusion.</p>
<span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.428 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.406 ms
</pre></div>
</div>
</div>
@@ -752,7 +610,7 @@ conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_
conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=1)
-conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=2)
+conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=16)
conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=2)
conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
@@ -762,18 +620,18 @@ conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, fact
conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=1)
conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=7)
conv2d_nchw_xx_o_o_o_o, conv2d_nchw_xx_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_o_i, factor=1)
-conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=32)
-conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=2)
-conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=3)
-conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
-conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=3)
-conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=1)
+conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=8)
+conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=4)
+conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
+conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=3)
+conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
+conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=3)
s[conv2d_nchw].reorder(conv2d_nchw_nn_o_o_o_o, conv2d_nchw_ff_o_o_o_o, conv2d_nchw_yy_o_o_o_o, conv2d_nchw_xx_o_o_o_o, conv2d_nchw_nn_o_o_o_i, conv2d_nchw_ff_o_o_o_i, conv2d_nchw_yy_o_o_o_i, conv2d_nchw_xx_o_o_o_i, conv2d_nchw_nn_o_o_i, conv2d_nchw_ff_o_o_i, conv2d_nchw_yy_o_o_i, conv2d_nchw_xx_o_o_i, conv2d_nchw_rc_o_o, conv2d_nchw_ry_o_o, conv2d_nchw_rx_o_o, conv2d_nchw_rc_o_i, conv2d_nchw_ry_o_i, conv2d_nchw_rx_o_i, conv2d_nchw_nn_o_i, conv2d_nchw_ff_o_i, conv2d_nchw_yy_o_i, conv2d_nc [...]
compute_i0_o_i, compute_i0_i = s[compute].split(compute_i0, factor=1)
compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
-compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=2)
+compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=16)
compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=2)
compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
@@ -797,16 +655,16 @@ s[compute].bind(compute_i0_o_o_i_i1_o_o_i_fused_i2_o_o_i_fused_i3_o_o_i_fused, t
compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused = s[compute].fuse(compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i)
s[compute].bind(compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused, te.thread_axis("threadIdx.x"))
kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[kernel_shared].fuse(kernel_shared_ax0, kernel_shared_ax1, kernel_shared_ax2, kernel_shared_ax3)
-kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
+kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=24)
s[kernel_shared].vectorize(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=98)
+kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=784)
s[kernel_shared].bind(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[pad_temp_shared].fuse(pad_temp_shared_ax0, pad_temp_shared_ax1, pad_temp_shared_ax2, pad_temp_shared_ax3)
pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=98)
+pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=784)
s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
-s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 64)
+s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 16)
s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "unroll_explicit", True)
CUDA source code:
@@ -824,121 +682,51 @@ CUDA source code:
#define int64_t long long
#define uint64_t unsigned long long
#endif
-extern "C" __global__ void __launch_bounds__(98) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+extern "C" __global__ void __launch_bounds__(784) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
float conv2d_nchw[2];
- __shared__ float pad_temp_shared[5184];
- __shared__ float kernel_shared[2304];
+ __shared__ float pad_temp_shared[2592];
+ __shared__ float kernel_shared[9216];
conv2d_nchw[0] = 0.000000e+00f;
conv2d_nchw[1] = 0.000000e+00f;
- for (int rc_outer_outer = 0; rc_outer_outer < 8; ++rc_outer_outer) {
+ for (int rc_outer_outer = 0; rc_outer_outer < 16; ++rc_outer_outer) {
__syncthreads();
- pad_temp_shared[((int)threadIdx.x)] = (((((9 <= (((int)threadIdx.x) % 81)) && ((((int)threadIdx.x) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + ((((int)threadIdx.x) / 81) * 49)) + (((((int)threadIdx.x) % 81) / 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 98)] = (((((9 <= ((((int)threadIdx.x) + 17) % 81)) && (((((int)threadIdx.x) + 17) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 98) / 81) * 49)) + ((((((int)threadIdx.x) + 17) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 196)] = (((((9 <= ((((int)threadIdx.x) + 34) % 81)) && (((((int)threadIdx.x) + 34) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 196) / 81) * 49)) + ((((((int)threadIdx.x) + 34) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 294)] = (((((9 <= ((((int)threadIdx.x) + 51) % 81)) && (((((int)threadIdx.x) + 51) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 294) / 81) * 49)) + ((((((int)threadIdx.x) + 51) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 392)] = (((((9 <= ((((int)threadIdx.x) + 68) % 81)) && (((((int)threadIdx.x) + 68) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 392) / 81) * 49)) + ((((((int)threadIdx.x) + 68) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 490)] = (((((9 <= ((((int)threadIdx.x) + 4) % 81)) && (((((int)threadIdx.x) + 4) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 490) / 81) * 49)) + ((((((int)threadIdx.x) + 4) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 588)] = (((((9 <= ((((int)threadIdx.x) + 21) % 81)) && (((((int)threadIdx.x) + 21) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 588) / 81) * 49)) + ((((((int)threadIdx.x) + 21) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 686)] = (((((9 <= ((((int)threadIdx.x) + 38) % 81)) && (((((int)threadIdx.x) + 38) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 686) / 81) * 49)) + ((((((int)threadIdx.x) + 38) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((9 <= ((((int)threadIdx.x) + 55) % 81)) && (((((int)threadIdx.x) + 55) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 784) / 81) * 49)) + ((((((int)threadIdx.x) + 55) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 882)] = (((((1 <= (((((int)threadIdx.x) / 9) + 8) % 9)) && (((((int)threadIdx.x) + 72) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 882) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 8) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 980)] = (((((9 <= ((((int)threadIdx.x) + 8) % 81)) && (((((int)threadIdx.x) + 8) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 980) / 81) * 49)) + ((((((int)threadIdx.x) + 8) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1078)] = (((((9 <= ((((int)threadIdx.x) + 25) % 81)) && (((((int)threadIdx.x) + 25) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1078) / 81) * 49)) + ((((((int)threadIdx.x) + 25) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1176)] = (((((9 <= ((((int)threadIdx.x) + 42) % 81)) && (((((int)threadIdx.x) + 42) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1176) / 81) * 49)) + ((((((int)threadIdx.x) + 42) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1274)] = (((((9 <= ((((int)threadIdx.x) + 59) % 81)) && (((((int)threadIdx.x) + 59) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1274) / 81) * 49)) + ((((((int)threadIdx.x) + 59) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1372)] = (((((9 <= ((((int)threadIdx.x) + 76) % 81)) && (((((int)threadIdx.x) + 76) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1372) / 81) * 49)) + ((((((int)threadIdx.x) + 76) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1470)] = (((((9 <= ((((int)threadIdx.x) + 12) % 81)) && (((((int)threadIdx.x) + 12) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1470) / 81) * 49)) + ((((((int)threadIdx.x) + 12) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((9 <= ((((int)threadIdx.x) + 29) % 81)) && (((((int)threadIdx.x) + 29) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1568) / 81) * 49)) + ((((((int)threadIdx.x) + 29) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1666)] = (((((9 <= ((((int)threadIdx.x) + 46) % 81)) && (((((int)threadIdx.x) + 46) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1666) / 81) * 49)) + ((((((int)threadIdx.x) + 46) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1764)] = (((((1 <= (((((int)threadIdx.x) / 9) + 7) % 9)) && (((((int)threadIdx.x) + 63) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1764) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 7) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1862)] = (((((9 <= ((((int)threadIdx.x) + 80) % 81)) && (((((int)threadIdx.x) + 80) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1862) / 81) * 49)) + ((((((int)threadIdx.x) + 80) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 1960)] = (((((9 <= ((((int)threadIdx.x) + 16) % 81)) && (((((int)threadIdx.x) + 16) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 1960) / 81) * 49)) + ((((((int)threadIdx.x) + 16) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2058)] = (((((9 <= ((((int)threadIdx.x) + 33) % 81)) && (((((int)threadIdx.x) + 33) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2058) / 81) * 49)) + ((((((int)threadIdx.x) + 33) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2156)] = (((((9 <= ((((int)threadIdx.x) + 50) % 81)) && (((((int)threadIdx.x) + 50) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2156) / 81) * 49)) + ((((((int)threadIdx.x) + 50) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2254)] = (((((9 <= ((((int)threadIdx.x) + 67) % 81)) && (((((int)threadIdx.x) + 67) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2254) / 81) * 49)) + ((((((int)threadIdx.x) + 67) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2352)] = (((((9 <= ((((int)threadIdx.x) + 3) % 81)) && (((((int)threadIdx.x) + 3) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2352) / 81) * 49)) + ((((((int)threadIdx.x) + 3) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2450)] = (((((9 <= ((((int)threadIdx.x) + 20) % 81)) && (((((int)threadIdx.x) + 20) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2450) / 81) * 49)) + ((((((int)threadIdx.x) + 20) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2548)] = (((((9 <= ((((int)threadIdx.x) + 37) % 81)) && (((((int)threadIdx.x) + 37) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2548) / 81) * 49)) + ((((((int)threadIdx.x) + 37) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2646)] = (((((1 <= (((((int)threadIdx.x) / 9) + 6) % 9)) && (((((int)threadIdx.x) + 54) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2646) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 6) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2744)] = (((((9 <= ((((int)threadIdx.x) + 71) % 81)) && (((((int)threadIdx.x) + 71) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2744) / 81) * 49)) + ((((((int)threadIdx.x) + 71) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2842)] = (((((9 <= ((((int)threadIdx.x) + 7) % 81)) && (((((int)threadIdx.x) + 7) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2842) / 81) * 49)) + ((((((int)threadIdx.x) + 7) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 2940)] = (((((9 <= ((((int)threadIdx.x) + 24) % 81)) && (((((int)threadIdx.x) + 24) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 2940) / 81) * 49)) + ((((((int)threadIdx.x) + 24) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3038)] = (((((9 <= ((((int)threadIdx.x) + 41) % 81)) && (((((int)threadIdx.x) + 41) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3038) / 81) * 49)) + ((((((int)threadIdx.x) + 41) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3136)] = (((((9 <= ((((int)threadIdx.x) + 58) % 81)) && (((((int)threadIdx.x) + 58) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3136) / 81) * 49)) + ((((((int)threadIdx.x) + 58) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3234)] = (((((9 <= ((((int)threadIdx.x) + 75) % 81)) && (((((int)threadIdx.x) + 75) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3234) / 81) * 49)) + ((((((int)threadIdx.x) + 75) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3332)] = (((((9 <= ((((int)threadIdx.x) + 11) % 81)) && (((((int)threadIdx.x) + 11) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3332) / 81) * 49)) + ((((((int)threadIdx.x) + 11) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3430)] = (((((9 <= ((((int)threadIdx.x) + 28) % 81)) && (((((int)threadIdx.x) + 28) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3430) / 81) * 49)) + ((((((int)threadIdx.x) + 28) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3528)] = (((((1 <= (((((int)threadIdx.x) / 9) + 5) % 9)) && (((((int)threadIdx.x) + 45) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3528) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 5) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3626)] = (((((9 <= ((((int)threadIdx.x) + 62) % 81)) && (((((int)threadIdx.x) + 62) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3626) / 81) * 49)) + ((((((int)threadIdx.x) + 62) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3724)] = (((((9 <= ((((int)threadIdx.x) + 79) % 81)) && (((((int)threadIdx.x) + 79) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3724) / 81) * 49)) + ((((((int)threadIdx.x) + 79) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3822)] = (((((9 <= ((((int)threadIdx.x) + 15) % 81)) && (((((int)threadIdx.x) + 15) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3822) / 81) * 49)) + ((((((int)threadIdx.x) + 15) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 3920)] = (((((9 <= ((((int)threadIdx.x) + 32) % 81)) && (((((int)threadIdx.x) + 32) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 3920) / 81) * 49)) + ((((((int)threadIdx.x) + 32) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4018)] = (((((9 <= ((((int)threadIdx.x) + 49) % 81)) && (((((int)threadIdx.x) + 49) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4018) / 81) * 49)) + ((((((int)threadIdx.x) + 49) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4116)] = (((((9 <= ((((int)threadIdx.x) + 66) % 81)) && (((((int)threadIdx.x) + 66) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4116) / 81) * 49)) + ((((((int)threadIdx.x) + 66) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4214)] = (((((9 <= ((((int)threadIdx.x) + 2) % 81)) && (((((int)threadIdx.x) + 2) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4214) / 81) * 49)) + ((((((int)threadIdx.x) + 2) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4312)] = (((((9 <= ((((int)threadIdx.x) + 19) % 81)) && (((((int)threadIdx.x) + 19) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4312) / 81) * 49)) + ((((((int)threadIdx.x) + 19) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4410)] = (((((1 <= (((((int)threadIdx.x) / 9) + 4) % 9)) && (((((int)threadIdx.x) + 36) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4410) / 81) * 49)) + ((((((int)threadIdx.x) / 9) + 4) % 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4508)] = (((((9 <= ((((int)threadIdx.x) + 53) % 81)) && (((((int)threadIdx.x) + 53) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 8) % 9))) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4508) / 81) * 49)) + ((((((int)threadIdx.x) + 53) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4606)] = (((((9 <= ((((int)threadIdx.x) + 70) % 81)) && (((((int)threadIdx.x) + 70) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4606) / 81) * 49)) + ((((((int)threadIdx.x) + 70) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4704)] = (((((9 <= ((((int)threadIdx.x) + 6) % 81)) && (((((int)threadIdx.x) + 6) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 6) % 9))) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4704) / 81) * 49)) + ((((((int)threadIdx.x) + 6) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4802)] = (((((9 <= ((((int)threadIdx.x) + 23) % 81)) && (((((int)threadIdx.x) + 23) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4802) / 81) * 49)) + ((((((int)threadIdx.x) + 23) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4900)] = (((((9 <= ((((int)threadIdx.x) + 40) % 81)) && (((((int)threadIdx.x) + 40) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 4) % 9))) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4900) / 81) * 49)) + ((((((int)threadIdx.x) + 40) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
- pad_temp_shared[(((int)threadIdx.x) + 4998)] = (((((9 <= ((((int)threadIdx.x) + 57) % 81)) && (((((int)threadIdx.x) + 57) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 4998) / 81) * 49)) + ((((((int)threadIdx.x) + 57) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
- if (((int)threadIdx.x) < 88) {
- pad_temp_shared[(((int)threadIdx.x) + 5096)] = (((((9 <= ((((int)threadIdx.x) + 74) % 81)) && (((((int)threadIdx.x) + 74) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 3136) + (((((int)threadIdx.x) + 5096) / 81) * 49)) + ((((((int)threadIdx.x) + 74) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[((int)threadIdx.x)] = (((((9 <= (((int)threadIdx.x) % 81)) && ((((int)threadIdx.x) % 81) < 72)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + ((((int)threadIdx.x) / 81) * 49)) + (((((int)threadIdx.x) % 81) / 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 784)] = (((((9 <= ((((int)threadIdx.x) + 55) % 81)) && (((((int)threadIdx.x) + 55) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 1) % 9))) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 784) / 81) * 49)) + ((((((int)threadIdx.x) + 55) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 1568)] = (((((9 <= ((((int)threadIdx.x) + 29) % 81)) && (((((int)threadIdx.x) + 29) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 2) % 9))) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 1568) / 81) * 49)) + ((((((int)threadIdx.x) + 29) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
+ if (((int)threadIdx.x) < 240) {
+ pad_temp_shared[(((int)threadIdx.x) + 2352)] = (((((9 <= ((((int)threadIdx.x) + 3) % 81)) && (((((int)threadIdx.x) + 3) % 81) < 72)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 1568) + (((((int)threadIdx.x) + 2352) / 81) * 49)) + ((((((int)threadIdx.x) + 3) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
}
- kernel_shared[((int)threadIdx.x)] = kernel[(((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + ((int)threadIdx.x))];
- kernel_shared[(((int)threadIdx.x) + 98)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 98) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 196)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 196) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 294)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 294)];
- kernel_shared[(((int)threadIdx.x) + 392)] = kernel[((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 392) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 490)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 490) / 576) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 490) % 576) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 588)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 588) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 12)];
- kernel_shared[(((int)threadIdx.x) + 686)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 686) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 110) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 784)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 784) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 208) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 882)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 882) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 306)];
- kernel_shared[(((int)threadIdx.x) + 980)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 980) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 404) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1078)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1078) / 576) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 502) % 576) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1176)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1176) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 24)];
- kernel_shared[(((int)threadIdx.x) + 1274)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1274) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 122) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1372)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1372) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 220) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1470)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1470) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 318)];
- kernel_shared[(((int)threadIdx.x) + 1568)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1568) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 416) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1666)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1666) / 576) * 4608)) + (rc_outer_outer * 576)) + ((((((int)threadIdx.x) + 514) % 576) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1764)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1764) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 36)];
- kernel_shared[(((int)threadIdx.x) + 1862)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1862) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 134) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1960)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 1960) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 232) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2058)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 2058) / 576) * 4608)) + (rc_outer_outer * 576)) + ((int)threadIdx.x)) + 330)];
- kernel_shared[(((int)threadIdx.x) + 2156)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 2156) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 428) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- if (((int)threadIdx.x) < 50) {
- kernel_shared[(((int)threadIdx.x) + 2254)] = kernel[(((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 2254) / 576) * 4608)) + (rc_outer_outer * 576)) + (((((int)threadIdx.x) + 526) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+ for (int ax0_ax1_fused_ax2_fused_ax3_fused_inner_s = 0; ax0_ax1_fused_ax2_fused_ax3_fused_inner_s < 24; ++ax0_ax1_fused_ax2_fused_ax3_fused_inner_s) {
+ if (((int)threadIdx.x) < 384) {
+ kernel_shared[((((int)threadIdx.x) * 24) + ax0_ax1_fused_ax2_fused_ax3_fused_inner_s)] = kernel[((((((((int)blockIdx.x) * 147456) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 288)) + (((((((int)threadIdx.x) % 12) * 8) + (ax0_ax1_fused_ax2_fused_ax3_fused_inner_s / 3)) / 3) * 9)) + ((((((int)threadIdx.x) * 2) + (ax0_ax1_fused_ax2_fused_ax3_fused_inner_s / 3)) % 3) * 3)) + (ax0_ax1_fused_ax2_fused_ax3_fused_inner_s % 3))];
+ }
}
__syncthreads();
- for (int rc_outer_inner = 0; rc_outer_inner < 2; ++rc_outer_inner) {
- for (int rc_inner = 0; rc_inner < 32; ++rc_inner) {
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9))]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1152)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 1)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 1)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1153)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 2)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 2)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 2)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1154)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 9)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 3)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 9)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1155)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 10)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 4)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 10)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1156)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 11)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 5)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 11)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1157)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 18)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 6)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 18)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1158)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 19)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 7)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 19)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1159)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 20)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 8)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 2592) + (rc_inner * 81)) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (((int)threadIdx.x) % 7)) + 20)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 576) + (rc_outer_inner * 288)) + (rc_inner * 9)) + 1160)]));
+ for (int rc_outer_inner = 0; rc_outer_inner < 4; ++rc_outer_inner) {
+ for (int ry_outer_inner = 0; ry_outer_inner < 3; ++ry_outer_inner) {
+ for (int rx_outer_inner = 0; rx_outer_inner < 3; ++rx_outer_inner) {
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4608)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 81)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 9)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 81)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4617)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 162)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 18)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 162)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4626)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 243)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 27)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 243)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4635)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 324)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 36)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 324)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4644)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 405)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 45)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 405)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4653)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 486)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 54)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 486)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4662)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 567)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 63)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((((rc_outer_inner * 648) + (((((int)threadIdx.x) % 49) / 7) * 9)) + (ry_outer_inner * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 567)] * kernel_shared[((((((((int)threadIdx.x) / 49) * 288) + (rc_outer_inner * 72)) + (ry_outer_inner * 3)) + rx_outer_inner) + 4671)]));
+ }
}
}
}
- compute[((((int)blockIdx.x) * 196) + ((int)threadIdx.x))] = max((conv2d_nchw[0] + bias[((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 49))]), 0.000000e+00f);
- compute[(((((int)blockIdx.x) * 196) + ((int)threadIdx.x)) + 98)] = max((conv2d_nchw[1] + bias[(((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 49)) + 2)]), 0.000000e+00f);
+ compute[((((int)blockIdx.x) * 1568) + ((int)threadIdx.x))] = max((conv2d_nchw[0] + bias[((((int)blockIdx.x) * 32) + (((int)threadIdx.x) / 49))]), 0.000000e+00f);
+ compute[(((((int)blockIdx.x) * 1568) + ((int)threadIdx.x)) + 784)] = max((conv2d_nchw[1] + bias[(((((int)blockIdx.x) * 32) + (((int)threadIdx.x) / 49)) + 16)]), 0.000000e+00f);
}
</pre></div>
</div>
@@ -974,7 +762,7 @@ In the example below we resume the status and do more 5 trials.</p>
Get devices for measurement successfully!
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes 18.676 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes 28.018 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/e3e540f3b477c0c52d8eb73e674e8ffd/tune_conv2d_layer_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_conv2d_layer_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
index b213208bf..17caaf389 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -906,7 +906,7 @@ so we can read the log file and load the best schedules.</p>
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 9.4077 9.4057 9.4270 9.3905 0.0150
+ 10.0830 10.0734 10.1306 10.0449 0.0356
</pre></div>
</div>
</div>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
index 3d3e74b2d..a25654d1b 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -925,7 +925,7 @@ so we can read the log file and load the best schedules.</p>
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 762.7927 762.2913 765.9599 760.1269 2.4076
+ 759.1518 758.8800 761.1539 757.4216 1.5358
</pre></div>
</div>
</div>
@@ -947,7 +947,7 @@ to learn how to use the RPC Tracker and RPC Server.
To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
</ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 23.042 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 22.102 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-x86-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/e416b94ca1090b0897c0f6e0df95b911/tune_network_x86.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_x86.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
index 57a7de77c..92d232c2b 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -625,218 +625,29 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [65536], []),
compute: Buffer(compute_2: Pointer(float32), float32, [65536], [])}
buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute}
- preflattened_buffer_map = {placeholder_5: placeholder_15: Buffer(placeholder_10, float32, [128, 256], []), placeholder_6: placeholder_16: Buffer(placeholder_11, float32, [4916, 16, 1], []), placeholder_8: placeholder_17: Buffer(placeholder_13, int32, [33], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_7: placeholder_18: Buffer(placeholder_12, int32, [4916], []), placeholder_9: placeholder_19: Buffer(placeholder_14, float32, [128, 512], [])} {
- for (i0.outer.i1.outer.fused: int32, 0, 32) "parallel" {
- allocate(compute_4: Pointer(global float32), float32, [2048]), storage_scope = global {
- for (i.outer.inner: int32, 0, 16) {
- for (nb_j.inner: int32, 0, 2) {
- let cse_var_2: int32 = ((i.outer.inner*128) + (nb_j.inner*16))
- let cse_var_1: int32 = ((floormod(i0.outer.i1.outer.fused, 16)*2) + nb_j.inner)
- {
- compute_5: Buffer(compute_4, float32, [2048], [])[cse_var_2] = 0f32
- compute_5[(cse_var_2 + 1)] = 0f32
- compute_5[(cse_var_2 + 2)] = 0f32
- compute_5[(cse_var_2 + 3)] = 0f32
- compute_5[(cse_var_2 + 4)] = 0f32
- compute_5[(cse_var_2 + 5)] = 0f32
- compute_5[(cse_var_2 + 6)] = 0f32
- compute_5[(cse_var_2 + 7)] = 0f32
- compute_5[(cse_var_2 + 8)] = 0f32
- compute_5[(cse_var_2 + 9)] = 0f32
- compute_5[(cse_var_2 + 10)] = 0f32
- compute_5[(cse_var_2 + 11)] = 0f32
- compute_5[(cse_var_2 + 12)] = 0f32
- compute_5[(cse_var_2 + 13)] = 0f32
- compute_5[(cse_var_2 + 14)] = 0f32
- compute_5[(cse_var_2 + 15)] = 0f32
- compute_5[(cse_var_2 + 32)] = 0f32
- compute_5[(cse_var_2 + 33)] = 0f32
- compute_5[(cse_var_2 + 34)] = 0f32
- compute_5[(cse_var_2 + 35)] = 0f32
- compute_5[(cse_var_2 + 36)] = 0f32
- compute_5[(cse_var_2 + 37)] = 0f32
- compute_5[(cse_var_2 + 38)] = 0f32
- compute_5[(cse_var_2 + 39)] = 0f32
- compute_5[(cse_var_2 + 40)] = 0f32
- compute_5[(cse_var_2 + 41)] = 0f32
- compute_5[(cse_var_2 + 42)] = 0f32
- compute_5[(cse_var_2 + 43)] = 0f32
- compute_5[(cse_var_2 + 44)] = 0f32
- compute_5[(cse_var_2 + 45)] = 0f32
- compute_5[(cse_var_2 + 46)] = 0f32
- compute_5[(cse_var_2 + 47)] = 0f32
- compute_5[(cse_var_2 + 64)] = 0f32
- compute_5[(cse_var_2 + 65)] = 0f32
- compute_5[(cse_var_2 + 66)] = 0f32
- compute_5[(cse_var_2 + 67)] = 0f32
- compute_5[(cse_var_2 + 68)] = 0f32
- compute_5[(cse_var_2 + 69)] = 0f32
- compute_5[(cse_var_2 + 70)] = 0f32
- compute_5[(cse_var_2 + 71)] = 0f32
- compute_5[(cse_var_2 + 72)] = 0f32
- compute_5[(cse_var_2 + 73)] = 0f32
- compute_5[(cse_var_2 + 74)] = 0f32
- compute_5[(cse_var_2 + 75)] = 0f32
- compute_5[(cse_var_2 + 76)] = 0f32
- compute_5[(cse_var_2 + 77)] = 0f32
- compute_5[(cse_var_2 + 78)] = 0f32
- compute_5[(cse_var_2 + 79)] = 0f32
- compute_5[(cse_var_2 + 96)] = 0f32
- compute_5[(cse_var_2 + 97)] = 0f32
- compute_5[(cse_var_2 + 98)] = 0f32
- compute_5[(cse_var_2 + 99)] = 0f32
- compute_5[(cse_var_2 + 100)] = 0f32
- compute_5[(cse_var_2 + 101)] = 0f32
- compute_5[(cse_var_2 + 102)] = 0f32
- compute_5[(cse_var_2 + 103)] = 0f32
- compute_5[(cse_var_2 + 104)] = 0f32
- compute_5[(cse_var_2 + 105)] = 0f32
- compute_5[(cse_var_2 + 106)] = 0f32
- compute_5[(cse_var_2 + 107)] = 0f32
- compute_5[(cse_var_2 + 108)] = 0f32
- compute_5[(cse_var_2 + 109)] = 0f32
- compute_5[(cse_var_2 + 110)] = 0f32
- compute_5[(cse_var_2 + 111)] = 0f32
- for (elem_idx: int32, 0, (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
- let cse_var_67: int32 = (elem_idx*16)
- let cse_var_66: int32 = (cse_var_2 + 99)
- let cse_var_65: int32 = (cse_var_2 + 98)
- let cse_var_64: int32 = (cse_var_2 + 97)
- let cse_var_63: int32 = (cse_var_2 + 96)
- let cse_var_62: int32 = (cse_var_2 + 9)
- let cse_var_61: int32 = (cse_var_2 + 8)
- let cse_var_60: int32 = (cse_var_2 + 79)
- let cse_var_59: int32 = (cse_var_2 + 78)
- let cse_var_58: int32 = (cse_var_2 + 77)
- let cse_var_57: int32 = (cse_var_2 + 76)
- let cse_var_56: int32 = (cse_var_2 + 75)
- let cse_var_55: int32 = (cse_var_2 + 74)
- let cse_var_54: int32 = (cse_var_2 + 73)
- let cse_var_53: int32 = (cse_var_2 + 72)
- let cse_var_52: int32 = (cse_var_2 + 71)
- let cse_var_51: int32 = (cse_var_2 + 70)
- let cse_var_50: int32 = (cse_var_2 + 7)
- let cse_var_49: int32 = (cse_var_2 + 69)
- let cse_var_48: int32 = (cse_var_2 + 68)
- let cse_var_47: int32 = (cse_var_2 + 67)
- let cse_var_46: int32 = (cse_var_2 + 66)
- let cse_var_45: int32 = (cse_var_2 + 65)
- let cse_var_44: int32 = (cse_var_2 + 64)
- let cse_var_43: int32 = (cse_var_2 + 6)
- let cse_var_42: int32 = (cse_var_2 + 5)
- let cse_var_41: int32 = (cse_var_2 + 47)
- let cse_var_40: int32 = (cse_var_2 + 46)
- let cse_var_39: int32 = (cse_var_2 + 45)
- let cse_var_38: int32 = (cse_var_2 + 44)
- let cse_var_37: int32 = (cse_var_2 + 43)
- let cse_var_36: int32 = (cse_var_2 + 42)
- let cse_var_35: int32 = (cse_var_2 + 41)
- let cse_var_34: int32 = (cse_var_2 + 40)
- let cse_var_33: int32 = (cse_var_2 + 4)
- let cse_var_32: int32 = (cse_var_2 + 39)
- let cse_var_31: int32 = (cse_var_2 + 38)
- let cse_var_30: int32 = (cse_var_2 + 37)
- let cse_var_29: int32 = (cse_var_2 + 36)
- let cse_var_28: int32 = (cse_var_2 + 35)
- let cse_var_27: int32 = (cse_var_2 + 34)
- let cse_var_26: int32 = (cse_var_2 + 33)
- let cse_var_25: int32 = (cse_var_2 + 32)
- let cse_var_24: int32 = (cse_var_2 + 3)
- let cse_var_23: int32 = (cse_var_2 + 2)
- let cse_var_22: int32 = (cse_var_2 + 15)
- let cse_var_21: int32 = (cse_var_2 + 14)
- let cse_var_20: int32 = (cse_var_2 + 13)
- let cse_var_19: int32 = (cse_var_2 + 12)
- let cse_var_18: int32 = (cse_var_2 + 111)
- let cse_var_17: int32 = (cse_var_2 + 110)
- let cse_var_16: int32 = (cse_var_2 + 11)
- let cse_var_15: int32 = (cse_var_2 + 109)
- let cse_var_14: int32 = (cse_var_2 + 108)
- let cse_var_13: int32 = (cse_var_2 + 107)
- let cse_var_12: int32 = (cse_var_2 + 106)
- let cse_var_11: int32 = (cse_var_2 + 105)
- let cse_var_10: int32 = (cse_var_2 + 104)
- let cse_var_9: int32 = (cse_var_2 + 103)
- let cse_var_8: int32 = (cse_var_2 + 102)
- let cse_var_7: int32 = (cse_var_2 + 101)
- let cse_var_6: int32 = (cse_var_2 + 100)
- let cse_var_5: int32 = (cse_var_2 + 10)
- let cse_var_4: int32 = (cse_var_2 + 1)
- let cse_var_3: int32 = ((floordiv(i0.outer.i1.outer.fused, 16)*16384) + (i.outer.inner*1024))
- {
- compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_4] = (compute_5[cse_var_4] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_23] = (compute_5[cse_var_23] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_24] = (compute_5[cse_var_24] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_33] = (compute_5[cse_var_33] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_42] = (compute_5[cse_var_42] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_43] = (compute_5[cse_var_43] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_50] = (compute_5[cse_var_50] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_61] = (compute_5[cse_var_61] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_62] = (compute_5[cse_var_62] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_19] = (compute_5[cse_var_19] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_20] = (compute_5[cse_var_20] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_21] = (compute_5[cse_var_21] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_22] = (compute_5[cse_var_22] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[(cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)])], 0f32)))
- compute_5[cse_var_25] = (compute_5[cse_var_25] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_26] = (compute_5[cse_var_26] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_27] = (compute_5[cse_var_27] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_28] = (compute_5[cse_var_28] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_29] = (compute_5[cse_var_29] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_30] = (compute_5[cse_var_30] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_31] = (compute_5[cse_var_31] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_32] = (compute_5[cse_var_32] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_34] = (compute_5[cse_var_34] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_35] = (compute_5[cse_var_35] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_36] = (compute_5[cse_var_36] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_37] = (compute_5[cse_var_37] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_38] = (compute_5[cse_var_38] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_39] = (compute_5[cse_var_39] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_40] = (compute_5[cse_var_40] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_41] = (compute_5[cse_var_41] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 256)], 0f32)))
- compute_5[cse_var_44] = (compute_5[cse_var_44] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_45] = (compute_5[cse_var_45] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_46] = (compute_5[cse_var_46] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_47] = (compute_5[cse_var_47] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_48] = (compute_5[cse_var_48] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_49] = (compute_5[cse_var_49] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_51] = (compute_5[cse_var_51] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_52] = (compute_5[cse_var_52] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_53] = (compute_5[cse_var_53] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_54] = (compute_5[cse_var_54] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_55] = (compute_5[cse_var_55] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_56] = (compute_5[cse_var_56] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_57] = (compute_5[cse_var_57] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_58] = (compute_5[cse_var_58] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_59] = (compute_5[cse_var_59] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_60] = (compute_5[cse_var_60] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 512)], 0f32)))
- compute_5[cse_var_63] = (compute_5[cse_var_63] + (placeholder_1[((placeholder_3[cse_var_1]*16) + cse_var_67)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_64] = (compute_5[cse_var_64] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 1)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_65] = (compute_5[cse_var_65] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 2)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_66] = (compute_5[cse_var_66] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 3)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 4)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 5)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 6)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 7)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 8)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 9)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 10)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 11)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 12)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 13)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 14)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- compute_5[cse_var_18] = (compute_5[cse_var_18] + (placeholder_1[(((placeholder_3[cse_var_1]*16) + cse_var_67) + 15)]*max(placeholder[((cse_var_3 + placeholder_2[(placeholder_3[cse_var_1] + elem_idx)]) + 768)], 0f32)))
- }
+ preflattened_buffer_map = {placeholder_5: placeholder_15: Buffer(placeholder_10, float32, [128, 256], []), placeholder_9: placeholder_16: Buffer(placeholder_14, float32, [128, 512], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_7: placeholder_18: Buffer(placeholder_12, int32, [4916], []), placeholder_8: placeholder_19: Buffer(placeholder_13, int32, [33], [])} {
+ for (i0.outer.i1.outer.fused: int32, 0, 256) "parallel" {
+ allocate(compute_4: Pointer(global float32), float32, [256]), storage_scope = global {
+ for (i.inner.init: int32, 0, 16) {
+ for (j.init: int32, 0, 16) {
+ compute_5: Buffer(compute_4, float32, [256], [])[((i.inner.init*16) + j.init)] = 0f32
+ }
+ }
+ for (elem_idx: int32, 0, let cse_var_1: int32 = floormod(i0.outer.i1.outer.fused, 32) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
+ for (i.inner: int32, 0, 16) {
+ for (j: int32, 0, 16) {
+ let cse_var_2: int32 = floormod(i0.outer.i1.outer.fused, 32)
+ if @tir.likely((elem_idx < (placeholder_3[(cse_var_2 + 1)] - placeholder_3[cse_var_2])), dtype=bool) {
+ let cse_var_3: int32 = ((i.inner*16) + j)
+ compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[cse_var_2]*16) + (elem_idx*16)) + j)]*max(placeholder[(((floordiv(i0.outer.i1.outer.fused, 32)*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_2] + elem_idx)])], 0f32)))
}
}
}
}
- for (i0.inner: int32, 0, 64) {
- for (i1.inner: int32, 0, 32) {
- let cse_var_68: int32 = ((((floordiv(i0.outer.i1.outer.fused, 16)*32768) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 16)*32)) + i1.inner)
- compute[cse_var_68] = max((compute_5[((i0.inner*32) + i1.inner)] + placeholder_4[cse_var_68]), 0f32)
+ for (i0.inner: int32, 0, 16) {
+ for (i1.inner: int32, 0, 16) {
+ let cse_var_4: int32 = ((((floordiv(i0.outer.i1.outer.fused, 32)*8192) + (i0.inner*512)) + (floormod(i0.outer.i1.outer.fused, 32)*16)) + i1.inner)
+ compute[cse_var_4] = max((compute_5[((i0.inner*16) + i1.inner)] + placeholder_4[cse_var_4]), 0f32)
}
}
}
@@ -875,7 +686,7 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
<span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 3.026 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.583 ms
</pre></div>
</div>
<div class="admonition note">
diff --git a/docs/how_to/tune_with_autotvm/sg_execution_times.html b/docs/how_to/tune_with_autotvm/sg_execution_times.html
index 6f28f985e..7d886e0c2 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-tune-with-autotvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:45.663</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:47.218</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 84%" />
@@ -336,11 +336,11 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-conv2d-cuda-py"><span class="std std-ref">Tuning High Performance Convolution on NVIDIA GPUs</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_cuda.py</span></code>)</p></td>
-<td><p>00:45.632</p></td>
+<td><p>00:47.181</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></td>
-<td><p>00:00.016</p></td>
+<td><p>00:00.022</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></td>
diff --git a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
index f66038a09..323a221c7 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -1436,8 +1436,8 @@ No: 8 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
TimeoutError
[('tile_f', [-1, 2, 1, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4909501
-No: 9 GFLOPS: 174.28/174.28 result: MeasureResult(costs=(0.0013283072111111112,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8026371002197266, timestamp=1659503381.61291) [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5072689
-No: 10 GFLOPS: 0.00/174.28 result: Traceback (most recent call last):
+No: 9 GFLOPS: 177.90/177.90 result: MeasureResult(costs=(0.0013012757333333335,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.871028184890747, timestamp=1659520832.5943336) [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5072689
+No: 10 GFLOPS: 0.00/177.90 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1560,8 +1560,8 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 4, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 64, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5092711
-No: 11 GFLOPS: 261.18/261.18 result: MeasureResult(costs=(0.0008863681381215471,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7209622859954834, timestamp=1659503382.5184355) [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
-No: 12 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+No: 11 GFLOPS: 260.84/260.84 result: MeasureResult(costs=(0.0008875297955801104,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7690956592559814, timestamp=1659520833.503096) [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
+No: 12 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1684,7 +1684,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 128, 1, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,183542
-No: 13 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+No: 13 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1807,7 +1807,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 8, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2482196
-No: 14 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+No: 14 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1930,9 +1930,9 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 64, 1, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10306226
-No: 15 GFLOPS: 5.46/261.18 result: MeasureResult(costs=(0.0423712035,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8527755737304688, timestamp=1659503387.1330638) [('tile_f', [-1, 2, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5330964
-No: 16 GFLOPS: 3.34/261.18 result: MeasureResult(costs=(0.0692489565,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.613509893417358, timestamp=1659503388.3737907) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2140058
-No: 17 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+No: 15 GFLOPS: 5.34/260.84 result: MeasureResult(costs=(0.04333320275,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8150696754455566, timestamp=1659520838.0333753) [('tile_f', [-1, 2, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5330964
+No: 16 GFLOPS: 3.34/260.84 result: MeasureResult(costs=(0.06923714475,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.545543909072876, timestamp=1659520839.2751355) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2140058
+No: 17 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 142, in build
res = future.result()
File "/usr/lib/python3.7/concurrent/futures/_base.py", line 435, in result
@@ -1950,8 +1950,8 @@ No: 17 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
TimeoutError
[('tile_f', [-1, 2, 2, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10195251
-No: 18 GFLOPS: 26.11/261.18 result: MeasureResult(costs=(0.00886693325,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.1378345489501953, timestamp=1659503399.2496047) [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6068603
-No: 19 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+No: 18 GFLOPS: 28.04/260.84 result: MeasureResult(costs=(0.008254677357142857,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.274148941040039, timestamp=1659520850.3161662) [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6068603
+No: 19 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -2074,7 +2074,7 @@ Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 16, 4, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6956993
-No: 20 GFLOPS: 0.00/261.18 result: Traceback (most recent call last):
+No: 20 GFLOPS: 0.00/260.84 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -2237,7 +2237,7 @@ and measure running time.</p>
Best config:
[('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
Finish loading 20 records
-Time cost of this operator: 0.001277
+Time cost of this operator: 0.001249
</pre></div>
</div>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autotvm-tune-conv2d-cuda-py">
diff --git a/docs/how_to/work_with_microtvm/micro_autotune.html b/docs/how_to/work_with_microtvm/micro_autotune.html
index 729bd1044..c76cb9e42 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -584,10 +584,10 @@ the tuned operator.</p>
########## Build without Autotuning ##########
Node Name Ops Time(us) Time(%) Shape Inputs Outputs Measurements(us)
--------- --- -------- ------- ----- ------ ------- ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 326.0 98.772 (1, 2, 10, 10, 3) 2 1 [326.0]
-tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.08 0.933 (1, 6, 10, 10) 1 1 [3.08]
-tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.974 0.295 (1, 1, 10, 10, 3) 1 1 [0.974]
-Total_time - 330.054 - - - - -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 311.7 98.7 (1, 2, 10, 10, 3) 2 1 [311.7]
+tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.142 0.995 (1, 6, 10, 10) 1 1 [3.142]
+tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.963 0.305 (1, 1, 10, 10, 3) 1 1 [0.963]
+Total_time - 315.806 - - - - -
</pre></div>
</div>
</div>
@@ -640,10 +640,10 @@ Total_time -
########## Build with Autotuning ##########
Node Name Ops Time(us) Time(%) Shape Inputs Outputs Measurements(us)
--------- --- -------- ------- ----- ------ ------- ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 193.7 98.477 (1, 6, 10, 10, 1) 2 1 [193.7]
-tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 2.017 1.026 (1, 6, 10, 10) 1 1 [2.017]
-tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.979 0.498 (1, 3, 10, 10, 1) 1 1 [0.979]
-Total_time - 196.696 - - - - -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 336.9 98.83 (1, 2, 10, 10, 3) 2 1 [336.9]
+tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.147 0.923 (1, 6, 10, 10) 1 1 [3.147]
+tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.84 0.246 (1, 3, 10, 10, 1) 1 1 [0.84]
+Total_time - 340.887 - - - - -
</pre></div>
</div>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-autotune-py">
diff --git a/docs/how_to/work_with_microtvm/micro_train.html b/docs/how_to/work_with_microtvm/micro_train.html
index 9f2719ac1..f98f43d86 100644
--- a/docs/how_to/work_with_microtvm/micro_train.html
+++ b/docs/how_to/work_with_microtvm/micro_train.html
@@ -516,7 +516,7 @@ take about <strong>2 minutes</strong> to download the Stanford Cars, while COCO
<a href="https://docs.python.org/3/library/shutil.html#shutil.move" title="shutil.move" class="sphx-glr-backref-module-shutil sphx-glr-backref-type-py-function"><span class="n">shutil</span><span class="o">.</span><span class="n">move</span></a><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><a href="https://docs.python.org/3/library/stdtypes.html#str" title="builtins.str" class="sphx-glr-backref-module-builtins sphx-glr-backref-typ [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>'/tmp/tmpq3q3d4wv/images/random'
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>'/tmp/tmps5bbum4e/images/random'
</pre></div>
</div>
</div>
@@ -576,8 +576,8 @@ objects to other stuff? We can display some examples from our datasets using <co
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s2">"off"</span><span class="p">)</span>
</pre></div>
</div>
-<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpq3q3d4wv/images/target contains 8144 images
-/tmp/tmpq3q3d4wv/images/random contains 5000 images
+<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmps5bbum4e/images/target contains 8144 images
+/tmp/tmps5bbum4e/images/random contains 5000 images
</pre></div>
</div>
</div>
@@ -689,13 +689,13 @@ the time on our validation set).</p>
</pre></div>
</div>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Epoch 1/3
-328/328 - 55s - loss: 0.2264 - accuracy: 0.9224 - val_loss: 0.1354 - val_accuracy: 0.9600
+328/328 - 55s - loss: 0.2292 - accuracy: 0.9205 - val_loss: 0.1342 - val_accuracy: 0.9581
Epoch 2/3
-328/328 - 52s - loss: 0.0963 - accuracy: 0.9647 - val_loss: 0.1125 - val_accuracy: 0.9653
+328/328 - 52s - loss: 0.1032 - accuracy: 0.9615 - val_loss: 0.1189 - val_accuracy: 0.9630
Epoch 3/3
-328/328 - 52s - loss: 0.0713 - accuracy: 0.9730 - val_loss: 0.1016 - val_accuracy: 0.9664
+328/328 - 52s - loss: 0.0718 - accuracy: 0.9719 - val_loss: 0.1347 - val_accuracy: 0.9615
-<keras.callbacks.History object at 0x7fb21d9563d0>
+<keras.callbacks.History object at 0x7f21510c5290>
</pre></div>
</div>
</div>
@@ -957,7 +957,7 @@ as intended.</p>
<p>From here, we could modify the model to read live images from the camera - we have another
Arduino tutorial for how to do that <a class="reference external" href="https://github.com/guberti/tvm-arduino-demos/tree/master/examples/person_detection">on GitHub</a>. Alternatively, we could also
<a class="reference external" href="https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_autotune.html">use TVM’s autotuning capabilities</a> to dramatically improve the model’s performance.</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes 8.771 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes 39.316 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-train-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/b52cec46baf4f78d6bcd94cbe269c8a6/micro_train.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">micro_train.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/sg_execution_times.html b/docs/how_to/work_with_microtvm/sg_execution_times.html
index 5d35c2061..fcebd5e66 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-work-with-microtvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>06:03.380</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>06:32.677</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 83%" />
@@ -336,19 +336,19 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="micro_train.html#sphx-glr-how-to-work-with-microtvm-micro-train-py"><span class="std std-ref">Training Vision Models for microTVM on Arduino</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_train.py</span></code>)</p></td>
-<td><p>05:08.771</p></td>
+<td><p>05:39.316</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="micro_autotune.html#sphx-glr-how-to-work-with-microtvm-micro-autotune-py"><span class="std std-ref">Autotuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></td>
-<td><p>00:43.051</p></td>
+<td><p>00:42.095</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="micro_aot.html#sphx-glr-how-to-work-with-microtvm-micro-aot-py"><span class="std std-ref">microTVM Host-Driven AoT</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_aot.py</span></code>)</p></td>
-<td><p>00:08.136</p></td>
+<td><p>00:07.948</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="micro_tflite.html#sphx-glr-how-to-work-with-microtvm-micro-tflite-py"><span class="std std-ref">microTVM with TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></td>
-<td><p>00:03.420</p></td>
+<td><p>00:03.316</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="micro_ethosu.html#sphx-glr-how-to-work-with-microtvm-micro-ethosu-py"><span class="std std-ref">Running TVM on bare metal Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU with CMSIS-NN</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_relay/sg_execution_times.html b/docs/how_to/work_with_relay/sg_execution_times.html
index fa2655d8d..282ea9668 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-work-with-relay-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:42.347</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:42.162</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 84%" />
@@ -336,15 +336,15 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="using_pipeline_executor.html#sphx-glr-how-to-work-with-relay-using-pipeline-executor-py"><span class="std std-ref">Using Pipeline Executor in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_pipeline_executor.py</span></code>)</p></td>
-<td><p>00:31.049</p></td>
+<td><p>00:30.619</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="using_external_lib.html#sphx-glr-how-to-work-with-relay-using-external-lib-py"><span class="std std-ref">Using External Libraries in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_external_lib.py</span></code>)</p></td>
-<td><p>00:09.886</p></td>
+<td><p>00:09.958</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="build_gcn.html#sphx-glr-how-to-work-with-relay-build-gcn-py"><span class="std std-ref">Building a Graph Convolutional Network</span></a> (<code class="docutils literal notranslate"><span class="pre">build_gcn.py</span></code>)</p></td>
-<td><p>00:01.405</p></td>
+<td><p>00:01.579</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="using_relay_viz.html#sphx-glr-how-to-work-with-relay-using-relay-viz-py"><span class="std std-ref">Use Relay Visualizer to Visualize Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_relay_viz.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_schedules/intrin_math.html b/docs/how_to/work_with_schedules/intrin_math.html
index d96635257..93afd1ff6 100644
--- a/docs/how_to/work_with_schedules/intrin_math.html
+++ b/docs/how_to/work_with_schedules/intrin_math.html
@@ -522,7 +522,7 @@ The following example customizes CUDA lowering rule for <code class="code docuti
<a href="../../reference/api/python/ir.html#tvm.ir.register_intrin_lowering" title="tvm.ir.register_intrin_lowering" class="sphx-glr-backref-module-tvm-ir sphx-glr-backref-type-py-function"><span class="n">register_intrin_lowering</span></a><span class="p">(</span><span class="s2">"tir.exp"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"cuda"</span><span class="p">,</span> <span class="n">f</span><span class="o">= [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span><function my_cuda_math_rule at 0x7fb18879dd40>
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span><function my_cuda_math_rule at 0x7f20db708dd0>
</pre></div>
</div>
<p>Register the rule to TVM with override option to override existing rule.
diff --git a/docs/how_to/work_with_schedules/sg_execution_times.html b/docs/how_to/work_with_schedules/sg_execution_times.html
index 2d8e83848..0f6f47206 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -327,7 +327,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-how-to-work-with-schedules-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:04.273</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:04.254</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 83%" />
@@ -336,19 +336,19 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="intrin_math.html#sphx-glr-how-to-work-with-schedules-intrin-math-py"><span class="std std-ref">Intrinsics and Math Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">intrin_math.py</span></code>)</p></td>
-<td><p>00:01.973</p></td>
+<td><p>00:01.947</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tensorize.html#sphx-glr-how-to-work-with-schedules-tensorize-py"><span class="std std-ref">Use Tensorize to Leverage Hardware Intrinsics</span></a> (<code class="docutils literal notranslate"><span class="pre">tensorize.py</span></code>)</p></td>
-<td><p>00:01.029</p></td>
+<td><p>00:01.056</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="reduction.html#sphx-glr-how-to-work-with-schedules-reduction-py"><span class="std std-ref">Reduction</span></a> (<code class="docutils literal notranslate"><span class="pre">reduction.py</span></code>)</p></td>
-<td><p>00:00.550</p></td>
+<td><p>00:00.546</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="scan.html#sphx-glr-how-to-work-with-schedules-scan-py"><span class="std std-ref">Scan and Recurrent Kernel</span></a> (<code class="docutils literal notranslate"><span class="pre">scan.py</span></code>)</p></td>
-<td><p>00:00.538</p></td>
+<td><p>00:00.523</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="extern_op.html#sphx-glr-how-to-work-with-schedules-extern-op-py"><span class="std std-ref">External Tensor Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">extern_op.py</span></code>)</p></td>
@@ -356,7 +356,7 @@
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="schedule_primitives.html#sphx-glr-how-to-work-with-schedules-schedule-primitives-py"><span class="std std-ref">Schedule Primitives in TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">schedule_primitives.py</span></code>)</p></td>
-<td><p>00:00.041</p></td>
+<td><p>00:00.040</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="tedd.html#sphx-glr-how-to-work-with-schedules-tedd-py"><span class="std std-ref">Use Tensor Expression Debug Display (TEDD) for Visualization</span></a> (<code class="docutils literal notranslate"><span class="pre">tedd.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index 5a5bf70fb..16acae823 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -577,7 +577,7 @@ The importing needs to happen before the tensorized GEMV being executed.</p>
C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
buffer_map = {A_1: A, B_1: B, C_1: C}
preflattened_buffer_map = {A_1: A_3: Buffer(A_2, float32, [1024, 64], []), B_1: B_3: Buffer(B_2, float32, [512, 64], []), C_1: C_3: Buffer(C_2, float32, [1024, 512], [])} {
- attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpuqh6yq74/input0.cc'\nsource_filename = \"/tmp/tmpuqh6yq74/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n %7 = allo [...]
+ attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmpz83n3eig/input0.cc'\nsource_filename = \"/tmp/tmpz83n3eig/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n %7 = allo [...]
for (i, 0, 1024) {
for (j.outer: int32, 0, 32) {
@tir.call_extern("gemv_update", @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/objects.inv b/docs/objects.inv
index cdab209a0..90606597f 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/reference/api/doxygen/affine__type_8h.html b/docs/reference/api/doxygen/affine__type_8h.html
index c978faea1..c51f064f4 100644
--- a/docs/reference/api/doxygen/affine__type_8h.html
+++ b/docs/reference/api/doxygen/affine__type_8h.html
@@ -77,7 +77,7 @@ $(function() {
</div><div class="textblock"><div class="dynheader">
Include dependency graph for affine_type.h:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="affine__type_8h__incl.svg" width="3942" height="1082"><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="affine__type_8h__incl.svg" width="4043" height="1082"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
diff --git a/docs/reference/api/doxygen/affine__type_8h__incl.svg b/docs/reference/api/doxygen/affine__type_8h__incl.svg
index e889d3d85..4681de814 100644
--- a/docs/reference/api/doxygen/affine__type_8h__incl.svg
+++ b/docs/reference/api/doxygen/affine__type_8h__incl.svg
@@ -4,1301 +4,1340 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: include/tvm/ir/affine_type.h Pages: 1 -->
-<svg width="2956pt" height="811pt"
- viewBox="0.00 0.00 2956.00 811.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="3032pt" height="811pt"
+ viewBox="0.00 0.00 3032.00 811.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 807)">
<title>include/tvm/ir/affine_type.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-807 2952,-807 2952,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-807 3028,-807 3028,4 -4,4"/>
<!-- Node0 -->
<g id="node1" class="node">
<title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="2593.5,-772.5 2593.5,-802.5 2708.5,-802.5 2708.5,-772.5 2593.5,-772.5"/>
-<text text-anchor="start" x="2601.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/affine</text>
-<text text-anchor="middle" x="2651" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_type.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="2508.5,-772.5 2508.5,-802.5 2623.5,-802.5 2623.5,-772.5 2508.5,-772.5"/>
+<text text-anchor="start" x="2516.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/ir/affine</text>
+<text text-anchor="middle" x="2566" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_type.h</text>
</g>
<!-- Node1 -->
<g id="node2" class="node">
<title>Node1</title>
<g id="a_node2"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="2683.5,-716.5 2683.5,-735.5 2762.5,-735.5 2762.5,-716.5 2683.5,-716.5"/>
-<text text-anchor="middle" x="2723" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2492.5,-716.5 2492.5,-735.5 2571.5,-735.5 2571.5,-716.5 2492.5,-716.5"/>
+<text text-anchor="middle" x="2532" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
</a>
</g>
</g>
<!-- Node0->Node1 -->
<g id="edge1" class="edge">
<title>Node0->Node1</title>
-<path fill="none" stroke="#191970" d="M2668.7978,-772.2977C2679.4167,-763.2274 2692.9031,-751.7077 2703.7667,-742.4285"/>
-<polygon fill="#191970" stroke="#191970" points="2706.1413,-745.0031 2711.4719,-735.8469 2701.5949,-739.6805 2706.1413,-745.0031"/>
-</g>
-<!-- Node47 -->
-<g id="node48" class="node">
-<title>Node47</title>
-<g id="a_node48"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="2512,-660.5 2512,-679.5 2592,-679.5 2592,-660.5 2512,-660.5"/>
-<text text-anchor="middle" x="2552" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
+<path fill="none" stroke="#191970" d="M2557.5955,-772.2977C2552.9743,-763.9388 2547.2031,-753.4997 2542.3111,-744.6509"/>
+<polygon fill="#191970" stroke="#191970" points="2545.3452,-742.9051 2537.4438,-735.8469 2539.2191,-746.292 2545.3452,-742.9051"/>
+</g>
+<!-- Node48 -->
+<g id="node49" class="node">
+<title>Node48</title>
+<g id="a_node49"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
+<polygon fill="#ffffff" stroke="#000000" points="2598,-660.5 2598,-679.5 2678,-679.5 2678,-660.5 2598,-660.5"/>
+<text text-anchor="middle" x="2638" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
</a>
</g>
</g>
-<!-- Node0->Node47 -->
-<g id="edge154" class="edge">
-<title>Node0->Node47</title>
-<path fill="none" stroke="#191970" d="M2638.0575,-772.1389C2619.6534,-750.2957 2586.0159,-710.3724 2566.6962,-687.4424"/>
-<polygon fill="#191970" stroke="#191970" points="2569.1744,-684.9517 2560.0544,-679.5595 2563.8212,-689.4621 2569.1744,-684.9517"/>
+<!-- Node0->Node48 -->
+<g id="edge159" class="edge">
+<title>Node0->Node48</title>
+<path fill="none" stroke="#191970" d="M2575.4127,-772.1389C2588.6207,-750.5843 2612.6165,-711.4245 2626.7494,-688.3604"/>
+<polygon fill="#191970" stroke="#191970" points="2629.9018,-689.9147 2632.1423,-679.5595 2623.9332,-686.2573 2629.9018,-689.9147"/>
</g>
<!-- Node2 -->
<g id="node3" class="node">
<title>Node2</title>
<g id="a_node3"><a xlink:href="ir_2span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="#ffffff" stroke="#000000" points="2724.5,-604.5 2724.5,-623.5 2805.5,-623.5 2805.5,-604.5 2724.5,-604.5"/>
-<text text-anchor="middle" x="2765" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2668.5,-604.5 2668.5,-623.5 2749.5,-623.5 2749.5,-604.5 2668.5,-604.5"/>
+<text text-anchor="middle" x="2709" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
</a>
</g>
</g>
<!-- Node1->Node2 -->
<g id="edge2" class="edge">
<title>Node1->Node2</title>
-<path fill="none" stroke="#191970" d="M2726.5809,-716.4509C2733.493,-698.0186 2748.7905,-657.2254 2757.8589,-633.043"/>
-<polygon fill="#191970" stroke="#191970" points="2761.194,-634.1171 2761.4282,-623.5249 2754.6397,-631.6592 2761.194,-634.1171"/>
+<path fill="none" stroke="#191970" d="M2538.1915,-716.1442C2547.5783,-701.9287 2566.698,-675.662 2589,-660 2610.5683,-644.8533 2637.7819,-633.8907 2660.8388,-626.4758"/>
+<polygon fill="#191970" stroke="#191970" points="2661.9143,-629.8069 2670.4373,-623.5134 2659.8499,-623.1182 2661.9143,-629.8069"/>
</g>
<!-- Node3 -->
<g id="node4" class="node">
<title>Node3</title>
<g id="a_node4"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="2218.5,-548.5 2218.5,-567.5 2317.5,-567.5 2317.5,-548.5 2218.5,-548.5"/>
-<text text-anchor="middle" x="2268" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2461.5,-548.5 2461.5,-567.5 2560.5,-567.5 2560.5,-548.5 2461.5,-548.5"/>
+<text text-anchor="middle" x="2511" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
</a>
</g>
</g>
<!-- Node1->Node3 -->
-<g id="edge147" class="edge">
+<g id="edge152" class="edge">
<title>Node1->Node3</title>
-<path fill="none" stroke="#191970" d="M2707.678,-716.4784C2685.0086,-702.6792 2640.9051,-676.926 2601,-660 2503.9772,-618.847 2384.7012,-586.4482 2318.453,-569.9605"/>
-<polygon fill="#191970" stroke="#191970" points="2319.2273,-566.5467 2308.6799,-567.5481 2317.5497,-573.3427 2319.2273,-566.5467"/>
+<path fill="none" stroke="#191970" d="M2530.8108,-716.4862C2527.4912,-689.9293 2518.0706,-614.5651 2513.5207,-578.1655"/>
+<polygon fill="#191970" stroke="#191970" points="2516.9419,-577.3165 2512.2285,-567.8279 2509.9959,-578.1848 2516.9419,-577.3165"/>
</g>
<!-- Node8 -->
<g id="node9" class="node">
<title>Node8</title>
<g id="a_node9"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="#ffffff" stroke="#000000" points="1396.5,-123.5 1396.5,-142.5 1515.5,-142.5 1515.5,-123.5 1396.5,-123.5"/>
-<text text-anchor="middle" x="1456" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1547.5,-123.5 1547.5,-142.5 1666.5,-142.5 1666.5,-123.5 1547.5,-123.5"/>
+<text text-anchor="middle" x="1607" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
</a>
</g>
</g>
<!-- Node1->Node8 -->
-<g id="edge149" class="edge">
+<g id="edge154" class="edge">
<title>Node1->Node8</title>
-<path fill="none" stroke="#191970" d="M2758.3109,-716.4663C2802.3722,-702.1751 2872,-670.632 2872,-614 2872,-614 2872,-614 2872,-502 2872,-368.1152 2774.4718,-355.2301 2657,-291 2460.9917,-183.8285 2388.0609,-211.2035 2167,-179 1933.7127,-145.0154 1653.7047,-136.137 1525.8439,-133.8186"/>
-<polygon fill="#191970" stroke="#191970" points="1525.8539,-130.3184 1515.7947,-133.6443 1525.7325,-137.3173 1525.8539,-130.3184"/>
+<path fill="none" stroke="#191970" d="M2492.2543,-725.3145C2247.5635,-720.8405 956,-693.4616 956,-614 956,-614 956,-614 956,-558 956,-438.5428 1073.252,-465.5005 1165,-389 1216.3164,-346.2119 1224.7187,-329.9581 1279,-291 1358.3254,-234.0675 1379.1367,-219.4616 1468,-179 1498.1843,-165.2564 1533.708,-153.573 1561.2875,-145.4199"/>
+<polygon fill="#191970" stroke="#191970" points="1562.4384,-148.7303 1571.0643,-142.5785 1560.4848,-142.0084 1562.4384,-148.7303"/>
</g>
<!-- Node14 -->
<g id="node15" class="node">
<title>Node14</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2637,-62 2637,-81 2681,-81 2681,-62 2637,-62"/>
-<text text-anchor="middle" x="2659" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2317,-62 2317,-81 2361,-81 2361,-62 2317,-62"/>
+<text text-anchor="middle" x="2339" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
</g>
<!-- Node1->Node14 -->
-<g id="edge152" class="edge">
+<g id="edge157" class="edge">
<title>Node1->Node14</title>
-<path fill="none" stroke="#191970" d="M2762.7015,-721.4409C2814.2394,-714.7765 2900.3893,-700.8549 2924,-680 2947.3935,-659.3369 2948,-645.2125 2948,-614 2948,-614 2948,-614 2948,-189 2948,-154.6999 2936.0165,-142.7881 2908,-123 2873.3766,-98.5455 2750.5701,-81.7988 2691.3726,-74.9578"/>
-<polygon fill="#191970" stroke="#191970" points="2691.4248,-71.4415 2681.095,-73.796 2690.6385,-78.3972 2691.4248,-71.4415"/>
+<path fill="none" stroke="#191970" d="M2571.5113,-723.7942C2675.3519,-716.9239 2948,-691.5052 2948,-614 2948,-614 2948,-614 2948,-373.5 2948,-243.3587 2495.9872,-113.3059 2370.8002,-79.7828"/>
+<polygon fill="#191970" stroke="#191970" points="2371.598,-76.3734 2361.0344,-77.1865 2369.7995,-83.1384 2371.598,-76.3734"/>
</g>
<!-- Node15 -->
<g id="node16" class="node">
<title>Node15</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2263.5,-62 2263.5,-81 2332.5,-81 2332.5,-62 2263.5,-62"/>
-<text text-anchor="middle" x="2298" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2836.5,-62 2836.5,-81 2905.5,-81 2905.5,-62 2836.5,-62"/>
+<text text-anchor="middle" x="2871" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
</g>
<!-- Node1->Node15 -->
-<g id="edge153" class="edge">
+<g id="edge158" class="edge">
<title>Node1->Node15</title>
-<path fill="none" stroke="#191970" d="M2762.6579,-720.2581C2817.55,-709.8156 2910,-682.1171 2910,-614 2910,-614 2910,-614 2910,-502 2910,-224.4556 2483.7241,-110.3232 2342.6978,-80.1587"/>
-<polygon fill="#191970" stroke="#191970" points="2343.1631,-76.6802 2332.6573,-78.0506 2341.7247,-83.5308 2343.1631,-76.6802"/>
+<path fill="none" stroke="#191970" d="M2571.6835,-722.8735C2653.7395,-716.11 2839.4632,-699.1741 2900,-680 2959.5173,-661.1488 3024,-676.4314 3024,-614 3024,-614 3024,-614 3024,-189 3024,-133.6159 2960.1582,-100.755 2914.9533,-84.429"/>
+<polygon fill="#191970" stroke="#191970" points="2915.931,-81.0637 2905.3362,-81.0999 2913.6411,-87.6786 2915.931,-81.0637"/>
</g>
-<!-- Node20 -->
-<g id="node21" class="node">
-<title>Node20</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1610,-179.5 1610,-198.5 1674,-198.5 1674,-179.5 1610,-179.5"/>
-<text text-anchor="middle" x="1642" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
+<!-- Node24 -->
+<g id="node25" class="node">
+<title>Node24</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="714,-179.5 714,-198.5 778,-198.5 778,-179.5 714,-179.5"/>
+<text text-anchor="middle" x="746" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
</g>
-<!-- Node1->Node20 -->
-<g id="edge150" class="edge">
-<title>Node1->Node20</title>
-<path fill="none" stroke="#191970" d="M2720.7353,-716.2936C2709.4522,-669.9452 2655.1232,-468.8319 2538,-358 2412.1156,-238.8775 1846.0511,-199.8936 1684.919,-191.1079"/>
-<polygon fill="#191970" stroke="#191970" points="1684.636,-187.5879 1674.4636,-190.5496 1684.2627,-194.578 1684.636,-187.5879"/>
+<!-- Node1->Node24 -->
+<g id="edge155" class="edge">
+<title>Node1->Node24</title>
+<path fill="none" stroke="#191970" d="M2492.1622,-725.3959C2265.7116,-721.8941 1138.53,-703.5359 792,-680 657.73,-670.8806 190,-748.5794 190,-614 190,-614 190,-614 190,-373.5 190,-310.9576 248.203,-319.2533 304,-291 350.6468,-267.38 367.0044,-273.2555 416,-255 437.2729,-247.0739 441.1534,-241.1711 463,-235 567.2213,-205.5602 597.6702,-219.561 704,-199 704.1012,-198.9804 704.2025,-198.9608 704.3039,-198.9411"/>
+<polygon fill="#191970" stroke="#191970" points="704.8831,-202.3957 713.9575,-196.9271 703.4535,-195.5432 704.8831,-202.3957"/>
</g>
-<!-- Node31 -->
-<g id="node32" class="node">
-<title>Node31</title>
-<g id="a_node32"><a xlink:href="string_8h.html" target="_top" xlink:title="Runtime String container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1274,-291.5 1274,-321.5 1400,-321.5 1400,-291.5 1274,-291.5"/>
-<text text-anchor="start" x="1282" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1337" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
+<!-- Node26 -->
+<g id="node27" class="node">
+<title>Node26</title>
+<g id="a_node27"><a xlink:href="string_8h.html" target="_top" xlink:title="Runtime String container types. ">
+<polygon fill="#ffffff" stroke="#000000" points="992,-291.5 992,-321.5 1118,-321.5 1118,-291.5 992,-291.5"/>
+<text text-anchor="start" x="1000" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1055" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
</a>
</g>
</g>
-<!-- Node1->Node31 -->
-<g id="edge148" class="edge">
-<title>Node1->Node31</title>
-<path fill="none" stroke="#191970" d="M2683.2474,-725.4832C2429.5951,-721.9321 1048,-698.7021 1048,-614 1048,-614 1048,-614 1048,-440.5 1048,-392.4398 1181.2068,-347.8733 1266.7486,-324.2087"/>
-<polygon fill="#191970" stroke="#191970" points="1267.6925,-327.5792 1276.4161,-321.5668 1265.8472,-320.8268 1267.6925,-327.5792"/>
+<!-- Node1->Node26 -->
+<g id="edge153" class="edge">
+<title>Node1->Node26</title>
+<path fill="none" stroke="#191970" d="M2492.2127,-725.5028C2247.011,-722.3635 948.9629,-704.6267 869,-680 817.0389,-663.9972 766,-668.3696 766,-614 766,-614 766,-614 766,-440.5 766,-402.8735 757.8949,-384.0973 785,-358 812.5634,-331.4614 911.5425,-317.9627 981.6492,-311.5808"/>
+<polygon fill="#191970" stroke="#191970" points="982.1166,-315.0533 991.7713,-310.6902 981.503,-308.0803 982.1166,-315.0533"/>
</g>
-<!-- Node43 -->
-<g id="node44" class="node">
-<title>Node43</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2458,-364 2458,-383 2502,-383 2502,-364 2458,-364"/>
-<text text-anchor="middle" x="2480" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
+<!-- Node44 -->
+<g id="node45" class="node">
+<title>Node44</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="794,-364 794,-383 838,-383 838,-364 794,-364"/>
+<text text-anchor="middle" x="816" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
</g>
-<!-- Node1->Node43 -->
-<g id="edge151" class="edge">
-<title>Node1->Node43</title>
-<path fill="none" stroke="#191970" d="M2740.0302,-716.4704C2772.7539,-696.8464 2839.1356,-649.9036 2815,-604 2749.3963,-479.2278 2582.3208,-408.8641 2511.9825,-383.943"/>
-<polygon fill="#191970" stroke="#191970" points="2512.925,-380.5654 2502.3302,-380.5948 2510.6309,-387.1788 2512.925,-380.5654"/>
+<!-- Node1->Node44 -->
+<g id="edge156" class="edge">
+<title>Node1->Node44</title>
+<path fill="none" stroke="#191970" d="M2492.423,-725.4679C2254.1378,-722.1874 1018.1149,-704.0588 942,-680 891.2243,-663.9506 842,-667.2518 842,-614 842,-614 842,-614 842,-502 842,-462.5442 830.0785,-417.603 822.3806,-392.6964"/>
+<polygon fill="#191970" stroke="#191970" points="825.6719,-391.4974 819.2929,-383.0381 819.0043,-393.629 825.6719,-391.4974"/>
</g>
-<!-- Node1->Node47 -->
-<g id="edge140" class="edge">
-<title>Node1->Node47</title>
-<path fill="none" stroke="#191970" d="M2693.6041,-716.3733C2665.1693,-707.0613 2621.9123,-692.8953 2590.6919,-682.671"/>
-<polygon fill="#191970" stroke="#191970" points="2591.605,-679.2872 2581.0124,-679.5011 2589.4264,-685.9396 2591.605,-679.2872"/>
+<!-- Node1->Node48 -->
+<g id="edge145" class="edge">
+<title>Node1->Node48</title>
+<path fill="none" stroke="#191970" d="M2550.4638,-716.2455C2567.1074,-707.4527 2591.7993,-694.4079 2610.7192,-684.4125"/>
+<polygon fill="#191970" stroke="#191970" points="2612.5408,-687.4086 2619.7478,-679.6427 2609.2709,-681.2193 2612.5408,-687.4086"/>
</g>
<!-- Node2->Node3 -->
<g id="edge3" class="edge">
<title>Node2->Node3</title>
-<path fill="none" stroke="#191970" d="M2724.3284,-609.4173C2636.8038,-599.5554 2430.2421,-576.2808 2327.781,-564.7359"/>
-<polygon fill="#191970" stroke="#191970" points="2327.9309,-561.2307 2317.6018,-563.5889 2327.147,-568.1867 2327.9309,-561.2307"/>
+<path fill="none" stroke="#191970" d="M2674.9626,-604.3733C2641.6106,-594.9404 2590.6473,-580.5265 2554.3998,-570.2747"/>
+<polygon fill="#191970" stroke="#191970" points="2555.1684,-566.8548 2544.5933,-567.5011 2553.2632,-573.5906 2555.1684,-566.8548"/>
</g>
<!-- Node2->Node8 -->
-<g id="edge138" class="edge">
+<g id="edge143" class="edge">
<title>Node2->Node8</title>
-<path fill="none" stroke="#191970" d="M2764.5407,-604.2909C2762.4305,-568.514 2751.2237,-441.7841 2696,-358 2671.2189,-320.4028 2660.3911,-310.9051 2620,-291 2545.2551,-254.1651 2517.5515,-272.116 2436,-255 2284.8858,-223.2842 2249.7618,-201.4773 2097,-179 1890.739,-148.6509 1644.0703,-138.0986 1525.8764,-134.6124"/>
-<polygon fill="#191970" stroke="#191970" points="1525.6267,-131.1039 1515.5304,-134.3157 1525.4259,-138.101 1525.6267,-131.1039"/>
+<path fill="none" stroke="#191970" d="M2707.631,-604.4512C2700.6813,-559.8513 2664.9643,-370.8615 2549,-291 2406.4421,-192.8242 1869.9446,-149.6976 1676.8164,-137.1251"/>
+<polygon fill="#191970" stroke="#191970" points="1676.9878,-133.629 1666.7837,-136.4795 1676.5382,-140.6146 1676.9878,-133.629"/>
</g>
<!-- Node2->Node14 -->
-<g id="edge139" class="edge">
+<g id="edge144" class="edge">
<title>Node2->Node14</title>
-<path fill="none" stroke="#191970" d="M2773.6362,-604.1906C2804.852,-567.6852 2910,-435.1701 2910,-306.5 2910,-306.5 2910,-306.5 2910,-189 2910,-157.7875 2909.413,-143.6411 2886,-123 2857.3087,-97.7055 2746.9278,-81.6595 2691.3566,-75.0151"/>
-<polygon fill="#191970" stroke="#191970" points="2691.6693,-71.528 2681.3316,-73.8476 2690.8595,-78.481 2691.6693,-71.528"/>
+<path fill="none" stroke="#191970" d="M2711.0402,-604.2969C2715.0547,-583.3608 2722.702,-532.5621 2712,-492 2669.639,-331.4451 2622.6277,-299.1367 2508,-179 2482.3671,-152.1352 2476.8214,-143.7076 2446,-123 2422.2564,-107.0476 2392.8186,-93.259 2370.8339,-83.9747"/>
+<polygon fill="#191970" stroke="#191970" points="2371.8831,-80.6212 2361.3045,-80.0343 2369.2082,-87.09 2371.8831,-80.6212"/>
</g>
<!-- Node4 -->
<g id="node5" class="node">
<title>Node4</title>
<g id="a_node5"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1831.5,-492.5 1831.5,-511.5 1952.5,-511.5 1952.5,-492.5 1831.5,-492.5"/>
-<text text-anchor="middle" x="1892" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2143.5,-492.5 2143.5,-511.5 2264.5,-511.5 2264.5,-492.5 2143.5,-492.5"/>
+<text text-anchor="middle" x="2204" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
</a>
</g>
</g>
<!-- Node3->Node4 -->
<g id="edge4" class="edge">
<title>Node3->Node4</title>
-<path fill="none" stroke="#191970" d="M2218.4579,-550.6214C2153.0361,-540.8777 2037.4186,-523.6581 1962.7927,-512.5436"/>
-<polygon fill="#191970" stroke="#191970" points="1962.9508,-509.0286 1952.5442,-511.0172 1961.9195,-515.9522 1962.9508,-509.0286"/>
+<path fill="none" stroke="#191970" d="M2461.3339,-548.9404C2408.1839,-539.2453 2323.7672,-523.8468 2266.2242,-513.3503"/>
+<polygon fill="#191970" stroke="#191970" points="2266.6283,-509.8664 2256.1626,-511.515 2265.3721,-516.7528 2266.6283,-509.8664"/>
</g>
<!-- Node5 -->
<g id="node6" class="node">
<title>Node5</title>
<g id="a_node6"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="#ffffff" stroke="#000000" points="2136.5,-358.5 2136.5,-388.5 2249.5,-388.5 2249.5,-358.5 2136.5,-358.5"/>
-<text text-anchor="start" x="2144.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="2193" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1984.5,-425.5 1984.5,-455.5 2097.5,-455.5 2097.5,-425.5 1984.5,-425.5"/>
+<text text-anchor="start" x="1992.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="2041" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
</a>
</g>
</g>
<!-- Node3->Node5 -->
-<g id="edge129" class="edge">
+<g id="edge134" class="edge">
<title>Node3->Node5</title>
-<path fill="none" stroke="#191970" d="M2261.6289,-548.4312C2255.7534,-539.3296 2247.0509,-525.1175 2241,-512 2223.325,-473.6827 2208.4089,-426.8967 2200.0931,-398.6884"/>
-<polygon fill="#191970" stroke="#191970" points="2203.3847,-397.4722 2197.2372,-388.8433 2196.6619,-399.4225 2203.3847,-397.4722"/>
+<path fill="none" stroke="#191970" d="M2461.3529,-555.2001C2372.9799,-549.6805 2192.2025,-535.8174 2134,-512 2106.703,-500.8296 2080.528,-479.416 2062.9413,-462.9231"/>
+<polygon fill="#191970" stroke="#191970" points="2065.1219,-460.1639 2055.4921,-455.7461 2060.2651,-465.2049 2065.1219,-460.1639"/>
</g>
<!-- Node3->Node8 -->
-<g id="edge133" class="edge">
+<g id="edge138" class="edge">
<title>Node3->Node8</title>
-<path fill="none" stroke="#191970" d="M2317.6186,-549.7812C2370.2155,-538.3267 2451.5573,-512.2503 2495,-456 2521.9754,-421.0718 2532.918,-396.3048 2511,-358 2411.7744,-184.5895 1745.1034,-143.9432 1525.7881,-135.2141"/>
-<polygon fill="#191970" stroke="#191970" points="1525.815,-131.7126 1515.6867,-134.8222 1525.5435,-138.7074 1525.815,-131.7126"/>
+<path fill="none" stroke="#191970" d="M2537.9644,-548.4934C2554.1714,-541.2188 2573.4508,-529.4326 2583,-512 2601.5763,-478.0879 2604.1327,-457.3808 2583,-425 2545.021,-366.8064 2075.4364,-195.7699 2008,-179 1894.038,-150.6603 1757.4404,-139.7118 1676.6783,-135.5296"/>
+<polygon fill="#191970" stroke="#191970" points="1676.79,-132.0309 1666.6283,-135.0293 1676.4419,-139.0223 1676.79,-132.0309"/>
</g>
<!-- Node9 -->
<g id="node10" class="node">
<title>Node9</title>
<g id="a_node10"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
-<polygon fill="#ffffff" stroke="#000000" points="125.5,-56.5 125.5,-86.5 254.5,-86.5 254.5,-56.5 125.5,-56.5"/>
-<text text-anchor="start" x="133.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
-<text text-anchor="middle" x="190" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2483.5,-56.5 2483.5,-86.5 2612.5,-86.5 2612.5,-56.5 2483.5,-56.5"/>
+<text text-anchor="start" x="2491.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="2548" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
</a>
</g>
</g>
<!-- Node3->Node9 -->
-<g id="edge131" class="edge">
+<g id="edge136" class="edge">
<title>Node3->Node9</title>
-<path fill="none" stroke="#191970" d="M2218.4065,-557.5653C1904.6696,-554.7365 207.1939,-538.237 161,-512 40.5077,-443.5632 0,-383.5712 0,-245 0,-245 0,-245 0,-189 0,-132.133 62.3281,-101.8622 115.5875,-86.3764"/>
-<polygon fill="#191970" stroke="#191970" points="116.7078,-89.6979 125.4095,-83.6538 114.838,-82.9522 116.7078,-89.6979"/>
+<path fill="none" stroke="#191970" d="M2560.6581,-552.2094C2608.5188,-545.4857 2675.9778,-532.6035 2692,-512 2746.9581,-441.3275 2790.7846,-313.8512 2654,-123 2643.8375,-108.8205 2628.6855,-98.3734 2612.9951,-90.7454"/>
+<polygon fill="#191970" stroke="#191970" points="2614.2836,-87.4871 2603.7283,-86.5729 2611.4096,-93.87 2614.2836,-87.4871"/>
</g>
<!-- Node3->Node14 -->
-<g id="edge134" class="edge">
+<g id="edge139" class="edge">
<title>Node3->Node14</title>
-<path fill="none" stroke="#191970" d="M2317.6156,-554.0357C2363.558,-548.9048 2432.8894,-537.3868 2488,-512 2576.211,-471.3655 2834,-342.1203 2834,-245 2834,-245 2834,-245 2834,-189 2834,-120.8697 2741.446,-89.6903 2690.9562,-77.7502"/>
-<polygon fill="#191970" stroke="#191970" points="2691.6879,-74.3274 2681.1639,-75.5505 2690.1536,-81.1572 2691.6879,-74.3274"/>
+<path fill="none" stroke="#191970" d="M2549.2484,-548.3952C2568.178,-541.5364 2589.4074,-530.2061 2601,-512 2654.4508,-428.0559 2603.5461,-382.7486 2565,-291 2523.7154,-192.7333 2414.3284,-116.8818 2364.4424,-86.2605"/>
+<polygon fill="#191970" stroke="#191970" points="2366.2198,-83.2452 2355.8499,-81.074 2362.6024,-89.2381 2366.2198,-83.2452"/>
</g>
<!-- Node3->Node15 -->
-<g id="edge135" class="edge">
+<g id="edge140" class="edge">
<title>Node3->Node15</title>
-<path fill="none" stroke="#191970" d="M2317.7898,-552.414C2357.0677,-546.4883 2412.3227,-534.7055 2456,-512 2489.5354,-494.5667 2501.6364,-489.0352 2520,-456 2534.6615,-429.6247 2528.5474,-419.0766 2531,-389 2542.2878,-250.5736 2463.6292,-222.7601 2367,-123 2353.606,-109.172 2336.2252,-96.223 2322.2589,-86.7684"/>
-<polygon fill="#191970" stroke="#191970" points="2323.9243,-83.6739 2313.6504,-81.0858 2320.0679,-89.5159 2323.9243,-83.6739"/>
+<path fill="none" stroke="#191970" d="M2560.5893,-554.7031C2603.1521,-550.0607 2664.8997,-538.8866 2712,-512 2813.0217,-454.3331 2817.5165,-411.348 2892,-322 2915.6224,-293.6633 2927.6906,-289.4071 2941,-255 2953.224,-223.399 2953.0455,-212.3392 2947,-179 2942.2572,-152.8452 2940.7559,-145.1095 2926,-123 2916.9729,-109.4742 2903.7436,-96.9406 2892.522,-87.6251"/>
+<polygon fill="#191970" stroke="#191970" points="2894.4327,-84.6719 2884.4349,-81.1657 2890.064,-90.1414 2894.4327,-84.6719"/>
</g>
<!-- Node16 -->
<g id="node17" class="node">
<title>Node16</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="859.5,-62 859.5,-81 904.5,-81 904.5,-62 859.5,-62"/>
-<text text-anchor="middle" x="882" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="410.5,-62 410.5,-81 455.5,-81 455.5,-62 410.5,-62"/>
+<text text-anchor="middle" x="433" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
</g>
<!-- Node3->Node16 -->
-<g id="edge136" class="edge">
+<g id="edge141" class="edge">
<title>Node3->Node16</title>
-<path fill="none" stroke="#191970" d="M2218.166,-557.3046C1946.3371,-553.4341 648.3158,-533.9283 471,-512 326.803,-494.1675 152,-585.7954 152,-440.5 152,-440.5 152,-440.5 152,-373.5 152,-219.6225 245.453,-172.9434 391,-123 476.3804,-93.7024 753.6546,-77.7519 849.2488,-73.0186"/>
-<polygon fill="#191970" stroke="#191970" points="849.6523,-76.5032 859.4703,-72.5212 849.312,-69.5115 849.6523,-76.5032"/>
+<path fill="none" stroke="#191970" d="M2461.0369,-557.5282C2169.1354,-554.2837 682.465,-530.9287 252,-389 129.491,-348.6075 0,-373.9961 0,-245 0,-245 0,-245 0,-189 0,-106.1429 299.0468,-79.852 400.0964,-73.3333"/>
+<polygon fill="#191970" stroke="#191970" points="400.5659,-76.811 410.3297,-72.6977 400.1319,-69.8244 400.5659,-76.811"/>
</g>
<!-- Node18 -->
<g id="node19" class="node">
<title>Node18</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1652.5,-235.5 1652.5,-254.5 1699.5,-254.5 1699.5,-235.5 1652.5,-235.5"/>
-<text text-anchor="middle" x="1676" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1402.5,-235.5 1402.5,-254.5 1449.5,-254.5 1449.5,-235.5 1402.5,-235.5"/>
+<text text-anchor="middle" x="1426" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
</g>
<!-- Node3->Node18 -->
-<g id="edge137" class="edge">
+<g id="edge142" class="edge">
<title>Node3->Node18</title>
-<path fill="none" stroke="#191970" d="M2218.1641,-554.722C2118.078,-547.8336 1895.9007,-530.921 1822,-512 1759.867,-496.0919 1742.9783,-490.6399 1689,-456 1651.9372,-432.2154 1633.72,-429.3157 1616,-389 1596.0503,-343.6114 1635.3132,-289.502 1659.3056,-262.3535"/>
-<polygon fill="#191970" stroke="#191970" points="1662.0159,-264.576 1666.1788,-254.8332 1656.8489,-259.8535 1662.0159,-264.576"/>
+<path fill="none" stroke="#191970" d="M2461.2832,-556.1715C2251.0549,-548.1025 1441.4203,-513.5089 1344,-456 1278.5426,-417.3593 1255.3529,-353.2311 1299,-291 1304.6311,-282.9713 1357.1256,-265.7952 1392.8371,-254.8535"/>
+<polygon fill="#191970" stroke="#191970" points="1393.8605,-258.2006 1402.4117,-251.9455 1391.8261,-251.5027 1393.8605,-258.2006"/>
</g>
-<!-- Node23 -->
-<g id="node24" class="node">
-<title>Node23</title>
-<g id="a_node24"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="#ffffff" stroke="#000000" points="948.5,-179.5 948.5,-198.5 1077.5,-198.5 1077.5,-179.5 948.5,-179.5"/>
-<text text-anchor="middle" x="1013" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
+<!-- Node22 -->
+<g id="node23" class="node">
+<title>Node22</title>
+<g id="a_node23"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
+<polygon fill="#ffffff" stroke="#000000" points="566.5,-179.5 566.5,-198.5 695.5,-198.5 695.5,-179.5 566.5,-179.5"/>
+<text text-anchor="middle" x="631" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
</a>
</g>
</g>
-<!-- Node3->Node23 -->
-<g id="edge132" class="edge">
-<title>Node3->Node23</title>
-<path fill="none" stroke="#191970" d="M2218.2626,-557.7563C1909.3349,-555.9253 266,-541.4414 266,-440.5 266,-440.5 266,-440.5 266,-373.5 266,-285.6581 327.0128,-271.3077 407,-235 454.2527,-213.5511 786.7564,-197.9026 938.189,-191.8063"/>
-<polygon fill="#191970" stroke="#191970" points="938.4826,-195.2975 948.335,-191.4013 938.2033,-188.303 938.4826,-195.2975"/>
+<!-- Node3->Node22 -->
+<g id="edge137" class="edge">
+<title>Node3->Node22</title>
+<path fill="none" stroke="#191970" d="M2461.4477,-557.142C2314.9913,-554.3035 1871.4557,-543.5305 1505,-512 1198.361,-485.6162 1124.3733,-454.3079 818,-425 756.4846,-419.1154 305.2587,-434.0886 263,-389 251.3527,-376.5727 252.955,-315.5428 269,-291 297.2989,-247.7133 322.2202,-252.1784 371,-235 431.5227,-213.6861 503.5938,-201.9276 556.489,-195.6473"/>
+<polygon fill="#191970" stroke="#191970" points="556.9341,-199.1193 566.469,-194.5002 556.1347,-192.1651 556.9341,-199.1193"/>
</g>
-<!-- Node27 -->
-<g id="node28" class="node">
-<title>Node27</title>
-<g id="a_node28"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
-<polygon fill="#ffffff" stroke="#000000" points="1937.5,-425.5 1937.5,-455.5 2050.5,-455.5 2050.5,-425.5 1937.5,-425.5"/>
-<text text-anchor="start" x="1945.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1994" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
+<!-- Node33 -->
+<g id="node34" class="node">
+<title>Node33</title>
+<g id="a_node34"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
+<polygon fill="#ffffff" stroke="#000000" points="2192.5,-425.5 2192.5,-455.5 2305.5,-455.5 2305.5,-425.5 2192.5,-425.5"/>
+<text text-anchor="start" x="2200.5" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="2249" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
</a>
</g>
</g>
-<!-- Node3->Node27 -->
-<g id="edge130" class="edge">
-<title>Node3->Node27</title>
-<path fill="none" stroke="#191970" d="M2245.5774,-548.3845C2200.418,-529.0187 2097.7774,-485.0031 2038.4975,-459.5819"/>
-<polygon fill="#191970" stroke="#191970" points="2039.5877,-456.2413 2029.0176,-455.5167 2036.8288,-462.6747 2039.5877,-456.2413"/>
+<!-- Node3->Node33 -->
+<g id="edge135" class="edge">
+<title>Node3->Node33</title>
+<path fill="none" stroke="#191970" d="M2489.5594,-548.3845C2446.4668,-529.0586 2348.6369,-485.1845 2291.8998,-459.7394"/>
+<polygon fill="#191970" stroke="#191970" points="2293.0407,-456.4152 2282.484,-455.5167 2290.1762,-462.8023 2293.0407,-456.4152"/>
</g>
-<!-- Node45 -->
-<g id="node46" class="node">
-<title>Node45</title>
-<g id="a_node46"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="2250.5,-492.5 2250.5,-511.5 2381.5,-511.5 2381.5,-492.5 2250.5,-492.5"/>
-<text text-anchor="middle" x="2316" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
+<!-- Node46 -->
+<g id="node47" class="node">
+<title>Node46</title>
+<g id="a_node47"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
+<polygon fill="#ffffff" stroke="#000000" points="2442.5,-492.5 2442.5,-511.5 2573.5,-511.5 2573.5,-492.5 2442.5,-492.5"/>
+<text text-anchor="middle" x="2508" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
</a>
</g>
</g>
-<!-- Node3->Node45 -->
-<g id="edge126" class="edge">
-<title>Node3->Node45</title>
-<path fill="none" stroke="#191970" d="M2276.361,-548.2455C2283.175,-540.2958 2292.9681,-528.8706 2301.1152,-519.3656"/>
-<polygon fill="#191970" stroke="#191970" points="2303.8843,-521.513 2307.7349,-511.6427 2298.5695,-516.9575 2303.8843,-521.513"/>
+<!-- Node3->Node46 -->
+<g id="edge131" class="edge">
+<title>Node3->Node46</title>
+<path fill="none" stroke="#191970" d="M2510.4774,-548.2455C2510.086,-540.9382 2509.5372,-530.6944 2509.0556,-521.7046"/>
+<polygon fill="#191970" stroke="#191970" points="2512.5466,-521.4411 2508.5166,-511.6427 2505.5566,-521.8156 2512.5466,-521.4411"/>
</g>
<!-- Node4->Node5 -->
<g id="edge5" class="edge">
<title>Node4->Node5</title>
-<path fill="none" stroke="#191970" d="M1940.3768,-492.4884C1974.398,-484.8905 2020.5307,-472.7347 2059,-456 2097.4877,-439.2572 2138.0409,-412.8974 2164.319,-394.4934"/>
-<polygon fill="#191970" stroke="#191970" points="2166.5246,-397.2201 2172.6598,-388.5824 2162.4772,-391.5089 2166.5246,-397.2201"/>
+<path fill="none" stroke="#191970" d="M2178.5313,-492.3906C2155.0414,-483.5279 2119.5155,-470.1239 2090.455,-459.1594"/>
+<polygon fill="#191970" stroke="#191970" points="2091.466,-455.8001 2080.8743,-455.5446 2088.9949,-462.3494 2091.466,-455.8001"/>
</g>
<!-- Node4->Node8 -->
-<g id="edge89" class="edge">
+<g id="edge94" class="edge">
<title>Node4->Node8</title>
-<path fill="none" stroke="#191970" d="M1831.4419,-500.8188C1702.048,-497.7533 1389.1999,-487.4522 1129,-456 1052.7535,-446.7836 1034.668,-438.146 959,-425 822.5898,-401.3011 721.977,-448.1864 665,-322 659.3301,-309.443 656.7031,-301.9995 665,-291 719.5571,-218.6721 772.5567,-254.6363 861,-235 959.8645,-213.05 986.8774,-219.7534 1086,-199 1120.6074,-191.7542 1128.382,-186.1951 1163,-179 1238.8934,-163.2261 1326.8489,-150.097 1386.4361,-141.9567"/>
-<polygon fill="#191970" stroke="#191970" points="1387.0458,-145.4062 1396.485,-140.5945 1386.1055,-138.4696 1387.0458,-145.4062"/>
+<path fill="none" stroke="#191970" d="M2198.0235,-492.2032C2192.8888,-483.1737 2185.8729,-469.2108 2183,-456 2167.3137,-383.868 2238.1652,-355.3519 2202,-291 2178.5482,-249.2703 2153.105,-255.8162 2110,-235 2045.1693,-203.692 2027.9027,-196.2287 1958,-179 1862.1645,-155.3797 1748.4314,-143.2917 1676.9747,-137.5625"/>
+<polygon fill="#191970" stroke="#191970" points="1676.9882,-134.053 1666.7458,-136.7628 1676.4425,-141.0317 1676.9882,-134.053"/>
</g>
<!-- Node4->Node9 -->
-<g id="edge85" class="edge">
+<g id="edge90" class="edge">
<title>Node4->Node9</title>
-<path fill="none" stroke="#191970" d="M1831.4281,-500.8476C1667.3913,-497.4169 1200.8618,-485.606 814,-456 543.8156,-435.3231 460.1413,-488.2568 208,-389 115.8635,-352.73 38,-344.0184 38,-245 38,-245 38,-245 38,-189 38,-139.8507 88.3612,-108.3523 131.1071,-90.4691"/>
-<polygon fill="#191970" stroke="#191970" points="132.6704,-93.6132 140.65,-86.6434 130.0657,-87.1158 132.6704,-93.6132"/>
+<path fill="none" stroke="#191970" d="M2264.5224,-493.236C2333.0045,-480.6197 2444.6593,-451.5768 2519,-389 2595.0488,-324.9854 2621.6049,-297.2053 2637,-199 2642.2313,-165.6298 2653.8746,-152.2606 2637,-123 2629.1721,-109.4263 2616.2494,-99.1064 2602.646,-91.4046"/>
+<polygon fill="#191970" stroke="#191970" points="2604.1398,-88.2363 2593.6549,-86.7137 2600.9018,-94.4424 2604.1398,-88.2363"/>
</g>
<!-- Node4->Node14 -->
-<g id="edge123" class="edge">
+<g id="edge128" class="edge">
<title>Node4->Node14</title>
-<path fill="none" stroke="#191970" d="M1952.5494,-496.4212C2143.4267,-477.1839 2720,-405.7691 2720,-245 2720,-245 2720,-245 2720,-189 2720,-149.8384 2692.979,-110.7568 2674.9051,-88.996"/>
-<polygon fill="#191970" stroke="#191970" points="2677.4426,-86.579 2668.2646,-81.2861 2672.1387,-91.1472 2677.4426,-86.579"/>
+<path fill="none" stroke="#191970" d="M2245.1641,-492.4234C2275.0923,-484.6583 2316.1247,-472.3266 2350,-456 2372.2088,-445.2962 2374.4872,-437.0416 2396,-425 2467.53,-384.9617 2515.7617,-396.9321 2549,-322 2554.5866,-309.4057 2554.1315,-303.7865 2549,-291 2528.8025,-240.6721 2405.5345,-129.5522 2357.8293,-87.7909"/>
+<polygon fill="#191970" stroke="#191970" points="2359.9304,-84.9793 2350.0923,-81.0469 2355.3308,-90.2561 2359.9304,-84.9793"/>
</g>
<!-- Node4->Node15 -->
-<g id="edge124" class="edge">
+<g id="edge129" class="edge">
<title>Node4->Node15</title>
-<path fill="none" stroke="#191970" d="M1952.5869,-499.4888C2012.7297,-495.3803 2106.7139,-484.5497 2183,-456 2288.0995,-416.667 2342.6412,-420.1739 2397,-322 2442.8702,-239.1569 2354.2274,-130.6349 2315.1742,-88.8942"/>
-<polygon fill="#191970" stroke="#191970" points="2317.5166,-86.2792 2308.0793,-81.4639 2312.4539,-91.1134 2317.5166,-86.2792"/>
+<path fill="none" stroke="#191970" d="M2264.7506,-495.6938C2314.7305,-489.2845 2386.8671,-477.2015 2447,-456 2474.5656,-446.281 2478.5373,-437.4116 2505,-425 2686.5747,-339.8374 2811.0423,-421.3956 2923,-255 2958.8029,-201.7883 2910.6607,-124.052 2885.1048,-89.3633"/>
+<polygon fill="#191970" stroke="#191970" points="2887.7023,-86.996 2878.8708,-81.1432 2882.1248,-91.226 2887.7023,-86.996"/>
</g>
<!-- Node4->Node18 -->
-<g id="edge125" class="edge">
+<g id="edge130" class="edge">
<title>Node4->Node18</title>
-<path fill="none" stroke="#191970" d="M1885.2667,-492.2652C1867.8006,-467.5183 1818.7135,-401.114 1766,-358 1741.0371,-337.583 1723.6382,-346.7803 1703,-322 1689.2993,-305.5496 1682.3653,-281.6877 1678.9833,-264.8977"/>
-<polygon fill="#191970" stroke="#191970" points="1682.3484,-263.8246 1677.1699,-254.5816 1675.4541,-265.0366 1682.3484,-263.8246"/>
+<path fill="none" stroke="#191970" d="M2143.3896,-499.9041C1974.219,-493.8372 1504.9246,-475.4502 1438,-456 1378.9708,-438.8444 1348.2112,-441.9587 1317,-389 1294.8854,-351.4763 1292.9223,-327.2953 1317,-291 1325.8111,-277.7179 1364.0011,-263.6334 1392.7092,-254.6012"/>
+<polygon fill="#191970" stroke="#191970" points="1393.8709,-257.9059 1402.4045,-251.6267 1391.8177,-251.2138 1393.8709,-257.9059"/>
</g>
-<!-- Node4->Node23 -->
-<g id="edge87" class="edge">
-<title>Node4->Node23</title>
-<path fill="none" stroke="#191970" d="M1831.4051,-500.5716C1695.3032,-496.9322 1355.1098,-485.4285 1072,-456 875.2504,-435.5484 825.232,-431.3096 632,-389 526.7417,-365.9529 463.8146,-408.0787 399,-322 373.6195,-288.2928 400.5338,-256.2265 437,-235 479.3075,-210.3733 791.9564,-196.5584 938.1008,-191.3849"/>
-<polygon fill="#191970" stroke="#191970" points="938.4579,-194.8746 948.3295,-191.0273 938.2132,-187.8789 938.4579,-194.8746"/>
+<!-- Node4->Node22 -->
+<g id="edge92" class="edge">
+<title>Node4->Node22</title>
+<path fill="none" stroke="#191970" d="M2143.4946,-499.2904C2003.018,-492.8844 1643.8773,-475.844 1344,-456 1169.1731,-444.431 1125.8236,-436.6183 951,-425 914.0275,-422.5429 310.4842,-415.899 285,-389 191.4761,-290.2843 443.9522,-225.4948 567.4587,-200.5442"/>
+<polygon fill="#191970" stroke="#191970" points="568.4339,-203.9189 577.5586,-198.5345 567.0678,-197.0535 568.4339,-203.9189"/>
</g>
-<!-- Node26 -->
-<g id="node27" class="node">
-<title>Node26</title>
-<g id="a_node27"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
-<polygon fill="#ffffff" stroke="#000000" points="2250,-297 2250,-316 2388,-316 2388,-297 2250,-297"/>
-<text text-anchor="middle" x="2319" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
+<!-- Node32 -->
+<g id="node33" class="node">
+<title>Node32</title>
+<g id="a_node33"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
+<polygon fill="#ffffff" stroke="#000000" points="2402,-297 2402,-316 2540,-316 2540,-297 2402,-297"/>
+<text text-anchor="middle" x="2471" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
</a>
</g>
</g>
-<!-- Node4->Node26 -->
-<g id="edge86" class="edge">
-<title>Node4->Node26</title>
-<path fill="none" stroke="#191970" d="M1952.6792,-496.76C2030.8089,-487.2294 2167.2945,-460.8458 2258,-389 2280.3703,-371.281 2298.6313,-343.4294 2309.1654,-325.0667"/>
-<polygon fill="#191970" stroke="#191970" points="2312.293,-326.6434 2314.0752,-316.1995 2306.1691,-323.2525 2312.293,-326.6434"/>
+<!-- Node4->Node32 -->
+<g id="edge91" class="edge">
+<title>Node4->Node32</title>
+<path fill="none" stroke="#191970" d="M2231.439,-492.4288C2254.1712,-484.0551 2287.0061,-470.9199 2314,-456 2334.9365,-444.4281 2336.8706,-436.2159 2358,-425 2397.8817,-403.83 2423.5104,-423.1918 2453,-389 2467.9857,-371.6247 2471.3756,-344.6573 2471.7471,-326.3217"/>
+<polygon fill="#191970" stroke="#191970" points="2475.246,-326.1548 2471.6651,-316.1835 2468.2462,-326.2115 2475.246,-326.1548"/>
</g>
-<!-- Node4->Node27 -->
-<g id="edge44" class="edge">
-<title>Node4->Node27</title>
-<path fill="none" stroke="#191970" d="M1907.9375,-492.3906C1921.8698,-483.9903 1942.5684,-471.5103 1960.1749,-460.8945"/>
-<polygon fill="#191970" stroke="#191970" points="1962.2914,-463.7054 1969.048,-455.5446 1958.677,-457.7108 1962.2914,-463.7054"/>
+<!-- Node4->Node33 -->
+<g id="edge66" class="edge">
+<title>Node4->Node33</title>
+<path fill="none" stroke="#191970" d="M2211.0313,-492.3906C2216.6139,-484.761 2224.6591,-473.7658 2231.9082,-463.8588"/>
+<polygon fill="#191970" stroke="#191970" points="2234.9112,-465.6817 2237.9918,-455.5446 2229.262,-461.5481 2234.9112,-465.6817"/>
</g>
-<!-- Node28 -->
-<g id="node29" class="node">
-<title>Node28</title>
-<g id="a_node29"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction. ">
-<polygon fill="#ffffff" stroke="#000000" points="750.5,-364 750.5,-383 875.5,-383 875.5,-364 750.5,-364"/>
-<text text-anchor="middle" x="813" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
+<!-- Node34 -->
+<g id="node35" class="node">
+<title>Node34</title>
+<g id="a_node35"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction. ">
+<polygon fill="#ffffff" stroke="#000000" points="1643.5,-364 1643.5,-383 1768.5,-383 1768.5,-364 1643.5,-364"/>
+<text text-anchor="middle" x="1706" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
</a>
</g>
</g>
-<!-- Node4->Node28 -->
-<g id="edge88" class="edge">
-<title>Node4->Node28</title>
-<path fill="none" stroke="#191970" d="M1831.2679,-497.3231C1674.1337,-484.7602 1241.5787,-447.2378 885,-389 878.2172,-387.8922 871.1086,-386.5663 864.1101,-385.1627"/>
-<polygon fill="#191970" stroke="#191970" points="864.4878,-381.6668 853.9859,-383.0671 863.0689,-388.5215 864.4878,-381.6668"/>
+<!-- Node4->Node34 -->
+<g id="edge93" class="edge">
+<title>Node4->Node34</title>
+<path fill="none" stroke="#191970" d="M2192.3493,-492.272C2168.5634,-472.497 2115.8276,-429.1204 2106,-425 2048.5464,-400.9114 1877.6875,-385.4272 1778.847,-378.2248"/>
+<polygon fill="#191970" stroke="#191970" points="1778.8572,-374.7166 1768.6321,-377.4912 1778.3557,-381.6986 1778.8572,-374.7166"/>
</g>
-<!-- Node39 -->
-<g id="node40" class="node">
-<title>Node39</title>
-<g id="a_node40"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type-erased function used across TVM API. ">
-<polygon fill="#ffffff" stroke="#000000" points="1698,-425.5 1698,-455.5 1814,-455.5 1814,-425.5 1698,-425.5"/>
-<text text-anchor="start" x="1706" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
-<text text-anchor="middle" x="1756" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
+<!-- Node40 -->
+<g id="node41" class="node">
+<title>Node40</title>
+<g id="a_node41"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type-erased function used across TVM API. ">
+<polygon fill="#ffffff" stroke="#000000" points="1447,-425.5 1447,-455.5 1563,-455.5 1563,-425.5 1447,-425.5"/>
+<text text-anchor="start" x="1455" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
+<text text-anchor="middle" x="1505" y="-432.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
</a>
</g>
</g>
-<!-- Node4->Node39 -->
-<g id="edge90" class="edge">
-<title>Node4->Node39</title>
-<path fill="none" stroke="#191970" d="M1870.75,-492.3906C1851.4919,-483.682 1822.5378,-470.5888 1798.5329,-459.7336"/>
-<polygon fill="#191970" stroke="#191970" points="1799.8232,-456.4759 1789.2693,-455.5446 1796.9389,-462.8541 1799.8232,-456.4759"/>
+<!-- Node4->Node40 -->
+<g id="edge95" class="edge">
+<title>Node4->Node40</title>
+<path fill="none" stroke="#191970" d="M2143.4952,-496.6766C2013.8781,-485.2725 1710.1178,-458.5468 1573.589,-446.5347"/>
+<polygon fill="#191970" stroke="#191970" points="1573.5333,-443.0163 1563.2649,-445.6263 1572.9197,-449.9894 1573.5333,-443.0163"/>
</g>
<!-- Node6 -->
<g id="node7" class="node">
<title>Node6</title>
<g id="a_node7"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
-<polygon fill="#ffffff" stroke="#000000" points="2046.5,-297 2046.5,-316 2155.5,-316 2155.5,-297 2046.5,-297"/>
-<text text-anchor="middle" x="2101" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2084.5,-297 2084.5,-316 2193.5,-316 2193.5,-297 2084.5,-297"/>
+<text text-anchor="middle" x="2139" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
</a>
</g>
</g>
<!-- Node5->Node6 -->
<g id="edge6" class="edge">
<title>Node5->Node6</title>
-<path fill="none" stroke="#191970" d="M2172.1238,-358.2967C2157.2331,-347.4524 2137.2757,-332.9182 2122.2919,-322.006"/>
-<polygon fill="#191970" stroke="#191970" points="2124.2643,-319.1127 2114.1203,-316.055 2120.1434,-324.7712 2124.2643,-319.1127"/>
+<path fill="none" stroke="#191970" d="M2052.0513,-425.389C2070.2313,-400.5307 2106.3686,-351.1184 2125.8404,-324.4937"/>
+<polygon fill="#191970" stroke="#191970" points="2128.8979,-326.242 2131.9761,-316.1042 2123.2477,-322.1098 2128.8979,-326.242"/>
</g>
<!-- Node5->Node14 -->
-<g id="edge43" class="edge">
+<g id="edge65" class="edge">
<title>Node5->Node14</title>
-<path fill="none" stroke="#191970" d="M2249.5275,-367.1416C2292.1528,-360.5252 2350.9424,-347.406 2397,-322 2510.6513,-259.3083 2611.2358,-135.0353 2646.038,-89.1015"/>
-<polygon fill="#191970" stroke="#191970" points="2648.912,-91.1028 2652.1057,-81.0008 2643.3094,-86.9062 2648.912,-91.1028"/>
+<path fill="none" stroke="#191970" d="M2068.3358,-425.463C2102.8498,-405.4285 2162.4824,-367.2038 2202,-322 2267.704,-246.8418 2314.818,-134.9045 2331.9276,-90.571"/>
+<polygon fill="#191970" stroke="#191970" points="2335.2679,-91.6334 2335.5415,-81.0421 2328.7228,-89.1511 2335.2679,-91.6334"/>
</g>
<!-- Node19 -->
<g id="node20" class="node">
<title>Node19</title>
-<g id="a_node20"><a xlink:href="array_8h.html" target="_top" xlink:title="Runtime Array container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1712,-291.5 1712,-321.5 1838,-321.5 1838,-291.5 1712,-291.5"/>
-<text text-anchor="start" x="1720" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1775" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
+<g id="a_node20"><a xlink:href="object__path_8h.html" target="_top" xlink:title="tvm/node/object_path.h">
+<polygon fill="#ffffff" stroke="#000000" points="1024,-364 1024,-383 1156,-383 1156,-364 1024,-364"/>
+<text text-anchor="middle" x="1090" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/object_path.h</text>
</a>
</g>
</g>
<!-- Node5->Node19 -->
<g id="edge21" class="edge">
<title>Node5->Node19</title>
-<path fill="none" stroke="#191970" d="M2136.1916,-364.3944C2061.514,-352.4245 1930.2175,-331.3794 1848.1762,-318.2292"/>
-<polygon fill="#191970" stroke="#191970" points="1848.6032,-314.753 1838.1753,-316.6262 1847.4953,-321.6648 1848.6032,-314.753"/>
+<path fill="none" stroke="#191970" d="M1984.3586,-436.5095C1821.4922,-425.0352 1351.7699,-391.9423 1166.471,-378.8875"/>
+<polygon fill="#191970" stroke="#191970" points="1166.4918,-375.3804 1156.2705,-378.1689 1165.9998,-382.3631 1166.4918,-375.3804"/>
</g>
-<!-- Node5->Node26 -->
-<g id="edge38" class="edge">
-<title>Node5->Node26</title>
-<path fill="none" stroke="#191970" d="M2221.2769,-358.4639C2242.418,-347.2222 2271.1458,-331.9463 2291.9784,-320.8686"/>
-<polygon fill="#191970" stroke="#191970" points="2293.7528,-323.8892 2300.9389,-316.1039 2290.4663,-317.7087 2293.7528,-323.8892"/>
+<!-- Node31 -->
+<g id="node32" class="node">
+<title>Node31</title>
+<g id="a_node32"><a xlink:href="array_8h.html" target="_top" xlink:title="Runtime Array container types. ">
+<polygon fill="#ffffff" stroke="#000000" points="552,-291.5 552,-321.5 678,-321.5 678,-291.5 552,-291.5"/>
+<text text-anchor="start" x="560" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="615" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
+</a>
+</g>
+</g>
+<!-- Node5->Node31 -->
+<g id="edge54" class="edge">
+<title>Node5->Node31</title>
+<path fill="none" stroke="#191970" d="M1984.186,-438.2491C1782.9383,-430.1931 1110.9126,-402.5564 1015,-389 955.3303,-380.5662 941.9579,-370.4729 883,-358 798.487,-340.1207 776.7885,-338.5238 692,-322 690.7201,-321.7506 689.4284,-321.4982 688.1276,-321.2433"/>
+<polygon fill="#191970" stroke="#191970" points="688.5076,-317.751 678.0196,-319.2516 687.1542,-324.6189 688.5076,-317.751"/>
+</g>
+<!-- Node5->Node32 -->
+<g id="edge60" class="edge">
+<title>Node5->Node32</title>
+<path fill="none" stroke="#191970" d="M2089.4906,-425.389C2175.1124,-398.7068 2351.514,-343.7352 2430.8243,-319.0199"/>
+<polygon fill="#191970" stroke="#191970" points="2431.9472,-322.336 2440.4531,-316.0193 2429.8646,-315.653 2431.9472,-322.336"/>
</g>
<!-- Node7 -->
<g id="node8" class="node">
<title>Node7</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1388.5,-179.5 1388.5,-198.5 1477.5,-198.5 1477.5,-179.5 1388.5,-179.5"/>
-<text text-anchor="middle" x="1433" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1104.5,-179.5 1104.5,-198.5 1193.5,-198.5 1193.5,-179.5 1104.5,-179.5"/>
+<text text-anchor="middle" x="1149" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/logging.h</text>
</g>
<!-- Node6->Node7 -->
<g id="edge7" class="edge">
<title>Node6->Node7</title>
-<path fill="none" stroke="#191970" d="M2074.7634,-296.9592C2031.0513,-281.4568 1940.2813,-250.9313 1861,-235 1728.553,-208.3853 1569.7474,-196.421 1487.8483,-191.6875"/>
-<polygon fill="#191970" stroke="#191970" points="1487.9513,-188.1879 1477.77,-191.1193 1487.5571,-195.1768 1487.9513,-188.1879"/>
+<path fill="none" stroke="#191970" d="M2109.1362,-296.9215C2058.3535,-281.0767 1951.6606,-249.7023 1859,-235 1732.9899,-215.0062 1348.0141,-197.3265 1204.0743,-191.2456"/>
+<polygon fill="#191970" stroke="#191970" points="1203.8668,-187.7339 1193.7287,-190.811 1203.5729,-194.7277 1203.8668,-187.7339"/>
</g>
<!-- Node6->Node8 -->
<g id="edge8" class="edge">
<title>Node6->Node8</title>
-<path fill="none" stroke="#191970" d="M2092.2518,-296.9527C2068.9906,-272.2908 2002.5521,-206.4732 1932,-179 1859.7176,-150.853 1639.3493,-139.2881 1525.589,-135.0943"/>
-<polygon fill="#191970" stroke="#191970" points="1525.7065,-131.5964 1515.5871,-134.7345 1525.4548,-138.5918 1525.7065,-131.5964"/>
+<path fill="none" stroke="#191970" d="M2134.4195,-296.9015C2126.4614,-281.316 2108.5528,-250.6739 2084,-235 2017.1362,-192.3158 1792.6751,-157.4788 1677.0916,-141.8634"/>
+<polygon fill="#191970" stroke="#191970" points="1677.3073,-138.3612 1666.9311,-140.5024 1676.3779,-145.2992 1677.3073,-138.3612"/>
</g>
<!-- Node6->Node15 -->
<g id="edge18" class="edge">
<title>Node6->Node15</title>
-<path fill="none" stroke="#191970" d="M2108.9666,-296.9967C2138.8513,-261.3474 2244.5596,-135.2487 2283.4779,-88.8233"/>
-<polygon fill="#191970" stroke="#191970" points="2286.1922,-91.0336 2289.9342,-81.1216 2280.8277,-86.5366 2286.1922,-91.0336"/>
+<path fill="none" stroke="#191970" d="M2181.0287,-296.9399C2254.9535,-279.7657 2412.764,-241.4955 2543,-199 2653.9087,-162.8109 2781.855,-109.6707 2839.7141,-85.0024"/>
+<polygon fill="#191970" stroke="#191970" points="2841.2172,-88.1662 2849.0352,-81.0158 2838.4645,-81.7302 2841.2172,-88.1662"/>
</g>
<!-- Node6->Node16 -->
<g id="edge19" class="edge">
<title>Node6->Node16</title>
-<path fill="none" stroke="#191970" d="M2095.8223,-296.8627C2087.666,-282.282 2070.7092,-254.2754 2051,-235 2018.9217,-203.6278 2009.042,-194.6748 1967,-179 1865.9633,-141.3297 1085.187,-85.5513 914.778,-73.7452"/>
-<polygon fill="#191970" stroke="#191970" points="914.8864,-70.2444 904.669,-73.0469 914.404,-77.2278 914.8864,-70.2444"/>
+<path fill="none" stroke="#191970" d="M2115.1431,-296.9058C2075.3764,-281.3264 1992.7183,-250.6928 1920,-235 1346.1088,-111.1527 626.2663,-78.5393 465.7194,-72.6042"/>
+<polygon fill="#191970" stroke="#191970" points="465.6671,-69.1002 455.5471,-72.2366 465.4142,-76.0956 465.6671,-69.1002"/>
</g>
<!-- Node6->Node18 -->
<g id="edge20" class="edge">
<title>Node6->Node18</title>
-<path fill="none" stroke="#191970" d="M2046.3087,-298.5859C1957.2034,-285.6918 1783.2892,-260.5254 1709.9315,-249.9101"/>
-<polygon fill="#191970" stroke="#191970" points="1710.2581,-246.421 1699.8599,-248.4527 1709.2555,-253.3488 1710.2581,-246.421"/>
+<path fill="none" stroke="#191970" d="M2084.3086,-297.4994C2068.7311,-295.1453 2051.7232,-292.7734 2036,-291 1816.9815,-266.2968 1552.18,-251.4152 1459.7637,-246.6657"/>
+<polygon fill="#191970" stroke="#191970" points="1459.7755,-243.1619 1449.6106,-246.1493 1459.4198,-250.1529 1459.7755,-243.1619"/>
</g>
<!-- Node8->Node9 -->
<g id="edge9" class="edge">
<title>Node8->Node9</title>
-<path fill="none" stroke="#191970" d="M1396.2137,-130.0957C1188.0461,-119.9833 495.2122,-86.3267 265.0543,-75.146"/>
-<polygon fill="#191970" stroke="#191970" points="264.9315,-71.636 254.7734,-74.6466 264.5918,-78.6278 264.9315,-71.636"/>
+<path fill="none" stroke="#191970" d="M1666.8832,-129.9337C1795.6196,-123.2223 2108.2835,-106.2807 2370,-87 2403.9165,-84.5014 2441.4293,-81.3 2473.2375,-78.4562"/>
+<polygon fill="#191970" stroke="#191970" points="2473.7062,-81.9282 2483.3526,-77.5468 2473.0794,-74.9564 2473.7062,-81.9282"/>
</g>
<!-- Node13 -->
<g id="node14" class="node">
<title>Node13</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1481.5,-62 1481.5,-81 1606.5,-81 1606.5,-62 1481.5,-62"/>
-<text text-anchor="middle" x="1544" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="867.5,-62 867.5,-81 992.5,-81 992.5,-62 867.5,-62"/>
+<text text-anchor="middle" x="930" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
</g>
<!-- Node8->Node13 -->
<g id="edge13" class="edge">
<title>Node8->Node13</title>
-<path fill="none" stroke="#191970" d="M1469.75,-123.3906C1483.6991,-113.6421 1505.5098,-98.3994 1521.8897,-86.9521"/>
-<polygon fill="#191970" stroke="#191970" points="1524.1548,-89.6392 1530.3466,-81.0419 1520.1449,-83.9015 1524.1548,-89.6392"/>
+<path fill="none" stroke="#191970" d="M1547.2177,-127.5693C1423.1357,-116.2974 1137.9969,-90.3948 1003.1788,-78.1477"/>
+<polygon fill="#191970" stroke="#191970" points="1003.2291,-74.638 992.9535,-77.2188 1002.5958,-81.6092 1003.2291,-74.638"/>
</g>
<!-- Node8->Node14 -->
<g id="edge14" class="edge">
<title>Node8->Node14</title>
-<path fill="none" stroke="#191970" d="M1515.657,-129.9502C1730.9312,-118.9449 2463.6152,-81.4885 2626.6663,-73.153"/>
-<polygon fill="#191970" stroke="#191970" points="2627.182,-76.6313 2636.9902,-72.6252 2626.8245,-69.6404 2627.182,-76.6313"/>
+<path fill="none" stroke="#191970" d="M1666.5923,-127.9933C1814.3805,-115.5766 2193.9624,-83.6855 2306.8618,-74.2001"/>
+<polygon fill="#191970" stroke="#191970" points="2307.2665,-77.6786 2316.9383,-73.3535 2306.6804,-70.7031 2307.2665,-77.6786"/>
</g>
<!-- Node8->Node15 -->
<g id="edge15" class="edge">
<title>Node8->Node15</title>
-<path fill="none" stroke="#191970" d="M1515.5433,-128.6509C1675.4261,-116.973 2111.5654,-85.1173 2253.0407,-74.7838"/>
-<polygon fill="#191970" stroke="#191970" points="2253.381,-78.2684 2263.0995,-74.0491 2252.871,-71.287 2253.381,-78.2684"/>
+<path fill="none" stroke="#191970" d="M1666.5078,-130.6544C1823.0263,-124.4088 2259.1483,-106.5144 2622,-87 2693.4695,-83.1563 2776.4214,-77.8165 2826.2536,-74.5136"/>
+<polygon fill="#191970" stroke="#191970" points="2826.6228,-77.9969 2836.3685,-73.841 2826.1583,-71.0123 2826.6228,-77.9969"/>
</g>
<!-- Node8->Node16 -->
<g id="edge16" class="edge">
<title>Node8->Node16</title>
-<path fill="none" stroke="#191970" d="M1396.4653,-126.6213C1276.2034,-113.7361 1007.8344,-84.9823 914.6353,-74.9966"/>
-<polygon fill="#191970" stroke="#191970" points="914.9747,-71.5131 904.6587,-73.9277 914.2289,-78.4732 914.9747,-71.5131"/>
+<path fill="none" stroke="#191970" d="M1547.1671,-129.8657C1335.6839,-118.7871 627.4528,-81.6864 465.9691,-73.2271"/>
+<polygon fill="#191970" stroke="#191970" points="465.8859,-69.718 455.7165,-72.69 465.5197,-76.7084 465.8859,-69.718"/>
</g>
<!-- Node17 -->
<g id="node18" class="node">
<title>Node17</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1187,-62 1187,-81 1237,-81 1237,-62 1187,-62"/>
-<text text-anchor="middle" x="1212" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">atomic</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1641,-62 1641,-81 1691,-81 1691,-62 1641,-62"/>
+<text text-anchor="middle" x="1666" y="-69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">atomic</text>
</g>
<!-- Node8->Node17 -->
<g id="edge17" class="edge">
<title>Node8->Node17</title>
-<path fill="none" stroke="#191970" d="M1418.1427,-123.4581C1371.3511,-111.6643 1292.3626,-91.7553 1246.9524,-80.3097"/>
-<polygon fill="#191970" stroke="#191970" points="1247.8061,-76.9155 1237.2539,-77.8652 1246.0952,-83.7032 1247.8061,-76.9155"/>
+<path fill="none" stroke="#191970" d="M1616.2188,-123.3906C1625.0858,-114.1478 1638.6912,-99.966 1649.4389,-88.7628"/>
+<polygon fill="#191970" stroke="#191970" points="1652.2541,-90.8841 1656.6513,-81.2449 1647.2027,-86.0381 1652.2541,-90.8841"/>
</g>
<!-- Node10 -->
<g id="node11" class="node">
<title>Node10</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="50.5,-.5 50.5,-19.5 143.5,-19.5 143.5,-.5 50.5,-.5"/>
-<text text-anchor="middle" x="97" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dlpack/dlpack.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2408.5,-.5 2408.5,-19.5 2501.5,-19.5 2501.5,-.5 2408.5,-.5"/>
+<text text-anchor="middle" x="2455" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dlpack/dlpack.h</text>
</g>
<!-- Node9->Node10 -->
<g id="edge10" class="edge">
<title>Node9->Node10</title>
-<path fill="none" stroke="#191970" d="M167.0112,-56.2977C152.8034,-46.9022 134.6215,-34.8787 120.3475,-25.4395"/>
-<polygon fill="#191970" stroke="#191970" points="121.8845,-22.2598 111.6128,-19.6633 118.0233,-28.0986 121.8845,-22.2598"/>
+<path fill="none" stroke="#191970" d="M2525.0112,-56.2977C2510.8034,-46.9022 2492.6215,-34.8787 2478.3475,-25.4395"/>
+<polygon fill="#191970" stroke="#191970" points="2479.8845,-22.2598 2469.6128,-19.6633 2476.0233,-28.0986 2479.8845,-22.2598"/>
</g>
<!-- Node11 -->
<g id="node12" class="node">
<title>Node11</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="162,-.5 162,-19.5 218,-19.5 218,-.5 162,-.5"/>
-<text text-anchor="middle" x="190" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stddef.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2520,-.5 2520,-19.5 2576,-19.5 2576,-.5 2520,-.5"/>
+<text text-anchor="middle" x="2548" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stddef.h</text>
</g>
<!-- Node9->Node11 -->
<g id="edge11" class="edge">
<title>Node9->Node11</title>
-<path fill="none" stroke="#191970" d="M190,-56.2977C190,-48.3834 190,-38.6043 190,-30.0759"/>
-<polygon fill="#191970" stroke="#191970" points="193.5001,-29.8469 190,-19.8469 186.5001,-29.847 193.5001,-29.8469"/>
+<path fill="none" stroke="#191970" d="M2548,-56.2977C2548,-48.3834 2548,-38.6043 2548,-30.0759"/>
+<polygon fill="#191970" stroke="#191970" points="2551.5001,-29.8469 2548,-19.8469 2544.5001,-29.847 2551.5001,-29.8469"/>
</g>
<!-- Node12 -->
<g id="node13" class="node">
<title>Node12</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="236.5,-.5 236.5,-19.5 289.5,-19.5 289.5,-.5 236.5,-.5"/>
-<text text-anchor="middle" x="263" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stdint.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2594.5,-.5 2594.5,-19.5 2647.5,-19.5 2647.5,-.5 2594.5,-.5"/>
+<text text-anchor="middle" x="2621" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stdint.h</text>
</g>
<!-- Node9->Node12 -->
<g id="edge12" class="edge">
<title>Node9->Node12</title>
-<path fill="none" stroke="#191970" d="M208.0449,-56.2977C218.8114,-47.2274 232.4851,-35.7077 243.4995,-26.4285"/>
-<polygon fill="#191970" stroke="#191970" points="245.9191,-28.9667 251.3118,-19.8469 241.4089,-23.6132 245.9191,-28.9667"/>
+<path fill="none" stroke="#191970" d="M2566.0449,-56.2977C2576.8114,-47.2274 2590.4851,-35.7077 2601.4995,-26.4285"/>
+<polygon fill="#191970" stroke="#191970" points="2603.9191,-28.9667 2609.3118,-19.8469 2599.4089,-23.6132 2603.9191,-28.9667"/>
</g>
-<!-- Node19->Node16 -->
-<g id="edge24" class="edge">
-<title>Node19->Node16</title>
-<path fill="none" stroke="#191970" d="M1769.3115,-291.1724C1757.9141,-262.9702 1729.3282,-203.5028 1683,-179 1565.8511,-117.0403 1518.3922,-160.2899 1387,-143 1208.4598,-119.5059 994.8885,-88.2169 914.6189,-76.3446"/>
-<polygon fill="#191970" stroke="#191970" points="915.0332,-72.8678 904.6284,-74.8653 914.0079,-79.7924 915.0332,-72.8678"/>
+<!-- Node19->Node8 -->
+<g id="edge52" class="edge">
+<title>Node19->Node8</title>
+<path fill="none" stroke="#191970" d="M1105.991,-363.9877C1133.8032,-347.6857 1193.1719,-313.9514 1246,-291 1290.8622,-271.5095 1304.7269,-273.516 1350,-255 1361.4685,-250.3096 1512.911,-177.9905 1577.8069,-146.9637"/>
+<polygon fill="#191970" stroke="#191970" points="1579.5745,-149.9982 1587.0863,-142.5267 1576.5547,-143.683 1579.5745,-149.9982"/>
+</g>
+<!-- Node19->Node14 -->
+<g id="edge53" class="edge">
+<title>Node19->Node14</title>
+<path fill="none" stroke="#191970" d="M1097.6626,-363.7665C1131.5281,-321.0407 1268.791,-150.9902 1330,-123 1375.4117,-102.2337 2138.6169,-77.656 2306.5085,-72.4844"/>
+<polygon fill="#191970" stroke="#191970" points="2306.8044,-75.9771 2316.6924,-72.1721 2306.5898,-68.9804 2306.8044,-75.9771"/>
+</g>
+<!-- Node20 -->
+<g id="node21" class="node">
+<title>Node20</title>
+<g id="a_node21"><a xlink:href="optional_8h.html" target="_top" xlink:title="Runtime Optional container types. ">
+<polygon fill="#ffffff" stroke="#000000" points="332,-291.5 332,-321.5 458,-321.5 458,-291.5 332,-291.5"/>
+<text text-anchor="start" x="340" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="395" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/optional.h</text>
+</a>
</g>
-<!-- Node19->Node18 -->
-<g id="edge25" class="edge">
-<title>Node19->Node18</title>
-<path fill="none" stroke="#191970" d="M1750.7819,-291.4554C1735.4227,-281.9141 1715.6243,-269.6151 1700.2575,-260.0691"/>
-<polygon fill="#191970" stroke="#191970" points="1701.6828,-256.8341 1691.3415,-254.5303 1697.989,-262.7802 1701.6828,-256.8341"/>
</g>
<!-- Node19->Node20 -->
<g id="edge22" class="edge">
<title>Node19->Node20</title>
-<path fill="none" stroke="#191970" d="M1762.4842,-291.3903C1749.6091,-276.2868 1728.583,-252.8095 1708,-235 1694.9964,-223.7486 1679.2352,-212.6801 1666.3764,-204.2208"/>
-<polygon fill="#191970" stroke="#191970" points="1667.9063,-201.0424 1657.6071,-198.557 1664.1085,-206.9226 1667.9063,-201.0424"/>
+<path fill="none" stroke="#191970" d="M1023.9057,-368.9639C887.1492,-359.4185 577.131,-336.911 472,-322 470.8862,-321.842 469.7641,-321.6781 468.6356,-321.5089"/>
+<polygon fill="#191970" stroke="#191970" points="468.7779,-317.9869 458.3491,-319.8552 467.6668,-324.8981 468.7779,-317.9869"/>
</g>
-<!-- Node21 -->
-<g id="node22" class="node">
-<title>Node21</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1794,-235.5 1794,-254.5 1852,-254.5 1852,-235.5 1794,-235.5"/>
-<text text-anchor="middle" x="1823" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">memory</text>
+<!-- Node19->Node26 -->
+<g id="edge36" class="edge">
+<title>Node19->Node26</title>
+<path fill="none" stroke="#191970" d="M1084.9854,-363.9005C1080.4666,-355.2503 1073.6304,-342.164 1067.6261,-330.6699"/>
+<polygon fill="#191970" stroke="#191970" points="1070.5796,-328.7647 1062.8472,-321.5218 1064.3752,-332.0058 1070.5796,-328.7647"/>
</g>
-<!-- Node19->Node21 -->
+<!-- Node20->Node16 -->
<g id="edge23" class="edge">
-<title>Node19->Node21</title>
-<path fill="none" stroke="#191970" d="M1786.8652,-291.2977C1793.5975,-282.672 1802.0585,-271.8312 1809.1006,-262.8087"/>
-<polygon fill="#191970" stroke="#191970" points="1811.921,-264.8836 1815.3146,-254.8469 1806.4027,-260.5766 1811.921,-264.8836"/>
+<title>Node20->Node16</title>
+<path fill="none" stroke="#191970" d="M359.9243,-291.3088C343.6785,-282.7244 325.2959,-270.5664 313,-255 275.1586,-207.0935 239.1391,-172.4066 275,-123 289.8812,-102.4978 358.7004,-85.8888 400.4511,-77.4798"/>
+<polygon fill="#191970" stroke="#191970" points="401.2941,-80.8812 410.4331,-75.5213 399.9463,-74.0122 401.2941,-80.8812"/>
</g>
-<!-- Node22 -->
-<g id="node23" class="node">
-<title>Node22</title>
-<g id="a_node23"><a xlink:href="runtime_2container_2base_8h.html" target="_top" xlink:title="Base utilities for common POD(plain old data) container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1312.5,-235.5 1312.5,-254.5 1367.5,-254.5 1367.5,-235.5 1312.5,-235.5"/>
-<text text-anchor="middle" x="1340" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./base.h</text>
+<!-- Node21 -->
+<g id="node22" class="node">
+<title>Node21</title>
+<g id="a_node22"><a xlink:href="runtime_2container_2base_8h.html" target="_top" xlink:title="Base utilities for common POD(plain old data) container types. ">
+<polygon fill="#ffffff" stroke="#000000" points="659.5,-235.5 659.5,-254.5 714.5,-254.5 714.5,-235.5 659.5,-235.5"/>
+<text text-anchor="middle" x="687" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./base.h</text>
</a>
</g>
</g>
-<!-- Node19->Node22 -->
-<g id="edge26" class="edge">
-<title>Node19->Node22</title>
-<path fill="none" stroke="#191970" d="M1711.7473,-297.5574C1619.9261,-284.5758 1452.5403,-260.9109 1377.7975,-250.3438"/>
-<polygon fill="#191970" stroke="#191970" points="1378.2749,-246.8765 1367.8833,-248.9421 1377.2949,-253.8076 1378.2749,-246.8765"/>
-</g>
-<!-- Node22->Node7 -->
-<g id="edge27" class="edge">
-<title>Node22->Node7</title>
-<path fill="none" stroke="#191970" d="M1356.1994,-235.2455C1370.6018,-226.5731 1391.8732,-213.7645 1408.3799,-203.825"/>
-<polygon fill="#191970" stroke="#191970" points="1410.225,-206.7996 1416.9863,-198.6427 1406.614,-200.8028 1410.225,-206.7996"/>
+<!-- Node20->Node21 -->
+<g id="edge24" class="edge">
+<title>Node20->Node21</title>
+<path fill="none" stroke="#191970" d="M458.0002,-293.2311C516.261,-280.9604 600.9265,-263.1285 649.3161,-252.9368"/>
+<polygon fill="#191970" stroke="#191970" points="650.2933,-256.3079 659.3572,-250.822 648.8505,-249.4582 650.2933,-256.3079"/>
</g>
-<!-- Node22->Node8 -->
-<g id="edge34" class="edge">
-<title>Node22->Node8</title>
-<path fill="none" stroke="#191970" d="M1343.8027,-235.4928C1349.685,-221.7116 1362.1007,-195.9806 1379,-179 1392.099,-165.8379 1409.7026,-154.9567 1424.7717,-147.0874"/>
-<polygon fill="#191970" stroke="#191970" points="1426.3903,-150.1913 1433.764,-142.5834 1423.2554,-143.9325 1426.3903,-150.1913"/>
+<!-- Node21->Node7 -->
+<g id="edge25" class="edge">
+<title>Node21->Node7</title>
+<path fill="none" stroke="#191970" d="M714.7989,-236.7794C717.5553,-236.1147 720.323,-235.5058 723,-235 876.6581,-205.9705 917.6867,-217.2018 1073,-199 1079.8381,-198.1986 1087.0162,-197.3127 1094.1176,-196.4092"/>
+<polygon fill="#191970" stroke="#191970" points="1094.9485,-199.8312 1104.4186,-195.0807 1094.053,-192.8887 1094.9485,-199.8312"/>
</g>
-<!-- Node22->Node13 -->
-<g id="edge28" class="edge">
-<title>Node22->Node13</title>
-<path fill="none" stroke="#191970" d="M1340.7522,-235.3811C1343.0935,-212.283 1352.3364,-153.3564 1387,-123 1410.4548,-102.4596 1442.2925,-90.0776 1471.1675,-82.6289"/>
-<polygon fill="#191970" stroke="#191970" points="1472.3409,-85.9461 1481.2387,-80.1946 1470.6963,-79.142 1472.3409,-85.9461"/>
+<!-- Node21->Node8 -->
+<g id="edge32" class="edge">
+<title>Node21->Node8</title>
+<path fill="none" stroke="#191970" d="M714.6274,-237.0278C765.2049,-222.7875 876.2879,-193.1491 972,-179 1175.7892,-148.8739 1419.4153,-138.232 1536.8605,-134.6717"/>
+<polygon fill="#191970" stroke="#191970" points="1537.2525,-138.1618 1547.145,-134.3684 1537.0461,-131.1648 1537.2525,-138.1618"/>
</g>
-<!-- Node22->Node16 -->
-<g id="edge37" class="edge">
-<title>Node22->Node16</title>
-<path fill="none" stroke="#191970" d="M1331.637,-235.4291C1318.5957,-221.0883 1291.9919,-194.1002 1264,-179 1144.8584,-114.7294 983.5684,-85.7894 915.0175,-75.8075"/>
-<polygon fill="#191970" stroke="#191970" points="915.2244,-72.302 904.8325,-74.3657 914.2432,-79.2329 915.2244,-72.302"/>
+<!-- Node21->Node13 -->
+<g id="edge26" class="edge">
+<title>Node21->Node13</title>
+<path fill="none" stroke="#191970" d="M714.6522,-237.2861C748.2352,-227.6022 802.56,-210.8284 820,-199 864.1521,-169.0546 901.2522,-117.0151 918.9192,-89.5961"/>
+<polygon fill="#191970" stroke="#191970" points="921.9655,-91.327 924.3375,-81.0011 916.0439,-87.594 921.9655,-91.327"/>
</g>
-<!-- Node22->Node20 -->
+<!-- Node21->Node16 -->
<g id="edge35" class="edge">
-<title>Node22->Node20</title>
-<path fill="none" stroke="#191970" d="M1367.6011,-239.8819C1420.5666,-230.0605 1536.7731,-208.5123 1599.6278,-196.8571"/>
-<polygon fill="#191970" stroke="#191970" points="1600.4148,-200.2709 1609.6091,-195.0063 1599.1385,-193.3882 1600.4148,-200.2709"/>
+<title>Node21->Node16</title>
+<path fill="none" stroke="#191970" d="M714.6638,-236.0487C741.2882,-226.8074 778.7008,-211.9527 787,-199 791.7954,-191.5156 791.81,-186.475 787,-179 751.4502,-123.7538 546.6736,-88.1578 465.8228,-76.0843"/>
+<polygon fill="#191970" stroke="#191970" points="466.1107,-72.5892 455.7086,-74.6007 465.0947,-79.515 466.1107,-72.5892"/>
</g>
-<!-- Node22->Node23 -->
-<g id="edge29" class="edge">
-<title>Node22->Node23</title>
-<path fill="none" stroke="#191970" d="M1312.049,-238.0417C1307.3709,-236.9643 1302.5574,-235.9091 1298,-235 1227.058,-220.8494 1145.5163,-208.0329 1087.878,-199.5442"/>
-<polygon fill="#191970" stroke="#191970" points="1088.1635,-196.0488 1077.7619,-198.0627 1087.1491,-202.9749 1088.1635,-196.0488"/>
+<!-- Node21->Node22 -->
+<g id="edge27" class="edge">
+<title>Node21->Node22</title>
+<path fill="none" stroke="#191970" d="M677.2455,-235.2455C669.1352,-227.1352 657.4075,-215.4075 647.7919,-205.7919"/>
+<polygon fill="#191970" stroke="#191970" points="650.1887,-203.2389 640.6427,-198.6427 645.2389,-208.1887 650.1887,-203.2389"/>
+</g>
+<!-- Node21->Node24 -->
+<g id="edge33" class="edge">
+<title>Node21->Node24</title>
+<path fill="none" stroke="#191970" d="M697.277,-235.2455C705.8218,-227.1352 718.1778,-215.4075 728.3085,-205.7919"/>
+<polygon fill="#191970" stroke="#191970" points="730.9972,-208.0655 735.8408,-198.6427 726.1782,-202.9884 730.9972,-208.0655"/>
</g>
<!-- Node25 -->
<g id="node26" class="node">
<title>Node25</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1172.5,-179.5 1172.5,-198.5 1255.5,-198.5 1255.5,-179.5 1172.5,-179.5"/>
-<text text-anchor="middle" x="1214" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">initializer_list</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="981.5,-179.5 981.5,-198.5 1064.5,-198.5 1064.5,-179.5 981.5,-179.5"/>
+<text text-anchor="middle" x="1023" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">initializer_list</text>
</g>
-<!-- Node22->Node25 -->
-<g id="edge36" class="edge">
-<title>Node22->Node25</title>
-<path fill="none" stroke="#191970" d="M1318.3398,-235.3733C1298.0228,-226.3435 1267.436,-212.7494 1244.625,-202.6111"/>
-<polygon fill="#191970" stroke="#191970" points="1245.9372,-199.3642 1235.3775,-198.5011 1243.0941,-205.7609 1245.9372,-199.3642"/>
+<!-- Node21->Node25 -->
+<g id="edge34" class="edge">
+<title>Node21->Node25</title>
+<path fill="none" stroke="#191970" d="M714.8269,-236.9184C717.5777,-236.2256 720.3363,-235.572 723,-235 809.4426,-216.4355 911.4501,-202.4451 971.4827,-195.0081"/>
+<polygon fill="#191970" stroke="#191970" points="971.9693,-198.4747 981.469,-193.7836 971.1173,-191.5268 971.9693,-198.4747"/>
</g>
-<!-- Node23->Node8 -->
+<!-- Node22->Node8 -->
+<g id="edge28" class="edge">
+<title>Node22->Node8</title>
+<path fill="none" stroke="#191970" d="M695.5377,-179.9563C698.7345,-179.6096 701.902,-179.2878 705,-179 866.2761,-164.0169 1354.6891,-143.2587 1537.2011,-135.8044"/>
+<polygon fill="#191970" stroke="#191970" points="1537.3711,-139.3005 1547.2203,-135.396 1537.086,-132.3063 1537.3711,-139.3005"/>
+</g>
+<!-- Node22->Node15 -->
<g id="edge30" class="edge">
-<title>Node23->Node8</title>
-<path fill="none" stroke="#191970" d="M1077.6692,-180.8129C1082.5187,-180.1993 1087.3367,-179.5898 1092,-179 1194.4524,-166.042 1313.1273,-151.0475 1386.3871,-141.7929"/>
-<polygon fill="#191970" stroke="#191970" points="1386.9341,-145.2517 1396.4166,-140.526 1386.0567,-138.3069 1386.9341,-145.2517"/>
+<title>Node22->Node15</title>
+<path fill="none" stroke="#191970" d="M695.5437,-180.018C698.7389,-179.6549 701.9044,-179.3129 705,-179 1074.1772,-141.6889 1167.4089,-141.6052 1538,-123 2019.437,-98.8299 2140.5045,-109.9768 2622,-87 2693.4914,-83.5885 2776.437,-78.1229 2826.2619,-74.6765"/>
+<polygon fill="#191970" stroke="#191970" points="2826.6422,-78.1586 2836.3752,-73.9732 2826.1565,-71.1755 2826.6422,-78.1586"/>
</g>
-<!-- Node23->Node15 -->
-<g id="edge32" class="edge">
-<title>Node23->Node15</title>
-<path fill="none" stroke="#191970" d="M1057.0817,-179.4748C1126.7681,-164.813 1266.8185,-136.9517 1387,-123 1717.9259,-84.5831 2119.9423,-74.5298 2252.9163,-72.1648"/>
-<polygon fill="#191970" stroke="#191970" points="2253.1826,-75.6608 2263.1209,-71.9891 2253.0621,-68.6618 2253.1826,-75.6608"/>
+<!-- Node22->Node16 -->
+<g id="edge31" class="edge">
+<title>Node22->Node16</title>
+<path fill="none" stroke="#191970" d="M621.4876,-179.4649C607.318,-165.6489 579.3879,-139.875 552,-123 524.3747,-105.9787 490.1323,-91.7983 465.4822,-82.6558"/>
+<polygon fill="#191970" stroke="#191970" points="466.4763,-79.2932 455.8821,-79.1696 464.0869,-85.8728 466.4763,-79.2932"/>
</g>
-<!-- Node23->Node16 -->
-<g id="edge33" class="edge">
-<title>Node23->Node16</title>
-<path fill="none" stroke="#191970" d="M1002.2797,-179.3845C979.9218,-159.3306 928.0947,-112.8445 900.3343,-87.9449"/>
-<polygon fill="#191970" stroke="#191970" points="902.6497,-85.32 892.8684,-81.2484 897.9757,-90.531 902.6497,-85.32"/>
+<!-- Node23 -->
+<g id="node24" class="node">
+<title>Node23</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="606.5,-123.5 606.5,-142.5 655.5,-142.5 655.5,-123.5 606.5,-123.5"/>
+<text text-anchor="middle" x="631" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstdlib</text>
</g>
-<!-- Node24 -->
-<g id="node25" class="node">
-<title>Node24</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="988.5,-123.5 988.5,-142.5 1037.5,-142.5 1037.5,-123.5 988.5,-123.5"/>
-<text text-anchor="middle" x="1013" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstdlib</text>
+<!-- Node22->Node23 -->
+<g id="edge29" class="edge">
+<title>Node22->Node23</title>
+<path fill="none" stroke="#191970" d="M631,-179.2455C631,-171.9382 631,-161.6944 631,-152.7046"/>
+<polygon fill="#191970" stroke="#191970" points="634.5001,-152.6426 631,-142.6427 627.5001,-152.6427 634.5001,-152.6426"/>
</g>
-<!-- Node23->Node24 -->
-<g id="edge31" class="edge">
-<title>Node23->Node24</title>
-<path fill="none" stroke="#191970" d="M1013,-179.2455C1013,-171.9382 1013,-161.6944 1013,-152.7046"/>
-<polygon fill="#191970" stroke="#191970" points="1016.5001,-152.6426 1013,-142.6427 1009.5001,-152.6427 1016.5001,-152.6426"/>
+<!-- Node26->Node7 -->
+<g id="edge37" class="edge">
+<title>Node26->Node7</title>
+<path fill="none" stroke="#191970" d="M1093.349,-291.3669C1109.6033,-283.0301 1127.2394,-271.0608 1138,-255 1147.0814,-241.4455 1149.509,-222.8974 1149.8504,-208.9153"/>
+<polygon fill="#191970" stroke="#191970" points="1153.3499,-208.833 1149.7641,-198.8634 1146.3501,-208.8931 1153.3499,-208.833"/>
</g>
-<!-- Node26->Node9 -->
-<g id="edge39" class="edge">
-<title>Node26->Node9</title>
-<path fill="none" stroke="#191970" d="M2249.6304,-298.698C2222.8968,-295.9184 2192.0554,-292.9876 2164,-291 1781.9566,-263.9337 1681.7257,-312.0667 1303,-255 1268.4621,-249.7958 1261.2937,-241.6252 1227,-235 1100.3458,-210.5316 1066.3712,-219.4102 939,-199 765.4921,-171.1968 724.2602,-152.3072 551,-123 452.3333,-106.3104 337.8825,-90.5969 264.7546,-81.0168"/>
-<polygon fill="#191970" stroke="#191970" points="265.0851,-77.5303 254.7161,-79.7063 264.1788,-84.4714 265.0851,-77.5303"/>
+<!-- Node26->Node8 -->
+<g id="edge41" class="edge">
+<title>Node26->Node8</title>
+<path fill="none" stroke="#191970" d="M1086.5521,-291.2965C1106.8603,-281.3329 1133.7155,-267.8237 1157,-255 1214.6188,-223.267 1221.9942,-200.959 1284,-179 1329.3146,-162.9521 1456.539,-147.9622 1537.1311,-139.6824"/>
+<polygon fill="#191970" stroke="#191970" points="1537.6116,-143.1517 1547.2059,-138.6573 1536.903,-136.1876 1537.6116,-143.1517"/>
</g>
<!-- Node26->Node13 -->
-<g id="edge40" class="edge">
+<g id="edge39" class="edge">
<title>Node26->Node13</title>
-<path fill="none" stroke="#191970" d="M2308.6467,-296.6593C2274.48,-264.866 2160.9255,-164.5627 2046,-123 1968.9473,-95.134 1736.4949,-80.4952 1616.8662,-74.631"/>
-<polygon fill="#191970" stroke="#191970" points="1616.8574,-71.1266 1606.7003,-74.1405 1616.52,-78.1185 1616.8574,-71.1266"/>
+<path fill="none" stroke="#191970" d="M998.7913,-291.4557C980.0402,-283.6289 960.9111,-272.0112 949,-255 914.0242,-205.0481 920.5639,-127.8978 926.2128,-91.6355"/>
+<polygon fill="#191970" stroke="#191970" points="929.7299,-91.8313 927.9618,-81.3851 922.8296,-90.6539 929.7299,-91.8313"/>
</g>
<!-- Node26->Node14 -->
-<g id="edge41" class="edge">
+<g id="edge47" class="edge">
<title>Node26->Node14</title>
-<path fill="none" stroke="#191970" d="M2332.7495,-296.9967C2385.0762,-260.8297 2572.0946,-131.567 2636.7893,-86.8515"/>
-<polygon fill="#191970" stroke="#191970" points="2638.8432,-89.6866 2645.0794,-81.1216 2634.8631,-83.9282 2638.8432,-89.6866"/>
+<path fill="none" stroke="#191970" d="M1086.0123,-291.3604C1106.3376,-281.3109 1133.413,-267.6828 1157,-255 1261.1455,-199.0006 1274.5775,-156.43 1388,-123 1477.542,-96.6085 2149.1605,-76.7029 2306.2191,-72.3776"/>
+<polygon fill="#191970" stroke="#191970" points="2306.7224,-75.8652 2316.623,-72.0932 2306.531,-68.8679 2306.7224,-75.8652"/>
</g>
<!-- Node26->Node15 -->
-<g id="edge42" class="edge">
+<g id="edge50" class="edge">
<title>Node26->Node15</title>
-<path fill="none" stroke="#191970" d="M2319.3975,-296.8759C2320.3648,-269.491 2322.0744,-188.8649 2312,-123 2310.3511,-112.2197 2307.2589,-100.4656 2304.3992,-90.912"/>
-<polygon fill="#191970" stroke="#191970" points="2307.6941,-89.722 2301.3586,-81.2301 2301.0156,-91.8194 2307.6941,-89.722"/>
-</g>
-<!-- Node27->Node6 -->
-<g id="edge45" class="edge">
-<title>Node27->Node6</title>
-<path fill="none" stroke="#191970" d="M2006.0663,-425.389C2026.0024,-400.4222 2065.7169,-350.6864 2086.9094,-324.1462"/>
-<polygon fill="#191970" stroke="#191970" points="2089.8262,-326.1025 2093.331,-316.1042 2084.3561,-321.7346 2089.8262,-326.1025"/>
+<path fill="none" stroke="#191970" d="M1118.0506,-302.6609C1301.1773,-291.484 1822.4256,-259.4721 1859,-255 2235.9485,-208.9085 2685.0452,-112.7516 2826.2492,-81.5267"/>
+<polygon fill="#191970" stroke="#191970" points="2827.2602,-84.8876 2836.2657,-79.3063 2825.7452,-78.0535 2827.2602,-84.8876"/>
</g>
-<!-- Node27->Node14 -->
-<g id="edge84" class="edge">
-<title>Node27->Node14</title>
-<path fill="none" stroke="#191970" d="M2050.5333,-436.758C2124.4537,-430.9506 2257.5335,-417.3455 2368,-389 2405.3368,-379.4194 2412.3494,-369.9398 2449,-358 2507.2264,-339.0314 2533.3522,-359.1957 2582,-322 2632.3205,-283.5254 2636.2273,-259.7995 2654,-199 2664.7798,-162.1226 2663.2482,-116.6918 2661.139,-91.2237"/>
-<polygon fill="#191970" stroke="#191970" points="2664.6007,-90.6538 2660.1714,-81.0293 2657.632,-91.3153 2664.6007,-90.6538"/>
-</g>
-<!-- Node27->Node26 -->
-<g id="edge46" class="edge">
-<title>Node27->Node26</title>
-<path fill="none" stroke="#191970" d="M2022.0203,-425.4588C2040.0112,-415.56 2063.7193,-402.062 2084,-389 2103.8071,-376.243 2105.718,-368.1063 2127,-358 2151.5208,-346.3556 2218.4057,-329.5755 2266.3305,-318.3683"/>
-<polygon fill="#191970" stroke="#191970" points="2267.2983,-321.7368 2276.2473,-316.0653 2265.7147,-314.9183 2267.2983,-321.7368"/>
+<!-- Node26->Node16 -->
+<g id="edge49" class="edge">
+<title>Node26->Node16</title>
+<path fill="none" stroke="#191970" d="M991.8119,-300.5773C882.2548,-290.0438 665.5806,-267.9463 633,-255 552.3162,-222.9391 549.9705,-184.8092 489,-123 477.0256,-110.8609 462.8876,-97.8686 451.8131,-87.9705"/>
+<polygon fill="#191970" stroke="#191970" points="453.8331,-85.084 444.0281,-81.0699 449.1899,-90.3223 453.8331,-85.084"/>
</g>
-<!-- Node27->Node28 -->
-<g id="edge47" class="edge">
-<title>Node27->Node28</title>
-<path fill="none" stroke="#191970" d="M1937.4465,-434.6292C1904.1608,-431.36 1861.2255,-427.4643 1823,-425 1406.6684,-398.1601 1298.9302,-441.0971 885,-389 877.2396,-388.0233 869.0768,-386.6283 861.1471,-385.0707"/>
-<polygon fill="#191970" stroke="#191970" points="861.7768,-381.627 851.2752,-383.0301 860.3597,-388.4821 861.7768,-381.627"/>
+<!-- Node26->Node18 -->
+<g id="edge51" class="edge">
+<title>Node26->Node18</title>
+<path fill="none" stroke="#191970" d="M1118.3556,-295.9977C1197.5895,-282.8632 1330.3444,-260.8567 1392.2761,-250.5904"/>
+<polygon fill="#191970" stroke="#191970" points="1392.9964,-254.0188 1402.2894,-248.9305 1391.8516,-247.113 1392.9964,-254.0188"/>
</g>
-<!-- Node38 -->
-<g id="node39" class="node">
-<title>Node38</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="856.5,-297 856.5,-316 921.5,-316 921.5,-297 856.5,-297"/>
-<text text-anchor="middle" x="889" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">functional</text>
+<!-- Node26->Node21 -->
+<g id="edge38" class="edge">
+<title>Node26->Node21</title>
+<path fill="none" stroke="#191970" d="M991.8762,-298.9449C926.9489,-290.6704 822.7768,-275.9979 724.6128,-255.1771"/>
+<polygon fill="#191970" stroke="#191970" points="725.3399,-251.7535 714.828,-253.0767 723.8707,-258.5976 725.3399,-251.7535"/>
</g>
-<!-- Node27->Node38 -->
-<g id="edge83" class="edge">
-<title>Node27->Node38</title>
-<path fill="none" stroke="#191970" d="M1958.6576,-425.3988C1911.2577,-405.9286 1824.0123,-372.817 1746,-358 1456.0822,-302.9356 1377.4389,-341.753 1083,-322 1030.8549,-318.5017 970.8995,-313.5723 931.6084,-310.2182"/>
-<polygon fill="#191970" stroke="#191970" points="931.853,-306.7264 921.5905,-309.3589 931.2547,-313.7008 931.853,-306.7264"/>
+<!-- Node26->Node22 -->
+<g id="edge40" class="edge">
+<title>Node26->Node22</title>
+<path fill="none" stroke="#191970" d="M991.9807,-300.3116C881.3977,-289.1985 662.833,-265.9967 650,-255 636.8686,-243.7476 632.5177,-224.0618 631.213,-209.1097"/>
+<polygon fill="#191970" stroke="#191970" points="634.6943,-208.6353 630.7142,-198.8164 627.7025,-208.9742 634.6943,-208.6353"/>
</g>
-<!-- Node28->Node8 -->
-<g id="edge73" class="edge">
-<title>Node28->Node8</title>
-<path fill="none" stroke="#191970" d="M757.163,-363.9032C704.0213,-352.2595 636.1251,-329.2804 665,-291 780.3365,-138.0949 898.5381,-238.2492 1086,-199 1120.6074,-191.7542 1128.382,-186.1951 1163,-179 1238.8934,-163.2261 1326.8489,-150.097 1386.4361,-141.9567"/>
-<polygon fill="#191970" stroke="#191970" points="1387.0458,-145.4062 1396.485,-140.5945 1386.1055,-138.4696 1387.0458,-145.4062"/>
+<!-- Node26->Node24 -->
+<g id="edge42" class="edge">
+<title>Node26->Node24</title>
+<path fill="none" stroke="#191970" d="M1071.3162,-291.4379C1086.1517,-275.9398 1103.6616,-251.7591 1089,-235 1069.4462,-212.6487 875.5059,-197.3842 788.2054,-191.592"/>
+<polygon fill="#191970" stroke="#191970" points="788.3133,-188.0916 778.1065,-190.9327 787.8573,-195.0768 788.3133,-188.0916"/>
</g>
-<!-- Node28->Node9 -->
-<g id="edge48" class="edge">
-<title>Node28->Node9</title>
-<path fill="none" stroke="#191970" d="M750.4261,-370.4261C619.9087,-363.5737 327.5082,-345.7597 289,-322 208.9325,-272.598 202.1404,-233.3772 176,-143 171.6031,-127.7981 174.8475,-110.3781 179.3146,-96.5386"/>
-<polygon fill="#191970" stroke="#191970" points="182.7455,-97.3437 182.8627,-86.7496 176.1645,-94.9584 182.7455,-97.3437"/>
+<!-- Node26->Node25 -->
+<g id="edge45" class="edge">
+<title>Node26->Node25</title>
+<path fill="none" stroke="#191970" d="M1086.0747,-291.4796C1109.6802,-277.9178 1135.9081,-256.7984 1122,-235 1111.2358,-218.1291 1092.5081,-207.3496 1074.2177,-200.5067"/>
+<polygon fill="#191970" stroke="#191970" points="1075.3319,-197.1888 1064.7374,-197.2758 1073.0737,-203.8146 1075.3319,-197.1888"/>
</g>
-<!-- Node28->Node16 -->
-<g id="edge81" class="edge">
-<title>Node28->Node16</title>
-<path fill="none" stroke="#191970" d="M750.3389,-370.0325C627.2078,-362.7597 362.6093,-344.6913 328,-322 292.7138,-298.865 268.1505,-271.0963 290,-235 349.9678,-135.9307 734.3915,-87.269 849.4874,-74.799"/>
-<polygon fill="#191970" stroke="#191970" points="849.8883,-78.2762 859.4612,-73.7365 849.1467,-71.3156 849.8883,-78.2762"/>
+<!-- Node27 -->
+<g id="node28" class="node">
+<title>Node27</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="958.5,-235.5 958.5,-254.5 1011.5,-254.5 1011.5,-235.5 958.5,-235.5"/>
+<text text-anchor="middle" x="985" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstddef</text>
</g>
-<!-- Node28->Node17 -->
-<g id="edge79" class="edge">
-<title>Node28->Node17</title>
-<path fill="none" stroke="#191970" d="M750.4801,-370.2136C640.509,-363.789 421.8661,-347.8868 399,-322 389.8788,-311.6738 394.9534,-304.1701 399,-291 407.8341,-262.2485 412.028,-251.7657 437,-235 562.1897,-150.9502 1041.6604,-90.9149 1176.5218,-75.4331"/>
-<polygon fill="#191970" stroke="#191970" points="1177.1664,-78.8824 1186.7063,-74.2737 1176.3746,-71.9273 1177.1664,-78.8824"/>
+<!-- Node26->Node27 -->
+<g id="edge43" class="edge">
+<title>Node26->Node27</title>
+<path fill="none" stroke="#191970" d="M1037.6966,-291.2977C1027.4738,-282.3163 1014.5177,-270.9334 1004.0104,-261.702"/>
+<polygon fill="#191970" stroke="#191970" points="1006.0305,-258.8178 996.2079,-254.8469 1001.4103,-264.0766 1006.0305,-258.8178"/>
</g>
-<!-- Node28->Node18 -->
-<g id="edge82" class="edge">
-<title>Node28->Node18</title>
-<path fill="none" stroke="#191970" d="M852.4289,-363.9456C862.9573,-361.6873 874.365,-359.5022 885,-358 1116.1435,-325.3518 1181.6005,-374.7512 1409,-322 1444.536,-313.7565 1450.2795,-302.1915 1485,-291 1539.1538,-273.5446 1603.8334,-259.3056 1642.3263,-251.5031"/>
-<polygon fill="#191970" stroke="#191970" points="1643.3395,-254.8698 1652.4584,-249.4758 1641.966,-248.0059 1643.3395,-254.8698"/>
+<!-- Node28 -->
+<g id="node29" class="node">
+<title>Node28</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1030,-235.5 1030,-254.5 1080,-254.5 1080,-235.5 1030,-235.5"/>
+<text text-anchor="middle" x="1055" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstring</text>
</g>
-<!-- Node28->Node26 -->
-<g id="edge72" class="edge">
-<title>Node28->Node26</title>
-<path fill="none" stroke="#191970" d="M850.8929,-363.9771C861.8303,-361.6008 873.829,-359.348 885,-358 1449.5739,-289.8722 1596.4912,-358.3156 2164,-322 2188.5597,-320.4284 2215.2445,-318.0155 2239.4403,-315.5581"/>
-<polygon fill="#191970" stroke="#191970" points="2240.0565,-319.0132 2249.6441,-314.5045 2239.3374,-312.0502 2240.0565,-319.0132"/>
+<!-- Node26->Node28 -->
+<g id="edge44" class="edge">
+<title>Node26->Node28</title>
+<path fill="none" stroke="#191970" d="M1055,-291.2977C1055,-283.3834 1055,-273.6043 1055,-265.0759"/>
+<polygon fill="#191970" stroke="#191970" points="1058.5001,-264.8469 1055,-254.8469 1051.5001,-264.847 1058.5001,-264.8469"/>
</g>
<!-- Node29 -->
<g id="node30" class="node">
<title>Node29</title>
-<g id="a_node30"><a xlink:href="optional_8h.html" target="_top" xlink:title="Runtime Optional container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="674,-291.5 674,-321.5 800,-321.5 800,-291.5 674,-291.5"/>
-<text text-anchor="start" x="682" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="737" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/optional.h</text>
-</a>
-</g>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="844,-235.5 844,-254.5 902,-254.5 902,-235.5 844,-235.5"/>
+<text text-anchor="middle" x="873" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">memory</text>
</g>
-<!-- Node28->Node29 -->
-<g id="edge49" class="edge">
-<title>Node28->Node29</title>
-<path fill="none" stroke="#191970" d="M802.1111,-363.9005C791.6121,-354.6448 775.3518,-340.3101 761.7075,-328.2816"/>
-<polygon fill="#191970" stroke="#191970" points="763.8554,-325.5093 754.0396,-321.5218 759.2264,-330.7602 763.8554,-325.5093"/>
+<!-- Node26->Node29 -->
+<g id="edge46" class="edge">
+<title>Node26->Node29</title>
+<path fill="none" stroke="#191970" d="M1010.4778,-291.4554C979.9774,-281.149 939.955,-267.6249 910.9642,-257.8286"/>
+<polygon fill="#191970" stroke="#191970" points="911.7978,-254.4159 901.2035,-254.5303 909.5568,-261.0475 911.7978,-254.4159"/>
</g>
<!-- Node30 -->
<g id="node31" class="node">
<title>Node30</title>
-<g id="a_node31"><a xlink:href="shape__tuple_8h.html" target="_top" xlink:title="Runtime ShapeTuple container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="1092,-291.5 1092,-321.5 1218,-321.5 1218,-291.5 1092,-291.5"/>
-<text text-anchor="start" x="1100" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="1155" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/shape_tuple.h</text>
-</a>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="732.5,-235.5 732.5,-254.5 825.5,-254.5 825.5,-235.5 732.5,-235.5"/>
+<text text-anchor="middle" x="779" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
</g>
+<!-- Node26->Node30 -->
+<g id="edge48" class="edge">
+<title>Node26->Node30</title>
+<path fill="none" stroke="#191970" d="M991.68,-292.3907C943.2973,-281.6097 877.3886,-266.9236 831.8243,-256.7706"/>
+<polygon fill="#191970" stroke="#191970" points="832.3736,-253.3073 821.8517,-254.5485 830.8511,-260.1397 832.3736,-253.3073"/>
</g>
-<!-- Node28->Node30 -->
-<g id="edge52" class="edge">
-<title>Node28->Node30</title>
-<path fill="none" stroke="#191970" d="M856.3694,-363.9906C865.7991,-361.9714 875.7272,-359.8822 885,-358 951.5896,-344.4836 1027.632,-330.0709 1082.0117,-319.9403"/>
-<polygon fill="#191970" stroke="#191970" points="1082.7151,-323.3696 1091.9064,-318.0997 1081.4349,-316.4876 1082.7151,-323.3696"/>
+<!-- Node31->Node16 -->
+<g id="edge57" class="edge">
+<title>Node31->Node16</title>
+<path fill="none" stroke="#191970" d="M590.5563,-291.4349C562.083,-272.8085 515.2251,-238.6643 486,-199 460.9913,-165.0582 445.3299,-117.5751 437.9762,-91.1768"/>
+<polygon fill="#191970" stroke="#191970" points="441.2889,-90.0155 435.3302,-81.2551 434.5253,-91.8193 441.2889,-90.0155"/>
</g>
-<!-- Node28->Node31 -->
-<g id="edge56" class="edge">
-<title>Node28->Node31</title>
-<path fill="none" stroke="#191970" d="M853.5995,-363.9644C863.8094,-361.7861 874.7728,-359.6343 885,-358 1035.9249,-333.8823 1075.3043,-340.6658 1227,-322 1238.8887,-320.5371 1251.4834,-318.8717 1263.7419,-317.1882"/>
-<polygon fill="#191970" stroke="#191970" points="1264.5128,-320.6148 1273.9369,-315.7738 1263.5508,-313.6812 1264.5128,-320.6148"/>
+<!-- Node31->Node18 -->
+<g id="edge58" class="edge">
+<title>Node31->Node18</title>
+<path fill="none" stroke="#191970" d="M678.0147,-296.7988C693.3614,-294.6635 709.7486,-292.5727 725,-291 980.7644,-264.6255 1290.6755,-250.4946 1392.1016,-246.3282"/>
+<polygon fill="#191970" stroke="#191970" points="1392.4958,-249.8151 1402.3455,-245.9123 1392.2118,-242.8209 1392.4958,-249.8151"/>
</g>
-<!-- Node35 -->
-<g id="node36" class="node">
-<title>Node35</title>
-<g id="a_node36"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
-<polygon fill="#ffffff" stroke="#000000" points="408,-297 408,-316 542,-316 542,-297 408,-297"/>
-<text text-anchor="middle" x="475" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/serializer.h</text>
-</a>
+<!-- Node31->Node21 -->
+<g id="edge59" class="edge">
+<title>Node31->Node21</title>
+<path fill="none" stroke="#191970" d="M632.7978,-291.2977C643.4167,-282.2274 656.9031,-270.7077 667.7667,-261.4285"/>
+<polygon fill="#191970" stroke="#191970" points="670.1413,-264.0031 675.4719,-254.8469 665.5949,-258.6805 670.1413,-264.0031"/>
</g>
+<!-- Node31->Node24 -->
+<g id="edge55" class="edge">
+<title>Node31->Node24</title>
+<path fill="none" stroke="#191970" d="M619.168,-291.3279C624.1885,-275.512 634.004,-250.8626 650,-235 665.0861,-220.0397 685.9823,-209.2394 704.4281,-201.8797"/>
+<polygon fill="#191970" stroke="#191970" points="705.6864,-205.1458 713.8069,-198.3409 703.2152,-198.5966 705.6864,-205.1458"/>
</g>
-<!-- Node28->Node35 -->
-<g id="edge74" class="edge">
-<title>Node28->Node35</title>
-<path fill="none" stroke="#191970" d="M760.045,-363.9717C696.7049,-351.8833 591.4831,-331.0497 528.0875,-318.0638"/>
-<polygon fill="#191970" stroke="#191970" points="528.7846,-314.634 518.2848,-316.0496 527.3757,-321.4908 528.7846,-314.634"/>
+<!-- Node31->Node29 -->
+<g id="edge56" class="edge">
+<title>Node31->Node29</title>
+<path fill="none" stroke="#191970" d="M678.3315,-291.9606C719.7994,-282.3585 775.4208,-269.3254 833.8466,-255.0021"/>
+<polygon fill="#191970" stroke="#191970" points="834.7527,-258.3836 843.6285,-252.5983 833.0821,-251.5859 834.7527,-258.3836"/>
</g>
-<!-- Node28->Node38 -->
-<g id="edge80" class="edge">
-<title>Node28->Node38</title>
-<path fill="none" stroke="#191970" d="M823.8889,-363.9005C835.9662,-353.2535 855.6671,-335.8856 870.24,-323.0385"/>
-<polygon fill="#191970" stroke="#191970" points="872.9445,-325.3201 878.1313,-316.0817 868.3154,-320.0692 872.9445,-325.3201"/>
+<!-- Node32->Node9 -->
+<g id="edge61" class="edge">
+<title>Node32->Node9</title>
+<path fill="none" stroke="#191970" d="M2496.1086,-296.9204C2531.1152,-282.0254 2593.1896,-249.648 2619,-199 2634.3367,-168.9047 2634.3465,-153.0902 2619,-123 2612.4864,-110.2286 2601.1608,-99.8854 2589.4436,-91.9119"/>
+<polygon fill="#191970" stroke="#191970" points="2591.2304,-88.9009 2580.9056,-86.5239 2587.4946,-94.8206 2591.2304,-88.9009"/>
</g>
-<!-- Node29->Node16 -->
-<g id="edge50" class="edge">
-<title>Node29->Node16</title>
-<path fill="none" stroke="#191970" d="M742.7455,-291.312C755.4975,-258.6693 788.3573,-180.1554 830,-123 839.4205,-110.0702 852.1527,-97.4015 862.6605,-87.8646"/>
-<polygon fill="#191970" stroke="#191970" points="864.9936,-90.4736 870.1705,-81.2297 860.359,-85.2277 864.9936,-90.4736"/>
+<!-- Node32->Node13 -->
+<g id="edge62" class="edge">
+<title>Node32->Node13</title>
+<path fill="none" stroke="#191970" d="M2455.5987,-296.9335C2415.4485,-272.5158 2303.5653,-207.7861 2201,-179 1972.7939,-114.9513 1237.515,-82.8503 1002.7628,-74.0525"/>
+<polygon fill="#191970" stroke="#191970" points="1002.7516,-70.5498 992.6284,-73.6756 1002.4913,-77.5449 1002.7516,-70.5498"/>
</g>
-<!-- Node29->Node22 -->
-<g id="edge51" class="edge">
-<title>Node29->Node22</title>
-<path fill="none" stroke="#191970" d="M800.0476,-297.0977C815.3932,-294.9525 831.7717,-292.7824 847,-291 891.8256,-285.7535 1194.8743,-258.1588 1302.3194,-248.4128"/>
-<polygon fill="#191970" stroke="#191970" points="1302.7425,-251.8889 1312.3856,-247.5001 1302.1103,-244.9175 1302.7425,-251.8889"/>
+<!-- Node32->Node14 -->
+<g id="edge63" class="edge">
+<title>Node32->Node14</title>
+<path fill="none" stroke="#191970" d="M2468.1748,-296.6867C2459.6571,-268.1164 2432.2497,-183.2072 2391,-123 2381.9581,-109.8027 2369.2321,-97.1296 2358.6328,-87.6573"/>
+<polygon fill="#191970" stroke="#191970" points="2360.8895,-84.9816 2351.0383,-81.0821 2356.3076,-90.2737 2360.8895,-84.9816"/>
</g>
-<!-- Node30->Node16 -->
-<g id="edge53" class="edge">
-<title>Node30->Node16</title>
-<path fill="none" stroke="#191970" d="M1110.3444,-291.4402C1082.8269,-281.7957 1046.9981,-268.5782 1016,-255 1009.7187,-252.2486 910.1116,-204.4881 906,-199 882.1297,-167.1384 879.7803,-118.4948 880.6133,-91.431"/>
-<polygon fill="#191970" stroke="#191970" points="884.1177,-91.4247 881.1116,-81.2653 877.1261,-91.0819 884.1177,-91.4247"/>
+<!-- Node32->Node15 -->
+<g id="edge64" class="edge">
+<title>Node32->Node15</title>
+<path fill="none" stroke="#191970" d="M2501.0091,-296.988C2563.1627,-276.2722 2708.5453,-222.4716 2809,-143 2828.6039,-127.491 2846.8045,-105.1627 2858.3459,-89.5983"/>
+<polygon fill="#191970" stroke="#191970" points="2861.3094,-91.473 2864.332,-81.3184 2855.6367,-87.3717 2861.3094,-91.473"/>
</g>
-<!-- Node30->Node18 -->
-<g id="edge54" class="edge">
-<title>Node30->Node18</title>
-<path fill="none" stroke="#191970" d="M1218.072,-297.2976C1233.4168,-295.1458 1249.7887,-292.9225 1265,-291 1404.9137,-273.3164 1572.0756,-255.6892 1642.309,-248.4418"/>
-<polygon fill="#191970" stroke="#191970" points="1642.753,-251.9147 1652.3421,-247.4092 1642.0363,-244.9515 1642.753,-251.9147"/>
+<!-- Node33->Node6 -->
+<g id="edge67" class="edge">
+<title>Node33->Node6</title>
+<path fill="none" stroke="#191970" d="M2236.5954,-425.389C2216.1003,-400.4222 2175.2724,-350.6864 2153.4857,-324.1462"/>
+<polygon fill="#191970" stroke="#191970" points="2155.9342,-321.6127 2146.884,-316.1042 2150.5237,-326.0542 2155.9342,-321.6127"/>
</g>
-<!-- Node30->Node22 -->
-<g id="edge55" class="edge">
-<title>Node30->Node22</title>
-<path fill="none" stroke="#191970" d="M1200.2561,-291.4554C1231.779,-280.9762 1273.3083,-267.1705 1302.8827,-257.339"/>
-<polygon fill="#191970" stroke="#191970" points="1304.037,-260.6437 1312.4223,-254.1677 1301.8288,-254.0011 1304.037,-260.6437"/>
+<!-- Node33->Node14 -->
+<g id="edge89" class="edge">
+<title>Node33->Node14</title>
+<path fill="none" stroke="#191970" d="M2276.1067,-425.4723C2289.2776,-416.6568 2303.9624,-404.2459 2312,-389 2365.3587,-287.7878 2350.1229,-142.8791 2342.3006,-90.9419"/>
+<polygon fill="#191970" stroke="#191970" points="2345.757,-90.3903 2340.7285,-81.0648 2338.844,-91.4907 2345.757,-90.3903"/>
</g>
-<!-- Node31->Node7 -->
-<g id="edge57" class="edge">
-<title>Node31->Node7</title>
-<path fill="none" stroke="#191970" d="M1349.5503,-291.1389C1367.3967,-269.2957 1400.0149,-229.3724 1418.7492,-206.4424"/>
-<polygon fill="#191970" stroke="#191970" points="1421.5731,-208.5179 1425.1897,-198.5595 1416.1523,-204.089 1421.5731,-208.5179"/>
+<!-- Node33->Node32 -->
+<g id="edge68" class="edge">
+<title>Node33->Node32</title>
+<path fill="none" stroke="#191970" d="M2305.8664,-426.2857C2353.8926,-413.9008 2416.3672,-396.7467 2426,-389 2446.2875,-372.6848 2458.7676,-344.6551 2465.291,-325.8537"/>
+<polygon fill="#191970" stroke="#191970" points="2468.65,-326.8411 2468.386,-316.2495 2461.9874,-324.694 2468.65,-326.8411"/>
</g>
-<!-- Node31->Node8 -->
-<g id="edge61" class="edge">
-<title>Node31->Node8</title>
-<path fill="none" stroke="#191970" d="M1363.5158,-291.4121C1402.6637,-268.5122 1472.7427,-224.9123 1486,-199 1494.3555,-182.6685 1483.4726,-163.5398 1472.549,-150.0927"/>
-<polygon fill="#191970" stroke="#191970" points="1475.14,-147.7388 1465.914,-142.53 1469.878,-152.3553 1475.14,-147.7388"/>
+<!-- Node33->Node34 -->
+<g id="edge69" class="edge">
+<title>Node33->Node34</title>
+<path fill="none" stroke="#191970" d="M2192.4608,-432.2064C2175.5943,-429.8008 2157.0581,-427.2246 2140,-425 2012.9851,-408.4354 1864.7588,-391.3222 1778.5296,-381.5873"/>
+<polygon fill="#191970" stroke="#191970" points="1778.9131,-378.1084 1768.5839,-380.4661 1778.1289,-385.0644 1778.9131,-378.1084"/>
</g>
-<!-- Node31->Node13 -->
-<g id="edge59" class="edge">
-<title>Node31->Node13</title>
-<path fill="none" stroke="#191970" d="M1380.2089,-291.4826C1402.225,-282.7058 1428.7574,-270.3269 1450,-255 1477.5434,-235.1269 1483.9196,-227.752 1502,-199 1523.7222,-164.4567 1535.3776,-117.5228 1540.5753,-91.306"/>
-<polygon fill="#191970" stroke="#191970" points="1544.0793,-91.6074 1542.4702,-81.1354 1537.1977,-90.3252 1544.0793,-91.6074"/>
+<!-- Node39 -->
+<g id="node40" class="node">
+<title>Node39</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1962.5,-297 1962.5,-316 2027.5,-316 2027.5,-297 1962.5,-297"/>
+<text text-anchor="middle" x="1995" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">functional</text>
</g>
-<!-- Node31->Node14 -->
-<g id="edge67" class="edge">
-<title>Node31->Node14</title>
-<path fill="none" stroke="#191970" d="M1400.1788,-291.9461C1444.6152,-281.6847 1505.4633,-267.5831 1559,-255 1596.3589,-246.2193 1605.3627,-242.4983 1643,-235 2027.7712,-158.344 2500.0336,-92.8909 2626.5554,-75.8273"/>
-<polygon fill="#191970" stroke="#191970" points="2627.2821,-79.2612 2636.7263,-74.4596 2626.3491,-72.3237 2627.2821,-79.2612"/>
+<!-- Node33->Node39 -->
+<g id="edge88" class="edge">
+<title>Node33->Node39</title>
+<path fill="none" stroke="#191970" d="M2220.3567,-425.389C2170.974,-399.3367 2070.4696,-346.3147 2022.1438,-320.8199"/>
+<polygon fill="#191970" stroke="#191970" points="2023.6827,-317.6747 2013.2049,-316.1042 2020.4164,-323.8659 2023.6827,-317.6747"/>
</g>
-<!-- Node31->Node15 -->
-<g id="edge70" class="edge">
-<title>Node31->Node15</title>
-<path fill="none" stroke="#191970" d="M1384.9489,-291.4817C1412.4411,-282.2282 1447.2843,-269.3974 1477,-255 1535.1708,-226.8161 1540.3121,-201.2519 1601,-179 1722.4365,-134.4739 2118.176,-90.2217 2252.7367,-76.1193"/>
-<polygon fill="#191970" stroke="#191970" points="2253.5005,-79.5587 2263.0836,-75.0405 2252.7746,-72.5964 2253.5005,-79.5587"/>
+<!-- Node34->Node8 -->
+<g id="edge78" class="edge">
+<title>Node34->Node8</title>
+<path fill="none" stroke="#191970" d="M1697.2927,-363.9023C1680.4675,-344.7636 1643.6003,-299.8236 1626,-255 1612.5407,-220.7224 1608.5893,-177.5096 1607.4461,-152.7901"/>
+<polygon fill="#191970" stroke="#191970" points="1610.9353,-152.4174 1607.0876,-142.546 1603.9395,-152.6623 1610.9353,-152.4174"/>
</g>
-<!-- Node31->Node16 -->
-<g id="edge69" class="edge">
-<title>Node31->Node16</title>
-<path fill="none" stroke="#191970" d="M1273.8005,-297.0569C1203.2844,-286.1576 1093.864,-268.0595 1054,-255 1047.247,-252.7877 943.9418,-204.1064 939,-199 923.2446,-182.7199 900.1178,-122.267 888.7771,-90.8071"/>
-<polygon fill="#191970" stroke="#191970" points="892.0631,-89.6012 885.4107,-81.3552 885.4689,-91.9499 892.0631,-89.6012"/>
+<!-- Node34->Node9 -->
+<g id="edge70" class="edge">
+<title>Node34->Node9</title>
+<path fill="none" stroke="#191970" d="M1747.1706,-363.9822C1802.3954,-351.081 1895.2655,-328.8641 1910,-322 1931.3561,-312.0512 1932.2017,-302.0676 1953,-291 2135.3328,-193.9736 2369.9345,-121.2827 2482.3001,-89.3609"/>
+<polygon fill="#191970" stroke="#191970" points="2483.4633,-92.6693 2492.1352,-86.5824 2481.5603,-85.933 2483.4633,-92.6693"/>
</g>
-<!-- Node31->Node18 -->
-<g id="edge71" class="edge">
-<title>Node31->Node18</title>
-<path fill="none" stroke="#191970" d="M1400.3656,-295.0045C1472.0197,-282.0053 1586.0164,-261.3244 1642.2985,-251.114"/>
-<polygon fill="#191970" stroke="#191970" points="1643.2199,-254.5041 1652.4345,-249.2752 1641.9703,-247.6165 1643.2199,-254.5041"/>
+<!-- Node34->Node16 -->
+<g id="edge86" class="edge">
+<title>Node34->Node16</title>
+<path fill="none" stroke="#191970" d="M1643.4319,-365.9826C1617.092,-363.0688 1586.0914,-359.9668 1558,-358 1501.7134,-354.0591 591.5311,-350.7826 543,-322 459.2387,-272.3231 439.0878,-141.5391 434.384,-91.429"/>
+<polygon fill="#191970" stroke="#191970" points="437.8558,-90.9415 433.5433,-81.264 430.8796,-91.5186 437.8558,-90.9415"/>
</g>
-<!-- Node31->Node20 -->
-<g id="edge62" class="edge">
-<title>Node31->Node20</title>
-<path fill="none" stroke="#191970" d="M1400.162,-293.1238C1437.0081,-284.337 1483.9676,-271.4253 1524,-255 1558.6998,-240.7626 1596.0543,-218.5852 1619.2306,-203.9265"/>
-<polygon fill="#191970" stroke="#191970" points="1621.1366,-206.8622 1627.6713,-198.5226 1617.3622,-200.9669 1621.1366,-206.8622"/>
+<!-- Node34->Node17 -->
+<g id="edge84" class="edge">
+<title>Node34->Node17</title>
+<path fill="none" stroke="#191970" d="M1706.801,-363.7128C1708.4854,-340.999 1711.7842,-282.9834 1706,-235 1699.6146,-182.0295 1681.9913,-121.4517 1672.4077,-91.0609"/>
+<polygon fill="#191970" stroke="#191970" points="1675.6639,-89.753 1669.2764,-81.3001 1668.9985,-91.8913 1675.6639,-89.753"/>
</g>
-<!-- Node31->Node21 -->
-<g id="edge66" class="edge">
-<title>Node31->Node21</title>
-<path fill="none" stroke="#191970" d="M1400.0378,-298.523C1501.8833,-285.6351 1699.6806,-260.6052 1783.711,-249.9718"/>
-<polygon fill="#191970" stroke="#191970" points="1784.3707,-253.4163 1793.8522,-248.6885 1783.4919,-246.4717 1784.3707,-253.4163"/>
+<!-- Node34->Node18 -->
+<g id="edge87" class="edge">
+<title>Node34->Node18</title>
+<path fill="none" stroke="#191970" d="M1684.9545,-363.8416C1635.7817,-341.2748 1513.2077,-285.0221 1456.1294,-258.8273"/>
+<polygon fill="#191970" stroke="#191970" points="1457.4563,-255.5852 1446.9078,-254.5952 1454.5365,-261.9473 1457.4563,-255.5852"/>
</g>
-<!-- Node31->Node22 -->
-<g id="edge58" class="edge">
-<title>Node31->Node22</title>
-<path fill="none" stroke="#191970" d="M1337.7416,-291.2977C1338.1276,-283.3834 1338.6047,-273.6043 1339.0207,-265.0759"/>
-<polygon fill="#191970" stroke="#191970" points="1342.5282,-265.0056 1339.5197,-254.8469 1335.5365,-264.6645 1342.5282,-265.0056"/>
+<!-- Node34->Node20 -->
+<g id="edge71" class="edge">
+<title>Node34->Node20</title>
+<path fill="none" stroke="#191970" d="M1643.4341,-365.9505C1617.0946,-363.0314 1586.0936,-359.9343 1558,-358 1076.2088,-324.8279 951.6924,-377.842 472,-322 470.8826,-321.8699 469.7572,-321.7321 468.6255,-321.5872"/>
+<polygon fill="#191970" stroke="#191970" points="468.7119,-318.0639 458.3164,-320.1092 467.7184,-324.9931 468.7119,-318.0639"/>
</g>
-<!-- Node31->Node23 -->
-<g id="edge60" class="edge">
-<title>Node31->Node23</title>
-<path fill="none" stroke="#191970" d="M1273.8967,-297.334C1210.9481,-287.5115 1119.1208,-271.1444 1087,-255 1063.3803,-243.1284 1041.4704,-221.7508 1027.7179,-206.5434"/>
-<polygon fill="#191970" stroke="#191970" points="1030.1808,-204.0433 1020.9578,-198.8291 1024.9161,-208.6568 1030.1808,-204.0433"/>
+<!-- Node34->Node26 -->
+<g id="edge76" class="edge">
+<title>Node34->Node26</title>
+<path fill="none" stroke="#191970" d="M1643.3517,-366.9064C1616.999,-364.1412 1586.0103,-360.9007 1558,-358 1405.1491,-342.1711 1226.1399,-323.909 1128.2191,-313.9429"/>
+<polygon fill="#191970" stroke="#191970" points="1128.4355,-310.4469 1118.1325,-312.9164 1127.7268,-317.4109 1128.4355,-310.4469"/>
</g>
-<!-- Node31->Node25 -->
-<g id="edge65" class="edge">
-<title>Node31->Node25</title>
-<path fill="none" stroke="#191970" d="M1321.1717,-291.3795C1298.0874,-269.3274 1255.3354,-228.4871 1231.396,-205.6181"/>
-<polygon fill="#191970" stroke="#191970" points="1233.7028,-202.9814 1224.0542,-198.6046 1228.8674,-208.043 1233.7028,-202.9814"/>
+<!-- Node34->Node32 -->
+<g id="edge77" class="edge">
+<title>Node34->Node32</title>
+<path fill="none" stroke="#191970" d="M1768.6032,-368.0171C1907.0012,-355.896 2238.7638,-326.8396 2391.5316,-313.46"/>
+<polygon fill="#191970" stroke="#191970" points="2392.1175,-316.9221 2401.774,-312.5629 2391.5068,-309.9488 2392.1175,-316.9221"/>
</g>
-<!-- Node32 -->
-<g id="node33" class="node">
-<title>Node32</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1096.5,-235.5 1096.5,-254.5 1149.5,-254.5 1149.5,-235.5 1096.5,-235.5"/>
-<text text-anchor="middle" x="1123" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstddef</text>
+<!-- Node35 -->
+<g id="node36" class="node">
+<title>Node35</title>
+<g id="a_node36"><a xlink:href="shape__tuple_8h.html" target="_top" xlink:title="Runtime ShapeTuple container types. ">
+<polygon fill="#ffffff" stroke="#000000" points="734,-291.5 734,-321.5 860,-321.5 860,-291.5 734,-291.5"/>
+<text text-anchor="start" x="742" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="797" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/shape_tuple.h</text>
+</a>
</g>
-<!-- Node31->Node32 -->
-<g id="edge63" class="edge">
-<title>Node31->Node32</title>
-<path fill="none" stroke="#191970" d="M1284.6497,-291.4554C1245.7952,-280.2893 1193.7985,-265.3463 1159.3937,-255.4589"/>
-<polygon fill="#191970" stroke="#191970" points="1160.3267,-252.0855 1149.7489,-252.6872 1158.3932,-258.8132 1160.3267,-252.0855"/>
</g>
-<!-- Node33 -->
-<g id="node34" class="node">
-<title>Node33</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1168,-235.5 1168,-254.5 1218,-254.5 1218,-235.5 1168,-235.5"/>
-<text text-anchor="middle" x="1193" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cstring</text>
+<!-- Node34->Node35 -->
+<g id="edge72" class="edge">
+<title>Node34->Node35</title>
+<path fill="none" stroke="#191970" d="M1643.403,-366.3586C1617.0585,-363.5053 1586.0622,-360.3469 1558,-358 1302.8349,-336.6599 1238.3771,-340.6331 983,-322 945.9508,-319.2968 904.7839,-315.9063 870.6169,-312.9862"/>
+<polygon fill="#191970" stroke="#191970" points="870.5132,-309.4645 860.2504,-312.0963 869.9144,-316.4388 870.5132,-309.4645"/>
</g>
-<!-- Node31->Node33 -->
-<g id="edge64" class="edge">
-<title>Node31->Node33</title>
-<path fill="none" stroke="#191970" d="M1301.7736,-291.4554C1278.1684,-281.374 1247.3546,-268.2139 1224.5524,-258.4755"/>
-<polygon fill="#191970" stroke="#191970" points="1225.886,-255.2393 1215.3149,-254.5303 1223.1366,-261.6767 1225.886,-255.2393"/>
+<!-- Node36 -->
+<g id="node37" class="node">
+<title>Node36</title>
+<g id="a_node37"><a xlink:href="serializer_8h.html" target="_top" xlink:title="Serializer extension to support TVM data types Include this file to enable serialization of DLDataTyp...">
+<polygon fill="#ffffff" stroke="#000000" points="1734,-297 1734,-316 1868,-316 1868,-297 1734,-297"/>
+<text text-anchor="middle" x="1801" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/serializer.h</text>
+</a>
</g>
-<!-- Node34 -->
-<g id="node35" class="node">
-<title>Node34</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="870.5,-235.5 870.5,-254.5 963.5,-254.5 963.5,-235.5 870.5,-235.5"/>
-<text text-anchor="middle" x="917" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
</g>
-<!-- Node31->Node34 -->
-<g id="edge68" class="edge">
-<title>Node31->Node34</title>
-<path fill="none" stroke="#191970" d="M1273.667,-297.2262C1192.1915,-285.2959 1051.8846,-264.751 973.7401,-253.3084"/>
-<polygon fill="#191970" stroke="#191970" points="974.003,-249.8096 963.6014,-251.8238 972.9888,-256.7358 974.003,-249.8096"/>
+<!-- Node34->Node36 -->
+<g id="edge79" class="edge">
+<title>Node34->Node36</title>
+<path fill="none" stroke="#191970" d="M1714.7106,-363.9005C1728.2322,-352.8554 1753.8652,-334.5776 1773.8148,-321.6172"/>
+<polygon fill="#191970" stroke="#191970" points="1775.9579,-324.4021 1782.5169,-316.0817 1772.2008,-318.4958 1775.9579,-324.4021"/>
</g>
-<!-- Node35->Node9 -->
-<g id="edge77" class="edge">
-<title>Node35->Node9</title>
-<path fill="none" stroke="#191970" d="M463.4747,-296.9967C421.5023,-262.3879 276.1457,-142.5325 216.1808,-93.0877"/>
-<polygon fill="#191970" stroke="#191970" points="218.2479,-90.2558 208.3059,-86.5943 213.7946,-95.6566 218.2479,-90.2558"/>
+<!-- Node34->Node39 -->
+<g id="edge85" class="edge">
+<title>Node34->Node39</title>
+<path fill="none" stroke="#191970" d="M1758.7941,-363.9828C1808.0858,-354.6925 1883.5217,-339.4373 1948,-322 1951.3358,-321.0979 1954.7834,-320.0967 1958.2255,-319.0497"/>
+<polygon fill="#191970" stroke="#191970" points="1959.3316,-322.3709 1967.8138,-316.0225 1957.224,-315.6957 1959.3316,-322.3709"/>
</g>
-<!-- Node35->Node28 -->
-<g id="edge78" class="edge">
-<title>Node35->Node28</title>
-<path fill="none" stroke="#191970" d="M528.0666,-316.0496C591.3255,-328.1234 696.2449,-348.8967 759.6326,-361.8788"/>
-<polygon fill="#191970" stroke="#191970" points="759.3187,-365.3874 769.8186,-363.9717 760.7276,-358.5306 759.3187,-365.3874"/>
+<!-- Node35->Node16 -->
+<g id="edge73" class="edge">
+<title>Node35->Node16</title>
+<path fill="none" stroke="#191970" d="M733.9732,-295.6373C679.3953,-285.5046 605.2141,-269.7733 579,-255 543.2244,-234.8382 473.1645,-132.4944 445.074,-90.0176"/>
+<polygon fill="#191970" stroke="#191970" points="447.8718,-87.902 439.4537,-81.4688 442.0226,-91.7475 447.8718,-87.902"/>
</g>
-<!-- Node36 -->
-<g id="node37" class="node">
-<title>Node36</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="600,-235.5 600,-254.5 662,-254.5 662,-235.5 600,-235.5"/>
-<text text-anchor="middle" x="631" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/io.h</text>
+<!-- Node35->Node18 -->
+<g id="edge74" class="edge">
+<title>Node35->Node18</title>
+<path fill="none" stroke="#191970" d="M860.1908,-300.3216C991.6956,-287.4638 1290.9537,-258.204 1391.9697,-248.3273"/>
+<polygon fill="#191970" stroke="#191970" points="1392.5927,-251.7832 1402.2047,-247.3266 1391.9115,-244.8164 1392.5927,-251.7832"/>
</g>
-<!-- Node35->Node36 -->
+<!-- Node35->Node21 -->
<g id="edge75" class="edge">
-<title>Node35->Node36</title>
-<path fill="none" stroke="#191970" d="M499.375,-296.8906C525.7056,-286.5103 567.838,-269.9004 597.3229,-258.2766"/>
-<polygon fill="#191970" stroke="#191970" points="598.7767,-261.4657 606.7962,-254.5419 596.2093,-254.9534 598.7767,-261.4657"/>
+<title>Node35->Node21</title>
+<path fill="none" stroke="#191970" d="M770.091,-291.4554C752.7032,-281.734 730.1951,-269.15 712.9916,-259.5317"/>
+<polygon fill="#191970" stroke="#191970" points="714.4826,-256.3554 704.0461,-254.5303 711.0665,-262.4653 714.4826,-256.3554"/>
+</g>
+<!-- Node36->Node9 -->
+<g id="edge82" class="edge">
+<title>Node36->Node9</title>
+<path fill="none" stroke="#191970" d="M1813.9634,-296.7895C1826.409,-287.0735 1845.2888,-271.2692 1859,-255 1903.5077,-202.1886 1882.096,-159.0595 1941,-123 2022.5935,-73.0506 2274.6793,-95.1496 2370,-87 2403.8848,-84.1029 2441.393,-80.8445 2473.2064,-78.0655"/>
+<polygon fill="#191970" stroke="#191970" points="2473.6663,-81.5387 2483.3235,-77.1811 2473.0567,-74.5653 2473.6663,-81.5387"/>
+</g>
+<!-- Node36->Node34 -->
+<g id="edge83" class="edge">
+<title>Node36->Node34</title>
+<path fill="none" stroke="#191970" d="M1792.3112,-316.0817C1778.8026,-327.119 1753.1731,-345.3957 1733.2174,-358.3619"/>
+<polygon fill="#191970" stroke="#191970" points="1731.0702,-355.5796 1724.5118,-363.9005 1734.8277,-361.4857 1731.0702,-355.5796"/>
</g>
<!-- Node37 -->
<g id="node38" class="node">
<title>Node37</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="446.5,-235.5 446.5,-254.5 543.5,-254.5 543.5,-235.5 446.5,-235.5"/>
-<text text-anchor="middle" x="495" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/serializer.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1635,-235.5 1635,-254.5 1697,-254.5 1697,-235.5 1635,-235.5"/>
+<text text-anchor="middle" x="1666" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/io.h</text>
</g>
-<!-- Node35->Node37 -->
-<g id="edge76" class="edge">
-<title>Node35->Node37</title>
-<path fill="none" stroke="#191970" d="M478.125,-296.8906C480.9265,-288.276 485.1233,-275.3708 488.6306,-264.5858"/>
-<polygon fill="#191970" stroke="#191970" points="492.0667,-265.3371 491.8309,-254.7449 485.4098,-263.1722 492.0667,-265.3371"/>
-</g>
-<!-- Node39->Node8 -->
-<g id="edge114" class="edge">
-<title>Node39->Node8</title>
-<path fill="none" stroke="#191970" d="M1794.3391,-425.3213C1812.3259,-416.7399 1833.0411,-404.5808 1848,-389 1896.353,-338.6367 1913.9065,-295.4649 1879,-235 1856.1958,-195.4986 1835.7447,-194.915 1793,-179 1768.5309,-169.8895 1617.0099,-151.4102 1525.6766,-140.8567"/>
-<polygon fill="#191970" stroke="#191970" points="1526.0035,-137.3713 1515.6687,-139.7042 1525.2026,-144.3254 1526.0035,-137.3713"/>
+<!-- Node36->Node37 -->
+<g id="edge80" class="edge">
+<title>Node36->Node37</title>
+<path fill="none" stroke="#191970" d="M1779.9063,-296.8906C1757.4173,-286.6457 1721.6082,-270.3326 1696.1476,-258.7339"/>
+<polygon fill="#191970" stroke="#191970" points="1697.4968,-255.5025 1686.9456,-254.5419 1694.5948,-261.8727 1697.4968,-255.5025"/>
</g>
-<!-- Node39->Node9 -->
-<g id="edge91" class="edge">
-<title>Node39->Node9</title>
-<path fill="none" stroke="#191970" d="M1697.6878,-439.7536C1452.118,-436.4152 508.848,-421.5682 380,-389 249.6651,-356.056 114,-379.434 114,-245 114,-245 114,-245 114,-189 114,-150.9686 142.4185,-115.5128 164.4999,-93.7037"/>
-<polygon fill="#191970" stroke="#191970" points="167.1577,-96.006 171.9891,-86.5768 162.3321,-90.9351 167.1577,-96.006"/>
+<!-- Node38 -->
+<g id="node39" class="node">
+<title>Node38</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1753.5,-235.5 1753.5,-254.5 1850.5,-254.5 1850.5,-235.5 1753.5,-235.5"/>
+<text text-anchor="middle" x="1802" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/serializer.h</text>
</g>
-<!-- Node39->Node13 -->
-<g id="edge100" class="edge">
-<title>Node39->Node13</title>
-<path fill="none" stroke="#191970" d="M1812.3451,-425.4458C1834.2154,-417.4222 1858.2227,-405.671 1876,-389 1926.4329,-341.7055 1933.2719,-294.4654 1898,-235 1839.1164,-135.7272 1701.6424,-96.1641 1616.3816,-80.8106"/>
-<polygon fill="#191970" stroke="#191970" points="1616.9588,-77.3586 1606.5079,-79.0986 1615.7629,-84.2556 1616.9588,-77.3586"/>
+<!-- Node36->Node38 -->
+<g id="edge81" class="edge">
+<title>Node36->Node38</title>
+<path fill="none" stroke="#191970" d="M1801.1563,-296.8906C1801.2949,-288.3657 1801.5018,-275.6392 1801.676,-264.9235"/>
+<polygon fill="#191970" stroke="#191970" points="1805.1784,-264.8005 1801.8415,-254.7449 1798.1793,-264.6866 1805.1784,-264.8005"/>
</g>
-<!-- Node39->Node14 -->
-<g id="edge118" class="edge">
-<title>Node39->Node14</title>
-<path fill="none" stroke="#191970" d="M1814.0174,-434.957C1941.5436,-422.717 2236.6626,-394.0633 2258,-389 2339.437,-369.6753 2361.4247,-363.6925 2434,-322 2534.8797,-264.0474 2562.1151,-240.881 2625,-143 2635.7613,-126.2499 2645.2294,-105.5652 2651.4228,-90.7603"/>
-<polygon fill="#191970" stroke="#191970" points="2654.802,-91.7415 2655.3254,-81.1596 2648.3173,-89.1055 2654.802,-91.7415"/>
+<!-- Node40->Node8 -->
+<g id="edge119" class="edge">
+<title>Node40->Node8</title>
+<path fill="none" stroke="#191970" d="M1525.9205,-425.3739C1537.1638,-416.1292 1550.2679,-403.3426 1558,-389 1580.256,-347.7163 1598.5967,-205.4413 1604.7704,-152.7937"/>
+<polygon fill="#191970" stroke="#191970" points="1608.2625,-153.0624 1605.9296,-142.7276 1601.3084,-152.2615 1608.2625,-153.0624"/>
</g>
-<!-- Node39->Node15 -->
-<g id="edge120" class="edge">
-<title>Node39->Node15</title>
-<path fill="none" stroke="#191970" d="M1808.7917,-425.4493C1918.322,-394.1852 2160.4467,-324.8642 2164,-322 2242.0308,-259.102 2280.6149,-138.2203 2293.2099,-91.0397"/>
-<polygon fill="#191970" stroke="#191970" points="2296.6442,-91.738 2295.745,-81.1814 2289.8647,-89.9947 2296.6442,-91.738"/>
+<!-- Node40->Node9 -->
+<g id="edge96" class="edge">
+<title>Node40->Node9</title>
+<path fill="none" stroke="#191970" d="M1563.0782,-435.705C1645.2286,-428.4147 1799.8649,-412.8221 1930,-389 1991.2337,-377.7908 2145.5222,-348.1814 2202,-322 2336.3933,-259.6995 2471.7094,-142.1148 2524.6893,-93.4466"/>
+<polygon fill="#191970" stroke="#191970" points="2527.221,-95.8725 2532.1862,-86.5131 2522.4682,-90.7334 2527.221,-95.8725"/>
</g>
-<!-- Node39->Node16 -->
-<g id="edge121" class="edge">
-<title>Node39->Node16</title>
-<path fill="none" stroke="#191970" d="M1697.71,-440.1486C1437.4794,-438.0088 390.2302,-423.1289 289,-322 242.311,-275.3578 275.0481,-217.0073 329,-179 383.1119,-140.88 402.9408,-139.663 467,-123 606.0112,-86.8406 778.0228,-75.8121 849.0015,-72.6675"/>
-<polygon fill="#191970" stroke="#191970" points="849.2711,-76.1594 859.1156,-72.2432 848.9777,-69.1655 849.2711,-76.1594"/>
+<!-- Node40->Node13 -->
+<g id="edge105" class="edge">
+<title>Node40->Node13</title>
+<path fill="none" stroke="#191970" d="M1446.6954,-438.5778C1205.1608,-430.5487 295.1778,-399.6165 285,-389 127.2395,-224.4395 289.8283,-230.6316 597,-123 683.2526,-92.7775 788.2502,-80.2626 856.9904,-75.0983"/>
+<polygon fill="#191970" stroke="#191970" points="857.5588,-78.5666 867.2825,-74.3597 857.0576,-71.5846 857.5588,-78.5666"/>
</g>
-<!-- Node39->Node18 -->
-<g id="edge122" class="edge">
-<title>Node39->Node18</title>
-<path fill="none" stroke="#191970" d="M1758.2599,-425.2451C1760.0483,-407.3985 1760.2569,-377.7804 1746,-358 1724.1461,-327.6793 1689.9866,-353.5828 1670,-322 1659.1774,-304.8982 1663.2026,-281.1955 1668.3293,-264.6207"/>
-<polygon fill="#191970" stroke="#191970" points="1671.7312,-265.4939 1671.7123,-254.8991 1665.1201,-263.1932 1671.7312,-265.4939"/>
+<!-- Node40->Node14 -->
+<g id="edge123" class="edge">
+<title>Node40->Node14</title>
+<path fill="none" stroke="#191970" d="M1563.0216,-438.2359C1664.9203,-432.027 1880.0057,-408.806 2036,-322 2044.0445,-317.5235 2253.8575,-142.5727 2319.5364,-87.7519"/>
+<polygon fill="#191970" stroke="#191970" points="2322.0462,-90.216 2327.48,-81.1207 2317.5603,-84.8423 2322.0462,-90.216"/>
</g>
-<!-- Node39->Node19 -->
-<g id="edge92" class="edge">
-<title>Node39->Node19</title>
-<path fill="none" stroke="#191970" d="M1724.3579,-425.4839C1710.1842,-416.9409 1694.9065,-404.7673 1687,-389 1680.8241,-376.6839 1680.1463,-369.9521 1687,-358 1694.8013,-344.3954 1707.7423,-334.0392 1721.3312,-326.3125"/>
-<polygon fill="#191970" stroke="#191970" points="1723.0755,-329.3499 1730.3071,-321.6069 1719.8253,-323.1502 1723.0755,-329.3499"/>
+<!-- Node40->Node15 -->
+<g id="edge125" class="edge">
+<title>Node40->Node15</title>
+<path fill="none" stroke="#191970" d="M1563.2842,-437.5807C1755.1789,-427.3961 2365.4239,-390.291 2549,-322 2688.8391,-269.9793 2734.47,-255.0401 2833,-143 2846.7276,-127.3901 2857.2753,-105.9569 2863.7364,-90.6364"/>
+<polygon fill="#191970" stroke="#191970" points="2867.066,-91.7371 2867.5454,-81.1532 2860.5703,-89.1281 2867.066,-91.7371"/>
</g>
-<!-- Node39->Node21 -->
-<g id="edge117" class="edge">
-<title>Node39->Node21</title>
-<path fill="none" stroke="#191970" d="M1778.8292,-425.4059C1806.295,-405.5799 1850.5228,-367.847 1865,-322 1869.1487,-308.8617 1869.9821,-303.8455 1865,-291 1860.6142,-279.692 1852.0098,-269.463 1843.7251,-261.5381"/>
-<polygon fill="#191970" stroke="#191970" points="1845.8244,-258.721 1836.028,-254.6859 1841.1699,-263.9494 1845.8244,-258.721"/>
+<!-- Node40->Node16 -->
+<g id="edge126" class="edge">
+<title>Node40->Node16</title>
+<path fill="none" stroke="#191970" d="M1446.6612,-438.5879C1203.7919,-430.5661 284.2192,-399.5566 256,-389 160.0445,-353.1037 76,-347.45 76,-245 76,-245 76,-245 76,-189 76,-121.0477 312.318,-85.8885 400.4144,-75.1424"/>
+<polygon fill="#191970" stroke="#191970" points="400.8818,-78.6116 410.3972,-73.9524 400.0532,-71.6608 400.8818,-78.6116"/>
</g>
-<!-- Node39->Node26 -->
-<g id="edge99" class="edge">
-<title>Node39->Node26</title>
-<path fill="none" stroke="#191970" d="M1814.0666,-433.7028C1886.4653,-424.6238 2005.621,-407.5198 2046,-389 2065.8115,-379.9134 2064.3741,-367.4808 2084,-358 2099.7297,-350.4013 2195.2644,-330.7397 2259.5788,-318.0269"/>
-<polygon fill="#191970" stroke="#191970" points="2260.4811,-321.4165 2269.6157,-316.0492 2259.1277,-314.5486 2260.4811,-321.4165"/>
+<!-- Node40->Node18 -->
+<g id="edge127" class="edge">
+<title>Node40->Node18</title>
+<path fill="none" stroke="#191970" d="M1498.9322,-425.4841C1484.7972,-390.5046 1449.682,-303.6055 1433.9012,-264.553"/>
+<polygon fill="#191970" stroke="#191970" points="1436.9881,-262.8501 1429.9964,-254.8898 1430.498,-265.4728 1436.9881,-262.8501"/>
</g>
-<!-- Node39->Node28 -->
-<g id="edge113" class="edge">
-<title>Node39->Node28</title>
-<path fill="none" stroke="#191970" d="M1697.9078,-438.2274C1529.4761,-431.4539 1042.8758,-410.5321 885,-389 877.5124,-387.9788 869.6445,-386.603 861.971,-385.0907"/>
-<polygon fill="#191970" stroke="#191970" points="862.5448,-381.6354 852.0438,-383.0424 861.1302,-388.491 862.5448,-381.6354"/>
+<!-- Node40->Node29 -->
+<g id="edge122" class="edge">
+<title>Node40->Node29</title>
+<path fill="none" stroke="#191970" d="M1446.9362,-436.3307C1325.7617,-427.3505 1053.9318,-405.6465 1015,-389 953.5897,-362.7422 905.0391,-295.9992 884.1439,-263.4344"/>
+<polygon fill="#191970" stroke="#191970" points="887.0508,-261.4817 878.7788,-254.8617 881.1171,-265.1953 887.0508,-261.4817"/>
</g>
-<!-- Node39->Node38 -->
-<g id="edge115" class="edge">
-<title>Node39->Node38</title>
-<path fill="none" stroke="#191970" d="M1697.9387,-435.6313C1562.8644,-423.5428 1217.6113,-388.2456 936,-322 932.3566,-321.1429 928.5921,-320.1287 924.8534,-319.0357"/>
-<polygon fill="#191970" stroke="#191970" points="925.7058,-315.6355 915.1176,-316.0119 923.6295,-322.3205 925.7058,-315.6355"/>
+<!-- Node40->Node31 -->
+<g id="edge97" class="edge">
+<title>Node40->Node31</title>
+<path fill="none" stroke="#191970" d="M1446.7446,-436.4685C1298.3347,-426.0842 915.8781,-398.5664 890,-389 867.9018,-380.831 868.4973,-367.6398 847,-358 839.581,-354.6732 753.3099,-335.9117 688.1222,-321.9881"/>
+<polygon fill="#191970" stroke="#191970" points="688.7734,-318.5484 678.2632,-319.8848 687.3129,-325.3943 688.7734,-318.5484"/>
</g>
-<!-- Node40 -->
-<g id="node41" class="node">
-<title>Node40</title>
-<g id="a_node41"><a xlink:href="map_8h.html" target="_top" xlink:title="Runtime Map container types. ">
-<polygon fill="#ffffff" stroke="#000000" points="894,-358.5 894,-388.5 1020,-388.5 1020,-358.5 894,-358.5"/>
-<text text-anchor="start" x="902" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="957" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
-</a>
+<!-- Node40->Node32 -->
+<g id="edge104" class="edge">
+<title>Node40->Node32</title>
+<path fill="none" stroke="#191970" d="M1563.2865,-438.1208C1668.0775,-433.2212 1894.9975,-419.7729 2084,-389 2142.6258,-379.4547 2155.9816,-370.7263 2214,-358 2281.0892,-343.284 2358.4072,-328.0183 2410.5701,-317.9667"/>
+<polygon fill="#191970" stroke="#191970" points="2411.4974,-321.3527 2420.6568,-316.0277 2410.1759,-314.4785 2411.4974,-321.3527"/>
</g>
+<!-- Node40->Node34 -->
+<g id="edge118" class="edge">
+<title>Node40->Node34</title>
+<path fill="none" stroke="#191970" d="M1550.1083,-425.4639C1585.4576,-413.6808 1634.103,-397.4657 1667.6047,-386.2984"/>
+<polygon fill="#191970" stroke="#191970" points="1669.1041,-389.488 1677.4841,-383.0053 1666.8905,-382.8472 1669.1041,-389.488"/>
</g>
-<!-- Node39->Node40 -->
-<g id="edge93" class="edge">
-<title>Node39->Node40</title>
-<path fill="none" stroke="#191970" d="M1697.8943,-435.6276C1555.1407,-423.657 1187.4373,-392.8233 1030.1444,-379.6335"/>
-<polygon fill="#191970" stroke="#191970" points="1030.3502,-376.1386 1020.0927,-378.7906 1029.7652,-383.1141 1030.3502,-376.1386"/>
+<!-- Node40->Node39 -->
+<g id="edge120" class="edge">
+<title>Node40->Node39</title>
+<path fill="none" stroke="#191970" d="M1563.2509,-432.4864C1618.794,-424.1398 1704.4836,-409.4176 1777,-389 1845.336,-369.7594 1922.3906,-338.1454 1964.1215,-320.1527"/>
+<polygon fill="#191970" stroke="#191970" points="1965.675,-323.294 1973.4543,-316.1014 1962.8876,-316.8729 1965.675,-323.294"/>
</g>
<!-- Node41 -->
<g id="node42" class="node">
<title>Node41</title>
-<g id="a_node42"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
-<polygon fill="#ffffff" stroke="#000000" points="1438,-364 1438,-383 1564,-383 1564,-364 1438,-364"/>
-<text text-anchor="middle" x="1501" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/module.h</text>
+<g id="a_node42"><a xlink:href="map_8h.html" target="_top" xlink:title="Runtime Map container types. ">
+<polygon fill="#ffffff" stroke="#000000" points="294,-358.5 294,-388.5 420,-388.5 420,-358.5 294,-358.5"/>
+<text text-anchor="start" x="302" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="357" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
</a>
</g>
</g>
-<!-- Node39->Node41 -->
-<g id="edge101" class="edge">
-<title>Node39->Node41</title>
-<path fill="none" stroke="#191970" d="M1697.8912,-426.6988C1650.3698,-414.641 1584.455,-397.3024 1542.2039,-385.7333"/>
-<polygon fill="#191970" stroke="#191970" points="1543.0905,-382.3472 1532.5202,-383.0678 1541.2327,-389.0962 1543.0905,-382.3472"/>
+<!-- Node40->Node41 -->
+<g id="edge98" class="edge">
+<title>Node40->Node41</title>
+<path fill="none" stroke="#191970" d="M1446.6245,-436.4065C1399.9284,-433.1747 1332.7732,-428.6221 1274,-425 960.3206,-405.6684 586.0908,-385.5769 430.4828,-377.3545"/>
+<polygon fill="#191970" stroke="#191970" points="430.2769,-373.8389 420.1062,-376.8067 429.9078,-380.8291 430.2769,-373.8389"/>
</g>
-<!-- Node39->Node43 -->
-<g id="edge116" class="edge">
-<title>Node39->Node43</title>
-<path fill="none" stroke="#191970" d="M1814.1085,-435.1435C1847.4355,-432.1015 1890.0626,-428.2613 1928,-425 2123.488,-408.1947 2172.9678,-410.4572 2368,-389 2394.951,-386.0349 2425.424,-381.7572 2447.7726,-378.4464"/>
-<polygon fill="#191970" stroke="#191970" points="2448.3616,-381.8974 2457.7331,-376.9553 2447.3251,-374.9745 2448.3616,-381.8974"/>
+<!-- Node42 -->
+<g id="node43" class="node">
+<title>Node42</title>
+<g id="a_node43"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
+<polygon fill="#ffffff" stroke="#000000" points="1326,-364 1326,-383 1452,-383 1452,-364 1326,-364"/>
+<text text-anchor="middle" x="1389" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/module.h</text>
+</a>
</g>
-<!-- Node44 -->
-<g id="node45" class="node">
-<title>Node44</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1696.5,-364 1696.5,-383 1737.5,-383 1737.5,-364 1696.5,-364"/>
-<text text-anchor="middle" x="1717" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tuple</text>
</g>
-<!-- Node39->Node44 -->
-<g id="edge119" class="edge">
-<title>Node39->Node44</title>
-<path fill="none" stroke="#191970" d="M1747.1503,-425.2967C1741.3689,-415.3645 1733.7858,-402.3371 1727.6709,-391.8321"/>
-<polygon fill="#191970" stroke="#191970" points="1730.6175,-389.9367 1722.5618,-383.055 1724.5677,-393.4582 1730.6175,-389.9367"/>
+<!-- Node40->Node42 -->
+<g id="edge106" class="edge">
+<title>Node40->Node42</title>
+<path fill="none" stroke="#191970" d="M1473.2268,-425.4639C1452.7656,-414.4247 1426.9205,-399.4954 1409.1881,-388.4715"/>
+<polygon fill="#191970" stroke="#191970" points="1411.0455,-385.5049 1400.7262,-383.1039 1407.2959,-391.416 1411.0455,-385.5049"/>
</g>
-<!-- Node40->Node16 -->
-<g id="edge96" class="edge">
-<title>Node40->Node16</title>
-<path fill="none" stroke="#191970" d="M893.7279,-359.8783C890.4407,-359.2292 887.1831,-358.5992 884,-358 748.3486,-332.4634 646.9698,-381.1777 591,-255 540.7259,-141.6626 763.3385,-91.4734 849.3263,-76.545"/>
-<polygon fill="#191970" stroke="#191970" points="850.0626,-79.9703 859.3429,-74.859 848.9007,-73.0674 850.0626,-79.9703"/>
+<!-- Node40->Node44 -->
+<g id="edge121" class="edge">
+<title>Node40->Node44</title>
+<path fill="none" stroke="#191970" d="M1446.9298,-436.4378C1292.3565,-425.5555 880.6494,-396.0911 852,-389 849.5147,-388.3849 846.9824,-387.6157 844.4704,-386.7512"/>
+<polygon fill="#191970" stroke="#191970" points="845.6146,-383.4407 835.0263,-383.0675 843.0708,-389.9621 845.6146,-383.4407"/>
</g>
-<!-- Node40->Node20 -->
-<g id="edge94" class="edge">
-<title>Node40->Node20</title>
-<path fill="none" stroke="#191970" d="M1020.1488,-368.7058C1126.6286,-360.2207 1337.2896,-341.5968 1409,-322 1426.608,-317.1881 1543.3996,-264.4777 1559,-255 1582.9834,-240.4294 1607.8324,-219.811 1624.0133,-205.5126"/>
-<polygon fill="#191970" stroke="#191970" points="1626.5269,-207.9597 1631.6342,-198.6771 1621.8529,-202.7487 1626.5269,-207.9597"/>
+<!-- Node45 -->
+<g id="node46" class="node">
+<title>Node45</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1508.5,-364 1508.5,-383 1549.5,-383 1549.5,-364 1508.5,-364"/>
+<text text-anchor="middle" x="1529" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tuple</text>
</g>
-<!-- Node40->Node22 -->
-<g id="edge97" class="edge">
-<title>Node40->Node22</title>
-<path fill="none" stroke="#191970" d="M1020.0177,-360.7387C1024.7477,-359.8041 1029.4485,-358.8826 1034,-358 1119.6617,-341.3899 1147.8452,-358.7198 1227,-322 1246.772,-312.8278 1247.2258,-303.615 1265,-291 1280.7359,-279.8317 1299.2048,-268.4842 1313.8776,-259.8541"/>
-<polygon fill="#191970" stroke="#191970" points="1316.0196,-262.6573 1322.9046,-254.6044 1312.5006,-256.6061 1316.0196,-262.6573"/>
+<!-- Node40->Node45 -->
+<g id="edge124" class="edge">
+<title>Node40->Node45</title>
+<path fill="none" stroke="#191970" d="M1510.446,-425.2967C1513.9312,-415.5672 1518.4803,-402.8675 1522.2018,-392.4784"/>
+<polygon fill="#191970" stroke="#191970" points="1525.5,-393.6495 1525.5773,-383.055 1518.91,-391.2889 1525.5,-393.6495"/>
</g>
-<!-- Node40->Node29 -->
-<g id="edge98" class="edge">
-<title>Node40->Node29</title>
-<path fill="none" stroke="#191970" d="M907.6277,-358.4639C874.625,-348.4131 831.0337,-335.1375 796.1727,-324.5208"/>
-<polygon fill="#191970" stroke="#191970" points="797.1735,-321.1669 786.5876,-321.6017 795.1342,-327.8633 797.1735,-321.1669"/>
+<!-- Node41->Node16 -->
+<g id="edge101" class="edge">
+<title>Node41->Node16</title>
+<path fill="none" stroke="#191970" d="M337.4585,-358.3049C326.3916,-348.8554 313.0041,-335.887 304,-322 254.7726,-246.0769 205.6801,-194.6056 261,-123 278.0609,-100.9165 355.3977,-84.5309 400.3474,-76.6759"/>
+<polygon fill="#191970" stroke="#191970" points="400.9466,-80.1243 410.2181,-74.9969 399.7728,-73.2235 400.9466,-80.1243"/>
</g>
-<!-- Node40->Node34 -->
-<g id="edge95" class="edge">
-<title>Node40->Node34</title>
-<path fill="none" stroke="#191970" d="M894.8242,-358.4323C876.2377,-350.7135 857.9201,-339.1702 847,-322 839.6061,-310.3742 840.4587,-303.1259 847,-291 854.573,-276.9617 868.5073,-266.5084 881.9614,-259.1453"/>
-<polygon fill="#191970" stroke="#191970" points="883.758,-262.1593 891.115,-254.5353 880.6094,-255.9074 883.758,-262.1593"/>
+<!-- Node41->Node20 -->
+<g id="edge103" class="edge">
+<title>Node41->Node20</title>
+<path fill="none" stroke="#191970" d="M365.6228,-358.2967C370.287,-350.0729 376.1547,-339.7272 381.4174,-330.4483"/>
+<polygon fill="#191970" stroke="#191970" points="384.5223,-332.0683 386.4113,-321.6432 378.4335,-328.6148 384.5223,-332.0683"/>
</g>
-<!-- Node41->Node8 -->
-<g id="edge106" class="edge">
-<title>Node41->Node8</title>
-<path fill="none" stroke="#191970" d="M1564.1969,-369.0183C1663.1891,-361.3489 1845.5921,-344.3471 1865,-322 1874.0342,-311.5976 1865.4911,-304.769 1865,-291 1864.1105,-266.0636 1875.2102,-255.5107 1861,-235 1827.0232,-185.9584 1796.0717,-196.3877 1739,-179 1668.0281,-157.3774 1583.7655,-145.3398 1525.7476,-139.0558"/>
-<polygon fill="#191970" stroke="#191970" points="1525.9013,-135.5527 1515.5896,-137.9853 1525.1676,-142.5141 1525.9013,-135.5527"/>
+<!-- Node41->Node21 -->
+<g id="edge102" class="edge">
+<title>Node41->Node21</title>
+<path fill="none" stroke="#191970" d="M341.8899,-358.196C326.0498,-340.3023 305.6868,-310.6388 323,-291 344.3517,-266.7802 560.2185,-252.0699 649.0858,-246.9986"/>
+<polygon fill="#191970" stroke="#191970" points="649.4835,-250.4819 659.2721,-246.428 649.0919,-243.4929 649.4835,-250.4819"/>
</g>
-<!-- Node41->Node9 -->
-<g id="edge103" class="edge">
-<title>Node41->Node9</title>
-<path fill="none" stroke="#191970" d="M1437.5949,-369.0877C1312.1828,-360.0507 1041.1412,-338.8668 1002,-322 982.6091,-313.6441 984.5974,-300.9982 966,-291 949.8044,-282.293 437.3509,-139.9874 254.2434,-89.2746"/>
-<polygon fill="#191970" stroke="#191970" points="255.0476,-85.8656 244.4762,-86.5699 253.1794,-92.6118 255.0476,-85.8656"/>
+<!-- Node41->Node24 -->
+<g id="edge99" class="edge">
+<title>Node41->Node24</title>
+<path fill="none" stroke="#191970" d="M338.6408,-358.2245C320.0216,-340.884 296.1691,-312.2507 313,-291 316.4637,-286.6267 698.5711,-200.285 704,-199 704.1003,-198.9763 704.2007,-198.9525 704.3013,-198.9287"/>
+<polygon fill="#191970" stroke="#191970" points="704.9761,-202.3658 713.8985,-196.6525 703.3607,-195.5547 704.9761,-202.3658"/>
</g>
-<!-- Node41->Node14 -->
-<g id="edge109" class="edge">
-<title>Node41->Node14</title>
-<path fill="none" stroke="#191970" d="M1564.2657,-368.1045C1600.2427,-365.0672 1646.1381,-361.2445 1687,-358 1898.9359,-341.172 1959.2148,-379.123 2164,-322 2211.1459,-308.8491 2513.3205,-145.0857 2557,-123 2581.9109,-110.4042 2610.2541,-96.0955 2630.7299,-85.7626"/>
-<polygon fill="#191970" stroke="#191970" points="2632.4703,-88.8048 2639.8213,-81.175 2629.3168,-82.5553 2632.4703,-88.8048"/>
+<!-- Node41->Node30 -->
+<g id="edge100" class="edge">
+<title>Node41->Node30</title>
+<path fill="none" stroke="#191970" d="M388.8001,-358.3521C433.4805,-337.2504 512.7584,-300.5204 543,-291 559.8896,-285.683 658.0617,-267.207 722.3515,-255.3509"/>
+<polygon fill="#191970" stroke="#191970" points="723.1601,-258.7609 732.361,-253.5079 721.8925,-251.8766 723.1601,-258.7609"/>
</g>
-<!-- Node41->Node18 -->
+<!-- Node42->Node8 -->
<g id="edge111" class="edge">
-<title>Node41->Node18</title>
-<path fill="none" stroke="#191970" d="M1510.4595,-363.8504C1526.6494,-347.6345 1561.1148,-314.3995 1594,-291 1610.788,-279.0545 1630.9564,-267.7055 1647.0903,-259.2689"/>
-<polygon fill="#191970" stroke="#191970" points="1648.7728,-262.3394 1656.0673,-254.6556 1645.5733,-256.1134 1648.7728,-262.3394"/>
+<title>Node42->Node8</title>
+<path fill="none" stroke="#191970" d="M1396.4994,-363.7773C1419.1519,-334.6224 1489.3552,-245.8201 1555,-179 1565.1627,-168.6553 1577.2584,-157.8739 1587.2256,-149.3511"/>
+<polygon fill="#191970" stroke="#191970" points="1589.6238,-151.907 1595.0082,-142.7824 1585.1088,-146.5577 1589.6238,-151.907"/>
</g>
-<!-- Node41->Node21 -->
-<g id="edge107" class="edge">
-<title>Node41->Node21</title>
-<path fill="none" stroke="#191970" d="M1564.1563,-368.5251C1658.9217,-360.4121 1828.8076,-343.1007 1847,-322 1861.3493,-305.3568 1849.0857,-280.1817 1837.446,-263.1902"/>
-<polygon fill="#191970" stroke="#191970" points="1839.9537,-260.6914 1831.2166,-254.6985 1834.3096,-264.8319 1839.9537,-260.6914"/>
+<!-- Node42->Node9 -->
+<g id="edge108" class="edge">
+<title>Node42->Node9</title>
+<path fill="none" stroke="#191970" d="M1452.0501,-364.1185C1467.3956,-361.9726 1483.7734,-359.7969 1499,-358 1582.7986,-348.1107 1800.111,-356.7575 1877,-322 1895.3366,-313.711 1893.5786,-302.6308 1910,-291 1954.1229,-259.749 1968.8403,-257.5117 2018,-235 2143.2452,-177.6464 2174.8047,-161.7323 2307,-123 2362.0068,-106.8834 2425.4429,-93.531 2473.4213,-84.4635"/>
+<polygon fill="#191970" stroke="#191970" points="2474.23,-87.873 2483.4161,-82.5942 2472.9431,-80.9923 2474.23,-87.873"/>
</g>
-<!-- Node41->Node23 -->
-<g id="edge105" class="edge">
-<title>Node41->Node23</title>
-<path fill="none" stroke="#191970" d="M1437.648,-370.8426C1328.574,-365.5385 1110.2544,-351.5189 1040,-322 1019.9058,-313.557 1021.4607,-300.8154 1002,-291 944.2524,-261.8739 900.6754,-306.0781 861,-255 835.2723,-221.8782 888.1372,-205.0767 938.4274,-196.7489"/>
-<polygon fill="#191970" stroke="#191970" points="939.0836,-200.189 948.427,-195.194 938.008,-193.2721 939.0836,-200.189"/>
+<!-- Node42->Node14 -->
+<g id="edge114" class="edge">
+<title>Node42->Node14</title>
+<path fill="none" stroke="#191970" d="M1395.694,-363.7396C1402.6817,-353.4644 1413.8726,-336.7624 1423,-322 1436.4299,-300.2788 1516.3022,-136.4678 1538,-123 1604.1331,-81.9513 2164.9723,-73.3258 2306.6126,-71.7954"/>
+<polygon fill="#191970" stroke="#191970" points="2306.8498,-75.2932 2316.813,-71.6898 2306.7773,-68.2936 2306.8498,-75.2932"/>
</g>
-<!-- Node41->Node31 -->
-<g id="edge104" class="edge">
-<title>Node41->Node31</title>
-<path fill="none" stroke="#191970" d="M1477.5028,-363.9005C1453.0473,-353.9096 1414.1059,-338.0006 1383.4154,-325.4624"/>
-<polygon fill="#191970" stroke="#191970" points="1384.3507,-322.0637 1373.7697,-321.5218 1381.7033,-328.5438 1384.3507,-322.0637"/>
+<!-- Node42->Node18 -->
+<g id="edge116" class="edge">
+<title>Node42->Node18</title>
+<path fill="none" stroke="#191970" d="M1391.781,-363.8416C1397.8344,-342.8184 1412.3057,-292.5598 1420.3553,-264.6038"/>
+<polygon fill="#191970" stroke="#191970" points="1423.783,-265.3485 1423.1867,-254.7705 1417.0563,-263.4116 1423.783,-265.3485"/>
</g>
-<!-- Node41->Node34 -->
+<!-- Node42->Node22 -->
<g id="edge110" class="edge">
-<title>Node41->Node34</title>
-<path fill="none" stroke="#191970" d="M1437.9947,-367.4815C1329.3605,-356.8461 1115.2927,-334.6595 1083,-322 1061.0655,-313.4012 1060.7736,-302.114 1040,-291 1014.2928,-277.2465 983.5761,-265.7551 959.2695,-257.6978"/>
-<polygon fill="#191970" stroke="#191970" points="960.2098,-254.3233 949.6177,-254.5661 958.0493,-260.9816 960.2098,-254.3233"/>
+<title>Node42->Node22</title>
+<path fill="none" stroke="#191970" d="M1325.974,-369.1111C1162.9146,-357.691 738.8619,-327.5503 725,-322 704.7658,-313.8982 704.5324,-303.949 687,-291 663.7979,-273.8635 646.9941,-280.2223 633,-255 625.1885,-240.9209 625.3464,-222.4239 627.0804,-208.5947"/>
+<polygon fill="#191970" stroke="#191970" points="630.5426,-209.1093 628.6868,-198.6782 623.6327,-207.9899 630.5426,-209.1093"/>
</g>
-<!-- Node41->Node36 -->
-<g id="edge102" class="edge">
-<title>Node41->Node36</title>
-<path fill="none" stroke="#191970" d="M1437.6843,-369.1368C1307.111,-359.8743 1016.5503,-337.8023 974,-322 951.5748,-313.6718 952.1866,-299.9443 930,-291 884.0149,-272.4616 743.2194,-256.2467 672.4782,-249.012"/>
-<polygon fill="#191970" stroke="#191970" points="672.461,-245.4926 662.1599,-247.9697 671.7575,-252.4571 672.461,-245.4926"/>
+<!-- Node42->Node26 -->
+<g id="edge109" class="edge">
+<title>Node42->Node26</title>
+<path fill="none" stroke="#191970" d="M1341.5007,-363.9717C1285.8549,-352.8092 1193.0363,-334.1899 1128.1734,-321.1785"/>
+<polygon fill="#191970" stroke="#191970" points="1128.5064,-317.6756 1118.0133,-319.1404 1127.1296,-324.5389 1128.5064,-317.6756"/>
</g>
-<!-- Node41->Node39 -->
+<!-- Node42->Node29 -->
<g id="edge112" class="edge">
-<title>Node41->Node39</title>
-<path fill="none" stroke="#191970" d="M1542.0591,-383.0053C1583.3682,-393.3291 1647.3935,-410.0507 1694.6893,-422.806"/>
-<polygon fill="#191970" stroke="#191970" points="1693.9465,-426.2308 1704.5136,-425.4639 1695.7747,-419.4737 1693.9465,-426.2308"/>
+<title>Node42->Node29</title>
+<path fill="none" stroke="#191970" d="M1325.9494,-369.316C1227.9447,-362.1738 1043.9799,-346.0318 983,-322 961.081,-313.3618 959.2682,-304.5573 940,-291 925.28,-280.6429 908.594,-269.186 895.5562,-260.2969"/>
+<polygon fill="#191970" stroke="#191970" points="897.4183,-257.3306 887.1818,-254.5982 893.4802,-263.1177 897.4183,-257.3306"/>
</g>
-<!-- Node42 -->
-<g id="node43" class="node">
-<title>Node42</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1494,-297 1494,-316 1542,-316 1542,-297 1494,-297"/>
-<text text-anchor="middle" x="1518" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mutex</text>
+<!-- Node42->Node30 -->
+<g id="edge115" class="edge">
+<title>Node42->Node30</title>
+<path fill="none" stroke="#191970" d="M1325.7932,-368.846C1219.8033,-360.6083 1010.8793,-342.3934 940,-322 926.332,-318.0674 849.4468,-280.1648 807.0595,-259.0444"/>
+<polygon fill="#191970" stroke="#191970" points="808.5871,-255.8952 798.0764,-254.5623 805.4618,-262.1588 808.5871,-255.8952"/>
</g>
-<!-- Node41->Node42 -->
-<g id="edge108" class="edge">
-<title>Node41->Node42</title>
-<path fill="none" stroke="#191970" d="M1503.4357,-363.9005C1505.9352,-354.0495 1509.8945,-338.4451 1513.0545,-325.9912"/>
-<polygon fill="#191970" stroke="#191970" points="1516.5019,-326.6353 1515.5688,-316.0817 1509.7169,-324.9137 1516.5019,-326.6353"/>
+<!-- Node42->Node37 -->
+<g id="edge107" class="edge">
+<title>Node42->Node37</title>
+<path fill="none" stroke="#191970" d="M1419.5628,-363.9584C1448.5228,-354.5406 1492.9733,-339.1017 1530,-322 1570.7636,-303.1723 1615.657,-276.5095 1642.3064,-260.0092"/>
+<polygon fill="#191970" stroke="#191970" points="1644.3033,-262.8888 1650.9351,-254.6262 1640.5981,-256.9497 1644.3033,-262.8888"/>
</g>
-<!-- Node45->Node6 -->
-<g id="edge127" class="edge">
-<title>Node45->Node6</title>
-<path fill="none" stroke="#191970" d="M2314.9151,-492.3833C2311.5131,-466.7464 2298.7283,-396.1278 2258,-358 2232.8677,-334.4724 2196.7954,-321.686 2165.5637,-314.7405"/>
-<polygon fill="#191970" stroke="#191970" points="2166.115,-311.2805 2155.6136,-312.6845 2164.6985,-318.1357 2166.115,-311.2805"/>
+<!-- Node42->Node40 -->
+<g id="edge117" class="edge">
+<title>Node42->Node40</title>
+<path fill="none" stroke="#191970" d="M1410.5291,-383.1039C1429.0892,-392.7457 1455.7723,-407.8959 1476.1316,-420.2103"/>
+<polygon fill="#191970" stroke="#191970" points="1474.3523,-423.2248 1484.7079,-425.4639 1478.0089,-417.2557 1474.3523,-423.2248"/>
</g>
-<!-- Node46 -->
-<g id="node47" class="node">
-<title>Node46</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2426,-431 2426,-450 2486,-450 2486,-431 2426,-431"/>
-<text text-anchor="middle" x="2456" y="-438" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">iostream</text>
+<!-- Node43 -->
+<g id="node44" class="node">
+<title>Node43</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1326,-297 1326,-316 1374,-316 1374,-297 1326,-297"/>
+<text text-anchor="middle" x="1350" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">mutex</text>
</g>
-<!-- Node45->Node46 -->
-<g id="edge128" class="edge">
-<title>Node45->Node46</title>
-<path fill="none" stroke="#191970" d="M2337.875,-492.3906C2361.2996,-482.1005 2398.6596,-465.6888 2425.0841,-454.0809"/>
-<polygon fill="#191970" stroke="#191970" points="2426.5307,-457.2683 2434.2786,-450.0419 2423.7154,-450.8594 2426.5307,-457.2683"/>
+<!-- Node42->Node43 -->
+<g id="edge113" class="edge">
+<title>Node42->Node43</title>
+<path fill="none" stroke="#191970" d="M1383.4123,-363.9005C1377.5043,-353.751 1368.0413,-337.4941 1360.6918,-324.8679"/>
+<polygon fill="#191970" stroke="#191970" points="1363.633,-322.9634 1355.5774,-316.0817 1357.5833,-326.4849 1363.633,-322.9634"/>
</g>
-<!-- Node47->Node2 -->
-<g id="edge141" class="edge">
-<title>Node47->Node2</title>
-<path fill="none" stroke="#191970" d="M2588.616,-660.3733C2624.648,-650.9001 2679.7878,-636.4032 2718.8114,-626.1435"/>
-<polygon fill="#191970" stroke="#191970" points="2720.0804,-629.4289 2728.8618,-623.5011 2718.3005,-622.6589 2720.0804,-629.4289"/>
+<!-- Node46->Node6 -->
+<g id="edge132" class="edge">
+<title>Node46->Node6</title>
+<path fill="none" stroke="#191970" d="M2489.9526,-492.4383C2429.9916,-460.6704 2237.1925,-358.5234 2165.8628,-320.7322"/>
+<polygon fill="#191970" stroke="#191970" points="2167.4877,-317.6322 2157.0127,-316.0433 2164.2105,-323.8177 2167.4877,-317.6322"/>
</g>
-<!-- Node47->Node3 -->
-<g id="edge142" class="edge">
-<title>Node47->Node3</title>
-<path fill="none" stroke="#191970" d="M2527.7863,-660.4509C2477.065,-640.4482 2359.5691,-594.1117 2301.5924,-571.2477"/>
-<polygon fill="#191970" stroke="#191970" points="2302.7392,-567.9377 2292.1524,-567.5249 2300.1711,-574.4496 2302.7392,-567.9377"/>
+<!-- Node47 -->
+<g id="node48" class="node">
+<title>Node47</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2514,-431 2514,-450 2574,-450 2574,-431 2514,-431"/>
+<text text-anchor="middle" x="2544" y="-438" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">iostream</text>
</g>
-<!-- Node47->Node8 -->
-<g id="edge145" class="edge">
-<title>Node47->Node8</title>
-<path fill="none" stroke="#191970" d="M2511.8525,-669.2707C2192.515,-663.343 76,-621.6542 76,-558 76,-558 76,-558 76,-306.5 76,-173.0023 1105.7747,-140.6769 1386.2101,-134.349"/>
-<polygon fill="#191970" stroke="#191970" points="1386.3403,-137.847 1396.2602,-134.1261 1386.185,-130.8488 1386.3403,-137.847"/>
+<!-- Node46->Node47 -->
+<g id="edge133" class="edge">
+<title>Node46->Node47</title>
+<path fill="none" stroke="#191970" d="M2513.625,-492.3906C2518.8253,-483.5068 2526.6966,-470.0601 2533.1233,-459.0811"/>
+<polygon fill="#191970" stroke="#191970" points="2536.2644,-460.6432 2538.2957,-450.2449 2530.2233,-457.1069 2536.2644,-460.6432"/>
</g>
-<!-- Node47->Node14 -->
+<!-- Node48->Node2 -->
<g id="edge146" class="edge">
-<title>Node47->Node14</title>
-<path fill="none" stroke="#191970" d="M2567.4343,-660.3517C2631.3555,-619.0703 2872,-450.042 2872,-245 2872,-245 2872,-245 2872,-189 2872,-107.5262 2751.0403,-82.1202 2691.427,-74.5464"/>
-<polygon fill="#191970" stroke="#191970" points="2691.7324,-71.0583 2681.3922,-73.3668 2690.9151,-78.0104 2691.7324,-71.0583"/>
+<title>Node48->Node2</title>
+<path fill="none" stroke="#191970" d="M2650.3673,-660.2455C2660.9554,-651.8943 2676.4064,-639.7076 2688.7893,-629.9408"/>
+<polygon fill="#191970" stroke="#191970" points="2691.0903,-632.5837 2696.7745,-623.6427 2686.7553,-627.0875 2691.0903,-632.5837"/>
</g>
-<!-- Node47->Node19 -->
-<g id="edge143" class="edge">
-<title>Node47->Node19</title>
-<path fill="none" stroke="#191970" d="M2511.79,-669.4098C2334.3314,-666.2841 1630,-648.1971 1630,-558 1630,-558 1630,-558 1630,-440.5 1630,-385.893 1686.1535,-347.357 1728.5712,-326.0372"/>
-<polygon fill="#191970" stroke="#191970" points="1730.1933,-329.1404 1737.6589,-321.6227 1727.1347,-322.844 1730.1933,-329.1404"/>
+<!-- Node48->Node3 -->
+<g id="edge147" class="edge">
+<title>Node48->Node3</title>
+<path fill="none" stroke="#191970" d="M2627.1721,-660.4509C2605.4276,-641.2747 2556.2395,-597.8962 2529.3683,-574.1988"/>
+<polygon fill="#191970" stroke="#191970" points="2531.6157,-571.5141 2521.8005,-567.5249 2526.9857,-576.7642 2531.6157,-571.5141"/>
</g>
-<!-- Node47->Node26 -->
-<g id="edge144" class="edge">
-<title>Node47->Node26</title>
-<path fill="none" stroke="#191970" d="M2552,-660.4116C2552,-641.0538 2552,-595.9167 2552,-558 2552,-558 2552,-558 2552,-502 2552,-435.4564 2558.4125,-404.6916 2511,-358 2493.6103,-340.8747 2436.8274,-326.9522 2389.4889,-317.921"/>
-<polygon fill="#191970" stroke="#191970" points="2390.0202,-314.4598 2379.5483,-316.0687 2388.7379,-321.3414 2390.0202,-314.4598"/>
+<!-- Node48->Node8 -->
+<g id="edge150" class="edge">
+<title>Node48->Node8</title>
+<path fill="none" stroke="#191970" d="M2673.9375,-660.4944C2738.625,-642.3184 2868,-600.6367 2868,-558 2868,-558 2868,-558 2868,-440.5 2868,-193.2546 1941.4267,-143.9382 1676.798,-134.8952"/>
+<polygon fill="#191970" stroke="#191970" points="1676.6611,-131.3888 1666.5502,-134.554 1676.4281,-138.385 1676.6611,-131.3888"/>
+</g>
+<!-- Node48->Node14 -->
+<g id="edge151" class="edge">
+<title>Node48->Node14</title>
+<path fill="none" stroke="#191970" d="M2678.3294,-664.2864C2716.035,-657.909 2773.2363,-645.5392 2819,-624 2902.1671,-584.8565 2986,-593.9184 2986,-502 2986,-502 2986,-502 2986,-373.5 2986,-189.7174 2830.7458,-182.9035 2657,-123 2604.3195,-104.837 2440.9736,-83.746 2371.1657,-75.2903"/>
+<polygon fill="#191970" stroke="#191970" points="2371.5284,-71.8088 2361.1821,-74.0901 2370.6929,-78.7588 2371.5284,-71.8088"/>
+</g>
+<!-- Node48->Node31 -->
+<g id="edge148" class="edge">
+<title>Node48->Node31</title>
+<path fill="none" stroke="#191970" d="M2597.8083,-668.6362C2397.2766,-660.8664 1486.7408,-614.1792 785,-389 735.7469,-373.1954 682.6749,-345.5624 649.1728,-326.6675"/>
+<polygon fill="#191970" stroke="#191970" points="650.6827,-323.4994 640.2619,-321.5869 647.2156,-329.5805 650.6827,-323.4994"/>
+</g>
+<!-- Node48->Node32 -->
+<g id="edge149" class="edge">
+<title>Node48->Node32</title>
+<path fill="none" stroke="#191970" d="M2638.2866,-660.4127C2638.8396,-641.0567 2640,-595.9227 2640,-558 2640,-558 2640,-558 2640,-502 2640,-466.154 2636.059,-454.7082 2616,-425 2584.7051,-378.6509 2529.9973,-341.0856 2497.4715,-321.4269"/>
+<polygon fill="#191970" stroke="#191970" points="2498.9203,-318.2174 2488.5317,-316.1375 2495.3558,-324.2419 2498.9203,-318.2174"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/affine__type_8h_source.html b/docs/reference/api/doxygen/affine__type_8h_source.html
index 4f0c195dd..cfcdaca9c 100644
--- a/docs/reference/api/doxygen/affine__type_8h_source.html
+++ b/docs/reference/api/doxygen/affine__type_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
<div class="ttc" id="classtvm_1_1AffineTypeNode_html_a34f13bad8b6f11b9c6bb3174f160117c"><div class="ttname"><a href="classtvm_1_1AffineTypeNode.html#a34f13bad8b6f11b9c6bb3174f160117c">tvm::AffineTypeNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(AffineTypeNode, Object)</div></div>
<div class="ttc" id="classtvm_1_1AffineTypeNode_html_ad20906681adf4b2fdedbe2f40f4c7f93"><div class="ttname"><a href="classtvm_1_1AffineTypeNode.html#ad20906681adf4b2fdedbe2f40f4c7f93">tvm::AffineTypeNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> affine_type.h:44</div></div>
<div class="ttc" id="classtvm_1_1TupleAffineTypeNode_html_a7962541654d537f3dbe0b1803a9e3060"><div class="ttname"><a href="classtvm_1_1TupleAffineTypeNode.html#a7962541654d537f3dbe0b1803a9e3060">tvm::TupleAffineTypeNode::SHashReduce</a></div><div class="ttdeci">void SHashReduce(SHashReducer hash_reduce) const</div><div class="ttdef"><b>Definition:</b> affine_type.h:129</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html">tvm::SEqualReducer</a></div><div class="ttdoc">A Reducer class to reduce the structural equality result of two objects. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:102</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html">tvm::SEqualReducer</a></div><div class="ttdoc">A Reducer class to reduce the structural equality result of two objects. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:124</div></div>
<div class="ttc" id="ir_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM. </div></div>
<div class="ttc" id="namespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">runtime implementation for LibTorch/TorchScript. </div><div class="ttdef"><b>Definition:</b> analyzer.h:36</div></div>
<div class="ttc" id="classtvm_1_1TupleAffineTypeNode_html_a30c834b7e1cb64467e6587ac16ebb187"><div class="ttname"><a href="classtvm_1_1TupleAffineTypeNode.html#a30c834b7e1cb64467e6587ac16ebb187">tvm::TupleAffineTypeNode::types</a></div><div class="ttdeci">Array< TensorAffineType > types</div><div class="ttdoc">The types of this tuple. </div><div class="ttdef"><b>Definition:</b> affine_type.h:120</div></div>
diff --git a/docs/reference/api/doxygen/algorithm_8h.html b/docs/reference/api/doxygen/algorithm_8h.html
index 1cea93f03..9db5b9252 100644
--- a/docs/reference/api/doxygen/algorithm_8h.html
+++ b/docs/reference/api/doxygen/algorithm_8h.html
@@ -76,7 +76,7 @@ $(function() {
</div><div class="textblock"><div class="dynheader">
Include dependency graph for algorithm.h:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="algorithm_8h__incl.svg" width="5299" height="1395"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="algorithm_8h__incl.svg" width="5448" height="1395"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div>
diff --git a/docs/reference/api/doxygen/algorithm_8h__incl.svg b/docs/reference/api/doxygen/algorithm_8h__incl.svg
index 2d0f55fff..29d2d61a5 100644
--- a/docs/reference/api/doxygen/algorithm_8h__incl.svg
+++ b/docs/reference/api/doxygen/algorithm_8h__incl.svg
@@ -4,1768 +4,1756 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: include/tvm/relay/attrs/algorithm.h Pages: 1 -->
-<svg width="3974pt" height="1046pt"
- viewBox="0.00 0.00 3974.00 1046.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="4086pt" height="1046pt"
+ viewBox="0.00 0.00 4086.00 1046.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 1042)">
<title>include/tvm/relay/attrs/algorithm.h</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1042 3970,-1042 3970,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1042 4082,-1042 4082,4 -4,4"/>
<!-- Node0 -->
<g id="node1" class="node">
<title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="396,-1007.5 396,-1037.5 524,-1037.5 524,-1007.5 396,-1007.5"/>
-<text text-anchor="start" x="404" y="-1025.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
-<text text-anchor="middle" x="460" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/algorithm.h</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="2775,-1007.5 2775,-1037.5 2903,-1037.5 2903,-1007.5 2775,-1007.5"/>
+<text text-anchor="start" x="2783" y="-1025.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">include/tvm/relay/attrs</text>
+<text text-anchor="middle" x="2839" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/algorithm.h</text>
</g>
<!-- Node1 -->
<g id="node2" class="node">
<title>Node1</title>
<g id="a_node2"><a xlink:href="ir_2attrs_8h.html" target="_top" xlink:title="Helpers for attribute objects. ">
-<polygon fill="#ffffff" stroke="#000000" points="758,-660.5 758,-679.5 838,-679.5 838,-660.5 758,-660.5"/>
-<text text-anchor="middle" x="798" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/attrs.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="1500,-660.5 1500,-679.5 1580,-679.5 1580,-660.5 1500,-660.5"/>
+<text text-anchor="middle" x="1540" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/attrs.h</text>
</a>
</g>
</g>
<!-- Node0->Node1 -->
<g id="edge1" class="edge">
<title>Node0->Node1</title>
-<path fill="none" stroke="#191970" d="M395.6713,-1008.0034C315.8109,-988.1043 190,-949.6673 190,-905 190,-905 190,-905 190,-787.5 190,-691.845 299.7747,-737.4225 393,-716 518.4804,-687.1655 670.1703,-676.0819 747.4331,-672.0823"/>
-<polygon fill="#191970" stroke="#191970" points="748.0176,-675.5576 757.8308,-671.5638 747.6689,-668.5663 748.0176,-675.5576"/>
+<path fill="none" stroke="#191970" d="M2774.68,-1020.3684C2493.1413,-1010.7288 1381.1898,-969.3157 1332,-915 1254.5754,-829.5072 1437.8168,-722.3326 1511.2358,-684.2375"/>
+<polygon fill="#191970" stroke="#191970" points="1513.1206,-687.2047 1520.4272,-679.5323 1509.9308,-680.9736 1513.1206,-687.2047"/>
</g>
<!-- Node16 -->
<g id="node13" class="node">
<title>Node16</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="586,-6 586,-25 630,-25 630,-6 586,-6"/>
-<text text-anchor="middle" x="608" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3524,-6 3524,-25 3568,-25 3568,-6 3524,-6"/>
+<text text-anchor="middle" x="3546" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">string</text>
</g>
<!-- Node0->Node16 -->
-<g id="edge225" class="edge">
+<g id="edge223" class="edge">
<title>Node0->Node16</title>
-<path fill="none" stroke="#191970" d="M395.5546,-1019.4441C268.9561,-1011.6741 0,-985.6738 0,-905 0,-905 0,-905 0,-133 0,-96.1996 17.8333,-84.8767 50,-67 96.081,-41.3904 464.1678,-22.2273 575.9329,-16.9541"/>
-<polygon fill="#191970" stroke="#191970" points="576.1035,-20.45 585.9293,-16.4874 575.777,-13.4577 576.1035,-20.45"/>
+<path fill="none" stroke="#191970" d="M2903.005,-1019.8214C3156.7175,-1008.7886 4078,-964.6216 4078,-905 4078,-905 4078,-905 4078,-133 4078,-91.201 4048.7446,-84.9584 4011,-67 3934.0113,-30.3697 3670.5759,-19.1837 3578.2682,-16.3442"/>
+<polygon fill="#191970" stroke="#191970" points="3578.2296,-12.8417 3568.1307,-16.0451 3578.0231,-19.8386 3578.2296,-12.8417"/>
</g>
-<!-- Node50 -->
-<g id="node35" class="node">
-<title>Node50</title>
-<g id="a_node35"><a xlink:href="relay_2base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
-<polygon fill="#ffffff" stroke="#000000" points="690.5,-839.5 690.5,-858.5 789.5,-858.5 789.5,-839.5 690.5,-839.5"/>
-<text text-anchor="middle" x="740" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/relay/base.h</text>
+<!-- Node51 -->
+<g id="node36" class="node">
+<title>Node51</title>
+<g id="a_node36"><a xlink:href="relay_2base_8h.html" target="_top" xlink:title="Base classes for the Relay IR. ">
+<polygon fill="#ffffff" stroke="#000000" points="3650.5,-839.5 3650.5,-858.5 3749.5,-858.5 3749.5,-839.5 3650.5,-839.5"/>
+<text text-anchor="middle" x="3700" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/relay/base.h</text>
</a>
</g>
</g>
-<!-- Node0->Node50 -->
-<g id="edge129" class="edge">
-<title>Node0->Node50</title>
-<path fill="none" stroke="#191970" d="M495.8443,-1007.4832C538.6376,-988.7804 611.506,-954.4412 668,-915 688.8819,-900.4213 710.0433,-880.2324 723.9691,-866.0337"/>
-<polygon fill="#191970" stroke="#191970" points="726.4893,-868.4624 730.9135,-858.8354 721.4515,-863.6022 726.4893,-868.4624"/>
+<!-- Node0->Node51 -->
+<g id="edge133" class="edge">
+<title>Node0->Node51</title>
+<path fill="none" stroke="#191970" d="M2903.0115,-1009.601C3064.7336,-977.0125 3487.8339,-891.7536 3642.3978,-860.6074"/>
+<polygon fill="#191970" stroke="#191970" points="3643.5088,-863.954 3652.6203,-858.5475 3642.1259,-857.0919 3643.5088,-863.954"/>
</g>
-<!-- Node54 -->
-<g id="node39" class="node">
-<title>Node54</title>
-<g id="a_node39"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
-<polygon fill="#ffffff" stroke="#000000" points="828.5,-951.5 828.5,-970.5 925.5,-970.5 925.5,-951.5 828.5,-951.5"/>
-<text text-anchor="middle" x="877" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/relay/expr.h</text>
+<!-- Node55 -->
+<g id="node40" class="node">
+<title>Node55</title>
+<g id="a_node40"><a xlink:href="relay_2expr_8h.html" target="_top" xlink:title="Relay expression language. ">
+<polygon fill="#ffffff" stroke="#000000" points="1905.5,-951.5 1905.5,-970.5 2002.5,-970.5 2002.5,-951.5 1905.5,-951.5"/>
+<text text-anchor="middle" x="1954" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/relay/expr.h</text>
</a>
</g>
</g>
-<!-- Node0->Node54 -->
-<g id="edge160" class="edge">
-<title>Node0->Node54</title>
-<path fill="none" stroke="#191970" d="M524.2424,-1013.0254C604.4847,-1001.1911 740.6399,-981.1107 818.2345,-969.6669"/>
-<polygon fill="#191970" stroke="#191970" points="818.9392,-973.1009 828.3215,-968.1792 817.9178,-966.1758 818.9392,-973.1009"/>
+<!-- Node0->Node55 -->
+<g id="edge164" class="edge">
+<title>Node0->Node55</title>
+<path fill="none" stroke="#191970" d="M2774.997,-1018.0523C2609.974,-1006.5846 2171.863,-976.1396 2012.7758,-965.0844"/>
+<polygon fill="#191970" stroke="#191970" points="2012.925,-961.5864 2002.7064,-964.3847 2012.4397,-968.5696 2012.925,-961.5864"/>
</g>
<!-- Node2 -->
<g id="node3" class="node">
<title>Node2</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="598.5,-604.5 598.5,-623.5 693.5,-623.5 693.5,-604.5 598.5,-604.5"/>
-<text text-anchor="middle" x="646" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/common.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1450.5,-604.5 1450.5,-623.5 1545.5,-623.5 1545.5,-604.5 1450.5,-604.5"/>
+<text text-anchor="middle" x="1498" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/common.h</text>
</g>
<!-- Node1->Node2 -->
<g id="edge2" class="edge">
<title>Node1->Node2</title>
-<path fill="none" stroke="#191970" d="M771.8703,-660.3733C746.9232,-651.1822 709.1408,-637.2624 681.4794,-627.0713"/>
-<polygon fill="#191970" stroke="#191970" points="682.3822,-623.674 671.7888,-623.5011 679.9622,-630.2424 682.3822,-623.674"/>
+<path fill="none" stroke="#191970" d="M1532.6842,-660.2455C1526.7821,-652.3761 1518.3258,-641.101 1511.2406,-631.6542"/>
+<polygon fill="#191970" stroke="#191970" points="1514.0321,-629.5427 1505.232,-623.6427 1508.432,-633.7427 1514.0321,-629.5427"/>
</g>
<!-- Node3 -->
<g id="node4" class="node">
<title>Node3</title>
<g id="a_node4"><a xlink:href="ir_2expr_8h.html" target="_top" xlink:title="Base expr nodes in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="1421.5,-604.5 1421.5,-623.5 1500.5,-623.5 1500.5,-604.5 1421.5,-604.5"/>
-<text text-anchor="middle" x="1461" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2132.5,-604.5 2132.5,-623.5 2211.5,-623.5 2211.5,-604.5 2132.5,-604.5"/>
+<text text-anchor="middle" x="2172" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/expr.h</text>
</a>
</g>
</g>
<!-- Node1->Node3 -->
<g id="edge3" class="edge">
<title>Node1->Node3</title>
-<path fill="none" stroke="#191970" d="M838.4756,-666.5812C954.012,-656.8225 1285.123,-628.8554 1411.3242,-618.1958"/>
-<polygon fill="#191970" stroke="#191970" points="1411.8026,-621.668 1421.4725,-617.3387 1411.2134,-614.6928 1411.8026,-621.668"/>
+<path fill="none" stroke="#191970" d="M1580.0139,-666.4545C1690.6177,-656.6541 2000.3274,-629.2115 2122.0102,-618.4295"/>
+<polygon fill="#191970" stroke="#191970" points="2122.509,-621.8991 2132.161,-617.53 2121.8911,-614.9264 2122.509,-621.8991"/>
</g>
<!-- Node7 -->
<g id="node8" class="node">
<title>Node7</title>
<g id="a_node8"><a xlink:href="structural__equal_8h.html" target="_top" xlink:title="Structural equality comparison. ">
-<polygon fill="#ffffff" stroke="#000000" points="1490.5,-313.5 1490.5,-343.5 1603.5,-343.5 1603.5,-313.5 1490.5,-313.5"/>
-<text text-anchor="start" x="1498.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1547" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2474.5,-313.5 2474.5,-343.5 2587.5,-343.5 2587.5,-313.5 2474.5,-313.5"/>
+<text text-anchor="start" x="2482.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="2531" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_equal.h</text>
</a>
</g>
</g>
<!-- Node1->Node7 -->
-<g id="edge120" class="edge">
+<g id="edge124" class="edge">
<title>Node1->Node7</title>
-<path fill="none" stroke="#191970" d="M819.2096,-660.3297C921.6061,-613.6429 1365.5793,-411.2172 1504.9673,-347.6644"/>
-<polygon fill="#191970" stroke="#191970" points="1506.4383,-350.8404 1514.0852,-343.5072 1503.5343,-344.4712 1506.4383,-350.8404"/>
+<path fill="none" stroke="#191970" d="M1578.0173,-660.4976C1611.0868,-651.9259 1660.1373,-638.4727 1702,-624 1848.1799,-573.4628 1878.7345,-545.1084 2024,-492 2183.1865,-433.8022 2374.2842,-375.1389 2470.0244,-346.5018"/>
+<polygon fill="#191970" stroke="#191970" points="2471.2443,-349.7903 2479.825,-343.5756 2469.2416,-343.0829 2471.2443,-349.7903"/>
</g>
<!-- Node1->Node16 -->
-<g id="edge124" class="edge">
+<g id="edge128" class="edge">
<title>Node1->Node16</title>
-<path fill="none" stroke="#191970" d="M757.7993,-665.5656C704.5186,-658.9601 614.2885,-645.0149 589,-624 580.949,-617.3095 445.5098,-286.8622 442,-277 429.1967,-241.0236 418,-232.6867 418,-194.5 418,-194.5 418,-194.5 418,-133 418,-101.7875 419.4067,-88.5352 442,-67 461.3711,-48.5361 533.5905,-30.9348 576.1246,-21.8647"/>
-<polygon fill="#191970" stroke="#191970" points="576.923,-25.2735 585.994,-19.7995 575.4891,-18.4219 576.923,-25.2735"/>
+<path fill="none" stroke="#191970" d="M1580.2587,-667.5607C1685.466,-661.1244 1977.2785,-642.8768 2220,-624 2532.6886,-599.6817 3584,-575.1328 3584,-261.5 3584,-261.5 3584,-261.5 3584,-133 3584,-96.7454 3567.4195,-57.1181 3556.163,-34.3929"/>
+<polygon fill="#191970" stroke="#191970" points="3559.1292,-32.5073 3551.4445,-25.2137 3552.9035,-35.7076 3559.1292,-32.5073"/>
</g>
<!-- Node17 -->
<g id="node14" class="node">
<title>Node17</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1691.5,-6 1691.5,-25 1760.5,-25 1760.5,-6 1691.5,-6"/>
-<text text-anchor="middle" x="1726" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="2191.5,-6 2191.5,-25 2260.5,-25 2260.5,-6 2191.5,-6"/>
+<text text-anchor="middle" x="2226" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">type_traits</text>
</g>
<!-- Node1->Node17 -->
-<g id="edge125" class="edge">
+<g id="edge129" class="edge">
<title>Node1->Node17</title>
-<path fill="none" stroke="#191970" d="M788.9338,-660.2197C781.3067,-651.4196 770.7512,-637.7881 765,-624 745.5634,-577.4022 750.2372,-562.3109 746,-512 736.0666,-394.0542 698.8914,-347.9649 759,-246 784.8703,-202.1151 807.3225,-203.4761 852,-179 911.1356,-146.6032 928.8959,-143.91 993,-123 1087.6938,-92.112 1111.9348,-84.4415 1210,-67 1382.6547,-36.2923 1591.3066,-22.4989 1681.2171,-17.6582"/>
-<polygon fill="#191970" stroke="#191970" points="1681.527,-21.1468 1691.3288,-17.1249 1681.1583,-14.1566 1681.527,-21.1468"/>
+<path fill="none" stroke="#191970" d="M1499.9824,-667.783C1319.0165,-655.8487 591.2171,-586.4102 714,-246 761.3526,-114.7169 835.0252,-93.7475 972,-67 1092.4639,-43.4766 1972.3251,-21.4658 2181.4788,-16.5281"/>
+<polygon fill="#191970" stroke="#191970" points="2181.5762,-20.0269 2191.4912,-16.2927 2181.4116,-13.0288 2181.5762,-20.0269"/>
</g>
<!-- Node18 -->
<g id="node15" class="node">
<title>Node18</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3617.5,-6 3617.5,-25 3662.5,-25 3662.5,-6 3617.5,-6"/>
-<text text-anchor="middle" x="3640" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="493.5,-6 493.5,-25 538.5,-25 538.5,-6 493.5,-6"/>
+<text text-anchor="middle" x="516" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">utility</text>
</g>
<!-- Node1->Node18 -->
-<g id="edge127" class="edge">
+<g id="edge131" class="edge">
<title>Node1->Node18</title>
-<path fill="none" stroke="#191970" d="M838.2299,-668.6405C1070.7208,-660.6458 2244.3891,-618.3715 2602,-568 2824.4979,-536.6599 2877.692,-513.138 3095,-456 3251.7781,-414.7774 3776,-356.607 3776,-194.5 3776,-194.5 3776,-194.5 3776,-133 3776,-78.3746 3712.3996,-43.5114 3672.185,-26.9273"/>
-<polygon fill="#191970" stroke="#191970" points="3673.3496,-23.6241 3662.7633,-23.197 3670.7727,-30.1325 3673.3496,-23.6241"/>
+<path fill="none" stroke="#191970" d="M1499.9683,-669.0554C1371.0599,-665.7488 967.7952,-653.2705 841,-624 776.9064,-609.2041 762.1731,-598.705 704,-568 652.0819,-540.5965 307.3347,-315.4822 263,-277 226.0257,-244.9066 190,-243.46 190,-194.5 190,-194.5 190,-194.5 190,-133 190,-71.1145 400.5436,-32.8103 483.2278,-20.1538"/>
+<polygon fill="#191970" stroke="#191970" points="483.9651,-23.5824 493.3351,-18.6374 482.9265,-16.6599 483.9651,-23.5824"/>
</g>
<!-- Node20 -->
<g id="node16" class="node">
<title>Node20</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1347.5,-123.5 1347.5,-142.5 1394.5,-142.5 1394.5,-123.5 1347.5,-123.5"/>
-<text text-anchor="middle" x="1371" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1738.5,-123.5 1738.5,-142.5 1785.5,-142.5 1785.5,-123.5 1738.5,-123.5"/>
+<text text-anchor="middle" x="1762" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">vector</text>
</g>
<!-- Node1->Node20 -->
-<g id="edge128" class="edge">
+<g id="edge132" class="edge">
<title>Node1->Node20</title>
-<path fill="none" stroke="#191970" d="M796.1031,-660.3048C786.4714,-610.4672 743.9403,-382.7527 757,-313 762.8782,-281.6042 758.6819,-266.7094 783,-246 825.973,-209.404 1219.2773,-153.5666 1337.5262,-137.4795"/>
-<polygon fill="#191970" stroke="#191970" points="1338.0244,-140.9441 1347.464,-136.1332 1337.0846,-134.0075 1338.0244,-140.9441"/>
-</g>
-<!-- Node29 -->
-<g id="node21" class="node">
-<title>Node29</title>
-<g id="a_node21"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
-<polygon fill="#ffffff" stroke="#000000" points="1320.5,-313.5 1320.5,-343.5 1433.5,-343.5 1433.5,-313.5 1320.5,-313.5"/>
-<text text-anchor="start" x="1328.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
-<text text-anchor="middle" x="1377" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
-</a>
+<path fill="none" stroke="#191970" d="M1545.01,-660.2017C1569.4262,-612.1526 1677.3878,-396.2315 1742,-210 1748.6302,-190.8899 1754.2199,-168.4445 1757.7897,-152.7342"/>
+<polygon fill="#191970" stroke="#191970" points="1761.2824,-153.1482 1760.0181,-142.629 1754.4467,-151.6407 1761.2824,-153.1482"/>
</g>
+<!-- Node32 -->
+<g id="node22" class="node">
+<title>Node32</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="401.5,-123.5 401.5,-142.5 494.5,-142.5 494.5,-123.5 401.5,-123.5"/>
+<text text-anchor="middle" x="448" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
</g>
-<!-- Node1->Node29 -->
-<g id="edge121" class="edge">
-<title>Node1->Node29</title>
-<path fill="none" stroke="#191970" d="M810.9236,-660.3229C839.6038,-639.0094 911.0198,-586.8249 974,-548 1103.6477,-468.077 1264.3923,-385.1187 1337.4955,-348.2257"/>
-<polygon fill="#191970" stroke="#191970" points="1339.444,-351.1632 1346.8013,-343.5394 1336.2956,-344.9112 1339.444,-351.1632"/>
+<!-- Node1->Node32 -->
+<g id="edge130" class="edge">
+<title>Node1->Node32</title>
+<path fill="none" stroke="#191970" d="M1499.5252,-668.9139C1355.6115,-664.4375 870.2248,-643.9061 738,-568 566.5201,-469.5588 476.8868,-223.659 453.9779,-152.5477"/>
+<polygon fill="#191970" stroke="#191970" points="457.2141,-151.1716 450.8717,-142.6849 450.5374,-153.2744 457.2141,-151.1716"/>
</g>
-<!-- Node36 -->
+<!-- Node35 -->
<g id="node25" class="node">
-<title>Node36</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3311.5,-123.5 3311.5,-142.5 3404.5,-142.5 3404.5,-123.5 3311.5,-123.5"/>
-<text text-anchor="middle" x="3358" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_map</text>
-</g>
-<!-- Node1->Node36 -->
-<g id="edge126" class="edge">
-<title>Node1->Node36</title>
-<path fill="none" stroke="#191970" d="M838.0018,-665.7992C914.3919,-657.7662 1086.3188,-639.6346 1231,-624 1311.9048,-615.2572 1331.9837,-611.6406 1413,-604 1615.8403,-584.8702 1668.0075,-594.6297 1870,-568 2275.5845,-514.5297 2381.2667,-511.0491 2775,-400 3003.0555,-335.6789 3254.9036,-193.7422 3333.3287,-147.719"/>
-<polygon fill="#191970" stroke="#191970" points="3335.184,-150.6882 3342.0197,-142.5936 3331.6281,-144.6586 3335.184,-150.6882"/>
+<title>Node35</title>
+<g id="a_node25"><a xlink:href="structural__hash_8h.html" target="_top" xlink:title="tvm/node/structural\l_hash.h">
+<polygon fill="#ffffff" stroke="#000000" points="2699.5,-313.5 2699.5,-343.5 2812.5,-343.5 2812.5,-313.5 2699.5,-313.5"/>
+<text text-anchor="start" x="2707.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/structural</text>
+<text text-anchor="middle" x="2756" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_hash.h</text>
+</a>
</g>
-<!-- Node40 -->
-<g id="node26" class="node">
-<title>Node40</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1291.5,-185 1291.5,-204 1356.5,-204 1356.5,-185 1291.5,-185"/>
-<text text-anchor="middle" x="1324" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">functional</text>
</g>
-<!-- Node1->Node40 -->
-<g id="edge123" class="edge">
-<title>Node1->Node40</title>
-<path fill="none" stroke="#191970" d="M792.393,-660.4834C781.8226,-641.6141 760,-597.8343 760,-558 760,-558 760,-558 760,-446 760,-353.5716 746.14,-305.3454 817,-246 834.7359,-231.1461 1162.0152,-206.1805 1281.1181,-197.5465"/>
-<polygon fill="#191970" stroke="#191970" points="1281.5969,-201.0211 1291.3189,-196.8101 1281.0928,-194.0393 1281.5969,-201.0211"/>
+<!-- Node1->Node35 -->
+<g id="edge125" class="edge">
+<title>Node1->Node35</title>
+<path fill="none" stroke="#191970" d="M1580.3516,-661.3331C1621.5749,-652.3777 1687.3868,-637.8006 1744,-624 2064.0664,-545.9776 2142.1362,-518.7999 2461,-436 2523.1841,-419.8525 2541.7821,-424.9167 2601,-400 2616.8077,-393.3487 2618.7263,-387.7999 2634,-380 2657.4695,-368.0147 2684.3809,-356.4374 2706.9467,-347.3057"/>
+<polygon fill="#191970" stroke="#191970" points="2708.3473,-350.515 2716.3289,-343.5477 2705.7445,-344.0169 2708.3473,-350.515"/>
</g>
<!-- Node41 -->
<g id="node27" class="node">
<title>Node41</title>
-<g id="a_node27"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type-erased function used across TVM API. ">
-<polygon fill="#ffffff" stroke="#000000" points="2172,-313.5 2172,-343.5 2288,-343.5 2288,-313.5 2172,-313.5"/>
-<text text-anchor="start" x="2180" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
-<text text-anchor="middle" x="2230" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
-</a>
-</g>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1668.5,-185 1668.5,-204 1733.5,-204 1733.5,-185 1668.5,-185"/>
+<text text-anchor="middle" x="1701" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">functional</text>
</g>
<!-- Node1->Node41 -->
-<g id="edge122" class="edge">
+<g id="edge127" class="edge">
<title>Node1->Node41</title>
-<path fill="none" stroke="#191970" d="M838.0907,-663.9846C923.3102,-651.3669 1128.8483,-621.8303 1302,-604 1514.3663,-582.1315 1571.0328,-606.6192 1781,-568 1952.9096,-536.3807 2021.2928,-564.9213 2158,-456 2191.644,-429.1942 2212.2692,-382.117 2222.3866,-353.28"/>
-<polygon fill="#191970" stroke="#191970" points="2225.7874,-354.1463 2225.6432,-343.5525 2219.1495,-351.924 2225.7874,-354.1463"/>
+<path fill="none" stroke="#191970" d="M1499.782,-662.1875C1478.4123,-655.7706 1453.9463,-644.2911 1441,-624 1436.2189,-616.5064 1438.0106,-612.3711 1441,-604 1480.4065,-493.6528 1537.922,-493.9067 1608,-400 1625.989,-375.8942 1630.1234,-369.5465 1646,-344 1664.0702,-314.9239 1671.9541,-309.0444 1684,-277 1691.6929,-256.5355 1696.1983,-231.8373 1698.6156,-214.8294"/>
+<polygon fill="#191970" stroke="#191970" points="1702.1492,-214.7979 1699.9691,-204.4298 1695.2077,-213.8945 1702.1492,-214.7979"/>
+</g>
+<!-- Node42 -->
+<g id="node28" class="node">
+<title>Node42</title>
+<g id="a_node28"><a xlink:href="packed__func_8h.html" target="_top" xlink:title="Type-erased function used across TVM API. ">
+<polygon fill="#ffffff" stroke="#000000" points="1164,-313.5 1164,-343.5 1280,-343.5 1280,-313.5 1164,-313.5"/>
+<text text-anchor="start" x="1172" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/packed</text>
+<text text-anchor="middle" x="1222" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_func.h</text>
+</a>
+</g>
+</g>
+<!-- Node1->Node42 -->
+<g id="edge126" class="edge">
+<title>Node1->Node42</title>
+<path fill="none" stroke="#191970" d="M1499.9299,-663.3239C1471.8346,-657.014 1434.68,-645.2316 1408,-624 1312.6648,-548.1335 1252.376,-409.246 1230.8681,-353.0603"/>
+<polygon fill="#191970" stroke="#191970" points="1234.0951,-351.6974 1227.3037,-343.5655 1227.5416,-354.1576 1234.0951,-351.6974"/>
</g>
<!-- Node4 -->
<g id="node5" class="node">
<title>Node4</title>
<g id="a_node5"><a xlink:href="ir_2span_8h.html" target="_top" xlink:title="Span information for debugging purposes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1489.5,-492.5 1489.5,-511.5 1570.5,-511.5 1570.5,-492.5 1489.5,-492.5"/>
-<text text-anchor="middle" x="1530" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2397.5,-492.5 2397.5,-511.5 2478.5,-511.5 2478.5,-492.5 2397.5,-492.5"/>
+<text text-anchor="middle" x="2438" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/span.h</text>
</a>
</g>
</g>
<!-- Node3->Node4 -->
<g id="edge4" class="edge">
<title>Node3->Node4</title>
-<path fill="none" stroke="#191970" d="M1466.8829,-604.4509C1478.3913,-585.7707 1504.0488,-544.1238 1518.8638,-520.0761"/>
-<polygon fill="#191970" stroke="#191970" points="1521.8666,-521.8747 1524.132,-511.5249 1515.9068,-518.203 1521.8666,-521.8747"/>
+<path fill="none" stroke="#191970" d="M2211.5197,-605.308C2255.1429,-595.4056 2322.3281,-579.1552 2346,-568 2373.8117,-554.8939 2401.9809,-533.1664 2419.6893,-518.2443"/>
+<polygon fill="#191970" stroke="#191970" points="2422.194,-520.7066 2427.4948,-511.5332 2417.6303,-515.3987 2422.194,-520.7066"/>
</g>
<!-- Node5 -->
<g id="node6" class="node">
<title>Node5</title>
<g id="a_node6"><a xlink:href="node_8h.html" target="_top" xlink:title="Definitions and helper macros for IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1480.5,-436.5 1480.5,-455.5 1579.5,-455.5 1579.5,-436.5 1480.5,-436.5"/>
-<text text-anchor="middle" x="1530" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2469.5,-436.5 2469.5,-455.5 2568.5,-455.5 2568.5,-436.5 2469.5,-436.5"/>
+<text text-anchor="middle" x="2519" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/node.h</text>
</a>
</g>
</g>
<!-- Node3->Node5 -->
-<g id="edge113" class="edge">
+<g id="edge117" class="edge">
<title>Node3->Node5</title>
-<path fill="none" stroke="#191970" d="M1460.5537,-604.4784C1459.959,-583.0358 1460.808,-529.881 1481,-492 1487.2827,-480.2135 1497.7438,-469.7704 1507.3904,-461.8259"/>
-<polygon fill="#191970" stroke="#191970" points="1509.7719,-464.4084 1515.5326,-455.5165 1505.4842,-458.8751 1509.7719,-464.4084"/>
+<path fill="none" stroke="#191970" d="M2186.71,-604.4785C2220.9689,-582.5776 2309.167,-527.7659 2388,-492 2417.0991,-478.7979 2451.1888,-466.9339 2477.2977,-458.5623"/>
+<polygon fill="#191970" stroke="#191970" points="2478.4075,-461.8822 2486.8864,-455.5293 2476.2964,-455.2082 2478.4075,-461.8822"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="object_8h.html" target="_top" xlink:title="A managed object in the TVM runtime. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2268.5,-67.5 2268.5,-86.5 2387.5,-86.5 2387.5,-67.5 2268.5,-67.5"/>
-<text text-anchor="middle" x="2328" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="2166.5,-67.5 2166.5,-86.5 2285.5,-86.5 2285.5,-67.5 2166.5,-67.5"/>
+<text text-anchor="middle" x="2226" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/object.h</text>
</a>
</g>
</g>
<!-- Node3->Node10 -->
-<g id="edge115" class="edge">
+<g id="edge119" class="edge">
<title>Node3->Node10</title>
-<path fill="none" stroke="#191970" d="M1500.5314,-612.286C1561.8381,-608.7512 1682.9898,-598.2471 1781,-568 1952.6956,-515.0128 2144,-569.6859 2144,-390 2144,-390 2144,-390 2144,-261.5 2144,-216.0383 2257.4195,-128.2345 2306.1631,-92.5987"/>
-<polygon fill="#191970" stroke="#191970" points="2308.43,-95.2783 2314.47,-86.5738 2304.3201,-89.6118 2308.43,-95.2783"/>
+<path fill="none" stroke="#191970" d="M2175.1293,-604.4373C2188.5381,-562.5062 2240.2728,-390.5476 2236,-246 2234.399,-191.8375 2229.9177,-128.0386 2227.5349,-96.5726"/>
+<polygon fill="#191970" stroke="#191970" points="2231.0184,-96.2223 2226.7613,-86.5204 2224.0391,-96.7596 2231.0184,-96.2223"/>
</g>
<!-- Node3->Node16 -->
-<g id="edge118" class="edge">
+<g id="edge122" class="edge">
<title>Node3->Node16</title>
-<path fill="none" stroke="#191970" d="M1421.4002,-605.2135C1263.0628,-568.959 684,-425.1821 684,-261.5 684,-261.5 684,-261.5 684,-133 684,-91.4563 650.0901,-52.986 627.5719,-32.0193"/>
-<polygon fill="#191970" stroke="#191970" points="629.6556,-29.1865 619.875,-25.1133 624.9808,-34.3968 629.6556,-29.1865"/>
+<path fill="none" stroke="#191970" d="M2211.6394,-612.5943C2436.921,-603.5608 3546,-544.7068 3546,-261.5 3546,-261.5 3546,-261.5 3546,-133 3546,-98.6399 3546,-58.628 3546,-35.2764"/>
+<polygon fill="#191970" stroke="#191970" points="3549.5001,-35.2489 3546,-25.2489 3542.5001,-35.249 3549.5001,-35.2489"/>
</g>
<!-- Node3->Node17 -->
-<g id="edge119" class="edge">
+<g id="edge123" class="edge">
<title>Node3->Node17</title>
-<path fill="none" stroke="#191970" d="M1430.5714,-604.4555C1404.1397,-595.8573 1365.0239,-582.3886 1332,-568 1215.367,-517.1825 1196.6998,-481.7825 1078,-436 1019.2617,-413.3447 996.4946,-429.7288 941,-400 863.5404,-358.5044 766.3621,-317.817 817,-246 919.8069,-100.1947 1512.7993,-35.1022 1681.3347,-19.3877"/>
-<polygon fill="#191970" stroke="#191970" points="1681.7171,-22.8674 1691.3541,-18.4653 1681.0753,-15.8969 1681.7171,-22.8674"/>
+<path fill="none" stroke="#191970" d="M2211.6478,-611.3928C2379.1936,-599.8581 3028.7602,-549.7899 3208,-456 3269.8189,-423.6523 3296.3184,-410.3164 3318,-344 3382.8208,-145.7359 3309.2615,-275.2781 2942,-123 2868.5168,-92.5316 2849.8653,-83.2817 2772,-67 2588.7095,-28.6739 2364.7942,-18.8401 2270.8514,-16.3406"/>
+<polygon fill="#191970" stroke="#191970" points="2270.6633,-12.8349 2260.5787,-16.0831 2270.4878,-19.8327 2270.6633,-12.8349"/>
</g>
-<!-- Node22 -->
+<!-- Node28 -->
<g id="node18" class="node">
-<title>Node22</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="3423,-123.5 3423,-142.5 3487,-142.5 3487,-123.5 3423,-123.5"/>
-<text text-anchor="middle" x="3455" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
+<title>Node28</title>
+<g id="a_node18"><a xlink:href="string_8h.html" target="_top" xlink:title="Runtime String container types. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1030,-179.5 1030,-209.5 1156,-209.5 1156,-179.5 1030,-179.5"/>
+<text text-anchor="start" x="1038" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1093" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
+</a>
</g>
-<!-- Node3->Node22 -->
-<g id="edge116" class="edge">
-<title>Node3->Node22</title>
-<path fill="none" stroke="#191970" d="M1500.7252,-613.3324C1669.5004,-610.3366 2327.7989,-596.9927 2533,-568 2637.6015,-553.2209 2663.4112,-544.2769 2764,-512 3030.0101,-426.6428 3125.4859,-447.2314 3347,-277 3392.8593,-241.7576 3428.8583,-182.208 3445.2848,-151.9179"/>
-<polygon fill="#191970" stroke="#191970" points="3448.5029,-153.3197 3450.0912,-142.8446 3442.3172,-150.043 3448.5029,-153.3197"/>
</g>
-<!-- Node33 -->
-<g id="node23" class="node">
-<title>Node33</title>
-<g id="a_node23"><a xlink:href="string_8h.html" target="_top" xlink:title="Runtime String container types. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2856,-179.5 2856,-209.5 2982,-209.5 2982,-179.5 2856,-179.5"/>
-<text text-anchor="start" x="2864" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="2919" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/string.h</text>
-</a>
+<!-- Node3->Node28 -->
+<g id="edge118" class="edge">
+<title>Node3->Node28</title>
+<path fill="none" stroke="#191970" d="M2132.3052,-613.0687C1935.5208,-608.3657 1073.2237,-586.7159 1053,-568 953.0927,-475.5414 1042.701,-285.546 1079.1957,-218.5395"/>
+<polygon fill="#191970" stroke="#191970" points="1082.3795,-220.0151 1084.1659,-209.572 1076.257,-216.6217 1082.3795,-220.0151"/>
</g>
+<!-- Node26 -->
+<g id="node20" class="node">
+<title>Node26</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1494,-123.5 1494,-142.5 1558,-142.5 1558,-123.5 1494,-123.5"/>
+<text text-anchor="middle" x="1526" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">algorithm</text>
</g>
-<!-- Node3->Node33 -->
-<g id="edge114" class="edge">
-<title>Node3->Node33</title>
-<path fill="none" stroke="#191970" d="M1500.7156,-611.1773C1574.068,-605.6001 1735.5809,-591.6187 1870,-568 2094.5483,-528.5447 2677.2856,-366.0907 2724,-344 2793.6187,-311.0781 2862.02,-250.244 2896.3005,-217.2359"/>
-<polygon fill="#191970" stroke="#191970" points="2899.1491,-219.3472 2903.8704,-209.8624 2894.2648,-214.3328 2899.1491,-219.3472"/>
+<!-- Node3->Node26 -->
+<g id="edge120" class="edge">
+<title>Node3->Node26</title>
+<path fill="none" stroke="#191970" d="M2161.0746,-604.4083C2141.8526,-586.4089 2104,-545.4481 2104,-502 2104,-502 2104,-502 2104,-390 2104,-280.1071 1999.0152,-299.4558 1903,-246 1835.2832,-208.2992 1815.9947,-202.0587 1742,-179 1682.8655,-160.5721 1612.3482,-147.0837 1568.3632,-139.6392"/>
+<polygon fill="#191970" stroke="#191970" points="1568.7547,-136.1562 1558.3156,-137.9658 1567.6047,-143.0611 1568.7547,-136.1562"/>
</g>
-<!-- Node45 -->
-<g id="node30" class="node">
-<title>Node45</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="826,-252 826,-271 870,-271 870,-252 826,-252"/>
-<text text-anchor="middle" x="848" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
+<!-- Node46 -->
+<g id="node31" class="node">
+<title>Node46</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1850,-252 1850,-271 1894,-271 1894,-252 1850,-252"/>
+<text text-anchor="middle" x="1872" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">limits</text>
</g>
-<!-- Node3->Node45 -->
-<g id="edge117" class="edge">
-<title>Node3->Node45</title>
-<path fill="none" stroke="#191970" d="M1440.6597,-604.4643C1405.955,-587.8076 1333.6589,-551.4101 1278,-512 1236.3705,-482.5236 1238.0693,-457.8974 1192,-436 1103.3079,-393.8434 1060.2669,-446.9199 974,-400 920.6612,-370.9895 878.0803,-310.5811 858.9541,-280.0364"/>
-<polygon fill="#191970" stroke="#191970" points="861.7844,-277.9556 853.5845,-271.2464 855.8107,-281.6047 861.7844,-277.9556"/>
+<!-- Node3->Node46 -->
+<g id="edge121" class="edge">
+<title>Node3->Node46</title>
+<path fill="none" stroke="#191970" d="M2138.9635,-604.4779C2096.4498,-589.958 2028,-557.9003 2028,-502 2028,-502 2028,-502 2028,-390 2028,-356.7503 1942.5027,-302.3051 1898.0972,-276.2698"/>
+<polygon fill="#191970" stroke="#191970" points="1899.6973,-273.1518 1889.2908,-271.1632 1896.1858,-279.2074 1899.6973,-273.1518"/>
</g>
-<!-- Node49 -->
-<g id="node34" class="node">
-<title>Node49</title>
-<g id="a_node34"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
-<polygon fill="#ffffff" stroke="#000000" points="2444,-548.5 2444,-567.5 2524,-567.5 2524,-548.5 2444,-548.5"/>
-<text text-anchor="middle" x="2484" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
+<!-- Node50 -->
+<g id="node35" class="node">
+<title>Node50</title>
+<g id="a_node35"><a xlink:href="ir_2type_8h.html" target="_top" xlink:title="IR/AST nodes for the unified type system in TVM. ">
+<polygon fill="#ffffff" stroke="#000000" points="2398,-548.5 2398,-567.5 2478,-567.5 2478,-548.5 2398,-548.5"/>
+<text text-anchor="middle" x="2438" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type.h</text>
</a>
</g>
</g>
-<!-- Node3->Node49 -->
-<g id="edge106" class="edge">
-<title>Node3->Node49</title>
-<path fill="none" stroke="#191970" d="M1500.7152,-605.9759C1505.5131,-605.2049 1510.357,-604.5185 1515,-604 1919.4669,-558.8299 2025.5331,-613.1701 2430,-568 2431.2792,-567.8571 2432.5736,-567.7015 2433.8782,-567.5349"/>
-<polygon fill="#191970" stroke="#191970" points="2434.5956,-570.9677 2443.991,-566.0712 2433.5928,-564.0399 2434.5956,-570.9677"/>
+<!-- Node3->Node50 -->
+<g id="edge110" class="edge">
+<title>Node3->Node50</title>
+<path fill="none" stroke="#191970" d="M2211.5357,-605.6767C2258.4809,-595.7935 2336.8404,-579.2968 2387.9666,-568.5333"/>
+<polygon fill="#191970" stroke="#191970" points="2388.7469,-571.9459 2397.8113,-566.4608 2387.3048,-565.096 2388.7469,-571.9459"/>
</g>
<!-- Node4->Node5 -->
<g id="edge5" class="edge">
<title>Node4->Node5</title>
-<path fill="none" stroke="#191970" d="M1530,-492.2455C1530,-484.9382 1530,-474.6944 1530,-465.7046"/>
-<polygon fill="#191970" stroke="#191970" points="1533.5001,-465.6426 1530,-455.6427 1526.5001,-465.6427 1533.5001,-465.6426"/>
+<path fill="none" stroke="#191970" d="M2452.1091,-492.2455C2464.4209,-483.7337 2482.4958,-471.2375 2496.7538,-461.3801"/>
+<polygon fill="#191970" stroke="#191970" points="2498.8174,-464.2085 2505.0526,-455.6427 2494.8366,-458.4506 2498.8174,-464.2085"/>
</g>
<!-- Node4->Node10 -->
-<g id="edge104" class="edge">
+<g id="edge108" class="edge">
<title>Node4->Node10</title>
-<path fill="none" stroke="#191970" d="M1570.5955,-498.169C1734.8412,-482.275 2349.8656,-418.8421 2529,-344 2575.3421,-324.6383 2587.7638,-315.5136 2620,-277 2664.1672,-224.2319 2688.1145,-167.9365 2636,-123 2596.8377,-89.2316 2462.2574,-94.4487 2397.623,-87.4583"/>
-<polygon fill="#191970" stroke="#191970" points="2397.8697,-83.9615 2387.5073,-86.1685 2396.9842,-90.9053 2397.8697,-83.9615"/>
+<path fill="none" stroke="#191970" d="M2418.0622,-492.3628C2387.3566,-475.9628 2332,-439.5285 2332,-390 2332,-390 2332,-390 2332,-328.5 2332,-234.066 2327.5007,-203.4205 2278,-123 2270.6947,-111.1316 2259.3806,-100.6003 2249.1692,-92.6194"/>
+<polygon fill="#191970" stroke="#191970" points="2251.0823,-89.681 2240.9632,-86.5419 2246.9162,-95.3062 2251.0823,-89.681"/>
</g>
<!-- Node4->Node16 -->
-<g id="edge105" class="edge">
+<g id="edge109" class="edge">
<title>Node4->Node16</title>
-<path fill="none" stroke="#191970" d="M1496.7578,-492.407C1447.2604,-478.4015 1351.0915,-452.2596 1268,-436 1155.2413,-413.935 1111.0559,-458.2179 1012,-400 851.988,-305.9565 910.5345,-175.5696 760,-67 723.4996,-40.6749 672.5499,-27.0676 639.9141,-20.6093"/>
-<polygon fill="#191970" stroke="#191970" points="640.476,-17.1538 630.0031,-18.7566 639.1897,-24.0346 640.476,-17.1538"/>
+<path fill="none" stroke="#191970" d="M2478.6083,-500.2483C2624.2172,-493.4661 3118.9976,-465.9576 3261,-400 3334.0218,-366.0827 3351.5214,-345.3969 3394,-277 3445.343,-194.3301 3395.6393,-143.3348 3456,-67 3470.9969,-48.0343 3495.0303,-34.7937 3514.4904,-26.4912"/>
+<polygon fill="#191970" stroke="#191970" points="3515.9286,-29.6852 3523.8965,-22.7021 3513.313,-23.1922 3515.9286,-29.6852"/>
</g>
<!-- Node6 -->
<g id="node7" class="node">
<title>Node6</title>
<g id="a_node7"><a xlink:href="reflection_8h.html" target="_top" xlink:title="Reflection and serialization of compiler IR/AST nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1558.5,-380.5 1558.5,-399.5 1679.5,-399.5 1679.5,-380.5 1558.5,-380.5"/>
-<text text-anchor="middle" x="1619" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
+<polygon fill="#ffffff" stroke="#000000" points="2470.5,-380.5 2470.5,-399.5 2591.5,-399.5 2591.5,-380.5 2470.5,-380.5"/>
+<text text-anchor="middle" x="2531" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/reflection.h</text>
</a>
</g>
</g>
<!-- Node5->Node6 -->
<g id="edge6" class="edge">
<title>Node5->Node6</title>
-<path fill="none" stroke="#191970" d="M1545.5026,-436.2455C1559.158,-427.6534 1579.2657,-415.0014 1594.9989,-405.1018"/>
-<polygon fill="#191970" stroke="#191970" points="1597.0751,-407.9307 1603.675,-399.6427 1593.3471,-402.006 1597.0751,-407.9307"/>
+<path fill="none" stroke="#191970" d="M2521.0902,-436.2455C2522.6561,-428.9382 2524.8512,-418.6944 2526.7776,-409.7046"/>
+<polygon fill="#191970" stroke="#191970" points="2530.2607,-410.1541 2528.9337,-399.6427 2523.416,-408.6873 2530.2607,-410.1541"/>
</g>
<!-- Node5->Node7 -->
-<g id="edge95" class="edge">
+<g id="edge99" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="#191970" d="M1531.3912,-436.3845C1533.9724,-418.544 1539.5802,-379.7839 1543.3231,-353.9138"/>
-<polygon fill="#191970" stroke="#191970" points="1546.8307,-354.1125 1544.7988,-343.7143 1539.9029,-353.1101 1546.8307,-354.1125"/>
+<path fill="none" stroke="#191970" d="M2500.1179,-436.4487C2479.3843,-424.5627 2450.4629,-403.0074 2462,-380 2468.3005,-367.4355 2479.2818,-357.1529 2490.6552,-349.1711"/>
+<polygon fill="#191970" stroke="#191970" points="2492.8797,-351.8996 2499.3579,-343.5161 2489.0656,-346.03 2492.8797,-351.8996"/>
</g>
<!-- Node5->Node10 -->
-<g id="edge99" class="edge">
+<g id="edge103" class="edge">
<title>Node5->Node10</title>
-<path fill="none" stroke="#191970" d="M1579.648,-442.2292C1663.0221,-435.6101 1836.3458,-420.6205 1982,-400 2031.1998,-393.0347 2042.7634,-386.7005 2092,-380 2179.5558,-368.0847 2407.4449,-380.3163 2488,-344 2591.2755,-297.4408 2688.4934,-209.2108 2615,-123 2614.1115,-121.9578 2482.3147,-101.1547 2397.6544,-87.8851"/>
-<polygon fill="#191970" stroke="#191970" points="2397.9969,-84.3961 2387.5756,-86.306 2396.9133,-91.3117 2397.9969,-84.3961"/>
+<path fill="none" stroke="#191970" d="M2501.5692,-436.4757C2487.6581,-428.2202 2468.3541,-415.2246 2455,-400 2414.0902,-353.3601 2416.9623,-332.3805 2389,-277 2354.8604,-209.3851 2368.7546,-177.3529 2316,-123 2301.9758,-108.5509 2282.4412,-97.8128 2265.1539,-90.362"/>
+<polygon fill="#191970" stroke="#191970" points="2266.4116,-87.0951 2255.8304,-86.5582 2263.7673,-93.5765 2266.4116,-87.0951"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="c__runtime__api_8h.html" target="_top" xlink:title="tvm/runtime/c_runtime\l_api.h">
-<polygon fill="#ffffff" stroke="#ff0000" points="2667.5,-.5 2667.5,-30.5 2796.5,-30.5 2796.5,-.5 2667.5,-.5"/>
-<text text-anchor="start" x="2675.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
-<text text-anchor="middle" x="2732" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="2826.5,-.5 2826.5,-30.5 2955.5,-30.5 2955.5,-.5 2826.5,-.5"/>
+<text text-anchor="start" x="2834.5" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/c_runtime</text>
+<text text-anchor="middle" x="2891" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_api.h</text>
</a>
</g>
</g>
<!-- Node5->Node11 -->
-<g id="edge97" class="edge">
+<g id="edge101" class="edge">
<title>Node5->Node11</title>
-<path fill="none" stroke="#191970" d="M1579.5931,-441.9073C1672.2476,-434.1975 1877.9236,-416.783 2051,-400 2267.6731,-378.9895 2885.6689,-387.2827 3012,-210 3022.7852,-194.865 3006.0357,-129.239 3002,-123 2978.0303,-85.9445 2960.0542,-85.5288 2920,-67 2884.0643,-50.3764 2841.7071,-38.1907 2806.3042,-29.8585"/>
-<polygon fill="#191970" stroke="#191970" points="2807.044,-26.4374 2796.5143,-27.6102 2805.4771,-33.2598 2807.044,-26.4374"/>
+<path fill="none" stroke="#191970" d="M2568.5692,-441.1376C2625.9445,-434.7907 2722.9395,-421.8366 2804,-400 2871.1061,-381.9226 2892.2977,-382.7358 2950,-344 2983.9367,-321.2181 2997.9407,-314.9991 3013,-277 3048.3104,-187.9014 3028.9386,-137.4866 2964,-67 2953.1559,-55.2294 2939.1934,-44.5805 2926.3884,-36.0614"/>
+<polygon fill="#191970" stroke="#191970" points="2928.0655,-32.9787 2917.7608,-30.5162 2924.2807,-38.8673 2928.0655,-32.9787"/>
</g>
<!-- Node5->Node16 -->
-<g id="edge100" class="edge">
+<g id="edge104" class="edge">
<title>Node5->Node16</title>
-<path fill="none" stroke="#191970" d="M1480.2953,-438.9331C1418.2617,-429.7535 1315.9483,-413.327 1280,-400 1233.685,-382.8297 1222.5291,-374.9097 1184,-344 1054.8764,-240.4116 1080.2957,-146.3261 935,-67 884.5017,-39.4298 712.9668,-23.483 640.6147,-17.8427"/>
-<polygon fill="#191970" stroke="#191970" points="640.5232,-14.3256 630.2861,-17.0554 639.9911,-21.3054 640.5232,-14.3256"/>
+<path fill="none" stroke="#191970" d="M2568.7756,-440.7359C2634.585,-433.4226 2754.0167,-418.9242 2855,-400 2869.4563,-397.2909 3359.6507,-287.4505 3370,-277 3437.3685,-208.9727 3355.8483,-139.8244 3418,-67 3442.2359,-38.6023 3484.4065,-25.6937 3513.6901,-19.94"/>
+<polygon fill="#191970" stroke="#191970" points="3514.6093,-23.3313 3523.8387,-18.1284 3513.3792,-16.4402 3514.6093,-23.3313"/>
</g>
<!-- Node5->Node17 -->
-<g id="edge101" class="edge">
+<g id="edge105" class="edge">
<title>Node5->Node17</title>
-<path fill="none" stroke="#191970" d="M1481.6285,-436.4758C1444.0961,-428.4735 1391.0491,-415.8166 1346,-400 1289.7072,-380.2357 1269.3452,-382.7727 1224,-344 1160.6726,-289.8515 1088.5037,-248.1413 1135,-179 1197.2614,-86.4156 1553.772,-35.8333 1680.9417,-20.5407"/>
-<polygon fill="#191970" stroke="#191970" points="1681.5933,-23.988 1691.1114,-19.3345 1680.7688,-17.0368 1681.5933,-23.988"/>
+<path fill="none" stroke="#191970" d="M2568.6503,-439.0845C2710.162,-417.249 3098.3642,-341.3905 2987,-179 2904.6214,-58.876 2421.3413,-25.1219 2270.7701,-17.4572"/>
+<polygon fill="#191970" stroke="#191970" points="2270.6749,-13.9482 2260.514,-16.9495 2270.3288,-20.9397 2270.6749,-13.9482"/>
</g>
<!-- Node5->Node18 -->
-<g id="edge102" class="edge">
+<g id="edge106" class="edge">
<title>Node5->Node18</title>
-<path fill="none" stroke="#191970" d="M1579.882,-442.959C1694.3107,-435.9281 1984.5046,-417.7847 2227,-400 2305.7514,-394.2243 3583.5565,-328.977 3643,-277 3671.3253,-252.2325 3662,-232.1265 3662,-194.5 3662,-194.5 3662,-194.5 3662,-133 3662,-97.8839 3652.3892,-57.8574 3645.8721,-34.7521"/>
-<polygon fill="#191970" stroke="#191970" points="3649.2256,-33.7497 3643.059,-25.1344 3642.5071,-35.7149 3649.2256,-33.7497"/>
+<path fill="none" stroke="#191970" d="M2469.2158,-445.1811C2275.2668,-441.8145 1570.0571,-427.8839 1348,-400 1229.8532,-385.1642 1202.2256,-369.8916 1086,-344 957.3037,-315.3303 913.4208,-338.8941 797,-277 675.1085,-212.1974 566.4909,-81.0466 529.4759,-33.3531"/>
+<polygon fill="#191970" stroke="#191970" points="532.0923,-31.0134 523.2271,-25.2118 526.5394,-35.2756 532.0923,-31.0134"/>
</g>
<!-- Node5->Node20 -->
-<g id="edge103" class="edge">
+<g id="edge107" class="edge">
<title>Node5->Node20</title>
-<path fill="none" stroke="#191970" d="M1480.722,-436.4306C1430.3144,-423.9973 1353.5389,-397.2517 1311,-344 1264.5285,-285.8253 1243.2804,-242.5979 1282,-179 1294.0707,-159.1736 1317.7426,-147.5175 1337.6401,-140.9013"/>
-<polygon fill="#191970" stroke="#191970" points="1338.7733,-144.2151 1347.3277,-137.9644 1336.7424,-137.5162 1338.7733,-144.2151"/>
-</g>
-<!-- Node5->Node29 -->
-<g id="edge96" class="edge">
-<title>Node5->Node29</title>
-<path fill="none" stroke="#191970" d="M1517.4794,-436.3845C1492.9385,-417.5377 1437.9981,-375.345 1404.56,-349.6654"/>
-<polygon fill="#191970" stroke="#191970" points="1406.6165,-346.8317 1396.5536,-343.5167 1402.3529,-352.3834 1406.6165,-346.8317"/>
+<path fill="none" stroke="#191970" d="M2478.9669,-436.4257C2445.6546,-428.0501 2397.1952,-414.914 2356,-400 2266.7667,-367.6947 2248.4768,-349.7972 2161,-313 2120.9084,-296.1354 2106.7066,-300.3319 2070,-277 2016.4009,-242.9307 2022.3706,-208.2564 1966,-179 1898.0407,-143.729 1869.286,-162.7537 1795.4797,-144.3199"/>
+<polygon fill="#191970" stroke="#191970" points="1796.3189,-140.9216 1785.7559,-141.742 1794.525,-147.6878 1796.3189,-140.9216"/>
</g>
-<!-- Node25 -->
-<g id="node24" class="node">
-<title>Node25</title>
-<g id="a_node24"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2476.5,-123.5 2476.5,-142.5 2605.5,-142.5 2605.5,-123.5 2476.5,-123.5"/>
-<text text-anchor="middle" x="2541" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
+<!-- Node24 -->
+<g id="node19" class="node">
+<title>Node24</title>
+<g id="a_node19"><a xlink:href="runtime_2memory_8h.html" target="_top" xlink:title="Runtime memory management. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1158.5,-123.5 1158.5,-142.5 1287.5,-142.5 1287.5,-123.5 1158.5,-123.5"/>
+<text text-anchor="middle" x="1223" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/memory.h</text>
</a>
</g>
</g>
-<!-- Node5->Node25 -->
-<g id="edge98" class="edge">
-<title>Node5->Node25</title>
-<path fill="none" stroke="#191970" d="M1579.7895,-439.1886C1672.8308,-426.5804 1879.4589,-399.1475 2054,-380 2224.8327,-361.2593 2276.9504,-401.2272 2439,-344 2489.7934,-326.0625 2511.754,-322.8682 2540,-277 2563.8297,-238.3033 2554.3222,-181.9569 2546.806,-152.5365"/>
-<polygon fill="#191970" stroke="#191970" points="2550.1202,-151.388 2544.0965,-142.6722 2543.3702,-153.2421 2550.1202,-151.388"/>
+<!-- Node5->Node24 -->
+<g id="edge102" class="edge">
+<title>Node5->Node24</title>
+<path fill="none" stroke="#191970" d="M2469.4182,-444.05C2225.9348,-434.267 1166.4428,-389.2139 1114,-344 1080.6278,-315.228 1076.5075,-283.8896 1099,-246 1116.0563,-217.268 1139.7105,-231.8377 1165,-210 1184.6954,-192.9929 1201.8618,-168.2404 1212.3059,-151.4247"/>
+<polygon fill="#191970" stroke="#191970" points="1215.4843,-152.9313 1217.6467,-142.5595 1209.4883,-149.319 1215.4843,-152.9313"/>
</g>
-<!-- Node47 -->
-<g id="node32" class="node">
-<title>Node47</title>
-<g id="a_node32"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="1697.5,-380.5 1697.5,-399.5 1828.5,-399.5 1828.5,-380.5 1697.5,-380.5"/>
-<text text-anchor="middle" x="1763" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
+<!-- Node5->Node35 -->
+<g id="edge100" class="edge">
+<title>Node5->Node35</title>
+<path fill="none" stroke="#191970" d="M2546.4511,-436.3385C2570.0677,-427.7168 2604.8379,-414.2783 2634,-400 2665.4775,-384.588 2699.7879,-364.1298 2723.9824,-349.0464"/>
+<polygon fill="#191970" stroke="#191970" points="2726.1262,-351.8331 2732.7329,-343.5505 2722.4031,-345.9053 2726.1262,-351.8331"/>
+</g>
+<!-- Node48 -->
+<g id="node33" class="node">
+<title>Node48</title>
+<g id="a_node33"><a xlink:href="repr__printer_8h.html" target="_top" xlink:title="Printer class to print repr string of each AST/IR nodes. ">
+<polygon fill="#ffffff" stroke="#000000" points="3120.5,-380.5 3120.5,-399.5 3251.5,-399.5 3251.5,-380.5 3120.5,-380.5"/>
+<text text-anchor="middle" x="3186" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/repr_printer.h</text>
</a>
</g>
</g>
-<!-- Node5->Node47 -->
-<g id="edge92" class="edge">
-<title>Node5->Node47</title>
-<path fill="none" stroke="#191970" d="M1569.7894,-436.4369C1609.498,-426.8932 1670.6104,-412.2052 1713.4455,-401.9101"/>
-<polygon fill="#191970" stroke="#191970" points="1714.4695,-405.2637 1723.3747,-399.5237 1712.8337,-398.4575 1714.4695,-405.2637"/>
+<!-- Node5->Node48 -->
+<g id="edge96" class="edge">
+<title>Node5->Node48</title>
+<path fill="none" stroke="#191970" d="M2568.5449,-442.8924C2669.6911,-436.3773 2907.1798,-420.2056 3106,-400 3107.2924,-399.8687 3108.5963,-399.7337 3109.9091,-399.5955"/>
+<polygon fill="#191970" stroke="#191970" points="3110.5456,-403.0469 3120.1062,-398.4812 3109.7851,-396.0883 3110.5456,-403.0469"/>
</g>
<!-- Node6->Node7 -->
<g id="edge7" class="edge">
<title>Node6->Node7</title>
-<path fill="none" stroke="#191970" d="M1607.75,-380.3906C1598.2764,-372.2986 1584.3706,-360.4207 1572.2532,-350.0705"/>
-<polygon fill="#191970" stroke="#191970" points="1574.4902,-347.3782 1564.6132,-343.5446 1569.9437,-352.7008 1574.4902,-347.3782"/>
+<path fill="none" stroke="#191970" d="M2531,-380.3906C2531,-373.2234 2531,-363.0862 2531,-353.671"/>
+<polygon fill="#191970" stroke="#191970" points="2534.5001,-353.5446 2531,-343.5446 2527.5001,-353.5446 2534.5001,-353.5446"/>
</g>
<!-- Node6->Node10 -->
-<g id="edge59" class="edge">
+<g id="edge63" class="edge">
<title>Node6->Node10</title>
-<path fill="none" stroke="#191970" d="M1679.6689,-381.0198C1682.8217,-380.6512 1685.9465,-380.308 1689,-380 1756.3323,-373.2089 2247.816,-390.4832 2297,-344 2366.6832,-278.1431 2344.4817,-146.0126 2333,-96.4093"/>
-<polygon fill="#191970" stroke="#191970" points="2336.387,-95.5251 2330.6232,-86.6353 2329.5852,-97.1792 2336.387,-95.5251"/>
+<path fill="none" stroke="#191970" d="M2554.7859,-380.4178C2569.8669,-372.9442 2588.1462,-360.9629 2597,-344 2603.3752,-331.7859 2601.8118,-325.9102 2597,-313 2581.0271,-270.1438 2442.7744,-138.5376 2415,-123 2393.4459,-110.9422 2334.823,-97.6464 2288.5268,-88.4635"/>
+<polygon fill="#191970" stroke="#191970" points="2289.0406,-84.9977 2278.5544,-86.5106 2287.6953,-91.8672 2289.0406,-84.9977"/>
</g>
<!-- Node6->Node11 -->
-<g id="edge55" class="edge">
+<g id="edge59" class="edge">
<title>Node6->Node11</title>
-<path fill="none" stroke="#191970" d="M1679.6648,-380.9781C1682.8187,-380.6204 1685.9448,-380.2909 1689,-380 2021.2146,-348.3678 2108.6918,-391.5773 2439,-344 2563.9398,-326.0038 2912.9776,-309.2287 2991,-210 3055.0985,-128.4798 2892.4406,-63.4757 2796.463,-33.4965"/>
-<polygon fill="#191970" stroke="#191970" points="2797.4093,-30.1258 2786.8222,-30.5324 2795.3521,-36.8167 2797.4093,-30.1258"/>
+<path fill="none" stroke="#191970" d="M2591.6939,-386.0287C2672.4042,-379.9604 2810.1028,-366.6356 2855,-344 2892.3238,-325.1826 2971.1495,-248.6771 2987,-210 3013.3295,-145.753 2951.9298,-73.1545 2915.5166,-37.564"/>
+<polygon fill="#191970" stroke="#191970" points="2917.8163,-34.9206 2908.1662,-30.5474 2912.9829,-39.984 2917.8163,-34.9206"/>
</g>
<!-- Node6->Node16 -->
-<g id="edge89" class="edge">
+<g id="edge93" class="edge">
<title>Node6->Node16</title>
-<path fill="none" stroke="#191970" d="M1558.3614,-386.0401C1474.7733,-379.8553 1329.0253,-366.2502 1281,-344 1113.9517,-266.6063 1139.8579,-144.8033 973,-67 914.0045,-39.4913 718.2823,-23.1814 640.3887,-17.643"/>
-<polygon fill="#191970" stroke="#191970" points="640.4253,-14.1372 630.2061,-16.933 639.9383,-21.1202 640.4253,-14.1372"/>
+<path fill="none" stroke="#191970" d="M2591.565,-385.3078C2679.0902,-378.0065 2836.3285,-362.7928 2890,-344 2915.0352,-335.2341 2916.8381,-323.9456 2941,-313 3100.9871,-240.5239 3318,-370.1378 3318,-194.5 3318,-194.5 3318,-194.5 3318,-133 3318,-101.7875 3318.8384,-87.9227 3342,-67 3367.1161,-44.3117 3462.7714,-27.4839 3513.6777,-19.9212"/>
+<polygon fill="#191970" stroke="#191970" points="3514.4263,-23.3493 3523.8199,-18.4492 3513.4208,-16.4219 3514.4263,-23.3493"/>
</g>
<!-- Node6->Node17 -->
-<g id="edge90" class="edge">
+<g id="edge94" class="edge">
<title>Node6->Node17</title>
-<path fill="none" stroke="#191970" d="M1558.3749,-384.6433C1473.811,-376.6196 1328.7524,-360.6365 1311,-344 1256.6708,-293.0859 1253.5064,-247.7896 1282,-179 1295.4698,-146.4811 1307.5924,-140.7282 1338,-123 1450.8943,-57.1804 1605.83,-30.1631 1681.1909,-20.3775"/>
-<polygon fill="#191970" stroke="#191970" points="1681.7985,-23.8288 1691.2838,-19.1089 1680.9254,-16.8834 1681.7985,-23.8288"/>
+<path fill="none" stroke="#191970" d="M2552.0319,-380.4794C2609.4499,-353.058 2761.6331,-270.0229 2716,-179 2676.278,-99.7677 2634.0474,-97.9635 2551,-67 2455.4204,-31.3639 2335.0602,-20.3851 2270.9882,-17.0038"/>
+<polygon fill="#191970" stroke="#191970" points="2270.9839,-13.4995 2260.8248,-16.5068 2270.6419,-20.4912 2270.9839,-13.4995"/>
</g>
<!-- Node6->Node20 -->
-<g id="edge91" class="edge">
+<g id="edge95" class="edge">
<title>Node6->Node20</title>
-<path fill="none" stroke="#191970" d="M1579.1783,-380.4384C1551.0354,-372.7841 1512.9655,-360.5813 1482,-344 1462.1721,-333.3826 1460.741,-325.4358 1442,-313 1414.8066,-294.9555 1395.1552,-304.763 1378,-277 1365.5291,-256.8179 1367.6894,-187.5629 1369.6502,-152.9798"/>
-<polygon fill="#191970" stroke="#191970" points="1373.1618,-152.8989 1370.2861,-142.7018 1366.1752,-152.4666 1373.1618,-152.8989"/>
+<path fill="none" stroke="#191970" d="M2507.6314,-380.4793C2467.4554,-364.4416 2382.4247,-331.9394 2308,-313 2214.1067,-289.1063 2169.4434,-336.5254 2093,-277 2055.4719,-247.7774 2087.6377,-208.0814 2050,-179 2010.8268,-148.7322 1863.4693,-137.8653 1796.0498,-134.4206"/>
+<polygon fill="#191970" stroke="#191970" points="1796.1027,-130.9191 1785.9446,-133.9296 1795.7629,-137.9109 1796.1027,-130.9191"/>
</g>
-<!-- Node28 -->
-<g id="node20" class="node">
-<title>Node28</title>
-<g id="a_node20"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
-<polygon fill="#ffffff" stroke="#000000" points="1661,-185 1661,-204 1799,-204 1799,-185 1661,-185"/>
-<text text-anchor="middle" x="1730" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
+<!-- Node6->Node24 -->
+<g id="edge61" class="edge">
+<title>Node6->Node24</title>
+<path fill="none" stroke="#191970" d="M2470.3117,-389.5534C2211.7596,-387.449 1212.685,-377.1921 1155,-344 1113.927,-320.3665 1086.8295,-285.5049 1113,-246 1135.6577,-211.7978 1170.2742,-240.2397 1198,-210 1212.5704,-194.1084 1218.6557,-169.6144 1221.193,-152.5333"/>
+<polygon fill="#191970" stroke="#191970" points="1224.6751,-152.892 1222.4016,-142.544 1217.7257,-152.0512 1224.6751,-152.892"/>
+</g>
+<!-- Node34 -->
+<g id="node24" class="node">
+<title>Node34</title>
+<g id="a_node24"><a xlink:href="data__type_8h.html" target="_top" xlink:title="tvm/runtime/data_type.h">
+<polygon fill="#ffffff" stroke="#000000" points="2840,-185 2840,-204 2978,-204 2978,-185 2840,-185"/>
+<text text-anchor="middle" x="2909" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/data_type.h</text>
</a>
</g>
</g>
-<!-- Node6->Node28 -->
-<g id="edge56" class="edge">
-<title>Node6->Node28</title>
-<path fill="none" stroke="#191970" d="M1624.5045,-380.3051C1641.9629,-349.5563 1696.3023,-253.8505 1719.4191,-213.1357"/>
-<polygon fill="#191970" stroke="#191970" points="1722.5684,-214.6776 1724.4623,-204.2534 1716.4812,-211.2214 1722.5684,-214.6776"/>
+<!-- Node6->Node34 -->
+<g id="edge60" class="edge">
+<title>Node6->Node34</title>
+<path fill="none" stroke="#191970" d="M2591.5554,-384.3979C2664.4769,-376.9671 2782.1355,-362.5934 2822,-344 2832.278,-339.2062 2893.6859,-287.0189 2899,-277 2909.3705,-257.4481 2910.9033,-231.7056 2910.4661,-214.2117"/>
+<polygon fill="#191970" stroke="#191970" points="2913.9537,-213.8711 2909.9674,-204.0548 2906.9621,-214.2144 2913.9537,-213.8711"/>
</g>
-<!-- Node6->Node29 -->
-<g id="edge29" class="edge">
-<title>Node6->Node29</title>
-<path fill="none" stroke="#191970" d="M1581.453,-380.4581C1544.6722,-371.1109 1487.8329,-356.6662 1443.412,-345.3774"/>
-<polygon fill="#191970" stroke="#191970" points="1444.1144,-341.9448 1433.5604,-342.8738 1442.3903,-348.7291 1444.1144,-341.9448"/>
+<!-- Node6->Node35 -->
+<g id="edge46" class="edge">
+<title>Node6->Node35</title>
+<path fill="none" stroke="#191970" d="M2566.1563,-380.3906C2599.4973,-371.2774 2650.4047,-357.3627 2691.1129,-346.2358"/>
+<polygon fill="#191970" stroke="#191970" points="2692.2355,-349.5574 2700.9588,-343.5446 2690.3898,-342.8051 2692.2355,-349.5574"/>
</g>
-<!-- Node30 -->
-<g id="node22" class="node">
-<title>Node30</title>
-<g id="a_node22"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1914.5,-252 1914.5,-271 2039.5,-271 2039.5,-252 1914.5,-252"/>
-<text text-anchor="middle" x="1977" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
+<!-- Node36 -->
+<g id="node26" class="node">
+<title>Node36</title>
+<g id="a_node26"><a xlink:href="ndarray_8h.html" target="_top" xlink:title="A device-independent managed NDArray abstraction. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="2102.5,-252 2102.5,-271 2227.5,-271 2227.5,-252 2102.5,-252"/>
+<text text-anchor="middle" x="2165" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/ndarray.h</text>
</a>
</g>
</g>
-<!-- Node6->Node30 -->
-<g id="edge58" class="edge">
-<title>Node6->Node30</title>
-<path fill="none" stroke="#191970" d="M1645.6157,-380.4466C1708.9151,-357.726 1868.5198,-300.4377 1940.6333,-274.5534"/>
-<polygon fill="#191970" stroke="#191970" points="1941.9795,-277.7889 1950.2091,-271.1163 1939.6146,-271.2005 1941.9795,-277.7889"/>
-</g>
-<!-- Node6->Node25 -->
-<g id="edge57" class="edge">
-<title>Node6->Node25</title>
-<path fill="none" stroke="#191970" d="M1679.6665,-380.9962C1682.82,-380.6337 1685.9455,-380.2983 1689,-380 1990.6541,-350.5391 2075.4326,-415.3662 2370,-344 2440.5677,-326.9032 2475.0629,-334.8068 2519,-277 2546.9539,-240.2218 2546.2166,-182.6141 2543.5002,-152.6267"/>
-<polygon fill="#191970" stroke="#191970" points="2546.9697,-152.1543 2542.4179,-142.5871 2540.01,-152.9047 2546.9697,-152.1543"/>
+<!-- Node6->Node36 -->
+<g id="edge62" class="edge">
+<title>Node6->Node36</title>
+<path fill="none" stroke="#191970" d="M2517.2935,-380.2903C2488.1594,-359.6551 2422.6617,-313.2848 2422,-313 2362.8035,-287.5246 2290.4501,-274.4745 2237.6137,-267.8987"/>
+<polygon fill="#191970" stroke="#191970" points="2237.9949,-264.4195 2227.6498,-266.7064 2237.1631,-271.3699 2237.9949,-264.4195"/>
</g>
-<!-- Node6->Node41 -->
-<g id="edge60" class="edge">
-<title>Node6->Node41</title>
-<path fill="none" stroke="#191970" d="M1679.6835,-381.153C1682.8325,-380.7496 1685.9524,-380.3625 1689,-380 1858.6053,-359.8239 2058.8747,-342.4294 2161.6243,-333.972"/>
-<polygon fill="#191970" stroke="#191970" points="2162.1799,-337.4383 2171.8603,-333.1325 2161.6077,-330.4617 2162.1799,-337.4383"/>
+<!-- Node6->Node42 -->
+<g id="edge64" class="edge">
+<title>Node6->Node42</title>
+<path fill="none" stroke="#191970" d="M2470.4895,-387.1571C2253.9622,-376.9841 1518.4724,-342.429 1290.1688,-331.7027"/>
+<polygon fill="#191970" stroke="#191970" points="1290.1585,-328.1985 1280.0053,-331.2252 1289.83,-335.1908 1290.1585,-328.1985"/>
</g>
<!-- Node8 -->
<g id="node9" class="node">
<title>Node8</title>
<g id="a_node9"><a xlink:href="functor_8h.html" target="_top" xlink:title="Defines the Functor data structures. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1509.5,-185 1509.5,-204 1618.5,-204 1618.5,-185 1509.5,-185"/>
-<text text-anchor="middle" x="1564" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="2597.5,-185 2597.5,-204 2706.5,-204 2706.5,-185 2597.5,-185"/>
+<text text-anchor="middle" x="2652" y="-192" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/functor.h</text>
</a>
</g>
</g>
<!-- Node7->Node8 -->
<g id="edge8" class="edge">
<title>Node7->Node8</title>
-<path fill="none" stroke="#191970" d="M1548.9171,-313.389C1552.0019,-289.0735 1558.0672,-241.2644 1561.4919,-214.2698"/>
-<polygon fill="#191970" stroke="#191970" points="1564.9951,-214.4652 1562.7816,-204.1042 1558.0507,-213.5841 1564.9951,-214.4652"/>
+<path fill="none" stroke="#191970" d="M2544.645,-313.389C2567.2877,-288.3136 2612.4913,-238.2534 2636.3771,-211.8014"/>
+<polygon fill="#191970" stroke="#191970" points="2639.2234,-213.8718 2643.3276,-204.1042 2634.028,-209.1804 2639.2234,-213.8718"/>
</g>
<!-- Node7->Node16 -->
-<g id="edge28" class="edge">
+<g id="edge45" class="edge">
<title>Node7->Node16</title>
-<path fill="none" stroke="#191970" d="M1541.3809,-313.479C1525.9891,-274.6152 1479.1496,-170.4865 1403,-123 1272.2447,-41.4618 773.5561,-20.5648 640.6893,-16.3963"/>
-<polygon fill="#191970" stroke="#191970" points="640.4688,-12.8881 630.3673,-16.0834 640.2566,-19.8849 640.4688,-12.8881"/>
+<path fill="none" stroke="#191970" d="M2568.9404,-313.4664C2619.8746,-292.7218 2712.5661,-252.9791 2787,-210 2807.7162,-198.0382 2810.0855,-190.6116 2831,-179 2858.9478,-163.4836 3065.0829,-75.1224 3096,-67 3248.5896,-26.9123 3438.4026,-18.0275 3513.3698,-16.0595"/>
+<polygon fill="#191970" stroke="#191970" points="3513.6653,-19.5535 3523.5791,-15.8164 3513.4986,-12.5555 3513.6653,-19.5535"/>
</g>
<!-- Node21 -->
<g id="node17" class="node">
<title>Node21</title>
-<g id="a_node17"><a xlink:href="array_8h.html" target="_top" xlink:title="Runtime Array container types. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="3212,-246.5 3212,-276.5 3338,-276.5 3338,-246.5 3212,-246.5"/>
-<text text-anchor="start" x="3220" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="3275" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
+<g id="a_node17"><a xlink:href="object__path_8h.html" target="_top" xlink:title="tvm/node/object_path.h">
+<polygon fill="#ffffff" stroke="#ff0000" points="2398,-252 2398,-271 2530,-271 2530,-252 2398,-252"/>
+<text text-anchor="middle" x="2464" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/node/object_path.h</text>
</a>
</g>
</g>
<!-- Node7->Node21 -->
<g id="edge18" class="edge">
<title>Node7->Node21</title>
-<path fill="none" stroke="#191970" d="M1603.5112,-326.3089C1859.7644,-316.3731 2912.583,-275.552 3201.4134,-264.3532"/>
-<polygon fill="#191970" stroke="#191970" points="3201.9116,-267.8366 3211.7684,-263.9517 3201.6403,-260.8418 3201.9116,-267.8366"/>
+<path fill="none" stroke="#191970" d="M2515.7967,-313.2967C2505.3578,-302.8578 2491.4997,-288.9997 2480.7446,-278.2446"/>
+<polygon fill="#191970" stroke="#191970" points="2483.101,-275.6512 2473.555,-271.055 2478.1512,-280.601 2483.101,-275.6512"/>
</g>
-<!-- Node7->Node28 -->
-<g id="edge23" class="edge">
-<title>Node7->Node28</title>
-<path fill="none" stroke="#191970" d="M1567.6367,-313.389C1602.6226,-287.7709 1673.2228,-236.0746 1708.6718,-210.1174"/>
-<polygon fill="#191970" stroke="#191970" points="1710.8834,-212.836 1716.8839,-204.1042 1706.7478,-207.1882 1710.8834,-212.836"/>
+<!-- Node33 -->
+<g id="node23" class="node">
+<title>Node33</title>
+<g id="a_node23"><a xlink:href="array_8h.html" target="_top" xlink:title="Runtime Array container types. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1478,-246.5 1478,-276.5 1604,-276.5 1604,-246.5 1478,-246.5"/>
+<text text-anchor="start" x="1486" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="1541" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/array.h</text>
+</a>
+</g>
+</g>
+<!-- Node7->Node33 -->
+<g id="edge35" class="edge">
+<title>Node7->Node33</title>
+<path fill="none" stroke="#191970" d="M2474.2175,-324.6571C2304.8732,-313.1965 1803.4099,-279.2591 1614.2906,-266.4601"/>
+<polygon fill="#191970" stroke="#191970" points="1614.3867,-262.9587 1604.1732,-265.7754 1613.914,-269.9427 1614.3867,-262.9587"/>
+</g>
+<!-- Node7->Node34 -->
+<g id="edge40" class="edge">
+<title>Node7->Node34</title>
+<path fill="none" stroke="#191970" d="M2587.5771,-325.1793C2643.609,-320.1904 2730.813,-307.7747 2800,-277 2836.4019,-260.8082 2871.9334,-230.3766 2892.083,-211.343"/>
+<polygon fill="#191970" stroke="#191970" points="2894.7294,-213.6533 2899.4976,-204.192 2889.87,-208.6148 2894.7294,-213.6533"/>
</g>
<!-- Node8->Node10 -->
<g id="edge9" class="edge">
<title>Node8->Node10</title>
-<path fill="none" stroke="#191970" d="M1617.0135,-184.9451C1628.5383,-182.9287 1640.6708,-180.8522 1652,-179 1873.0273,-142.865 2135.4931,-104.5826 2258.2247,-86.9508"/>
-<polygon fill="#191970" stroke="#191970" points="2258.8389,-90.3986 2268.2402,-85.5132 2257.8443,-83.4696 2258.8389,-90.3986"/>
+<path fill="none" stroke="#191970" d="M2641.255,-184.9818C2622.8078,-169.2261 2583.2916,-137.9793 2544,-123 2499.9774,-106.2171 2375.6008,-91.5547 2296.0762,-83.5213"/>
+<polygon fill="#191970" stroke="#191970" points="2295.9456,-79.9909 2285.6473,-82.4797 2295.2499,-86.9563 2295.9456,-79.9909"/>
</g>
<!-- Node8->Node17 -->
<g id="edge15" class="edge">
<title>Node8->Node17</title>
-<path fill="none" stroke="#191970" d="M1572.7098,-184.8762C1598.8606,-155.9812 1676.9486,-69.6987 1710.4523,-32.6793"/>
-<polygon fill="#191970" stroke="#191970" points="1713.1319,-34.9344 1717.2471,-25.1714 1707.9418,-30.2372 1713.1319,-34.9344"/>
+<path fill="none" stroke="#191970" d="M2649.9532,-184.9875C2646.3046,-170.0665 2637.3748,-141.008 2620,-123 2580.8047,-82.3762 2559.5973,-84.717 2506,-67 2425.3728,-40.348 2326.8541,-26.2737 2270.7733,-19.8989"/>
+<polygon fill="#191970" stroke="#191970" points="2271.1337,-16.4175 2260.8095,-18.7969 2270.3641,-23.3751 2271.1337,-16.4175"/>
</g>
<!-- Node8->Node18 -->
<g id="edge16" class="edge">
<title>Node8->Node18</title>
-<path fill="none" stroke="#191970" d="M1604.492,-184.966C1711.0628,-160.3362 2008.4496,-94.5895 2260,-67 2533.3895,-37.0152 3425.1551,-19.4114 3607.3233,-16.0802"/>
-<polygon fill="#191970" stroke="#191970" points="3607.4197,-19.5791 3617.3546,-15.8981 3607.2926,-12.5802 3607.4197,-19.5791"/>
+<path fill="none" stroke="#191970" d="M2644.9065,-184.8412C2632.8362,-169.169 2606.7038,-138.405 2577,-123 2463.1799,-63.9704 2421.4111,-81.3502 2294,-67 2114.4489,-46.7773 777.1274,-20.4866 549.0356,-16.1253"/>
+<polygon fill="#191970" stroke="#191970" points="548.7966,-12.6202 538.7316,-15.9288 548.663,-19.619 548.7966,-12.6202"/>
</g>
<!-- Node8->Node20 -->
<g id="edge17" class="edge">
<title>Node8->Node20</title>
-<path fill="none" stroke="#191970" d="M1533.8438,-184.8906C1498.6665,-173.6813 1440.6923,-155.2077 1404.2422,-143.5927"/>
-<polygon fill="#191970" stroke="#191970" points="1405.1597,-140.2117 1394.569,-140.5103 1403.0343,-146.8813 1405.1597,-140.2117"/>
+<path fill="none" stroke="#191970" d="M2597.3327,-190.7224C2430.3427,-179.1832 1930.1256,-144.6177 1795.6158,-135.3229"/>
+<polygon fill="#191970" stroke="#191970" points="1795.7237,-131.8221 1785.5062,-134.6243 1795.2411,-138.8054 1795.7237,-131.8221"/>
</g>
<!-- Node10->Node11 -->
<g id="edge10" class="edge">
<title>Node10->Node11</title>
-<path fill="none" stroke="#191970" d="M2387.6116,-67.9255C2459.242,-57.0213 2579.475,-38.7185 2657.2505,-26.8789"/>
-<polygon fill="#191970" stroke="#191970" points="2658.102,-30.2897 2667.4614,-25.3246 2657.0485,-23.3695 2658.102,-30.2897"/>
+<path fill="none" stroke="#191970" d="M2285.5995,-71.4882C2407.0849,-60.2531 2683.0964,-34.7272 2816.3146,-22.407"/>
+<polygon fill="#191970" stroke="#191970" points="2816.7953,-25.8776 2826.4304,-21.4715 2816.1506,-18.9073 2816.7953,-25.8776"/>
</g>
<!-- Node15 -->
<g id="node12" class="node">
<title>Node15</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1995.5,-6 1995.5,-25 2120.5,-25 2120.5,-6 1995.5,-6"/>
-<text text-anchor="middle" x="2058" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1490.5,-6 1490.5,-25 1615.5,-25 1615.5,-6 1490.5,-6"/>
+<text text-anchor="middle" x="1553" y="-13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/logging.h</text>
</g>
<!-- Node10->Node15 -->
<g id="edge11" class="edge">
<title>Node10->Node15</title>
-<path fill="none" stroke="#191970" d="M2286.1087,-67.4581C2238.6174,-56.6406 2161.1528,-38.9959 2109.8785,-27.3168"/>
-<polygon fill="#191970" stroke="#191970" points="2110.5171,-23.8727 2099.9895,-25.0643 2108.9625,-30.6978 2110.5171,-23.8727"/>
+<path fill="none" stroke="#191970" d="M2166.2757,-71.5423C2042.7457,-60.2539 1759.5483,-34.3748 1625.6663,-22.1404"/>
+<polygon fill="#191970" stroke="#191970" points="1625.7891,-18.6371 1615.5121,-21.2125 1625.152,-25.6081 1625.7891,-18.6371"/>
</g>
<!-- Node10->Node16 -->
<g id="edge12" class="edge">
<title>Node10->Node16</title>
-<path fill="none" stroke="#191970" d="M2268.2942,-74.8652C1992.752,-65.0129 848.5725,-24.1019 640.5292,-16.6631"/>
-<polygon fill="#191970" stroke="#191970" points="640.3901,-13.156 630.2714,-16.2963 640.1399,-20.1515 640.3901,-13.156"/>
+<path fill="none" stroke="#191970" d="M2285.7142,-74.2179C2515.8023,-63.4978 3340.6904,-25.0656 3513.9355,-16.9939"/>
+<polygon fill="#191970" stroke="#191970" points="3514.1226,-20.4891 3523.9488,-16.5274 3513.7968,-13.4967 3514.1226,-20.4891"/>
</g>
<!-- Node10->Node17 -->
<g id="edge13" class="edge">
<title>Node10->Node17</title>
-<path fill="none" stroke="#191970" d="M2268.354,-70.9066C2147.7709,-58.5879 1877.4162,-30.9686 1770.6226,-20.0586"/>
-<polygon fill="#191970" stroke="#191970" points="1770.8137,-16.56 1760.5097,-19.0255 1770.1022,-23.5238 1770.8137,-16.56"/>
+<path fill="none" stroke="#191970" d="M2226,-67.3906C2226,-58.8657 2226,-46.1392 2226,-35.4235"/>
+<polygon fill="#191970" stroke="#191970" points="2229.5001,-35.2448 2226,-25.2449 2222.5001,-35.2449 2229.5001,-35.2448"/>
</g>
<!-- Node10->Node18 -->
<g id="edge14" class="edge">
<title>Node10->Node18</title>
-<path fill="none" stroke="#191970" d="M2387.7832,-74.1977C2616.5982,-63.472 3432.6471,-25.2197 3607.0504,-17.0445"/>
-<polygon fill="#191970" stroke="#191970" points="3607.3247,-20.5356 3617.1499,-16.5711 3606.9969,-13.5433 3607.3247,-20.5356"/>
+<path fill="none" stroke="#191970" d="M2166.1429,-74.8472C1891.5992,-64.9733 757.3223,-24.1791 548.9636,-16.6855"/>
+<polygon fill="#191970" stroke="#191970" points="548.7982,-13.1774 538.6788,-16.3156 548.5466,-20.1729 548.7982,-13.1774"/>
</g>
-<!-- Node21->Node18 -->
-<g id="edge21" class="edge">
-<title>Node21->Node18</title>
-<path fill="none" stroke="#191970" d="M3273.4807,-246.4359C3271.532,-218.4437 3271.5639,-158.0749 3303,-123 3344.495,-76.7018 3531.1652,-36.3925 3607.4079,-21.561"/>
-<polygon fill="#191970" stroke="#191970" points="3608.2469,-24.9638 3617.4066,-19.6393 3606.9257,-18.0897 3608.2469,-24.9638"/>
+<!-- Node21->Node10 -->
+<g id="edge33" class="edge">
+<title>Node21->Node10</title>
+<path fill="none" stroke="#191970" d="M2461.7975,-251.7352C2455.5665,-226.4085 2435.3789,-158.1404 2392,-123 2375.6847,-109.7833 2327.3224,-97.2255 2286.979,-88.5805"/>
+<polygon fill="#191970" stroke="#191970" points="2287.6917,-85.1539 2277.1858,-86.5237 2286.2529,-92.0044 2287.6917,-85.1539"/>
</g>
-<!-- Node21->Node20 -->
-<g id="edge22" class="edge">
-<title>Node21->Node20</title>
-<path fill="none" stroke="#191970" d="M3211.9219,-257.2429C2911.3456,-236.9571 1629.6515,-150.4563 1404.755,-135.2781"/>
-<polygon fill="#191970" stroke="#191970" points="1404.7778,-131.7718 1394.5648,-134.5904 1404.3064,-138.7559 1404.7778,-131.7718"/>
+<!-- Node21->Node16 -->
+<g id="edge34" class="edge">
+<title>Node21->Node16</title>
+<path fill="none" stroke="#191970" d="M2471.9847,-251.8367C2486.6634,-234.6843 2519.6837,-198.859 2555,-179 2631.3644,-136.059 2659.0659,-144.4861 2744,-123 2861.1241,-93.3706 2890.5727,-85.2503 3010,-67 3199.8985,-37.9806 3430.2961,-22.366 3513.8166,-17.3342"/>
+<polygon fill="#191970" stroke="#191970" points="3514.1621,-20.8199 3523.937,-16.7333 3513.7471,-13.8322 3514.1621,-20.8199"/>
</g>
-<!-- Node21->Node22 -->
+<!-- Node21->Node28 -->
<g id="edge19" class="edge">
-<title>Node21->Node22</title>
-<path fill="none" stroke="#191970" d="M3294.8272,-246.2849C3316.8604,-229.49 3353.6091,-201.8118 3386,-179 3400.9197,-168.4926 3417.9802,-157.1135 3431.4041,-148.3017"/>
-<polygon fill="#191970" stroke="#191970" points="3433.5898,-151.0544 3440.0455,-142.6536 3429.76,-145.1949 3433.5898,-151.0544"/>
-</g>
-<!-- Node23 -->
-<g id="node19" class="node">
-<title>Node23</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2776,-123.5 2776,-142.5 2834,-142.5 2834,-123.5 2776,-123.5"/>
-<text text-anchor="middle" x="2805" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">memory</text>
-</g>
-<!-- Node21->Node23 -->
-<g id="edge20" class="edge">
-<title>Node21->Node23</title>
-<path fill="none" stroke="#191970" d="M3225.4065,-246.4363C3168.8598,-229.4139 3073.5572,-201.1902 2991,-179 2940.4945,-165.4249 2881.8712,-151.1742 2844.1498,-142.1978"/>
-<polygon fill="#191970" stroke="#191970" points="2844.6266,-138.7138 2834.0888,-139.8108 2843.0107,-145.5248 2844.6266,-138.7138"/>
+<title>Node21->Node28</title>
+<path fill="none" stroke="#191970" d="M2397.6789,-256.5897C2352.1983,-253.3211 2290.4658,-249.078 2236,-246 1832.3176,-223.187 1347.9728,-204.0933 1166.4459,-197.2269"/>
+<polygon fill="#191970" stroke="#191970" points="1166.3443,-193.7206 1156.2193,-196.8409 1166.0802,-200.7156 1166.3443,-193.7206"/>
</g>
-<!-- Node28->Node11 -->
-<g id="edge24" class="edge">
-<title>Node28->Node11</title>
-<path fill="none" stroke="#191970" d="M1758.2416,-184.9418C1830.2724,-160.9672 2027.082,-97.9873 2196,-67 2358.8453,-37.1267 2552.9034,-23.9388 2657.0507,-18.6474"/>
-<polygon fill="#191970" stroke="#191970" points="2657.3377,-22.1375 2667.1513,-18.1447 2656.9897,-15.1462 2657.3377,-22.1375"/>
+<!-- Node28->Node10 -->
+<g id="edge25" class="edge">
+<title>Node28->Node10</title>
+<path fill="none" stroke="#191970" d="M1099.9496,-179.2529C1108.6837,-162.1136 1125.4377,-135.1034 1149,-123 1193.7792,-99.998 1924.2863,-83.1631 2156.0397,-78.3805"/>
+<polygon fill="#191970" stroke="#191970" points="2156.4416,-81.8731 2166.3676,-78.1685 2156.2979,-74.8745 2156.4416,-81.8731"/>
</g>
<!-- Node28->Node15 -->
-<g id="edge25" class="edge">
+<g id="edge20" class="edge">
<title>Node28->Node15</title>
-<path fill="none" stroke="#191970" d="M1747.6347,-184.8762C1801.9167,-155.2528 1966.7246,-65.3119 2031.4757,-29.9751"/>
-<polygon fill="#191970" stroke="#191970" points="2033.1768,-33.0341 2040.2781,-25.1714 2029.8235,-26.8896 2033.1768,-33.0341"/>
+<path fill="none" stroke="#191970" d="M1070.4732,-179.4495C1059.0259,-170.397 1046.2434,-157.7722 1040,-143 1026.2101,-110.3725 1035.4915,-88.0234 1064,-67 1096.7355,-42.8593 1351.7622,-26.1191 1479.9503,-19.1404"/>
+<polygon fill="#191970" stroke="#191970" points="1480.2815,-22.6277 1490.0788,-18.595 1479.905,-15.6379 1480.2815,-22.6277"/>
</g>
<!-- Node28->Node16 -->
-<g id="edge26" class="edge">
+<g id="edge28" class="edge">
<title>Node28->Node16</title>
-<path fill="none" stroke="#191970" d="M1713.5499,-184.8696C1670.1245,-160.0072 1548.1055,-93.7471 1437,-67 1281.7174,-29.6178 774.4332,-18.3686 640.6098,-16.0166"/>
-<polygon fill="#191970" stroke="#191970" points="640.2834,-12.5106 630.225,-15.839 640.1637,-19.5096 640.2834,-12.5106"/>
+<path fill="none" stroke="#191970" d="M1094.2568,-179.3115C1096.5381,-162.4938 1102.9557,-136.0399 1121,-123 1171.8742,-86.2352 3229.4794,-24.7622 3513.5932,-16.4423"/>
+<polygon fill="#191970" stroke="#191970" points="3513.7719,-19.9386 3523.6653,-16.1479 3513.5673,-12.9416 3513.7719,-19.9386"/>
</g>
<!-- Node28->Node17 -->
-<g id="edge27" class="edge">
+<g id="edge31" class="edge">
<title>Node28->Node17</title>
-<path fill="none" stroke="#191970" d="M1729.7849,-184.8762C1729.1555,-156.7097 1727.3075,-74.0126 1726.4485,-35.5713"/>
-<polygon fill="#191970" stroke="#191970" points="1729.9387,-35.0907 1726.2161,-25.1714 1722.9405,-35.2471 1729.9387,-35.0907"/>
+<path fill="none" stroke="#191970" d="M1087.3813,-179.4257C1083.9104,-169.2891 1079.7888,-155.538 1078,-143 1072.9971,-107.9331 1072.8824,-87.1713 1102,-67 1124.5651,-51.368 1974.5273,-23.4685 2181.101,-16.9084"/>
+<polygon fill="#191970" stroke="#191970" points="2181.4007,-20.4008 2191.2849,-16.5858 2181.179,-13.4043 2181.4007,-20.4008"/>
</g>
-<!-- Node29->Node8 -->
+<!-- Node28->Node18 -->
<g id="edge30" class="edge">
-<title>Node29->Node8</title>
-<path fill="none" stroke="#191970" d="M1398.0878,-313.389C1433.8384,-287.7709 1505.9817,-236.0746 1542.2056,-210.1174"/>
-<polygon fill="#191970" stroke="#191970" points="1544.5073,-212.7739 1550.5972,-204.1042 1540.43,-207.0839 1544.5073,-212.7739"/>
-</g>
-<!-- Node29->Node16 -->
-<g id="edge54" class="edge">
-<title>Node29->Node16</title>
-<path fill="none" stroke="#191970" d="M1361.9401,-313.3374C1314.9817,-267.1125 1165.13,-127.4456 1011,-67 943.2956,-40.4482 723.178,-23.2562 640.1187,-17.5733"/>
-<polygon fill="#191970" stroke="#191970" points="640.2235,-14.0725 630.0109,-16.8925 639.7531,-21.0567 640.2235,-14.0725"/>
-</g>
-<!-- Node29->Node28 -->
-<g id="edge31" class="edge">
-<title>Node29->Node28</title>
-<path fill="none" stroke="#191970" d="M1416.8074,-313.389C1486.4386,-286.9567 1629.2041,-232.7625 1695.1682,-207.7223"/>
-<polygon fill="#191970" stroke="#191970" points="1696.5926,-210.9253 1704.6995,-204.1042 1694.1083,-204.381 1696.5926,-210.9253"/>
+<title>Node28->Node18</title>
+<path fill="none" stroke="#191970" d="M1061.1017,-179.4809C1030.1809,-164.9487 981.9324,-142.343 940,-123 885.4575,-97.8402 874.4123,-84.6558 817,-67 722.0259,-37.7929 604.7825,-23.7482 548.7823,-18.3193"/>
+<polygon fill="#191970" stroke="#191970" points="549.024,-14.8267 538.7403,-17.3753 548.3688,-21.796 549.024,-14.8267"/>
</g>
-<!-- Node29->Node30 -->
+<!-- Node28->Node20 -->
<g id="edge32" class="edge">
-<title>Node29->Node30</title>
-<path fill="none" stroke="#191970" d="M1433.6118,-319.6886C1449.2681,-317.3756 1466.2769,-314.9775 1482,-313 1631.7091,-294.1709 1807.517,-277.0651 1904.1469,-268.0938"/>
-<polygon fill="#191970" stroke="#191970" points="1904.7543,-271.5526 1914.3892,-267.1458 1904.1092,-264.5824 1904.7543,-271.5526"/>
-</g>
-<!-- Node29->Node40 -->
-<g id="edge53" class="edge">
-<title>Node29->Node40</title>
-<path fill="none" stroke="#191970" d="M1363.4186,-313.3486C1355.4137,-303.6188 1345.7564,-290.3435 1340,-277 1331.1822,-256.5601 1327.1917,-231.1787 1325.4067,-214.007"/>
-<polygon fill="#191970" stroke="#191970" points="1328.8928,-213.6947 1324.5235,-204.0427 1321.9201,-214.3127 1328.8928,-213.6947"/>
-</g>
-<!-- Node30->Node10 -->
-<g id="edge49" class="edge">
-<title>Node30->Node10</title>
-<path fill="none" stroke="#191970" d="M1994.3247,-251.8567C2035.5662,-228.9682 2142.929,-169.7801 2234,-123 2255.4693,-111.972 2279.969,-100.0024 2298.5729,-91.0382"/>
-<polygon fill="#191970" stroke="#191970" points="2300.2187,-94.1305 2307.7168,-86.6453 2297.1874,-87.8209 2300.2187,-94.1305"/>
-</g>
-<!-- Node30->Node11 -->
-<g id="edge33" class="edge">
-<title>Node30->Node11</title>
-<path fill="none" stroke="#191970" d="M1986.0014,-251.8478C2001.4195,-235.6281 2034.2941,-202.3876 2066,-179 2146.1203,-119.8998 2165.374,-97.9519 2260,-67 2331.8679,-43.4922 2543.1418,-27.2283 2657.0998,-19.899"/>
-<polygon fill="#191970" stroke="#191970" points="2657.388,-23.3878 2667.1455,-19.2599 2656.9434,-16.402 2657.388,-23.3878"/>
-</g>
-<!-- Node30->Node18 -->
-<g id="edge51" class="edge">
-<title>Node30->Node18</title>
-<path fill="none" stroke="#191970" d="M2003.9993,-251.9834C2077.4559,-226.5096 2287.5116,-156.4406 2468,-123 2913.9902,-40.3677 3467.7745,-20.2102 3607.0519,-16.3126"/>
-<polygon fill="#191970" stroke="#191970" points="3607.5435,-19.8007 3617.4449,-16.0308 3607.3537,-12.8033 3607.5435,-19.8007"/>
+<title>Node28->Node20</title>
+<path fill="none" stroke="#191970" d="M1156.2392,-188.6865C1294.953,-175.9348 1622.0123,-145.8688 1728.1197,-136.1146"/>
+<polygon fill="#191970" stroke="#191970" points="1728.616,-139.5838 1738.2535,-135.183 1727.9751,-132.6132 1728.616,-139.5838"/>
</g>
-<!-- Node30->Node20 -->
-<g id="edge52" class="edge">
-<title>Node30->Node20</title>
-<path fill="none" stroke="#191970" d="M1966.499,-251.7215C1946.4349,-233.7052 1900.4948,-195.5978 1854,-179 1770.9297,-149.3454 1500.525,-137.4247 1404.8907,-134.0689"/>
-<polygon fill="#191970" stroke="#191970" points="1404.7467,-130.5621 1394.633,-133.7186 1404.5077,-137.558 1404.7467,-130.5621"/>
+<!-- Node28->Node24 -->
+<g id="edge21" class="edge">
+<title>Node28->Node24</title>
+<path fill="none" stroke="#191970" d="M1124.8016,-179.4554C1145.8265,-169.509 1173.1859,-156.5659 1193.6843,-146.8686"/>
+<polygon fill="#191970" stroke="#191970" points="1195.3119,-149.9706 1202.8546,-142.5303 1192.3184,-143.6429 1195.3119,-149.9706"/>
</g>
-<!-- Node30->Node28 -->
-<g id="edge48" class="edge">
-<title>Node30->Node28</title>
-<path fill="none" stroke="#191970" d="M1941.8732,-251.9717C1898.1043,-240.0991 1823.2366,-219.7909 1775.2227,-206.7669"/>
-<polygon fill="#191970" stroke="#191970" points="1775.973,-203.344 1765.4055,-204.1039 1774.1404,-210.0999 1775.973,-203.344"/>
+<!-- Node28->Node26 -->
+<g id="edge26" class="edge">
+<title>Node28->Node26</title>
+<path fill="none" stroke="#191970" d="M1156.4256,-185.4915C1246.0534,-172.7615 1407.3413,-149.8534 1483.7086,-139.0067"/>
+<polygon fill="#191970" stroke="#191970" points="1484.496,-142.4301 1493.9045,-137.5586 1483.5116,-135.4997 1484.496,-142.4301"/>
</g>
-<!-- Node30->Node33 -->
-<g id="edge34" class="edge">
-<title>Node30->Node33</title>
-<path fill="none" stroke="#191970" d="M2039.7418,-256.0696C2076.0356,-252.9859 2122.5828,-249.1289 2164,-246 2413.9361,-227.1184 2710.6573,-207.7775 2845.6242,-199.1482"/>
-<polygon fill="#191970" stroke="#191970" points="2846.0831,-202.6261 2855.8397,-198.4958 2845.6369,-195.6403 2846.0831,-202.6261"/>
+<!-- Node31 -->
+<g id="node21" class="node">
+<title>Node31</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="840,-123.5 840,-142.5 898,-142.5 898,-123.5 840,-123.5"/>
+<text text-anchor="middle" x="869" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">memory</text>
</g>
-<!-- Node30->Node40 -->
-<g id="edge50" class="edge">
-<title>Node30->Node40</title>
-<path fill="none" stroke="#191970" d="M1914.3876,-255.0758C1782.4949,-241.5431 1479.004,-210.4039 1366.7562,-198.8869"/>
-<polygon fill="#191970" stroke="#191970" points="1366.8078,-195.3739 1356.5027,-197.8349 1366.0932,-202.3374 1366.8078,-195.3739"/>
+<!-- Node28->Node31 -->
+<g id="edge27" class="edge">
+<title>Node28->Node31</title>
+<path fill="none" stroke="#191970" d="M1038.2034,-179.4554C997.8323,-168.3714 943.9064,-153.5658 907.8916,-143.6778"/>
+<polygon fill="#191970" stroke="#191970" points="908.8045,-140.299 898.2347,-141.0265 906.9512,-147.0492 908.8045,-140.299"/>
</g>
-<!-- Node33->Node10 -->
-<g id="edge40" class="edge">
-<title>Node33->Node10</title>
-<path fill="none" stroke="#191970" d="M2908.075,-179.3812C2894.8186,-162.3624 2870.7646,-135.4653 2843,-123 2803.3833,-105.2135 2529.3983,-88.0331 2397.9976,-80.7053"/>
-<polygon fill="#191970" stroke="#191970" points="2397.8216,-77.1903 2387.6433,-80.1318 2397.4345,-84.1795 2397.8216,-77.1903"/>
+<!-- Node28->Node32 -->
+<g id="edge29" class="edge">
+<title>Node28->Node32</title>
+<path fill="none" stroke="#191970" d="M1029.9803,-188.4911C904.4652,-176.5234 625.0138,-149.8781 504.7904,-138.4149"/>
+<polygon fill="#191970" stroke="#191970" points="504.979,-134.9171 494.692,-137.452 504.3146,-141.8855 504.979,-134.9171"/>
</g>
-<!-- Node33->Node15 -->
-<g id="edge35" class="edge">
-<title>Node33->Node15</title>
-<path fill="none" stroke="#191970" d="M2931.9535,-179.4249C2939.4093,-169.7239 2948.0599,-156.452 2952,-143 2957.4443,-124.4126 2957.3162,-76.1912 2948,-67 2919.0677,-38.4558 2338.2802,-22.0785 2130.8468,-17.1215"/>
-<polygon fill="#191970" stroke="#191970" points="2130.7451,-13.6182 2120.6649,-16.8802 2130.5792,-20.6162 2130.7451,-13.6182"/>
+<!-- Node24->Node10 -->
+<g id="edge22" class="edge">
+<title>Node24->Node10</title>
+<path fill="none" stroke="#191970" d="M1287.6262,-124.4125C1292.4857,-123.8915 1297.3177,-123.4123 1302,-123 1620.2793,-94.9742 2001.8519,-82.7279 2156.1638,-78.6606"/>
+<polygon fill="#191970" stroke="#191970" points="2156.5317,-82.1523 2166.4372,-78.3931 2156.3495,-75.1547 2156.5317,-82.1523"/>
</g>
-<!-- Node33->Node16 -->
-<g id="edge43" class="edge">
-<title>Node33->Node16</title>
-<path fill="none" stroke="#191970" d="M2913.3542,-179.3044C2906.2397,-162.4802 2892.3044,-136.0204 2871,-123 2689.9958,-12.3773 2608.5639,-82.5118 2397,-67 2036.0594,-40.536 850.6617,-19.591 640.121,-16.0337"/>
-<polygon fill="#191970" stroke="#191970" points="640.0901,-12.5328 630.0326,-15.864 639.9723,-19.5318 640.0901,-12.5328"/>
+<!-- Node24->Node17 -->
+<g id="edge23" class="edge">
+<title>Node24->Node17</title>
+<path fill="none" stroke="#191970" d="M1287.6627,-124.7609C1292.5137,-124.1593 1297.3339,-123.5667 1302,-123 1639.5517,-82.0013 2046.8833,-35.7255 2180.8834,-20.5856"/>
+<polygon fill="#191970" stroke="#191970" points="2181.6178,-24.025 2191.1619,-19.4248 2180.8322,-17.0692 2181.6178,-24.025"/>
</g>
-<!-- Node33->Node17 -->
-<g id="edge46" class="edge">
-<title>Node33->Node17</title>
-<path fill="none" stroke="#191970" d="M2923.5539,-179.2939C2930.5763,-152.3543 2940.2909,-96.3273 2910,-67 2873.1319,-31.3047 2038.2548,-33.5212 1987,-31 1911.0765,-27.2653 1822.7983,-21.7841 1770.8178,-18.4394"/>
-<polygon fill="#191970" stroke="#191970" points="1770.8121,-14.9318 1760.6072,-17.7798 1770.3608,-21.9173 1770.8121,-14.9318"/>
+<!-- Node24->Node18 -->
+<g id="edge24" class="edge">
+<title>Node24->Node18</title>
+<path fill="none" stroke="#191970" d="M1158.3656,-126.3188C1102.4567,-119.5473 1019.8483,-107.1503 950,-87 927.7944,-80.594 924.3121,-73.0243 902,-67 774.3243,-32.5273 616.396,-20.6675 548.9912,-16.9905"/>
+<polygon fill="#191970" stroke="#191970" points="548.7646,-13.4741 538.5963,-16.45 548.4011,-20.4646 548.7646,-13.4741"/>
</g>
<!-- Node33->Node18 -->
-<g id="edge45" class="edge">
+<g id="edge38" class="edge">
<title>Node33->Node18</title>
-<path fill="none" stroke="#191970" d="M2952.7162,-179.4036C3021.3277,-148.9024 3175.3914,-81.5909 3231,-67 3367.6749,-31.1385 3536.8093,-19.9599 3607.0393,-16.7221"/>
-<polygon fill="#191970" stroke="#191970" points="3607.6036,-20.2009 3617.4415,-16.2681 3607.2983,-13.2076 3607.6036,-20.2009"/>
+<path fill="none" stroke="#191970" d="M1477.935,-254.842C1451.4052,-252.0665 1420.2062,-248.8356 1392,-246 1227.1675,-229.4294 1175.1934,-270.5701 1021,-210 1019.1462,-209.2718 908.7667,-123.9197 907,-123 834.1883,-85.0971 810.0778,-89.0199 731,-67 666.9168,-49.1555 591.0612,-31.8684 548.7444,-22.5627"/>
+<polygon fill="#191970" stroke="#191970" points="549.2531,-19.0913 538.7361,-20.3734 547.7571,-25.9296 549.2531,-19.0913"/>
</g>
<!-- Node33->Node20 -->
-<g id="edge47" class="edge">
+<g id="edge39" class="edge">
<title>Node33->Node20</title>
-<path fill="none" stroke="#191970" d="M2855.6848,-180.8812C2851.0675,-180.1568 2846.4703,-179.5161 2842,-179 2550.2288,-145.3116 1596.1332,-135.0321 1404.6457,-133.2864"/>
-<polygon fill="#191970" stroke="#191970" points="1404.6436,-129.7863 1394.6126,-133.1964 1404.5808,-136.786 1404.6436,-129.7863"/>
+<path fill="none" stroke="#191970" d="M1552.964,-246.3166C1568.1455,-227.9824 1595.9893,-197.3302 1626,-179 1658.1112,-159.3868 1699.6431,-146.9092 1728.3188,-139.9719"/>
+<polygon fill="#191970" stroke="#191970" points="1729.3113,-143.3346 1738.2607,-137.6637 1727.7282,-136.516 1729.3113,-143.3346"/>
+</g>
+<!-- Node33->Node26 -->
+<g id="edge36" class="edge">
+<title>Node33->Node26</title>
+<path fill="none" stroke="#191970" d="M1539.2204,-246.2548C1536.5029,-222.9744 1531.3184,-178.5607 1528.3127,-152.8117"/>
+<polygon fill="#191970" stroke="#191970" points="1531.7724,-152.2625 1527.1365,-142.7358 1524.8196,-153.0742 1531.7724,-152.2625"/>
+</g>
+<!-- Node33->Node31 -->
+<g id="edge37" class="edge">
+<title>Node33->Node31</title>
+<path fill="none" stroke="#191970" d="M1477.9458,-254.7323C1451.4177,-251.9392 1420.2171,-248.7247 1392,-246 1212.5676,-228.6735 1157.256,-272.037 988,-210 965.5395,-201.7676 963.9838,-192.149 944,-179 927.6708,-168.2556 908.9259,-156.7586 894.2608,-147.9462"/>
+<polygon fill="#191970" stroke="#191970" points="895.6586,-144.7041 885.2793,-142.5778 892.0671,-150.7126 895.6586,-144.7041"/>
</g>
-<!-- Node33->Node22 -->
+<!-- Node34->Node11 -->
<g id="edge41" class="edge">
-<title>Node33->Node22</title>
-<path fill="none" stroke="#191970" d="M2982.278,-190.6731C3074.8331,-184.4673 3252.6365,-170.2435 3412.8203,-143.0041"/>
-<polygon fill="#191970" stroke="#191970" points="3413.5964,-146.422 3422.8575,-141.276 3412.4087,-139.5235 3413.5964,-146.422"/>
+<title>Node34->Node11</title>
+<path fill="none" stroke="#191970" d="M2908.0322,-184.8762C2905.3232,-157.9361 2897.5977,-81.1108 2893.5478,-40.8362"/>
+<polygon fill="#191970" stroke="#191970" points="2897.0163,-40.3465 2892.5332,-30.7469 2890.0514,-41.047 2897.0163,-40.3465"/>
</g>
-<!-- Node33->Node23 -->
+<!-- Node34->Node15 -->
<g id="edge42" class="edge">
-<title>Node33->Node23</title>
-<path fill="none" stroke="#191970" d="M2891.1125,-179.4554C2873.0924,-169.734 2849.7659,-157.15 2831.9368,-147.5317"/>
-<polygon fill="#191970" stroke="#191970" points="2833.1287,-144.1979 2822.666,-142.5303 2829.8052,-150.3586 2833.1287,-144.1979"/>
+<title>Node34->Node15</title>
+<path fill="none" stroke="#191970" d="M2885.9054,-184.9093C2825.0459,-160.1425 2654.7219,-94.0936 2506,-67 2337.2478,-36.2573 1818.0919,-21.5555 1625.7077,-17.0569"/>
+<polygon fill="#191970" stroke="#191970" points="1625.777,-13.5577 1615.6986,-16.8252 1625.6149,-20.5558 1625.777,-13.5577"/>
</g>
-<!-- Node33->Node25 -->
-<g id="edge36" class="edge">
-<title>Node33->Node25</title>
-<path fill="none" stroke="#191970" d="M2855.5956,-181.4913C2850.9993,-180.6237 2846.4311,-179.7841 2842,-179 2765.0767,-165.3876 2676.6648,-152.163 2615.659,-143.4142"/>
-<polygon fill="#191970" stroke="#191970" points="2616.1265,-139.9455 2605.7319,-141.9954 2615.1361,-146.8751 2616.1265,-139.9455"/>
+<!-- Node34->Node16 -->
+<g id="edge43" class="edge">
+<title>Node34->Node16</title>
+<path fill="none" stroke="#191970" d="M2922.8735,-184.8376C2958.6147,-160.4791 3057.5291,-96.414 3150,-67 3217.8914,-45.4045 3432.0046,-25.2907 3513.8018,-18.1984"/>
+<polygon fill="#191970" stroke="#191970" points="3514.3303,-21.666 3523.994,-17.3229 3513.7311,-14.6916 3514.3303,-21.666"/>
</g>
-<!-- Node33->Node36 -->
+<!-- Node34->Node17 -->
<g id="edge44" class="edge">
-<title>Node33->Node36</title>
-<path fill="none" stroke="#191970" d="M2982.3826,-181.3638C2986.9841,-180.5261 2991.5593,-179.7281 2996,-179 3103.406,-161.3891 3229.6867,-146.6984 3301.136,-138.9398"/>
-<polygon fill="#191970" stroke="#191970" points="3301.7044,-142.3989 3311.271,-137.8459 3300.9531,-135.4393 3301.7044,-142.3989"/>
-</g>
-<!-- Node25->Node10 -->
-<g id="edge37" class="edge">
-<title>Node25->Node10</title>
-<path fill="none" stroke="#191970" d="M2504.384,-123.3733C2468.352,-113.9001 2413.2122,-99.4032 2374.1886,-89.1435"/>
-<polygon fill="#191970" stroke="#191970" points="2374.6995,-85.6589 2364.1382,-86.5011 2372.9196,-92.4289 2374.6995,-85.6589"/>
+<title>Node34->Node17</title>
+<path fill="none" stroke="#191970" d="M2894.7728,-184.9745C2857.6629,-160.6544 2754.1213,-96.1374 2658,-67 2586.3257,-45.2733 2366.4499,-26.3028 2271,-18.8567"/>
+<polygon fill="#191970" stroke="#191970" points="2271.0446,-15.3498 2260.8045,-18.0683 2270.5049,-22.3289 2271.0446,-15.3498"/>
</g>
-<!-- Node25->Node17 -->
-<g id="edge38" class="edge">
-<title>Node25->Node17</title>
-<path fill="none" stroke="#191970" d="M2476.3671,-123.6818C2316.7506,-100.6696 1906.9849,-41.5929 1770.7761,-21.9555"/>
-<polygon fill="#191970" stroke="#191970" points="1771.094,-18.4652 1760.6968,-20.5023 1770.095,-25.3935 1771.094,-18.4652"/>
+<!-- Node35->Node8 -->
+<g id="edge47" class="edge">
+<title>Node35->Node8</title>
+<path fill="none" stroke="#191970" d="M2752.9396,-313.4983C2748.7646,-295.8952 2739.9173,-266.5112 2724,-246 2712.218,-230.8175 2694.7671,-218.1794 2679.9966,-209.2226"/>
+<polygon fill="#191970" stroke="#191970" points="2681.6271,-206.1222 2671.221,-204.1316 2678.1145,-212.1771 2681.6271,-206.1222"/>
</g>
-<!-- Node25->Node18 -->
-<g id="edge39" class="edge">
-<title>Node25->Node18</title>
-<path fill="none" stroke="#191970" d="M2605.5285,-126.036C2717.3944,-113.9695 2954.5834,-88.4122 3155,-67 3325.0743,-48.8295 3528.719,-27.2696 3607.0655,-18.9823"/>
-<polygon fill="#191970" stroke="#191970" points="3607.696,-22.4353 3617.2724,-17.9028 3606.9597,-15.4741 3607.696,-22.4353"/>
+<!-- Node35->Node16 -->
+<g id="edge58" class="edge">
+<title>Node35->Node16</title>
+<path fill="none" stroke="#191970" d="M2802.6556,-313.4467C2830.9024,-303.9034 2867.4463,-290.7899 2899,-277 3084.791,-195.8038 3113.1214,-135.3848 3304,-67 3376.7456,-40.9379 3466.7536,-26.0732 3513.8408,-19.5384"/>
+<polygon fill="#191970" stroke="#191970" points="3514.3208,-23.0054 3523.7619,-18.1974 3513.3831,-16.0685 3514.3208,-23.0054"/>
</g>
-<!-- Node41->Node10 -->
-<g id="edge80" class="edge">
-<title>Node41->Node10</title>
-<path fill="none" stroke="#191970" d="M2238.2322,-313.4081C2243.6124,-303.264 2250.6136,-289.5113 2256,-277 2283.9045,-212.1848 2310.2936,-132.6105 2321.8624,-96.4881"/>
-<polygon fill="#191970" stroke="#191970" points="2325.2681,-97.3275 2324.9622,-86.7371 2318.597,-95.2068 2325.2681,-97.3275"/>
+<!-- Node35->Node34 -->
+<g id="edge48" class="edge">
+<title>Node35->Node34</title>
+<path fill="none" stroke="#191970" d="M2812.8057,-314.3383C2834.8749,-306.4318 2858.9036,-294.5273 2876,-277 2892.9385,-259.6346 2901.5192,-232.4736 2905.6186,-214.1038"/>
+<polygon fill="#191970" stroke="#191970" points="2909.0692,-214.6966 2907.5854,-204.2062 2902.2034,-213.3323 2909.0692,-214.6966"/>
</g>
-<!-- Node41->Node11 -->
-<g id="edge61" class="edge">
-<title>Node41->Node11</title>
-<path fill="none" stroke="#191970" d="M2288.2325,-322.4249C2360.7751,-314.1223 2479.9426,-297.8517 2519,-277 2622.3324,-221.8335 2694.2369,-93.2008 2720.7317,-39.6083"/>
-<polygon fill="#191970" stroke="#191970" points="2723.9301,-41.0339 2725.1477,-30.5093 2717.6326,-37.9775 2723.9301,-41.0339"/>
+<!-- Node35->Node36 -->
+<g id="edge49" class="edge">
+<title>Node35->Node36</title>
+<path fill="none" stroke="#191970" d="M2699.3324,-322.0758C2591.5324,-309.8548 2357.074,-283.2749 2237.8159,-269.7549"/>
+<polygon fill="#191970" stroke="#191970" points="2238.0185,-266.2556 2227.6878,-268.6067 2237.2299,-273.211 2238.0185,-266.2556"/>
</g>
-<!-- Node41->Node15 -->
-<g id="edge68" class="edge">
-<title>Node41->Node15</title>
-<path fill="none" stroke="#191970" d="M2231.9499,-313.3008C2233.4572,-296.0302 2233.7553,-267.461 2223,-246 2175.3244,-150.869 2087.6079,-184.0629 2044,-87 2036.4188,-70.1258 2042.0689,-49.1961 2048.3068,-34.3519"/>
-<polygon fill="#191970" stroke="#191970" points="2051.532,-35.7166 2052.5639,-25.1721 2045.1816,-32.7716 2051.532,-35.7166"/>
+<!-- Node35->Node41 -->
+<g id="edge57" class="edge">
+<title>Node35->Node41</title>
+<path fill="none" stroke="#191970" d="M2699.3697,-322.6204C2669.0261,-319.5608 2630.9931,-315.8705 2597,-313 2373.2257,-294.104 2315.3932,-308.1971 2093,-277 1964.5025,-258.9745 1815.0906,-223.4027 1743.5018,-205.4346"/>
+<polygon fill="#191970" stroke="#191970" points="1744.0683,-201.9679 1733.516,-202.9155 1742.3561,-208.7553 1744.0683,-201.9679"/>
</g>
-<!-- Node41->Node16 -->
-<g id="edge84" class="edge">
-<title>Node41->Node16</title>
-<path fill="none" stroke="#191970" d="M2198.2022,-313.3922C2126.9867,-279.7001 1956.2147,-199.747 1896,-179 1740.2729,-125.3443 1694.2186,-136.114 1537,-87 1512.571,-79.3686 1508.0482,-72.2537 1483,-67 1317.3318,-32.252 778.7775,-19.0044 640.5641,-16.1305"/>
-<polygon fill="#191970" stroke="#191970" points="640.3007,-12.6245 630.2313,-15.9197 640.1578,-19.6231 640.3007,-12.6245"/>
+<!-- Node36->Node10 -->
+<g id="edge53" class="edge">
+<title>Node36->Node10</title>
+<path fill="none" stroke="#191970" d="M2168.1937,-251.8402C2177.8289,-222.6978 2206.737,-135.2626 2219.6494,-96.208"/>
+<polygon fill="#191970" stroke="#191970" points="2223.0218,-97.1574 2222.8379,-86.5641 2216.3756,-94.9599 2223.0218,-97.1574"/>
</g>
-<!-- Node41->Node17 -->
-<g id="edge86" class="edge">
-<title>Node41->Node17</title>
-<path fill="none" stroke="#191970" d="M2210.1665,-313.4207C2196.9584,-303.282 2179.2868,-289.5304 2164,-277 2053.3455,-186.2978 2046.5733,-133.7122 1920,-67 1872.2562,-41.836 1811.2762,-28.2704 1770.5497,-21.4796"/>
-<polygon fill="#191970" stroke="#191970" points="1771.0796,-18.02 1760.6522,-19.8962 1769.9737,-24.9321 1771.0796,-18.02"/>
+<!-- Node36->Node11 -->
+<g id="edge50" class="edge">
+<title>Node36->Node11</title>
+<path fill="none" stroke="#191970" d="M2183.6078,-251.9331C2231.4099,-227.6531 2362.8535,-162.7549 2478,-123 2539.5429,-101.752 2556.967,-103.3049 2620,-87 2689.9587,-68.9036 2769.948,-47.7415 2824.7877,-33.1604"/>
+<polygon fill="#191970" stroke="#191970" points="2825.9625,-36.4697 2834.7267,-30.5166 2824.163,-29.7049 2825.9625,-36.4697"/>
</g>
-<!-- Node41->Node18 -->
-<g id="edge87" class="edge">
-<title>Node41->Node18</title>
-<path fill="none" stroke="#191970" d="M2288.0722,-324.4036C2377.444,-317.5957 2553.8911,-302.1564 2702,-277 2831.9893,-254.9213 2864.9545,-248.6941 2991,-210 3159.9326,-158.1402 3191.9522,-115.0771 3362,-67 3449.0527,-42.3878 3554.8495,-26.5213 3607.2817,-19.5644"/>
-<polygon fill="#191970" stroke="#191970" points="3607.8715,-23.0172 3617.335,-18.2534 3606.9663,-16.0759 3607.8715,-23.0172"/>
+<!-- Node36->Node18 -->
+<g id="edge55" class="edge">
+<title>Node36->Node18</title>
+<path fill="none" stroke="#191970" d="M2162.9134,-251.7587C2158.5973,-234.1499 2146.9326,-197.1678 2122,-179 2002.478,-91.9074 1940.7053,-141.6593 1794,-123 1300.5357,-60.2368 695.0423,-25.1484 548.8718,-17.2316"/>
+<polygon fill="#191970" stroke="#191970" points="548.9435,-13.7305 538.7699,-16.6883 548.5675,-20.7204 548.9435,-13.7305"/>
</g>
-<!-- Node41->Node20 -->
-<g id="edge88" class="edge">
-<title>Node41->Node20</title>
-<path fill="none" stroke="#191970" d="M2171.6856,-323.5783C2091.333,-316.0633 1951.3499,-300.1227 1906,-277 1851.1245,-249.0205 1863.5943,-205.5225 1808,-179 1736.6261,-144.9495 1494.2455,-135.8812 1404.65,-133.6636"/>
-<polygon fill="#191970" stroke="#191970" points="1404.5822,-130.1612 1394.5029,-133.426 1404.4182,-137.1593 1404.5822,-130.1612"/>
+<!-- Node36->Node20 -->
+<g id="edge56" class="edge">
+<title>Node36->Node20</title>
+<path fill="none" stroke="#191970" d="M2159.2248,-251.8665C2147.9953,-234.092 2121.3656,-196.3714 2088,-179 2037.5039,-152.7097 1868.2014,-139.4814 1795.5631,-134.9058"/>
+<polygon fill="#191970" stroke="#191970" points="1795.7686,-131.4119 1785.573,-134.293 1795.3399,-138.3988 1795.7686,-131.4119"/>
</g>
-<!-- Node41->Node21 -->
-<g id="edge62" class="edge">
-<title>Node41->Node21</title>
-<path fill="none" stroke="#191970" d="M2288.0471,-324.7783C2466.0524,-313.3655 3004.0869,-278.8696 3201.4181,-266.2177"/>
-<polygon fill="#191970" stroke="#191970" points="3201.9237,-269.6926 3211.6792,-265.5598 3201.4758,-262.7069 3201.9237,-269.6926"/>
+<!-- Node36->Node28 -->
+<g id="edge51" class="edge">
+<title>Node36->Node28</title>
+<path fill="none" stroke="#191970" d="M2102.338,-257.5836C1915.9214,-245.9326 1365.4611,-211.5288 1166.1207,-199.07"/>
+<polygon fill="#191970" stroke="#191970" points="1166.244,-195.571 1156.0451,-198.4403 1165.8073,-202.5574 1166.244,-195.571"/>
</g>
-<!-- Node41->Node23 -->
-<g id="edge83" class="edge">
-<title>Node41->Node23</title>
-<path fill="none" stroke="#191970" d="M2288.2473,-326.445C2391.2832,-322.0216 2600.9567,-309.2515 2666,-277 2724.9625,-247.7637 2772.7653,-182.9631 2793.6455,-151.2281"/>
-<polygon fill="#191970" stroke="#191970" points="2796.7818,-152.8217 2799.2438,-142.5168 2790.893,-149.0372 2796.7818,-152.8217"/>
+<!-- Node36->Node34 -->
+<g id="edge52" class="edge">
+<title>Node36->Node34</title>
+<path fill="none" stroke="#191970" d="M2227.7918,-255.8454C2362.978,-243.6713 2681.3381,-215.0018 2829.9735,-201.6166"/>
+<polygon fill="#191970" stroke="#191970" points="2830.3003,-205.1015 2839.946,-200.7186 2829.6724,-198.1297 2830.3003,-205.1015"/>
</g>
-<!-- Node41->Node28 -->
-<g id="edge67" class="edge">
-<title>Node41->Node28</title>
-<path fill="none" stroke="#191970" d="M2171.7976,-322.8551C2085.0173,-313.9775 1926.1206,-295.8161 1872,-277 1825.5452,-260.849 1777.2212,-229.0054 1750.6396,-209.9506"/>
-<polygon fill="#191970" stroke="#191970" points="1752.6372,-207.0757 1742.4926,-204.02 1748.5175,-212.735 1752.6372,-207.0757"/>
+<!-- Node36->Node41 -->
+<g id="edge54" class="edge">
+<title>Node36->Node41</title>
+<path fill="none" stroke="#191970" d="M2102.4229,-252.4641C2006.5854,-238.6255 1825.9362,-212.5404 1743.705,-200.6665"/>
+<polygon fill="#191970" stroke="#191970" points="1744.106,-197.1881 1733.7084,-199.223 1743.1055,-204.1163 1744.106,-197.1881"/>
</g>
-<!-- Node41->Node30 -->
-<g id="edge79" class="edge">
-<title>Node41->Node30</title>
-<path fill="none" stroke="#191970" d="M2173.2219,-313.4639C2127.7686,-301.4269 2064.8503,-284.7647 2022.6289,-273.5835"/>
-<polygon fill="#191970" stroke="#191970" points="2023.4559,-270.182 2012.8931,-271.0053 2021.6639,-276.9487 2023.4559,-270.182"/>
+<!-- Node42->Node10 -->
+<g id="edge84" class="edge">
+<title>Node42->Node10</title>
+<path fill="none" stroke="#191970" d="M1234.8917,-313.4724C1270.1134,-273.6495 1372.8539,-165.5502 1485,-123 1546.6694,-99.6016 1983.4657,-84.2118 2156.0708,-78.9829"/>
+<polygon fill="#191970" stroke="#191970" points="2156.4224,-82.474 2166.3128,-78.6752 2156.2121,-75.4772 2156.4224,-82.474"/>
</g>
-<!-- Node41->Node40 -->
-<g id="edge81" class="edge">
-<title>Node41->Node40</title>
-<path fill="none" stroke="#191970" d="M2171.861,-322.4298C2089.5765,-313.6246 1934.5107,-296.2434 1803,-277 1641.2934,-253.3381 1450.1082,-218.2601 1366.5985,-202.5819"/>
-<polygon fill="#191970" stroke="#191970" points="1367.1959,-199.133 1356.7211,-200.7236 1365.9016,-206.0123 1367.1959,-199.133"/>
+<!-- Node42->Node11 -->
+<g id="edge65" class="edge">
+<title>Node42->Node11</title>
+<path fill="none" stroke="#191970" d="M1280.0438,-327.314C1530.7484,-322.0599 2510.8052,-300.1186 2572,-277 2592.3894,-269.2971 2590.9337,-256.5612 2610,-246 2653.523,-221.8918 2674.4581,-237.3812 2716,-210 2787.5768,-162.8221 2848.7284,-79.497 2875.9253,-38.9616"/>
+<polygon fill="#191970" stroke="#191970" points="2878.9032,-40.8037 2881.5031,-30.5328 2873.0656,-36.9406 2878.9032,-40.8037"/>
</g>
-<!-- Node42 -->
-<g id="node28" class="node">
-<title>Node42</title>
-<g id="a_node28"><a xlink:href="map_8h.html" target="_top" xlink:title="Runtime Map container types. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="3508,-246.5 3508,-276.5 3634,-276.5 3634,-246.5 3508,-246.5"/>
-<text text-anchor="start" x="3516" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
-<text text-anchor="middle" x="3571" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
-</a>
+<!-- Node42->Node15 -->
+<g id="edge72" class="edge">
+<title>Node42->Node15</title>
+<path fill="none" stroke="#191970" d="M1163.7398,-322.8054C1082.1429,-314.2628 938.3853,-296.9834 890,-277 884.156,-274.5864 800.8673,-215.6353 798,-210 780.4651,-175.5379 773.9371,-153.267 798,-123 840.2308,-69.8808 1299.0585,-32.8957 1480.1262,-20.2718"/>
+<polygon fill="#191970" stroke="#191970" points="1480.6176,-23.7463 1490.3521,-19.5642 1480.1343,-16.763 1480.6176,-23.7463"/>
</g>
+<!-- Node42->Node16 -->
+<g id="edge88" class="edge">
+<title>Node42->Node16</title>
+<path fill="none" stroke="#191970" d="M1280.164,-327.8567C1527.952,-324.9087 2485.328,-311.3303 2539,-277 2580.1914,-250.6527 2550.6488,-209.3331 2589,-179 2605.9093,-165.6259 2945.12,-92.3684 2966,-87 2998.9958,-78.5165 3006.4981,-73.1897 3040,-67 3217.004,-34.2973 3432.9537,-21.0214 3513.5944,-16.9695"/>
+<polygon fill="#191970" stroke="#191970" points="3513.8052,-20.4635 3523.6221,-16.4786 3513.4629,-13.4719 3513.8052,-20.4635"/>
</g>
-<!-- Node41->Node42 -->
-<g id="edge63" class="edge">
-<title>Node41->Node42</title>
-<path fill="none" stroke="#191970" d="M2288.1668,-326.2908C2453.7657,-319.8992 2941.9415,-300.3489 3347,-277 3397.3663,-274.0967 3454.0565,-270.1675 3497.8042,-266.9917"/>
-<polygon fill="#191970" stroke="#191970" points="3498.0637,-270.4821 3507.7826,-266.2641 3497.5545,-263.5007 3498.0637,-270.4821"/>
+<!-- Node42->Node17 -->
+<g id="edge90" class="edge">
+<title>Node42->Node17</title>
+<path fill="none" stroke="#191970" d="M1163.7864,-321.0565C1096.3937,-311.7911 990.0354,-294.9805 954,-277 875.6193,-237.8905 776.3054,-191.4221 831,-123 839.8194,-111.9671 1065.001,-68.8797 1079,-67 1297.87,-37.6114 1997.1168,-20.5157 2181.2251,-16.4491"/>
+<polygon fill="#191970" stroke="#191970" points="2181.4367,-19.9454 2191.3576,-16.227 2181.2832,-12.9471 2181.4367,-19.9454"/>
</g>
-<!-- Node43 -->
-<g id="node29" class="node">
-<title>Node43</title>
-<g id="a_node29"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
-<polygon fill="#ffffff" stroke="#ff0000" points="2384,-252 2384,-271 2510,-271 2510,-252 2384,-252"/>
-<text text-anchor="middle" x="2447" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/module.h</text>
-</a>
+<!-- Node42->Node18 -->
+<g id="edge91" class="edge">
+<title>Node42->Node18</title>
+<path fill="none" stroke="#191970" d="M1163.8274,-325.5158C1071.569,-319.9739 896.5529,-305.9287 842,-277 736.4035,-221.0035 771.3122,-136.4014 674,-67 635.9543,-39.8665 582.803,-26.4518 548.8906,-20.258"/>
+<polygon fill="#191970" stroke="#191970" points="549.0475,-16.7338 538.5997,-18.4924 547.8638,-23.633 549.0475,-16.7338"/>
</g>
+<!-- Node42->Node20 -->
+<g id="edge92" class="edge">
+<title>Node42->Node20</title>
+<path fill="none" stroke="#191970" d="M1280.0603,-313.8517C1321.3191,-302.893 1372.6951,-287.9692 1392,-277 1409.7796,-266.8975 1408.7856,-257.038 1426,-246 1442.0522,-235.7071 1565.9416,-185.1246 1584,-179 1633.3826,-162.2517 1692.2294,-148.1458 1728.3488,-140.1307"/>
+<polygon fill="#191970" stroke="#191970" points="1729.3311,-143.4985 1738.3498,-137.9385 1727.8323,-136.6609 1729.3311,-143.4985"/>
</g>
-<!-- Node41->Node43 -->
-<g id="edge69" class="edge">
-<title>Node41->Node43</title>
-<path fill="none" stroke="#191970" d="M2272.9585,-313.4639C2310.1571,-301.5284 2363.6633,-285.0456 2401.5671,-273.8678"/>
-<polygon fill="#191970" stroke="#191970" points="2402.7203,-277.1771 2411.332,-271.0053 2400.7512,-270.4597 2402.7203,-277.1771"/>
+<!-- Node42->Node31 -->
+<g id="edge87" class="edge">
+<title>Node42->Node31</title>
+<path fill="none" stroke="#191970" d="M1163.8625,-320.362C1094.4342,-307.8712 978.4898,-277.8607 905,-210 888.369,-194.6429 878.743,-170.0428 873.6985,-152.7909"/>
+<polygon fill="#191970" stroke="#191970" points="876.965,-151.454 871.0175,-142.686 870.1991,-153.2491 876.965,-151.454"/>
</g>
-<!-- Node41->Node45 -->
-<g id="edge82" class="edge">
-<title>Node41->Node45</title>
-<path fill="none" stroke="#191970" d="M2171.939,-325.6852C1936.9807,-314.2943 1060.6383,-271.8088 880.4973,-263.0755"/>
-<polygon fill="#191970" stroke="#191970" points="880.4981,-259.5715 870.3403,-262.5831 880.1591,-266.5633 880.4981,-259.5715"/>
+<!-- Node42->Node33 -->
+<g id="edge66" class="edge">
+<title>Node42->Node33</title>
+<path fill="none" stroke="#191970" d="M1280.152,-315.9473C1284.8364,-314.9465 1289.4969,-313.9542 1294,-313 1352.4322,-300.6189 1418.6931,-286.8163 1467.8653,-276.6191"/>
+<polygon fill="#191970" stroke="#191970" points="1468.6954,-280.0215 1477.7768,-274.5645 1467.2745,-273.1672 1468.6954,-280.0215"/>
</g>
-<!-- Node46 -->
-<g id="node31" class="node">
-<title>Node46</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2172.5,-252 2172.5,-271 2213.5,-271 2213.5,-252 2172.5,-252"/>
-<text text-anchor="middle" x="2193" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tuple</text>
+<!-- Node42->Node34 -->
+<g id="edge71" class="edge">
+<title>Node42->Node34</title>
+<path fill="none" stroke="#191970" d="M1280.2906,-328.1376C1509.2957,-326.4353 2347.5551,-317.5117 2610,-277 2706.9451,-262.0353 2817.3172,-226.595 2872.9212,-207.3959"/>
+<polygon fill="#191970" stroke="#191970" points="2874.3575,-210.602 2882.6508,-204.0086 2872.0559,-203.9912 2874.3575,-210.602"/>
</g>
-<!-- Node41->Node46 -->
+<!-- Node42->Node36 -->
+<g id="edge83" class="edge">
+<title>Node42->Node36</title>
+<path fill="none" stroke="#191970" d="M1280.2772,-324.3594C1444.5362,-312.6888 1911.056,-279.5427 2092.0096,-266.686"/>
+<polygon fill="#191970" stroke="#191970" points="2092.4941,-270.1605 2102.2208,-265.9604 2091.9979,-263.1781 2092.4941,-270.1605"/>
+</g>
+<!-- Node42->Node41 -->
<g id="edge85" class="edge">
-<title>Node41->Node46</title>
-<path fill="none" stroke="#191970" d="M2221.6041,-313.2967C2216.1192,-303.3645 2208.9249,-290.3371 2203.1237,-279.8321"/>
-<polygon fill="#191970" stroke="#191970" points="2206.1748,-278.1169 2198.2766,-271.055 2200.047,-281.5009 2206.1748,-278.1169"/>
+<title>Node42->Node41</title>
+<path fill="none" stroke="#191970" d="M1280.1814,-314.9914C1335.6617,-301.9191 1412.6934,-283.1989 1426,-277 1447.3561,-267.0512 1447.5027,-255.6398 1469,-246 1531.43,-218.0052 1610.33,-204.669 1658.1652,-198.7474"/>
+<polygon fill="#191970" stroke="#191970" points="1658.656,-202.2138 1668.1744,-197.5608 1657.8319,-195.2625 1658.656,-202.2138"/>
</g>
-<!-- Node42->Node18 -->
-<g id="edge66" class="edge">
-<title>Node42->Node18</title>
-<path fill="none" stroke="#191970" d="M3575.2124,-246.4819C3587.1563,-203.8994 3621.2368,-82.3947 3634.5642,-34.8799"/>
-<polygon fill="#191970" stroke="#191970" points="3637.9497,-35.7692 3637.2805,-25.1956 3631.2098,-33.8787 3637.9497,-35.7692"/>
+<!-- Node43 -->
+<g id="node29" class="node">
+<title>Node43</title>
+<g id="a_node29"><a xlink:href="map_8h.html" target="_top" xlink:title="Runtime Map container types. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="294,-246.5 294,-276.5 420,-276.5 420,-246.5 294,-246.5"/>
+<text text-anchor="start" x="302" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/container</text>
+<text text-anchor="middle" x="357" y="-253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">/map.h</text>
+</a>
</g>
-<!-- Node42->Node22 -->
-<g id="edge64" class="edge">
-<title>Node42->Node22</title>
-<path fill="none" stroke="#191970" d="M3565.8853,-246.347C3559.3111,-228.5985 3546.4959,-199.0746 3528,-179 3516.0099,-165.9865 3499.5421,-155.1885 3485.2818,-147.3322"/>
-<polygon fill="#191970" stroke="#191970" points="3486.7776,-144.1642 3476.2988,-142.6005 3483.5153,-150.3576 3486.7776,-144.1642"/>
</g>
-<!-- Node42->Node36 -->
-<g id="edge65" class="edge">
-<title>Node42->Node36</title>
-<path fill="none" stroke="#191970" d="M3550.9809,-246.2232C3527.8171,-228.8813 3488.2087,-200.2469 3452,-179 3431.5835,-167.0198 3407.6006,-155.3191 3388.9698,-146.7164"/>
-<polygon fill="#191970" stroke="#191970" points="3390.3128,-143.4821 3379.7622,-142.5152 3387.407,-149.8505 3390.3128,-143.4821"/>
+<!-- Node42->Node43 -->
+<g id="edge67" class="edge">
+<title>Node42->Node43</title>
+<path fill="none" stroke="#191970" d="M1163.9018,-323.9999C1011.1476,-312.1681 598.4592,-280.2026 430.0565,-267.1587"/>
+<polygon fill="#191970" stroke="#191970" points="430.2865,-263.6661 420.046,-266.3833 429.7458,-270.6452 430.2865,-263.6661"/>
+</g>
+<!-- Node44 -->
+<g id="node30" class="node">
+<title>Node44</title>
+<g id="a_node30"><a xlink:href="runtime_2module_8h.html" target="_top" xlink:title="Runtime container of the functions generated by TVM, This is used to support dynamically link...">
+<polygon fill="#ffffff" stroke="#ff0000" points="1122,-252 1122,-271 1248,-271 1248,-252 1122,-252"/>
+<text text-anchor="middle" x="1185" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/runtime/module.h</text>
+</a>
</g>
-<!-- Node43->Node10 -->
+</g>
+<!-- Node42->Node44 -->
<g id="edge73" class="edge">
-<title>Node43->Node10</title>
-<path fill="none" stroke="#191970" d="M2435.426,-251.7172C2424.3526,-241.9476 2407.658,-226.1048 2396,-210 2381.661,-190.1915 2351.5451,-127.3894 2336.6791,-95.6887"/>
-<polygon fill="#191970" stroke="#191970" points="2339.8297,-94.1633 2332.4277,-86.583 2333.487,-97.1248 2339.8297,-94.1633"/>
+<title>Node42->Node44</title>
+<path fill="none" stroke="#191970" d="M1207.8433,-313.2967C1201.2979,-303.5672 1194.1544,-290.8675 1189.3292,-280.4784"/>
+<polygon fill="#191970" stroke="#191970" points="1192.4745,-278.928 1185.3847,-271.055 1186.0174,-281.6309 1192.4745,-278.928"/>
+</g>
+<!-- Node42->Node46 -->
+<g id="edge86" class="edge">
+<title>Node42->Node46</title>
+<path fill="none" stroke="#191970" d="M1280.2552,-322.4952C1413.4287,-308.7681 1736.578,-275.4589 1839.7617,-264.823"/>
+<polygon fill="#191970" stroke="#191970" points="1840.2834,-268.2879 1849.8718,-263.7809 1839.5656,-261.3248 1840.2834,-268.2879"/>
</g>
-<!-- Node43->Node11 -->
+<!-- Node47 -->
+<g id="node32" class="node">
+<title>Node47</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1342.5,-252 1342.5,-271 1383.5,-271 1383.5,-252 1342.5,-252"/>
+<text text-anchor="middle" x="1363" y="-259" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tuple</text>
+</g>
+<!-- Node42->Node47 -->
+<g id="edge89" class="edge">
+<title>Node42->Node47</title>
+<path fill="none" stroke="#191970" d="M1253.6432,-313.4639C1277.6208,-302.0702 1310.3193,-286.5327 1333.7017,-275.4219"/>
+<polygon fill="#191970" stroke="#191970" points="1335.2588,-278.5571 1342.7888,-271.1039 1332.2544,-272.2346 1335.2588,-278.5571"/>
+</g>
+<!-- Node43->Node18 -->
<g id="edge70" class="edge">
-<title>Node43->Node11</title>
-<path fill="none" stroke="#191970" d="M2445.4947,-251.8625C2442.2404,-227.4168 2437.1462,-162.1619 2468,-123 2513.982,-64.6362 2596.8364,-37.7551 2657.4961,-25.5036"/>
-<polygon fill="#191970" stroke="#191970" points="2658.2546,-28.9219 2667.4103,-23.5906 2656.9283,-22.0487 2658.2546,-28.9219"/>
+<title>Node43->Node18</title>
+<path fill="none" stroke="#191970" d="M357.8859,-246.2067C360.0559,-219.3817 367.4182,-162.9112 392,-123 417.0773,-82.2843 462.5709,-48.7498 490.9317,-30.4809"/>
+<polygon fill="#191970" stroke="#191970" points="492.8901,-33.3839 499.4902,-25.0961 489.1622,-27.4591 492.8901,-33.3839"/>
</g>
-<!-- Node43->Node16 -->
-<g id="edge75" class="edge">
-<title>Node43->Node16</title>
-<path fill="none" stroke="#191970" d="M2409.3472,-251.9514C2315.7784,-228.3876 2065.0225,-166.2486 1854,-123 1713.8429,-94.2751 1679.1235,-83.4333 1537,-67 1187.2767,-26.5626 759.6895,-17.6509 640.2969,-15.895"/>
-<polygon fill="#191970" stroke="#191970" points="640.0762,-12.3917 630.0279,-15.7507 639.9778,-19.391 640.0762,-12.3917"/>
+<!-- Node43->Node26 -->
+<g id="edge68" class="edge">
+<title>Node43->Node26</title>
+<path fill="none" stroke="#191970" d="M420.0916,-252.9615C537.9904,-237.1615 799.8232,-202.8072 1021,-179 1192.3778,-160.5531 1397.0039,-143.416 1483.7768,-136.3754"/>
+<polygon fill="#191970" stroke="#191970" points="1484.0793,-139.8625 1493.7645,-135.5674 1483.5148,-132.8853 1484.0793,-139.8625"/>
</g>
-<!-- Node43->Node20 -->
+<!-- Node43->Node32 -->
+<g id="edge69" class="edge">
+<title>Node43->Node32</title>
+<path fill="none" stroke="#191970" d="M367.7962,-246.2548C384.6524,-222.4524 417.1532,-176.5584 435.1762,-151.1084"/>
+<polygon fill="#191970" stroke="#191970" points="438.1824,-152.9194 441.1054,-142.7358 432.4697,-148.8739 438.1824,-152.9194"/>
+</g>
+<!-- Node44->Node10 -->
<g id="edge77" class="edge">
-<title>Node43->Node20</title>
-<path fill="none" stroke="#191970" d="M2391.2294,-251.994C2291.9186,-235.3255 2077.7809,-200.5521 1896,-179 1711.0329,-157.0702 1488.2475,-140.9291 1404.7605,-135.2381"/>
-<polygon fill="#191970" stroke="#191970" points="1404.8135,-131.7337 1394.5999,-134.5503 1404.3407,-138.7178 1404.8135,-131.7337"/>
+<title>Node44->Node10</title>
+<path fill="none" stroke="#191970" d="M1223.0205,-251.9213C1249.7975,-243.8518 1285.4596,-230.3241 1312,-210 1350.5334,-180.4918 1335.1311,-145.7555 1378,-123 1445.8542,-86.9818 1965.2759,-79.1215 2156.0289,-77.4438"/>
+<polygon fill="#191970" stroke="#191970" points="2156.2493,-80.9421 2166.2192,-77.3573 2156.1898,-73.9424 2156.2493,-80.9421"/>
</g>
-<!-- Node43->Node23 -->
+<!-- Node44->Node11 -->
<g id="edge74" class="edge">
-<title>Node43->Node23</title>
-<path fill="none" stroke="#191970" d="M2473.6157,-251.9466C2536.9151,-229.226 2696.5198,-171.9377 2768.6333,-146.0534"/>
-<polygon fill="#191970" stroke="#191970" points="2769.9795,-149.2889 2778.2091,-142.6163 2767.6146,-142.7005 2769.9795,-149.2889"/>
+<title>Node44->Node11</title>
+<path fill="none" stroke="#191970" d="M1248.3549,-254.632C1274.5465,-251.8533 1305.2269,-248.6764 1333,-246 1514.6391,-228.4958 1561.0062,-233.2468 1742,-210 1953.6074,-182.8211 2596.39,-68.4155 2816.2918,-28.951"/>
+<polygon fill="#191970" stroke="#191970" points="2817.2161,-32.3411 2826.4403,-27.129 2815.9791,-25.4512 2817.2161,-32.3411"/>
</g>
-<!-- Node43->Node33 -->
-<g id="edge71" class="edge">
-<title>Node43->Node33</title>
-<path fill="none" stroke="#191970" d="M2510.1663,-252.5336C2597.2105,-240.1777 2753.6929,-217.9652 2845.7564,-204.8969"/>
-<polygon fill="#191970" stroke="#191970" points="2846.4225,-208.3375 2855.8314,-203.4667 2845.4387,-201.407 2846.4225,-208.3375"/>
+<!-- Node44->Node16 -->
+<g id="edge79" class="edge">
+<title>Node44->Node16</title>
+<path fill="none" stroke="#191970" d="M1220.6885,-251.9314C1252.4442,-242.8663 1299.7946,-227.9832 1339,-210 1407.6578,-178.5073 1412.6383,-144.6671 1485,-123 1657.3934,-71.3807 2114.2761,-96.1303 2294,-87 2779.2832,-62.3466 3370.0132,-26.335 3513.481,-17.508"/>
+<polygon fill="#191970" stroke="#191970" points="3514.0076,-20.9823 3523.7735,-16.8741 3513.5772,-13.9955 3514.0076,-20.9823"/>
</g>
-<!-- Node43->Node25 -->
-<g id="edge72" class="edge">
-<title>Node43->Node25</title>
-<path fill="none" stroke="#191970" d="M2454.0653,-251.8416C2469.7163,-230.4463 2507.5173,-178.7715 2527.7298,-151.1407"/>
-<polygon fill="#191970" stroke="#191970" points="2530.7735,-152.908 2533.8527,-142.7705 2525.1237,-148.7751 2530.7735,-152.908"/>
+<!-- Node44->Node20 -->
+<g id="edge81" class="edge">
+<title>Node44->Node20</title>
+<path fill="none" stroke="#191970" d="M1248.019,-254.4001C1297.7624,-247.3042 1368.173,-233.9043 1426,-210 1449.4695,-200.2983 1450.2856,-188.0866 1474,-179 1520.02,-161.3666 1662.5777,-143.9524 1728.2487,-136.6199"/>
+<polygon fill="#191970" stroke="#191970" points="1728.9164,-140.0675 1738.4716,-135.4907 1728.1478,-133.1098 1728.9164,-140.0675"/>
</g>
-<!-- Node43->Node36 -->
+<!-- Node44->Node28 -->
+<g id="edge75" class="edge">
+<title>Node44->Node28</title>
+<path fill="none" stroke="#191970" d="M1171.8186,-251.9005C1158.8718,-242.4718 1138.6876,-227.7725 1121.9863,-215.6096"/>
+<polygon fill="#191970" stroke="#191970" points="1123.7709,-212.5795 1113.6269,-209.5218 1119.65,-218.238 1123.7709,-212.5795"/>
+</g>
+<!-- Node44->Node24 -->
<g id="edge76" class="edge">
-<title>Node43->Node36</title>
-<path fill="none" stroke="#191970" d="M2510.106,-257.8373C2611.7758,-251.4182 2817.952,-236.2596 2991,-210 3106.3353,-192.4982 3240.0173,-161.7724 3309.8561,-144.9097"/>
-<polygon fill="#191970" stroke="#191970" points="3310.7937,-148.2838 3319.6871,-142.5256 3309.1439,-141.481 3310.7937,-148.2838"/>
+<title>Node44->Node24</title>
+<path fill="none" stroke="#191970" d="M1199.8096,-251.6651C1212.1085,-242.5276 1228.7237,-227.6884 1236,-210 1243.7424,-191.1785 1237.9344,-167.9535 1231.8055,-151.9613"/>
+<polygon fill="#191970" stroke="#191970" points="1234.9769,-150.474 1227.8708,-142.6156 1228.5254,-153.1902 1234.9769,-150.474"/>
</g>
-<!-- Node43->Node41 -->
+<!-- Node44->Node31 -->
<g id="edge78" class="edge">
-<title>Node43->Node41</title>
-<path fill="none" stroke="#191970" d="M2421.0965,-271.0053C2389.874,-281.2643 2336.5762,-297.841 2294.1424,-310.5654"/>
-<polygon fill="#191970" stroke="#191970" points="2293.0193,-307.2479 2284.4396,-313.4639 2295.023,-313.955 2293.0193,-307.2479"/>
-</g>
-<!-- Node47->Node8 -->
-<g id="edge93" class="edge">
-<title>Node47->Node8</title>
-<path fill="none" stroke="#191970" d="M1753.1316,-380.3051C1721.3691,-349.1013 1621.5151,-251.0036 1581.1665,-211.3646"/>
-<polygon fill="#191970" stroke="#191970" points="1583.5144,-208.7647 1573.928,-204.2534 1578.6087,-213.7582 1583.5144,-208.7647"/>
-</g>
-<!-- Node48 -->
-<g id="node33" class="node">
-<title>Node48</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="2852,-319 2852,-338 2912,-338 2912,-319 2852,-319"/>
-<text text-anchor="middle" x="2882" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">iostream</text>
+<title>Node44->Node31</title>
+<path fill="none" stroke="#191970" d="M1121.9568,-256.9796C1072.7247,-251.317 1003.8641,-238.5862 950,-210 922.1633,-195.2268 897.0434,-168.204 882.3983,-150.4222"/>
+<polygon fill="#191970" stroke="#191970" points="885.0643,-148.1519 876.0843,-142.5295 879.5981,-152.5247 885.0643,-148.1519"/>
</g>
-<!-- Node47->Node48 -->
-<g id="edge94" class="edge">
-<title>Node47->Node48</title>
-<path fill="none" stroke="#191970" d="M1828.6285,-386.4955C1970.9606,-378.882 2318.6813,-360.2111 2610,-344 2692.3499,-339.4175 2788.7136,-333.8862 2841.7923,-330.8249"/>
-<polygon fill="#191970" stroke="#191970" points="2842.0322,-334.3169 2851.8139,-330.2465 2841.6288,-327.3286 2842.0322,-334.3169"/>
-</g>
-<!-- Node49->Node4 -->
-<g id="edge107" class="edge">
-<title>Node49->Node4</title>
-<path fill="none" stroke="#191970" d="M2443.9203,-555.6473C2291.7672,-546.7159 1749.9797,-514.9129 1580.8301,-504.9837"/>
-<polygon fill="#191970" stroke="#191970" points="1580.8906,-501.4814 1570.7026,-504.3893 1580.4803,-508.4693 1580.8906,-501.4814"/>
-</g>
-<!-- Node49->Node5 -->
-<g id="edge108" class="edge">
-<title>Node49->Node5</title>
-<path fill="none" stroke="#191970" d="M2443.9429,-554.9311C2371.5336,-549.045 2214.1918,-534.7031 2083,-512 2044.3325,-505.3085 2035.7199,-498.3814 1997,-492 1851.8263,-468.0741 1679.0651,-455.0126 1589.8909,-449.3941"/>
-<polygon fill="#191970" stroke="#191970" points="1589.8963,-445.8878 1579.6987,-448.7615 1589.4626,-452.8744 1589.8963,-445.8878"/>
+<!-- Node44->Node32 -->
+<g id="edge80" class="edge">
+<title>Node44->Node32</title>
+<path fill="none" stroke="#191970" d="M1130.5073,-251.9989C994.8694,-228.3497 643.1093,-167.0184 504.9259,-142.9253"/>
+<polygon fill="#191970" stroke="#191970" points="505.4123,-139.4574 494.9597,-141.1877 504.2099,-146.3534 505.4123,-139.4574"/>
</g>
-<!-- Node49->Node10 -->
-<g id="edge111" class="edge">
-<title>Node49->Node10</title>
-<path fill="none" stroke="#191970" d="M2494.7212,-548.2786C2538.9508,-506.9742 2703.69,-340.7348 2677,-179 2672.7207,-153.0683 2678.2809,-139.7168 2658,-123 2614.38,-87.0457 2467.1999,-94.6257 2397.5861,-87.4301"/>
-<polygon fill="#191970" stroke="#191970" points="2397.8539,-83.9369 2387.503,-86.1973 2397.0043,-90.8851 2397.8539,-83.9369"/>
+<!-- Node44->Node42 -->
+<g id="edge82" class="edge">
+<title>Node44->Node42</title>
+<path fill="none" stroke="#191970" d="M1195.1686,-271.055C1201.5951,-279.6613 1209.3301,-292.6846 1215.0772,-304.1564"/>
+<polygon fill="#191970" stroke="#191970" points="1211.9493,-305.7297 1219.3649,-313.2967 1218.2866,-302.7568 1211.9493,-305.7297"/>
</g>
-<!-- Node49->Node16 -->
-<g id="edge112" class="edge">
-<title>Node49->Node16</title>
-<path fill="none" stroke="#191970" d="M2443.9298,-555.9245C2255.5787,-545.7207 1457.9197,-497.3968 1231,-400 1004.3302,-302.7105 1007.0698,-178.4169 787,-67 738.8161,-42.6055 677.3159,-28.1212 640.3826,-20.9993"/>
-<polygon fill="#191970" stroke="#191970" points="640.6717,-17.493 630.1999,-19.1029 639.39,-24.3747 640.6717,-17.493"/>
+<!-- Node48->Node8 -->
+<g id="edge97" class="edge">
+<title>Node48->Node8</title>
+<path fill="none" stroke="#191970" d="M3174.1958,-380.4054C3141.2874,-354.1985 3044.8289,-281.0293 2952,-246 2874.2542,-216.6624 2778.8298,-203.9349 2716.7777,-198.4812"/>
+<polygon fill="#191970" stroke="#191970" points="2716.9916,-194.987 2706.7334,-197.6364 2716.4049,-201.9623 2716.9916,-194.987"/>
</g>
-<!-- Node49->Node21 -->
-<g id="edge109" class="edge">
-<title>Node49->Node21</title>
-<path fill="none" stroke="#191970" d="M2505.6374,-548.3446C2553.5779,-527.0741 2672.5302,-474.9703 2774,-436 2933.902,-374.5883 3125.8788,-310.3116 3218.9411,-279.7421"/>
-<polygon fill="#191970" stroke="#191970" points="3220.3026,-282.9791 3228.7136,-276.5366 3218.1208,-276.3278 3220.3026,-282.9791"/>
+<!-- Node49 -->
+<g id="node34" class="node">
+<title>Node49</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="3249,-319 3249,-338 3309,-338 3309,-319 3249,-319"/>
+<text text-anchor="middle" x="3279" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">iostream</text>
</g>
-<!-- Node49->Node28 -->
-<g id="edge110" class="edge">
-<title>Node49->Node28</title>
-<path fill="none" stroke="#191970" d="M2443.659,-551.7944C2350.4199,-536.3129 2114.4703,-490.5556 1938,-400 1851.7936,-355.7632 1816.5826,-354.1785 1758,-277 1743.7626,-258.2432 1736.4864,-231.7877 1732.9702,-213.9347"/>
-<polygon fill="#191970" stroke="#191970" points="1736.4158,-213.3196 1731.2381,-204.0761 1729.5214,-214.531 1736.4158,-213.3196"/>
+<!-- Node48->Node49 -->
+<g id="edge98" class="edge">
+<title>Node48->Node49</title>
+<path fill="none" stroke="#191970" d="M3200.5313,-380.3906C3215.4094,-370.5519 3238.7504,-355.1167 3256.1128,-343.6351"/>
+<polygon fill="#191970" stroke="#191970" points="3258.1602,-346.4773 3264.5708,-338.0419 3254.299,-340.6385 3258.1602,-346.4773"/>
</g>
<!-- Node50->Node4 -->
-<g id="edge130" class="edge">
+<g id="edge111" class="edge">
<title>Node50->Node4</title>
-<path fill="none" stroke="#191970" d="M789.5913,-841.6545C827.1796,-834.8719 879.4464,-822.7911 922,-803 1020.7535,-757.071 1025.2064,-711.82 1121,-660 1248.0302,-591.2825 1411.4245,-537.6361 1487.5053,-514.4669"/>
-<polygon fill="#191970" stroke="#191970" points="1488.6545,-517.776 1497.2137,-511.5318 1486.6287,-511.0755 1488.6545,-517.776"/>
+<path fill="none" stroke="#191970" d="M2438,-548.2455C2438,-540.9382 2438,-530.6944 2438,-521.7046"/>
+<polygon fill="#191970" stroke="#191970" points="2441.5001,-521.6426 2438,-511.6427 2434.5001,-521.6427 2441.5001,-521.6426"/>
</g>
<!-- Node50->Node5 -->
-<g id="edge131" class="edge">
+<g id="edge112" class="edge">
<title>Node50->Node5</title>
-<path fill="none" stroke="#191970" d="M753.5753,-839.2257C817.7432,-793.4438 1098.2403,-597.9915 1355,-492 1392.1319,-476.6718 1435.8335,-465.1792 1470.2763,-457.5149"/>
-<polygon fill="#191970" stroke="#191970" points="1471.1634,-460.9039 1480.1902,-455.3571 1469.6746,-454.064 1471.1634,-460.9039"/>
+<path fill="none" stroke="#191970" d="M2451.2342,-548.208C2462.1653,-539.6055 2477.5323,-526.2643 2488,-512 2498.6236,-497.5233 2506.9916,-478.8269 2512.3422,-465.0313"/>
+<polygon fill="#191970" stroke="#191970" points="2515.6485,-466.1812 2515.833,-455.588 2509.0827,-463.7541 2515.6485,-466.1812"/>
+</g>
+<!-- Node50->Node10 -->
+<g id="edge115" class="edge">
+<title>Node50->Node10</title>
+<path fill="none" stroke="#191970" d="M2397.6083,-551.5358C2343.9896,-540.3903 2256,-512.0395 2256,-446 2256,-446 2256,-446 2256,-390 2256,-325.6982 2277.6732,-309.8423 2270,-246 2263.2854,-190.1329 2254.8643,-177.2704 2240,-123 2237.6081,-114.2669 2234.7297,-104.6761 2232.2066,-96.5223"/>
+<polygon fill="#191970" stroke="#191970" points="2235.4972,-95.3184 2229.165,-86.824 2228.8179,-97.4132 2235.4972,-95.3184"/>
</g>
<!-- Node50->Node16 -->
-<g id="edge158" class="edge">
+<g id="edge116" class="edge">
<title>Node50->Node16</title>
-<path fill="none" stroke="#191970" d="M690.1448,-839.7948C638.1523,-829.8714 560.3527,-814.0202 532,-803 484.2467,-784.4391 375.0305,-714.3303 337,-680 312.4511,-657.8396 307.6304,-650.6153 288,-624 253.2962,-576.9477 248.4143,-562.5279 219,-512 187.8777,-458.5381 152,-451.8609 152,-390 152,-390 152,-390 152,-133 152,-98.4675 163.9121,-85.6114 193,-67 256.4113,-26.4273 489.4212,-17.793 575.6407,-15.9768"/>
-<polygon fill="#191970" stroke="#191970" points="575.9426,-19.4718 585.8731,-15.7793 575.8074,-12.4731 575.9426,-19.4718"/>
-</g>
-<!-- Node50->Node20 -->
-<g id="edge159" class="edge">
-<title>Node50->Node20</title>
-<path fill="none" stroke="#191970" d="M711.6481,-839.4273C633.3463,-812.5045 416.561,-734.5376 366,-680 344.7797,-657.1107 342,-645.2125 342,-614 342,-614 342,-614 342,-558 342,-440.3901 359.9946,-397.3043 442,-313 570.3651,-181.0363 1186.0047,-142.1724 1337.3416,-134.5395"/>
-<polygon fill="#191970" stroke="#191970" points="1337.6067,-138.0308 1347.4224,-134.0431 1337.2623,-131.0393 1337.6067,-138.0308"/>
-</g>
-<!-- Node51 -->
-<g id="node36" class="node">
-<title>Node51</title>
-<g id="a_node36"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
-<polygon fill="#ffffff" stroke="#000000" points="2382.5,-778 2382.5,-797 2465.5,-797 2465.5,-778 2382.5,-778"/>
-<text text-anchor="middle" x="2424" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/tir/expr.h</text>
-</a>
+<path fill="none" stroke="#191970" d="M2478.0524,-556.3802C2591.3481,-551.5489 2912.5228,-536.0644 3015,-512 3145.0798,-481.4537 3176.8806,-464.3185 3294,-400 3331.4064,-379.4575 3342.6196,-374.952 3372,-344 3464.6953,-246.3461 3521.8674,-89.6875 3539.8527,-35.0519"/>
+<polygon fill="#191970" stroke="#191970" points="3543.2706,-35.8568 3543.0107,-25.2651 3536.6088,-33.7071 3543.2706,-35.8568"/>
</g>
+<!-- Node50->Node33 -->
+<g id="edge113" class="edge">
+<title>Node50->Node33</title>
+<path fill="none" stroke="#191970" d="M2397.7951,-550.1934C2357.8815,-542.0632 2295.1438,-528.2552 2242,-512 2151.0682,-484.1866 2131.3528,-468.5308 2042,-436 1880.2108,-377.0972 1687.5577,-311.1702 1595.3876,-279.8864"/>
+<polygon fill="#191970" stroke="#191970" points="1596.3132,-276.5046 1585.7189,-276.6067 1594.0646,-283.1336 1596.3132,-276.5046"/>
</g>
-<!-- Node50->Node51 -->
-<g id="edge132" class="edge">
-<title>Node50->Node51</title>
-<path fill="none" stroke="#191970" d="M789.6811,-846.4856C832.6396,-844.3523 896.4087,-841.2835 952,-839 1508.051,-816.1593 2182.5281,-794.9332 2372.1962,-789.0843"/>
-<polygon fill="#191970" stroke="#191970" points="2372.5421,-792.5754 2382.4295,-788.7691 2372.3265,-785.5787 2372.5421,-792.5754"/>
+<!-- Node50->Node34 -->
+<g id="edge114" class="edge">
+<title>Node50->Node34</title>
+<path fill="none" stroke="#191970" d="M2478.2467,-556.7489C2629.3732,-551.1291 3159.5224,-522.8124 3261,-400 3307.9002,-343.2394 3045.9446,-242.9639 2946.2803,-207.4283"/>
+<polygon fill="#191970" stroke="#191970" points="2947.1999,-204.041 2936.6052,-204.0005 2944.8623,-210.6391 2947.1999,-204.041"/>
</g>
-<!-- Node51->Node3 -->
-<g id="edge133" class="edge">
-<title>Node51->Node3</title>
-<path fill="none" stroke="#191970" d="M2382.3347,-779.0643C2370.5928,-776.7294 2357.8035,-774.2262 2346,-772 2028.3614,-712.0915 1645.4448,-645.7067 1510.7597,-622.5334"/>
-<polygon fill="#191970" stroke="#191970" points="1511.1927,-619.0566 1500.7442,-620.8112 1510.0064,-625.9553 1511.1927,-619.0566"/>
+<!-- Node51->Node4 -->
+<g id="edge134" class="edge">
+<title>Node51->Node4</title>
+<path fill="none" stroke="#191970" d="M3700.8694,-839.4526C3702.4958,-815.8358 3703.5029,-753.8573 3674,-716 3638.0693,-669.8949 3610.6989,-677.7293 3555,-660 3157.8057,-533.5707 2649.0134,-508.1548 2488.7004,-503.178"/>
+<polygon fill="#191970" stroke="#191970" points="2488.7495,-499.678 2478.6497,-502.8789 2488.5412,-506.6749 2488.7495,-499.678"/>
</g>
<!-- Node51->Node5 -->
<g id="edge135" class="edge">
<title>Node51->Node5</title>
-<path fill="none" stroke="#191970" d="M2382.3427,-786.4723C2284.516,-783.5038 2032.7503,-772.6326 1826,-736 1638.7315,-702.8192 1528.5497,-775.0587 1413,-624 1368.9764,-566.4477 1460.882,-492.7205 1506.4309,-461.2928"/>
-<polygon fill="#191970" stroke="#191970" points="1508.5443,-464.0889 1514.8686,-455.5886 1504.6238,-458.2897 1508.5443,-464.0889"/>
-</g>
-<!-- Node51->Node8 -->
-<g id="edge134" class="edge">
-<title>Node51->Node8</title>
-<path fill="none" stroke="#191970" d="M2382.1971,-787.1452C2180.5849,-785.2461 1313.71,-774.8658 1200,-736 1159.2754,-722.0804 1140.7622,-718.2322 1121,-680 1039.5367,-522.3995 1157.7446,-443.4332 1278,-313 1336.6152,-249.4239 1434.5214,-218.9543 1499.1781,-205.0895"/>
-<polygon fill="#191970" stroke="#191970" points="1500.1748,-208.4575 1509.2585,-203.0043 1498.7568,-201.6026 1500.1748,-208.4575"/>
-</g>
-<!-- Node51->Node11 -->
-<g id="edge136" class="edge">
-<title>Node51->Node11</title>
-<path fill="none" stroke="#191970" d="M2465.5269,-784.28C2509.9291,-780.9091 2582.4106,-775.6132 2645,-772 2733.1661,-766.9103 3361.143,-777.6827 3439,-736 3488.5097,-709.4937 3738,-384.6586 3738,-328.5 3738,-328.5 3738,-328.5 3738,-261.5 3738,-69.8296 3040.2262,-26.7898 2806.9378,-17.7563"/>
-<polygon fill="#191970" stroke="#191970" points="2806.9701,-14.2552 2796.8453,-17.3756 2806.7062,-21.2502 2806.9701,-14.2552"/>
+<path fill="none" stroke="#191970" d="M3730.3547,-839.4735C3774.1852,-823.6031 3850,-787.2929 3850,-726 3850,-726 3850,-726 3850,-670 3850,-406.298 3543.3287,-539.8269 3284,-492 3148.9783,-467.0985 2734.4634,-452.4505 2578.8557,-447.7079"/>
+<polygon fill="#191970" stroke="#191970" points="2578.6472,-444.2001 2568.5461,-447.3966 2578.4359,-451.1969 2578.6472,-444.2001"/>
</g>
<!-- Node51->Node16 -->
-<g id="edge155" class="edge">
+<g id="edge162" class="edge">
<title>Node51->Node16</title>
-<path fill="none" stroke="#191970" d="M2382.466,-786.5336C2181.3641,-781.7665 1307.4253,-760.0193 1036,-736 857.6257,-720.2151 808.3567,-731.9946 637,-680 423.7649,-615.2983 228,-612.8352 228,-390 228,-390 228,-390 228,-133 228,-101.7875 227.7859,-86.6952 252,-67 301.2779,-26.9184 497.0435,-18.0178 575.3647,-16.0526"/>
-<polygon fill="#191970" stroke="#191970" points="575.6917,-19.5461 585.6092,-15.8188 575.5319,-12.5479 575.6917,-19.5461"/>
+<path fill="none" stroke="#191970" d="M3738.9541,-839.4814C3812.3901,-820.3935 3964,-775.0469 3964,-726 3964,-726 3964,-726 3964,-133 3964,-98.6999 3952.6781,-85.8165 3924,-67 3867.2941,-29.7937 3659.3886,-19.1573 3578.5019,-16.3912"/>
+<polygon fill="#191970" stroke="#191970" points="3578.5082,-12.8896 3568.4003,-16.0645 3578.2819,-19.886 3578.5082,-12.8896"/>
</g>
-<!-- Node51->Node18 -->
-<g id="edge157" class="edge">
-<title>Node51->Node18</title>
-<path fill="none" stroke="#191970" d="M2465.5259,-784.2629C2509.9273,-780.8777 2582.4082,-775.57 2645,-772 2735.9401,-766.8131 3378.2146,-766.6246 3464,-736 3666.7566,-663.6178 3852,-661.2892 3852,-446 3852,-446 3852,-446 3852,-133 3852,-101.7875 3850.9503,-88.1544 3828,-67 3805.4447,-46.2097 3720.5546,-29.0384 3672.9271,-20.7865"/>
-<polygon fill="#191970" stroke="#191970" points="3673.2478,-17.291 3662.8033,-19.0696 3672.0773,-24.1924 3673.2478,-17.291"/>
-</g>
-<!-- Node51->Node21 -->
-<g id="edge137" class="edge">
-<title>Node51->Node21</title>
-<path fill="none" stroke="#191970" d="M2465.5394,-784.4814C2509.952,-781.2787 2582.4421,-776.1219 2645,-772 2709.8714,-767.7257 3181.2207,-780.0875 3229,-736 3358.8142,-616.2165 3304.1553,-366.376 3282.3802,-286.5751"/>
-<polygon fill="#191970" stroke="#191970" points="3285.7328,-285.5676 3279.6658,-276.8819 3278.9921,-287.4553 3285.7328,-285.5676"/>
-</g>
-<!-- Node51->Node22 -->
-<g id="edge152" class="edge">
-<title>Node51->Node22</title>
-<path fill="none" stroke="#191970" d="M2465.5354,-784.4203C2509.9447,-781.1665 2582.4321,-775.9675 2645,-772 2786.0544,-763.0555 3150.2624,-792.0759 3280,-736 3505.2469,-638.6426 3469.6735,-246.2434 3457.8095,-152.9664"/>
-<polygon fill="#191970" stroke="#191970" points="3461.2584,-152.3498 3456.4694,-142.8991 3454.3196,-153.2736 3461.2584,-152.3498"/>
-</g>
-<!-- Node51->Node28 -->
-<g id="edge140" class="edge">
-<title>Node51->Node28</title>
-<path fill="none" stroke="#191970" d="M2435.026,-777.9897C2473.0937,-744.0296 2593.4307,-626.5846 2533,-548 2376.8562,-344.9493 2208.8722,-506.6818 1976,-400 1887.9097,-359.6447 1867.0444,-342.8873 1796,-277 1774.5837,-257.1383 1754.2734,-230.0641 1741.9798,-212.4355"/>
-<polygon fill="#191970" stroke="#191970" points="1744.8556,-210.4404 1736.3184,-204.1661 1739.0795,-214.3949 1744.8556,-210.4404"/>
-</g>
-<!-- Node51->Node33 -->
-<g id="edge139" class="edge">
-<title>Node51->Node33</title>
-<path fill="none" stroke="#191970" d="M2465.8821,-784.7784C2571.5519,-777.6731 2846.9007,-757.6101 2936,-736 3001.93,-720.0094 3028.2959,-726.1733 3078,-680 3217.8135,-550.1184 3010.2933,-295.6081 2940.5233,-217.7092"/>
-<polygon fill="#191970" stroke="#191970" points="2942.7733,-214.9792 2933.4688,-209.9119 2937.5825,-219.6756 2942.7733,-214.9792"/>
-</g>
-<!-- Node51->Node36 -->
-<g id="edge156" class="edge">
-<title>Node51->Node36</title>
-<path fill="none" stroke="#191970" d="M2465.5375,-784.4526C2509.9485,-781.2258 2582.4373,-776.0491 2645,-772 2712.4219,-767.6365 3193.063,-769.0331 3252,-736 3460.2821,-619.2617 3384.658,-243.1148 3362.9974,-152.6848"/>
-<polygon fill="#191970" stroke="#191970" points="3366.3783,-151.7762 3360.5932,-142.9002 3359.5805,-153.4465 3366.3783,-151.7762"/>
-</g>
-<!-- Node51->Node42 -->
-<g id="edge138" class="edge">
-<title>Node51->Node42</title>
-<path fill="none" stroke="#191970" d="M2465.5278,-784.2945C2509.9307,-780.9357 2582.4128,-775.6498 2645,-772 2730.947,-766.988 3346.345,-782.1872 3419,-736 3434.8967,-725.8944 3567.532,-452.2845 3577,-436 3586.5433,-419.586 3594.6752,-418.2247 3600,-400 3610.844,-362.8851 3609.8068,-350.4024 3600,-313 3597.4772,-303.3784 3592.7069,-293.6592 3587.7528,-285.2958"/>
-<polygon fill="#191970" stroke="#191970" points="3590.7007,-283.4089 3582.4026,-276.8216 3584.7817,-287.1459 3590.7007,-283.4089"/>
-</g>
-<!-- Node51->Node45 -->
-<g id="edge154" class="edge">
-<title>Node51->Node45</title>
-<path fill="none" stroke="#191970" d="M2382.4426,-786.9132C2188.847,-784.0179 1374.2138,-770.0043 1122,-736 1083.1097,-730.7567 1074.6316,-722.8958 1036,-716 936.1626,-698.179 647.6831,-706.7127 589,-624 492.8976,-488.5454 740.2251,-325.2905 822.4776,-276.1679"/>
-<polygon fill="#191970" stroke="#191970" points="824.3909,-279.1029 831.2229,-271.0051 820.8322,-273.0749 824.3909,-279.1029"/>
-</g>
-<!-- Node51->Node48 -->
-<g id="edge153" class="edge">
-<title>Node51->Node48</title>
-<path fill="none" stroke="#191970" d="M2465.64,-785.5481C2594.4791,-777.0678 2978,-732.4684 2978,-502 2978,-502 2978,-502 2978,-446 2978,-401.0753 2935.3952,-363.8602 2906.9508,-344.0203"/>
-<polygon fill="#191970" stroke="#191970" points="2908.5383,-340.8705 2898.2851,-338.2016 2904.636,-346.6819 2908.5383,-340.8705"/>
+<!-- Node51->Node20 -->
+<g id="edge163" class="edge">
+<title>Node51->Node20</title>
+<path fill="none" stroke="#191970" d="M3650.2393,-848.3634C3426.0136,-845.0078 2508.7385,-825.9335 2238,-736 1952.1711,-641.0538 1800.2229,-244.4079 1768.3692,-152.2067"/>
+<polygon fill="#191970" stroke="#191970" points="1771.6073,-150.8572 1765.079,-142.5126 1764.9787,-153.107 1771.6073,-150.8572"/>
</g>
<!-- Node52 -->
<g id="node37" class="node">
<title>Node52</title>
-<g id="a_node37"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n-dimensional array, to represent a memory buffer. ">
-<polygon fill="#ffffff" stroke="#000000" points="1834.5,-716.5 1834.5,-735.5 1923.5,-735.5 1923.5,-716.5 1834.5,-716.5"/>
-<text text-anchor="middle" x="1879" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/tir/buffer.h</text>
+<g id="a_node37"><a xlink:href="tir_2expr_8h.html" target="_top" xlink:title="TIR expressions. ">
+<polygon fill="#ffffff" stroke="#000000" points="2697.5,-778 2697.5,-797 2780.5,-797 2780.5,-778 2697.5,-778"/>
+<text text-anchor="middle" x="2739" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/tir/expr.h</text>
</a>
</g>
</g>
<!-- Node51->Node52 -->
-<g id="edge141" class="edge">
+<g id="edge136" class="edge">
<title>Node51->Node52</title>
-<path fill="none" stroke="#191970" d="M2382.1397,-782.7763C2284.7083,-771.7818 2042.7822,-744.4818 1933.7825,-732.1819"/>
-<polygon fill="#191970" stroke="#191970" points="1933.9878,-728.6829 1923.6584,-731.0394 1933.2028,-735.6388 1933.9878,-728.6829"/>
+<path fill="none" stroke="#191970" d="M3650.3561,-845.823C3485.6525,-835.2827 2958.2327,-801.53 2790.6382,-790.8046"/>
+<polygon fill="#191970" stroke="#191970" points="2790.7943,-787.3076 2780.5912,-790.1617 2790.3472,-794.2933 2790.7943,-787.3076"/>
</g>
-<!-- Node53 -->
-<g id="node38" class="node">
-<title>Node53</title>
-<g id="a_node38"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR. ">
-<polygon fill="#ffffff" stroke="#000000" points="1130.5,-660.5 1130.5,-679.5 1207.5,-679.5 1207.5,-660.5 1130.5,-660.5"/>
-<text text-anchor="middle" x="1169" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/tir/var.h</text>
-</a>
+<!-- Node52->Node3 -->
+<g id="edge137" class="edge">
+<title>Node52->Node3</title>
+<path fill="none" stroke="#191970" d="M2697.3054,-785.4518C2606.3819,-780.4769 2393.2009,-765.9062 2328,-736 2282.2382,-715.0101 2284.0191,-690.5481 2244,-660 2229.2017,-648.7039 2211.6076,-637.4274 2197.5161,-628.8664"/>
+<polygon fill="#191970" stroke="#191970" points="2199.2033,-625.7972 2188.8263,-623.6599 2195.6056,-631.8019 2199.2033,-625.7972"/>
</g>
+<!-- Node52->Node5 -->
+<g id="edge139" class="edge">
+<title>Node52->Node5</title>
+<path fill="none" stroke="#191970" d="M2732.6531,-777.6479C2702.2254,-730.4157 2571.1035,-526.8789 2530.8187,-464.3459"/>
+<polygon fill="#191970" stroke="#191970" points="2533.5206,-462.077 2525.1625,-455.5659 2527.6359,-465.868 2533.5206,-462.077"/>
</g>
-<!-- Node51->Node53 -->
-<g id="edge151" class="edge">
-<title>Node51->Node53</title>
-<path fill="none" stroke="#191970" d="M2382.2511,-786.5805C2177.1891,-781.9525 1284.3544,-760.4623 1231,-736 1209.0191,-725.922 1191.07,-704.1286 1180.2428,-688.3358"/>
-<polygon fill="#191970" stroke="#191970" points="1183.1107,-686.3261 1174.7143,-679.8645 1177.2486,-690.1518 1183.1107,-686.3261"/>
+<!-- Node52->Node8 -->
+<g id="edge138" class="edge">
+<title>Node52->Node8</title>
+<path fill="none" stroke="#191970" d="M2780.7221,-785.7344C2897.1081,-780.51 3223.5688,-763.736 3327,-736 3383.8465,-720.7561 3415.3846,-729.6424 3447,-680 3474.238,-637.2309 3481.1188,-640.5206 3390,-548 3362.1009,-519.6717 2818.4912,-270.4956 2682.5899,-208.4465"/>
+<polygon fill="#191970" stroke="#191970" points="2683.7181,-205.1141 2673.1676,-204.1461 2680.8116,-211.4822 2683.7181,-205.1141"/>
</g>
-<!-- Node52->Node3 -->
-<g id="edge142" class="edge">
-<title>Node52->Node3</title>
-<path fill="none" stroke="#191970" d="M1843.3616,-716.4509C1767.4745,-696.1176 1590.0305,-648.5728 1506.2837,-626.1334"/>
-<polygon fill="#191970" stroke="#191970" points="1507.1134,-622.7323 1496.5482,-623.5249 1505.3016,-629.4938 1507.1134,-622.7323"/>
+<!-- Node52->Node11 -->
+<g id="edge140" class="edge">
+<title>Node52->Node11</title>
+<path fill="none" stroke="#191970" d="M2780.5702,-787.2501C2930.9178,-786.0016 3445.8562,-778.6385 3604,-736 3747.8291,-697.221 3888,-706.9652 3888,-558 3888,-558 3888,-558 3888,-446 3888,-245.1304 3197.2675,-80.3944 2965.6686,-30.8048"/>
+<polygon fill="#191970" stroke="#191970" points="2966.1576,-27.3305 2955.6478,-28.6698 2964.6989,-34.1769 2966.1576,-27.3305"/>
</g>
<!-- Node52->Node16 -->
-<g id="edge150" class="edge">
+<g id="edge159" class="edge">
<title>Node52->Node16</title>
-<path fill="none" stroke="#191970" d="M1834.3571,-725.1101C1602.6243,-720.415 546.4213,-698.0551 518,-680 495.9582,-665.9976 304,-287.6134 304,-261.5 304,-261.5 304,-261.5 304,-133 304,-92.7538 330.9376,-86.7582 366,-67 401.6697,-46.8996 518.4113,-28.1772 575.7018,-19.9267"/>
-<polygon fill="#191970" stroke="#191970" points="576.2661,-23.3818 585.6744,-18.5101 575.2815,-16.4513 576.2661,-23.3818"/>
+<path fill="none" stroke="#191970" d="M2780.5983,-786.4728C2936.6871,-782.4169 3487.3692,-766.2401 3660,-736 3800.1165,-711.4555 3926,-700.25 3926,-558 3926,-558 3926,-558 3926,-133 3926,-101.7875 3926.2141,-86.6952 3902,-67 3852.7221,-26.9184 3656.9565,-18.0178 3578.6353,-16.0526"/>
+<polygon fill="#191970" stroke="#191970" points="3578.4681,-12.5479 3568.3908,-15.8188 3578.3083,-19.5461 3578.4681,-12.5479"/>
</g>
-<!-- Node52->Node21 -->
+<!-- Node52->Node18 -->
+<g id="edge161" class="edge">
+<title>Node52->Node18</title>
+<path fill="none" stroke="#191970" d="M2697.1914,-787.0141C2390.094,-783.3908 493.5402,-760.0644 440,-736 375.944,-707.2092 114,-264.7287 114,-194.5 114,-194.5 114,-194.5 114,-133 114,-91.8295 142.3374,-85.7314 179,-67 231.8725,-39.9869 408.8625,-23.683 482.9474,-17.8942"/>
+<polygon fill="#191970" stroke="#191970" points="483.4007,-21.3698 493.1043,-17.1164 482.8662,-14.3902 483.4007,-21.3698"/>
+</g>
+<!-- Node52->Node28 -->
<g id="edge143" class="edge">
-<title>Node52->Node21</title>
-<path fill="none" stroke="#191970" d="M1923.5845,-724.5747C2077.3995,-719.5108 2585.26,-701.5327 2747,-680 2885.3413,-661.5824 3054,-753.5619 3054,-614 3054,-614 3054,-614 3054,-558 3054,-498.0857 3182.7385,-392.4392 3218,-344 3232.264,-324.4054 3247.8712,-301.7239 3259.1422,-285.108"/>
-<polygon fill="#191970" stroke="#191970" points="3262.2205,-286.8038 3264.9217,-276.5591 3256.4214,-282.8833 3262.2205,-286.8038"/>
+<title>Node52->Node28</title>
+<path fill="none" stroke="#191970" d="M2697.469,-786.8302C2445.6462,-782.6988 1128.1129,-760.0667 950,-736 846.1668,-721.97 810.5485,-734.3988 721,-680 672.915,-650.7894 666.9645,-624.0427 662,-568 649.2083,-423.6003 603.2235,-339.5066 714,-246 736.8963,-226.6732 915.8999,-208.9991 1019.5064,-200.2542"/>
+<polygon fill="#191970" stroke="#191970" points="1019.9236,-203.7316 1029.5972,-199.4106 1019.3403,-196.756 1019.9236,-203.7316"/>
+</g>
+<!-- Node52->Node26 -->
+<g id="edge156" class="edge">
+<title>Node52->Node26</title>
+<path fill="none" stroke="#191970" d="M2717.4,-777.8642C2647.9618,-746.2746 2425.9666,-640.4702 2271,-512 2180.5534,-437.0181 2190.8658,-383.6547 2097,-313 2068.1561,-291.2886 1835.6023,-189.2974 1801,-179 1720.583,-155.0686 1622.996,-142.4562 1568.3542,-136.806"/>
+<polygon fill="#191970" stroke="#191970" points="1568.6406,-133.3172 1558.3406,-135.7991 1567.9403,-140.2821 1568.6406,-133.3172"/>
+</g>
+<!-- Node52->Node32 -->
+<g id="edge160" class="edge">
+<title>Node52->Node32</title>
+<path fill="none" stroke="#191970" d="M2697.3052,-787.435C2450.8808,-786.8936 1182.6135,-781.8863 796,-736 656.1161,-719.3975 486,-810.8658 486,-670 486,-670 486,-670 486,-558 486,-481.4471 448,-466.5529 448,-390 448,-390 448,-390 448,-261.5 448,-223.0012 448,-178.0145 448,-152.7812"/>
+<polygon fill="#191970" stroke="#191970" points="451.5001,-152.6718 448,-142.6719 444.5001,-152.6719 451.5001,-152.6718"/>
</g>
<!-- Node52->Node33 -->
-<g id="edge144" class="edge">
+<g id="edge141" class="edge">
<title>Node52->Node33</title>
-<path fill="none" stroke="#191970" d="M1923.6617,-722.6965C2033.3545,-713.046 2322.3915,-678.2158 2533,-568 2705.3713,-477.7945 2729.9427,-421.6859 2860,-277 2876.5869,-258.5474 2892.7889,-235.4141 2904.0046,-218.343"/>
-<polygon fill="#191970" stroke="#191970" points="2907.1994,-219.8482 2909.6933,-209.551 2901.3224,-216.0455 2907.1994,-219.8482"/>
+<path fill="none" stroke="#191970" d="M2697.4285,-786.0913C2548.8337,-780.8847 2044.3795,-761.6923 1885,-736 1837.1061,-728.2794 1709.7068,-712.8398 1674,-680 1556.3115,-571.7609 1542.1903,-359.9768 1540.9301,-286.9612"/>
+<polygon fill="#191970" stroke="#191970" points="1544.4288,-286.8095 1540.8255,-276.8463 1537.4292,-286.882 1544.4288,-286.8095"/>
+</g>
+<!-- Node52->Node34 -->
+<g id="edge144" class="edge">
+<title>Node52->Node34</title>
+<path fill="none" stroke="#191970" d="M2780.7288,-786.3089C2946.3558,-781.4075 3549.9213,-761.8312 3581,-736 3737.6603,-605.7906 3405.2632,-358.1933 3351,-313 3303.765,-273.6602 3288.1071,-266.0582 3230,-246 3150.4901,-218.5536 3054.7697,-205.6099 2988.657,-199.5848"/>
+<polygon fill="#191970" stroke="#191970" points="2988.5753,-196.0642 2978.3075,-198.6761 2987.963,-203.0374 2988.5753,-196.0642"/>
+</g>
+<!-- Node52->Node43 -->
+<g id="edge142" class="edge">
+<title>Node52->Node43</title>
+<path fill="none" stroke="#191970" d="M2697.2261,-787.1227C2392.4464,-784.301 521.5957,-765.7849 472,-736 394.2095,-689.2826 372,-648.7407 372,-558 372,-558 372,-558 372,-502 372,-423.3248 363.905,-330.4527 359.6085,-286.7006"/>
+<polygon fill="#191970" stroke="#191970" points="363.0836,-286.2759 358.6053,-276.6741 356.1184,-286.9729 363.0836,-286.2759"/>
+</g>
+<!-- Node52->Node46 -->
+<g id="edge158" class="edge">
+<title>Node52->Node46</title>
+<path fill="none" stroke="#191970" d="M2697.4556,-785.1418C2601.643,-779.3103 2367.7627,-762.72 2294,-736 2167.4404,-690.1547 2132.3806,-667.7519 2042,-568 1957.513,-474.7528 1898.5936,-332.159 1879.0641,-280.7849"/>
+<polygon fill="#191970" stroke="#191970" points="1882.2818,-279.3969 1875.4996,-271.2574 1875.7257,-281.8498 1882.2818,-279.3969"/>
+</g>
+<!-- Node52->Node49 -->
+<g id="edge157" class="edge">
+<title>Node52->Node49</title>
+<path fill="none" stroke="#191970" d="M2780.7076,-786.4516C2944.1057,-782.1449 3533.0665,-764.6759 3560,-736 3600.1641,-693.2376 3581.09,-658.7448 3560,-604 3534.0159,-536.5514 3359.0161,-392.3885 3299.0863,-344.4044"/>
+<polygon fill="#191970" stroke="#191970" points="3301.1109,-341.5423 3291.1106,-338.0432 3296.7462,-347.0149 3301.1109,-341.5423"/>
+</g>
+<!-- Node53 -->
+<g id="node38" class="node">
+<title>Node53</title>
+<g id="a_node38"><a xlink:href="buffer_8h.html" target="_top" xlink:title="Symbolic n-dimensional array, to represent a memory buffer. ">
+<polygon fill="#ffffff" stroke="#000000" points="2337.5,-716.5 2337.5,-735.5 2426.5,-735.5 2426.5,-716.5 2337.5,-716.5"/>
+<text text-anchor="middle" x="2382" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/tir/buffer.h</text>
+</a>
+</g>
</g>
<!-- Node52->Node53 -->
<g id="edge145" class="edge">
<title>Node52->Node53</title>
-<path fill="none" stroke="#191970" d="M1834.3174,-722.4757C1707.9933,-712.5121 1348.9375,-684.1923 1217.7562,-673.8456"/>
-<polygon fill="#191970" stroke="#191970" points="1217.8533,-670.3424 1207.609,-673.0452 1217.3028,-677.3208 1217.8533,-670.3424"/>
+<path fill="none" stroke="#191970" d="M2697.3489,-780.3248C2632.8351,-769.2111 2508.7178,-747.8295 2436.9375,-735.464"/>
+<polygon fill="#191970" stroke="#191970" points="2437.1891,-731.9559 2426.7401,-733.7073 2436.0007,-738.8543 2437.1891,-731.9559"/>
+</g>
+<!-- Node54 -->
+<g id="node39" class="node">
+<title>Node54</title>
+<g id="a_node39"><a xlink:href="var_8h.html" target="_top" xlink:title="Variables in the TIR. ">
+<polygon fill="#ffffff" stroke="#000000" points="3360.5,-660.5 3360.5,-679.5 3437.5,-679.5 3437.5,-660.5 3360.5,-660.5"/>
+<text text-anchor="middle" x="3399" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/tir/var.h</text>
+</a>
+</g>
+</g>
+<!-- Node52->Node54 -->
+<g id="edge155" class="edge">
+<title>Node52->Node54</title>
+<path fill="none" stroke="#191970" d="M2780.5696,-786.1405C2892.6089,-782.0814 3198.8036,-768.272 3294,-736 3326.6836,-724.9201 3359.6008,-701.8425 3379.6472,-686.1339"/>
+<polygon fill="#191970" stroke="#191970" points="3382.0485,-688.6947 3387.6587,-679.7071 3377.6682,-683.2344 3382.0485,-688.6947"/>
</g>
<!-- Node53->Node3 -->
<g id="edge146" class="edge">
<title>Node53->Node3</title>
-<path fill="none" stroke="#191970" d="M1207.7753,-662.5636C1260.1683,-652.5157 1353.6188,-634.5936 1411.1668,-623.557"/>
-<polygon fill="#191970" stroke="#191970" points="1411.9659,-626.9677 1421.1277,-621.6467 1410.6474,-620.093 1411.9659,-626.9677"/>
-</g>
-<!-- Node53->Node5 -->
-<g id="edge147" class="edge">
-<title>Node53->Node5</title>
-<path fill="none" stroke="#191970" d="M1178.3206,-660.4758C1207.3484,-631.3049 1299.7231,-542.1357 1392,-492 1419.3507,-477.1399 1452.3538,-465.9259 1479.2265,-458.2917"/>
-<polygon fill="#191970" stroke="#191970" points="1480.4914,-461.5736 1489.201,-455.541 1478.6304,-454.8255 1480.4914,-461.5736"/>
+<path fill="none" stroke="#191970" d="M2369.6742,-716.3538C2351.7553,-702.6293 2317.1352,-677.2243 2285,-660 2260.7694,-647.0125 2232.0618,-635.37 2209.6455,-627.0471"/>
+<polygon fill="#191970" stroke="#191970" points="2210.736,-623.7193 2200.1421,-623.5767 2208.3348,-630.2946 2210.736,-623.7193"/>
</g>
<!-- Node53->Node16 -->
-<g id="edge149" class="edge">
+<g id="edge154" class="edge">
<title>Node53->Node16</title>
-<path fill="none" stroke="#191970" d="M1133.6651,-660.4024C1020.011,-627.6628 660.769,-509.3057 480,-277 456.5486,-246.8627 456,-232.6867 456,-194.5 456,-194.5 456,-194.5 456,-133 456,-72.8142 531.5179,-39.0962 576.0946,-24.4359"/>
-<polygon fill="#191970" stroke="#191970" points="577.4082,-27.6918 585.8979,-21.3534 575.3085,-21.0142 577.4082,-27.6918"/>
+<path fill="none" stroke="#191970" d="M2426.6953,-725.0729C2620.0884,-720.9342 3379.764,-703.3224 3484,-680 3546.5896,-665.9958 3705.7902,-614.4659 3750,-568 3771.5148,-545.3873 3774,-533.2125 3774,-502 3774,-502 3774,-502 3774,-390 3774,-301.485 3812,-283.015 3812,-194.5 3812,-194.5 3812,-194.5 3812,-133 3812,-101.7875 3811.5509,-87.4836 3788,-67 3756.9543,-39.9978 3636.8497,-24.5685 3578.3658,-18.5128"/>
+<polygon fill="#191970" stroke="#191970" points="3578.4981,-15.0085 3568.1981,-17.4905 3577.7977,-21.9734 3578.4981,-15.0085"/>
</g>
<!-- Node53->Node28 -->
<g id="edge148" class="edge">
<title>Node53->Node28</title>
-<path fill="none" stroke="#191970" d="M1169.7744,-660.2549C1174.0049,-613.781 1198.4632,-412.798 1311,-313 1363.4792,-266.4612 1560.0427,-225.1262 1664.2257,-205.9048"/>
-<polygon fill="#191970" stroke="#191970" points="1665.1105,-209.3011 1674.3174,-204.0588 1663.8508,-202.4154 1665.1105,-209.3011"/>
+<path fill="none" stroke="#191970" d="M2337.34,-724.0573C2079.2402,-712.6869 790,-653.894 790,-614 790,-614 790,-614 790,-502 790,-356.0754 965.2669,-254.2473 1049.2017,-213.8488"/>
+<polygon fill="#191970" stroke="#191970" points="1050.7037,-217.0101 1058.242,-209.5654 1047.7064,-210.6843 1050.7037,-217.0101"/>
</g>
-<!-- Node54->Node1 -->
-<g id="edge161" class="edge">
-<title>Node54->Node1</title>
-<path fill="none" stroke="#191970" d="M828.4858,-959.4967C708.2966,-954.6311 402.1007,-934.8833 342,-859 230.398,-718.091 607.7967,-681.2076 747.8011,-672.48"/>
-<polygon fill="#191970" stroke="#191970" points="748.0823,-675.9695 757.8546,-671.8764 747.6628,-668.982 748.0823,-675.9695"/>
+<!-- Node53->Node33 -->
+<g id="edge147" class="edge">
+<title>Node53->Node33</title>
+<path fill="none" stroke="#191970" d="M2356.4499,-716.4586C2309.7749,-698.9131 2207.724,-660.018 2123,-624 2012.8161,-577.1584 1981.0588,-572.9385 1878,-512 1754.1498,-438.7677 1620.9583,-329.5595 1566.445,-283.3768"/>
+<polygon fill="#191970" stroke="#191970" points="1568.5689,-280.5885 1558.6837,-276.7762 1564.0339,-285.9209 1568.5689,-280.5885"/>
+</g>
+<!-- Node53->Node54 -->
+<g id="edge149" class="edge">
+<title>Node53->Node54</title>
+<path fill="none" stroke="#191970" d="M2426.6818,-723.5396C2593.2061,-714.3702 3177.0182,-682.2232 3350.2126,-672.6864"/>
+<polygon fill="#191970" stroke="#191970" points="3350.5133,-676.1753 3360.3057,-672.1307 3350.1284,-669.1859 3350.5133,-676.1753"/>
</g>
<!-- Node54->Node3 -->
-<g id="edge162" class="edge">
+<g id="edge150" class="edge">
<title>Node54->Node3</title>
-<path fill="none" stroke="#191970" d="M925.5306,-956.5357C963.6172,-951.2365 1016.7472,-939.7491 1057,-915 1157.0818,-853.4655 1136.4066,-785.6775 1231,-716 1289.8963,-672.617 1370.1587,-642.3448 1418.6313,-626.5948"/>
-<polygon fill="#191970" stroke="#191970" points="1419.7176,-629.9221 1428.1796,-623.5468 1417.5888,-623.2536 1419.7176,-629.9221"/>
+<path fill="none" stroke="#191970" d="M3360.2518,-668.2315C3179.9745,-660.0037 2423.5718,-625.4817 2221.7001,-616.2683"/>
+<polygon fill="#191970" stroke="#191970" points="2221.8284,-612.7706 2211.6792,-615.8109 2221.5092,-619.7633 2221.8284,-612.7706"/>
+</g>
+<!-- Node54->Node5 -->
+<g id="edge151" class="edge">
+<title>Node54->Node5</title>
+<path fill="none" stroke="#191970" d="M3399.5687,-660.3966C3400.3671,-637.839 3399.182,-580.8994 3370,-548 3322.2261,-494.1403 3288.4226,-506.9623 3218,-492 3096.7443,-466.2374 2725.3532,-452.3356 2579.0924,-447.7413"/>
+<polygon fill="#191970" stroke="#191970" points="2579.061,-444.2388 2568.9572,-447.4266 2578.8437,-451.2354 2579.061,-444.2388"/>
</g>
<!-- Node54->Node16 -->
-<g id="edge215" class="edge">
+<g id="edge153" class="edge">
<title>Node54->Node16</title>
-<path fill="none" stroke="#191970" d="M828.2654,-959.6617C649.2022,-954.1081 38,-929.2724 38,-849 38,-849 38,-849 38,-133 38,-98.4675 49.6688,-85.2256 79,-67 121.2391,-40.7538 467.4511,-22.1919 575.7477,-16.9838"/>
-<polygon fill="#191970" stroke="#191970" points="575.9325,-20.4791 585.755,-16.5081 575.6001,-13.487 575.9325,-20.4791"/>
+<path fill="none" stroke="#191970" d="M3417.0138,-660.4972C3434.2915,-651.325 3461.0649,-636.9601 3484,-624 3591.7057,-563.1381 3698,-569.7121 3698,-446 3698,-446 3698,-446 3698,-390 3698,-301.485 3736,-283.015 3736,-194.5 3736,-194.5 3736,-194.5 3736,-133 3736,-59.7342 3632.5415,-30.6153 3578.3116,-20.3846"/>
+<polygon fill="#191970" stroke="#191970" points="3578.6253,-16.8856 3568.1673,-18.5828 3577.4011,-23.7778 3578.6253,-16.8856"/>
</g>
-<!-- Node54->Node18 -->
-<g id="edge216" class="edge">
-<title>Node54->Node18</title>
-<path fill="none" stroke="#191970" d="M925.5208,-960.5543C1318.5079,-956.7911 3966,-928.4894 3966,-849 3966,-849 3966,-849 3966,-133 3966,-95.6561 3945.9408,-86.3482 3914,-67 3873.7885,-42.6418 3736.8273,-25.596 3673.1054,-18.791"/>
-<polygon fill="#191970" stroke="#191970" points="3673.1247,-15.274 3662.8145,-17.7134 3672.3956,-22.2359 3673.1247,-15.274"/>
+<!-- Node54->Node34 -->
+<g id="edge152" class="edge">
+<title>Node54->Node34</title>
+<path fill="none" stroke="#191970" d="M3402.0375,-660.2499C3404.7435,-651.0202 3408.5001,-636.7215 3410,-624 3416.3991,-569.7259 3458.9837,-598.4816 3408,-436 3387.72,-371.369 3373.832,-351.3566 3318,-313 3217.1863,-243.7409 3075.8482,-214.5085 2988.4748,-202.4938"/>
+<polygon fill="#191970" stroke="#191970" points="2988.7306,-198.9971 2978.3561,-201.1463 2987.8065,-205.9358 2988.7306,-198.9971"/>
</g>
-<!-- Node54->Node40 -->
-<g id="edge213" class="edge">
-<title>Node54->Node40</title>
-<path fill="none" stroke="#191970" d="M828.3049,-959.8175C665.7509,-954.5695 152,-926.9523 152,-787.5 152,-787.5 152,-787.5 152,-670 152,-501.0618 623.9184,-302.8607 783,-246 874.6616,-213.2373 1170.0386,-199.8313 1281.1783,-195.8632"/>
-<polygon fill="#191970" stroke="#191970" points="1281.4738,-199.3552 1291.3456,-195.5084 1281.2296,-192.3594 1281.4738,-199.3552"/>
+<!-- Node55->Node1 -->
+<g id="edge165" class="edge">
+<title>Node55->Node1</title>
+<path fill="none" stroke="#191970" d="M1905.3989,-954.3094C1815.8799,-940.6142 1634,-905.8 1634,-849 1634,-849 1634,-849 1634,-787.5 1634,-742.7119 1591.8401,-705.2139 1563.99,-685.3294"/>
+<polygon fill="#191970" stroke="#191970" points="1565.745,-682.2885 1555.5222,-679.5054 1561.7781,-688.056 1565.745,-682.2885"/>
</g>
-<!-- Node54->Node50 -->
-<g id="edge217" class="edge">
-<title>Node54->Node50</title>
-<path fill="none" stroke="#191970" d="M865.3195,-951.4509C841.7617,-932.1921 788.3437,-888.5218 759.4411,-864.8935"/>
-<polygon fill="#191970" stroke="#191970" points="761.6084,-862.1445 751.651,-858.5249 757.1778,-867.564 761.6084,-862.1445"/>
+<!-- Node55->Node3 -->
+<g id="edge166" class="edge">
+<title>Node55->Node3</title>
+<path fill="none" stroke="#191970" d="M1968.4017,-951.3069C1980.3308,-942.7647 1997.1824,-929.4565 2009,-915 2086.4394,-820.2677 2144.7508,-683.2148 2164.6108,-633.1928"/>
+<polygon fill="#191970" stroke="#191970" points="2167.9649,-634.2262 2168.3538,-623.6385 2161.4473,-631.6727 2167.9649,-634.2262"/>
</g>
-<!-- Node55 -->
-<g id="node40" class="node">
-<title>Node55</title>
-<g id="a_node40"><a xlink:href="ir_2module_8h.html" target="_top" xlink:title="IRModule that holds the functions and type definitions. ">
-<polygon fill="#ffffff" stroke="#000000" points="2653.5,-778 2653.5,-797 2748.5,-797 2748.5,-778 2653.5,-778"/>
-<text text-anchor="middle" x="2701" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/module.h</text>
+<!-- Node55->Node16 -->
+<g id="edge214" class="edge">
+<title>Node55->Node16</title>
+<path fill="none" stroke="#191970" d="M2002.7454,-959.695C2316.6223,-951.1365 4040,-901.7436 4040,-849 4040,-849 4040,-849 4040,-133 4040,-93.0568 4014.5837,-85.1454 3979,-67 3908.8372,-31.2215 3666.6838,-19.5816 3578.471,-16.4773"/>
+<polygon fill="#191970" stroke="#191970" points="3578.3728,-12.972 3568.2602,-16.1322 3578.1363,-19.968 3578.3728,-12.972"/>
+</g>
+<!-- Node55->Node18 -->
+<g id="edge215" class="edge">
+<title>Node55->Node18</title>
+<path fill="none" stroke="#191970" d="M1905.2111,-959.0312C1603.07,-946.2105 0,-868.8197 0,-670 0,-670 0,-670 0,-133 0,-98.4675 11.769,-85.386 41,-67 78.3448,-43.5106 381.6726,-23.4949 483.1029,-17.4019"/>
+<polygon fill="#191970" stroke="#191970" points="483.589,-20.8793 493.3636,-16.7919 483.1735,-13.8917 483.589,-20.8793"/>
+</g>
+<!-- Node55->Node41 -->
+<g id="edge212" class="edge">
+<title>Node55->Node41</title>
+<path fill="none" stroke="#191970" d="M1905.2726,-957.1683C1760.9965,-945.1767 1346,-905.7516 1346,-849 1346,-849 1346,-849 1346,-558 1346,-487.8608 1529.1923,-394.3718 1578,-344 1605.4071,-315.7146 1610.9171,-307.3654 1636,-277 1654.0286,-255.1744 1674.096,-229.4794 1687.0987,-212.635"/>
+<polygon fill="#191970" stroke="#191970" points="1690.2125,-214.3278 1693.5379,-204.2684 1684.6651,-210.0584 1690.2125,-214.3278"/>
+</g>
+<!-- Node55->Node51 -->
+<g id="edge216" class="edge">
+<title>Node55->Node51</title>
+<path fill="none" stroke="#191970" d="M2002.7327,-959.9905C2158.4183,-956.5516 2657.7291,-943.8677 3070,-915 3322.1664,-897.343 3385.2459,-890.9691 3636,-859 3637.4642,-858.8133 3638.9464,-858.6195 3640.4411,-858.4198"/>
+<polygon fill="#191970" stroke="#191970" points="3641.0038,-861.8753 3650.425,-857.0286 3640.0376,-854.9423 3641.0038,-861.8753"/>
+</g>
+<!-- Node56 -->
+<g id="node41" class="node">
+<title>Node56</title>
+<g id="a_node41"><a xlink:href="ir_2module_8h.html" target="_top" xlink:title="IRModule that holds the functions and type definitions. ">
+<polygon fill="#ffffff" stroke="#000000" points="994.5,-778 994.5,-797 1089.5,-797 1089.5,-778 994.5,-778"/>
+<text text-anchor="middle" x="1042" y="-785" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/module.h</text>
</a>
</g>
</g>
-<!-- Node54->Node55 -->
-<g id="edge163" class="edge">
-<title>Node54->Node55</title>
-<path fill="none" stroke="#191970" d="M925.7876,-956.3593C1181.5483,-932.0312 2366.4167,-819.3258 2643.111,-793.0064"/>
-<polygon fill="#191970" stroke="#191970" points="2643.7067,-796.4657 2653.3303,-792.0344 2643.0438,-789.4971 2643.7067,-796.4657"/>
+<!-- Node55->Node56 -->
+<g id="edge167" class="edge">
+<title>Node55->Node56</title>
+<path fill="none" stroke="#191970" d="M1905.135,-959.9297C1774.2841,-956.6835 1418.2206,-945.2505 1305,-915 1210.7193,-889.8099 1109.6641,-830.5098 1065.223,-802.5667"/>
+<polygon fill="#191970" stroke="#191970" points="1066.9397,-799.5108 1056.6219,-797.1035 1063.1865,-805.4196 1066.9397,-799.5108"/>
</g>
-<!-- Node63 -->
-<g id="node45" class="node">
-<title>Node63</title>
-<g id="a_node45"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="589,-895.5 589,-914.5 659,-914.5 659,-895.5 589,-895.5"/>
-<text text-anchor="middle" x="624" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/op.h</text>
+<!-- Node64 -->
+<g id="node46" class="node">
+<title>Node64</title>
+<g id="a_node46"><a xlink:href="ir_2op_8h.html" target="_top" xlink:title="Primitive operators(builtin intrinsics) and registry for them. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1894,-716.5 1894,-735.5 1964,-735.5 1964,-716.5 1894,-716.5"/>
+<text text-anchor="middle" x="1929" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/op.h</text>
</a>
</g>
</g>
-<!-- Node54->Node63 -->
-<g id="edge196" class="edge">
-<title>Node54->Node63</title>
-<path fill="none" stroke="#191970" d="M833.7952,-951.4369C787.9071,-941.2798 715.6945,-925.296 669.0976,-914.9821"/>
-<polygon fill="#191970" stroke="#191970" points="669.7948,-911.5518 659.2747,-912.8078 668.282,-918.3863 669.7948,-911.5518"/>
+<!-- Node55->Node64 -->
+<g id="edge200" class="edge">
+<title>Node55->Node64</title>
+<path fill="none" stroke="#191970" d="M1952.677,-951.4953C1951.4029,-942.2006 1949.4595,-927.641 1948,-915 1940.8977,-853.4849 1933.9922,-780.5278 1930.8159,-746.0095"/>
+<polygon fill="#191970" stroke="#191970" points="1934.2829,-745.4886 1929.8868,-735.8489 1927.312,-746.1261 1934.2829,-745.4886"/>
</g>
-<!-- Node70 -->
+<!-- Node71 -->
<g id="node48" class="node">
-<title>Node70</title>
+<title>Node71</title>
<g id="a_node48"><a xlink:href="virtual__device_8h.html" target="_top" xlink:title="A compile time representation for where data is to be stored at runtime, and how to compile code to c...">
-<polygon fill="#ffffff" stroke="#ff0000" points="1204.5,-772.5 1204.5,-802.5 1307.5,-802.5 1307.5,-772.5 1204.5,-772.5"/>
-<text text-anchor="start" x="1212.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/target/virtual</text>
-<text text-anchor="middle" x="1256" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_device.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="1138.5,-772.5 1138.5,-802.5 1241.5,-802.5 1241.5,-772.5 1138.5,-772.5"/>
+<text text-anchor="start" x="1146.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/target/virtual</text>
+<text text-anchor="middle" x="1190" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_device.h</text>
</a>
</g>
</g>
-<!-- Node54->Node70 -->
-<g id="edge209" class="edge">
-<title>Node54->Node70</title>
-<path fill="none" stroke="#191970" d="M879.8226,-951.4561C887.2953,-927.9984 909.9595,-867.3747 952,-839 990.5881,-812.9554 1117.0828,-798.5276 1194.2124,-791.9542"/>
-<polygon fill="#191970" stroke="#191970" points="1194.6148,-795.4329 1204.2903,-791.1159 1194.0345,-788.457 1194.6148,-795.4329"/>
+<!-- Node55->Node71 -->
+<g id="edge208" class="edge">
+<title>Node55->Node71</title>
+<path fill="none" stroke="#191970" d="M1905.0539,-959.1983C1767.515,-953.8816 1384.1748,-937.2275 1332,-915 1328.419,-913.4744 1253.5407,-845.4504 1213.9961,-809.4038"/>
+<polygon fill="#191970" stroke="#191970" points="1216.3373,-806.802 1206.5899,-802.65 1211.6206,-811.9744 1216.3373,-806.802"/>
</g>
-<!-- Node77 -->
+<!-- Node78 -->
<g id="node49" class="node">
-<title>Node77</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="934.5,-895.5 934.5,-914.5 977.5,-914.5 977.5,-895.5 934.5,-895.5"/>
-<text text-anchor="middle" x="956" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stack</text>
+<title>Node78</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1957.5,-895.5 1957.5,-914.5 2000.5,-914.5 2000.5,-895.5 1957.5,-895.5"/>
+<text text-anchor="middle" x="1979" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">stack</text>
</g>
-<!-- Node54->Node77 -->
-<g id="edge214" class="edge">
-<title>Node54->Node77</title>
-<path fill="none" stroke="#191970" d="M890.7607,-951.2455C902.6552,-942.814 920.065,-930.4729 933.9085,-920.6598"/>
-<polygon fill="#191970" stroke="#191970" points="936.2628,-923.2811 942.3969,-914.6427 932.2146,-917.5704 936.2628,-923.2811"/>
+<!-- Node55->Node78 -->
+<g id="edge213" class="edge">
+<title>Node55->Node78</title>
+<path fill="none" stroke="#191970" d="M1958.3547,-951.2455C1961.7244,-943.6973 1966.493,-933.0158 1970.5983,-923.8197"/>
+<polygon fill="#191970" stroke="#191970" points="1973.8147,-925.2009 1974.6952,-914.6427 1967.4227,-922.3473 1973.8147,-925.2009"/>
</g>
-<!-- Node78 -->
+<!-- Node79 -->
<g id="node50" class="node">
-<title>Node78</title>
+<title>Node79</title>
<g id="a_node50"><a xlink:href="relay_2type_8h.html" target="_top" xlink:title="Relay typed AST nodes. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="995.5,-895.5 995.5,-914.5 1048.5,-914.5 1048.5,-895.5 995.5,-895.5"/>
-<text text-anchor="middle" x="1022" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./type.h</text>
+<polygon fill="#ffffff" stroke="#ff0000" points="3007.5,-895.5 3007.5,-914.5 3060.5,-914.5 3060.5,-895.5 3007.5,-895.5"/>
+<text text-anchor="middle" x="3034" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">./type.h</text>
</a>
</g>
</g>
-<!-- Node54->Node78 -->
-<g id="edge218" class="edge">
-<title>Node54->Node78</title>
-<path fill="none" stroke="#191970" d="M901.9264,-951.3733C925.6202,-942.2226 961.4511,-928.3844 987.8068,-918.2057"/>
-<polygon fill="#191970" stroke="#191970" points="989.3314,-921.3689 997.3989,-914.5011 986.8094,-914.8389 989.3314,-921.3689"/>
-</g>
-<!-- Node55->Node3 -->
-<g id="edge172" class="edge">
-<title>Node55->Node3</title>
-<path fill="none" stroke="#191970" d="M2653.3108,-780.7553C2518.4475,-761.6902 2122.7637,-705.815 1794,-660 1693.4551,-645.9885 1575.8054,-629.7805 1510.7148,-620.8298"/>
-<polygon fill="#191970" stroke="#191970" points="1511.1137,-617.3518 1500.7301,-619.457 1510.1602,-624.2865 1511.1137,-617.3518"/>
-</g>
-<!-- Node55->Node16 -->
-<g id="edge191" class="edge">
-<title>Node55->Node16</title>
-<path fill="none" stroke="#191970" d="M2653.409,-783.8009C2607.6914,-780.3504 2536.6593,-775.259 2475,-772 2044.6369,-749.2532 1935.694,-769.0579 1506,-736 1429.7074,-730.1305 1411.2748,-722.0965 1335,-716 1242.4313,-708.6012 579.0703,-728.699 500,-680 409.2761,-624.1236 266,-368.0505 266,-261.5 266,-261.5 266,-261.5 266,-133 266,-93.0568 292.0043,-86.255 327,-67 369.6032,-43.5592 511.8005,-25.8133 576.0285,-18.7906"/>
-<polygon fill="#191970" stroke="#191970" points="576.4313,-22.2675 585.9997,-17.7183 575.6828,-15.3076 576.4313,-22.2675"/>
+<!-- Node55->Node79 -->
+<g id="edge217" class="edge">
+<title>Node55->Node79</title>
+<path fill="none" stroke="#191970" d="M2002.5035,-958.485C2185.8651,-948.9774 2834.5368,-915.3425 2996.9299,-906.9222"/>
+<polygon fill="#191970" stroke="#191970" points="2997.5367,-910.3955 3007.3421,-906.3823 2997.1742,-903.4049 2997.5367,-910.3955"/>
</g>
-<!-- Node55->Node18 -->
-<g id="edge194" class="edge">
-<title>Node55->Node18</title>
-<path fill="none" stroke="#191970" d="M2748.5684,-786.3809C2941.9344,-781.6697 3663.4266,-762.464 3762,-736 3823.8172,-719.404 3890,-734.0062 3890,-670 3890,-670 3890,-670 3890,-133 3890,-101.7875 3889.4031,-87.6523 3866,-67 3837.5118,-41.8604 3728.0884,-25.7875 3672.6281,-19.0838"/>
-<polygon fill="#191970" stroke="#191970" points="3672.9543,-15.5981 3662.6136,-17.9044 3672.1356,-22.55 3672.9543,-15.5981"/>
+<!-- Node56->Node3 -->
+<g id="edge176" class="edge">
+<title>Node56->Node3</title>
+<path fill="none" stroke="#191970" d="M1088.7913,-777.9794C1101.7631,-775.6637 1115.8849,-773.4415 1129,-772 1315.6024,-751.4907 1793.3674,-790.5271 1973,-736 2045.9724,-713.8494 2119.1936,-658.3403 2152.8665,-630.4851"/>
+<polygon fill="#191970" stroke="#191970" points="2155.5109,-632.8349 2160.9178,-623.7236 2151.0091,-627.4744 2155.5109,-632.8349"/>
</g>
-<!-- Node55->Node20 -->
+<!-- Node56->Node16 -->
<g id="edge195" class="edge">
-<title>Node55->Node20</title>
-<path fill="none" stroke="#191970" d="M2653.3945,-784.0536C2607.6664,-780.7861 2536.627,-775.8224 2475,-772 2437.3745,-769.6663 1149.9739,-704.1172 1121,-680 956.5666,-543.1292 1226.6678,-195.2395 1244,-179 1269.7958,-154.8304 1309.2471,-143.1752 1337.3281,-137.6768"/>
-<polygon fill="#191970" stroke="#191970" points="1338.2555,-141.0664 1347.4815,-135.8577 1337.0209,-134.1762 1338.2555,-141.0664"/>
-</g>
-<!-- Node55->Node21 -->
-<g id="edge188" class="edge">
-<title>Node55->Node21</title>
-<path fill="none" stroke="#191970" d="M2748.6673,-787.1204C2920.1596,-785.423 3499.392,-776.7021 3571,-736 3644.8194,-694.0409 3641.6096,-624.6134 3605,-548 3542.0244,-416.2102 3387.1418,-320.6127 3314.1978,-281.3039"/>
-<polygon fill="#191970" stroke="#191970" points="3315.7739,-278.1779 3305.3016,-276.5707 3312.4859,-284.3577 3315.7739,-278.1779"/>
+<title>Node56->Node16</title>
+<path fill="none" stroke="#191970" d="M1088.3253,-777.9295C1101.4206,-775.5834 1115.7217,-773.3582 1129,-772 1660.6173,-717.6214 3008.0314,-785.0281 3532,-680 3676.5858,-651.0182 3812,-649.4618 3812,-502 3812,-502 3812,-502 3812,-390 3812,-301.485 3850,-283.015 3850,-194.5 3850,-194.5 3850,-194.5 3850,-133 3850,-98.6999 3838.1278,-86.6295 3810,-67 3772.8045,-41.0424 3640.0403,-24.8246 3578.1674,-18.512"/>
+<polygon fill="#191970" stroke="#191970" points="3578.471,-15.025 3568.1731,-17.5159 3577.7767,-21.9905 3578.471,-15.025"/>
</g>
-<!-- Node55->Node33 -->
-<g id="edge190" class="edge">
-<title>Node55->Node33</title>
-<path fill="none" stroke="#191970" d="M2748.5187,-785.9502C2907.9825,-780.5218 3415.389,-761.3161 3439,-736 3545.4415,-621.8718 3536.5908,-536.8281 3104,-246 3094.1638,-239.3872 3038.1718,-224.2302 2990.3364,-212.0617"/>
-<polygon fill="#191970" stroke="#191970" points="2991.1368,-208.654 2980.5837,-209.593 2989.4191,-215.4399 2991.1368,-208.654"/>
+<!-- Node56->Node18 -->
+<g id="edge198" class="edge">
+<title>Node56->Node18</title>
+<path fill="none" stroke="#191970" d="M994.2504,-786.9961C794.7237,-784.2713 38,-767.5095 38,-670 38,-670 38,-670 38,-133 38,-101.7875 37.4864,-86.3211 62,-67 95.0228,-40.9722 384.7661,-22.7315 483.3357,-17.2328"/>
+<polygon fill="#191970" stroke="#191970" points="483.5349,-20.7272 493.3274,-16.6827 483.1501,-13.7378 483.5349,-20.7272"/>
</g>
-<!-- Node55->Node36 -->
-<g id="edge192" class="edge">
-<title>Node55->Node36</title>
-<path fill="none" stroke="#191970" d="M2748.784,-786.1866C2922.862,-781.2062 3517.1462,-762.4202 3598,-736 3649.3252,-719.2287 3700,-723.9959 3700,-670 3700,-670 3700,-670 3700,-390 3700,-287.5172 3580.3337,-339.3502 3499,-277 3447.4115,-237.4524 3396.4414,-179.4669 3372.3614,-150.6324"/>
-<polygon fill="#191970" stroke="#191970" points="3374.8499,-148.1495 3365.7806,-142.6723 3369.4548,-152.6097 3374.8499,-148.1495"/>
+<!-- Node56->Node20 -->
+<g id="edge199" class="edge">
+<title>Node56->Node20</title>
+<path fill="none" stroke="#191970" d="M1049.0157,-777.8085C1059.4584,-763.6361 1080.013,-736.6949 1100,-716 1169.5924,-643.9427 1200.3079,-639.9609 1270,-568 1300.3265,-536.6862 1300.6991,-522.3397 1332,-492 1444.9139,-382.5534 1514.3326,-399.4453 1613,-277 1643.1898,-239.5348 1624.6586,-212.7006 1659,-179 1678.2732,-160.0865 1706.6649,-148.2024 1728.7615,-141.2623"/>
+<polygon fill="#191970" stroke="#191970" points="1729.8148,-144.6008 1738.4157,-138.414 1727.834,-137.8869 1729.8148,-144.6008"/>
</g>
-<!-- Node55->Node42 -->
-<g id="edge189" class="edge">
-<title>Node55->Node42</title>
-<path fill="none" stroke="#191970" d="M2748.7161,-786.5497C2936.889,-782.6015 3621.7667,-766.2669 3714,-736 3764.5971,-719.3962 3814,-723.2518 3814,-670 3814,-670 3814,-670 3814,-390 3814,-312.2876 3715.6775,-281.4469 3644.1178,-269.2919"/>
-<polygon fill="#191970" stroke="#191970" points="3644.6401,-265.831 3634.211,-267.6978 3643.528,-272.7421 3644.6401,-265.831"/>
+<!-- Node56->Node28 -->
+<g id="edge194" class="edge">
+<title>Node56->Node28</title>
+<path fill="none" stroke="#191970" d="M994.041,-787.1906C854.6172,-785.7966 456.7963,-778.1302 418,-736 349.495,-661.6082 352.0405,-435.7647 624,-246 639.9833,-234.8473 891.483,-211.8079 1019.4329,-200.7239"/>
+<polygon fill="#191970" stroke="#191970" points="1019.8873,-204.1978 1029.5491,-199.8502 1019.2849,-197.2238 1019.8873,-204.1978"/>
</g>
-<!-- Node55->Node49 -->
-<g id="edge181" class="edge">
-<title>Node55->Node49</title>
-<path fill="none" stroke="#191970" d="M2684.8152,-777.9656C2648.2067,-755.6194 2558.3216,-696.2505 2508,-624 2498.2128,-609.9478 2491.9408,-591.4482 2488.2727,-577.6112"/>
-<polygon fill="#191970" stroke="#191970" points="2491.6254,-576.5843 2485.872,-567.6878 2484.8217,-578.2304 2491.6254,-576.5843"/>
+<!-- Node56->Node32 -->
+<g id="edge196" class="edge">
+<title>Node56->Node32</title>
+<path fill="none" stroke="#191970" d="M994.4726,-786.6102C832.0786,-783.2753 305.5294,-769.9276 238,-736 203.6251,-718.7296 182,-708.4695 182,-670 182,-670 182,-670 182,-446 182,-346.0158 219.0648,-321.1624 285,-246 323.9176,-201.636 383.7832,-166.0267 419.1053,-147.3339"/>
+<polygon fill="#191970" stroke="#191970" points="421.1182,-150.2324 428.3793,-142.517 417.8916,-144.0204 421.1182,-150.2324"/>
</g>
-<!-- Node56 -->
-<g id="node41" class="node">
-<title>Node56</title>
-<g id="a_node41"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="2664,-660.5 2664,-679.5 2738,-679.5 2738,-660.5 2664,-660.5"/>
-<text text-anchor="middle" x="2701" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/adt.h</text>
-</a>
+<!-- Node56->Node33 -->
+<g id="edge192" class="edge">
+<title>Node56->Node33</title>
+<path fill="none" stroke="#191970" d="M1008.949,-777.9659C978.1311,-767.0338 938.5093,-746.5818 950,-716 973.2643,-654.0832 991.0663,-637.667 1048,-604 1112.234,-566.016 1157.2116,-618.6657 1212,-568 1234.5033,-547.19 1232,-532.6506 1232,-502 1232,-502 1232,-502 1232,-446 1232,-386.68 1401.9986,-313.8543 1489.8111,-280.1933"/>
+<polygon fill="#191970" stroke="#191970" points="1491.2234,-283.4009 1499.3269,-276.5756 1488.7358,-276.8578 1491.2234,-283.4009"/>
</g>
+<!-- Node56->Node43 -->
+<g id="edge193" class="edge">
+<title>Node56->Node43</title>
+<path fill="none" stroke="#191970" d="M994.4562,-786.2078C826.508,-781.4155 269.7859,-763.5037 244,-736 237.9204,-729.5154 243.6073,-724.8802 244,-716 247.1142,-645.5715 258,-628.4974 258,-558 258,-558 258,-558 258,-390 258,-344.8879 296.7626,-305.919 325.7777,-283.0685"/>
+<polygon fill="#191970" stroke="#191970" points="328.2001,-285.6234 334.0386,-276.7824 323.9611,-280.0527 328.2001,-285.6234"/>
</g>
-<!-- Node55->Node56 -->
-<g id="edge164" class="edge">
-<title>Node55->Node56</title>
-<path fill="none" stroke="#191970" d="M2701,-777.8845C2701,-758.6913 2701,-715.286 2701,-689.7663"/>
-<polygon fill="#191970" stroke="#191970" points="2704.5001,-689.7483 2701,-679.7484 2697.5001,-689.7484 2704.5001,-689.7483"/>
+<!-- Node56->Node50 -->
+<g id="edge185" class="edge">
+<title>Node56->Node50</title>
+<path fill="none" stroke="#191970" d="M1088.7895,-777.9635C1101.7614,-775.6477 1115.8835,-773.4294 1129,-772 1324.0086,-750.7478 1819.3825,-777.9851 2011,-736 2171.0669,-700.9279 2347.2135,-608.6982 2412.1391,-572.6945"/>
+<polygon fill="#191970" stroke="#191970" points="2414.2182,-575.5422 2421.2414,-567.6096 2410.8043,-569.4311 2414.2182,-575.5422"/>
</g>
-<!-- Node58 -->
+<!-- Node57 -->
<g id="node42" class="node">
-<title>Node58</title>
-<g id="a_node42"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes. ">
-<polygon fill="#ffffff" stroke="#000000" points="2829,-716.5 2829,-735.5 2927,-735.5 2927,-716.5 2829,-716.5"/>
-<text text-anchor="middle" x="2878" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/function.h</text>
+<title>Node57</title>
+<g id="a_node42"><a xlink:href="ir_2adt_8h.html" target="_top" xlink:title="Algebraic data type definitions. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1716,-660.5 1716,-679.5 1790,-679.5 1790,-660.5 1716,-660.5"/>
+<text text-anchor="middle" x="1753" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/adt.h</text>
</a>
</g>
</g>
-<!-- Node55->Node58 -->
-<g id="edge173" class="edge">
-<title>Node55->Node58</title>
-<path fill="none" stroke="#191970" d="M2728.6563,-777.8906C2758.9211,-767.3749 2807.5855,-750.466 2841.0911,-738.8243"/>
-<polygon fill="#191970" stroke="#191970" points="2842.2407,-742.1302 2850.538,-735.5419 2839.9431,-735.5179 2842.2407,-742.1302"/>
+<!-- Node56->Node57 -->
+<g id="edge168" class="edge">
+<title>Node56->Node57</title>
+<path fill="none" stroke="#191970" d="M1051.4346,-777.9414C1068.0309,-761.8281 1104.2806,-729.6804 1142,-716 1168.376,-706.4337 1566.3584,-681.3867 1705.45,-672.8773"/>
+<polygon fill="#191970" stroke="#191970" points="1706.0146,-676.3494 1715.7827,-672.2464 1705.5879,-669.3624 1706.0146,-676.3494"/>
</g>
<!-- Node59 -->
<g id="node43" class="node">
<title>Node59</title>
-<g id="a_node43"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code. ">
-<polygon fill="#ffffff" stroke="#ff0000" points="1630.5,-548.5 1630.5,-567.5 1771.5,-567.5 1771.5,-548.5 1630.5,-548.5"/>
-<text text-anchor="middle" x="1701" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/parser/source_map.h</text>
+<g id="a_node43"><a xlink:href="ir_2function_8h.html" target="_top" xlink:title="Function nodes. ">
+<polygon fill="#ffffff" stroke="#000000" points="959,-716.5 959,-735.5 1057,-735.5 1057,-716.5 959,-716.5"/>
+<text text-anchor="middle" x="1008" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/function.h</text>
</a>
</g>
</g>
-<!-- Node55->Node59 -->
-<g id="edge182" class="edge">
-<title>Node55->Node59</title>
-<path fill="none" stroke="#191970" d="M2659.3044,-777.9309C2499.6677,-741.2942 1927.5263,-609.9878 1752.3438,-569.7834"/>
-<polygon fill="#191970" stroke="#191970" points="1753.1258,-566.3719 1742.5963,-567.5463 1751.5599,-573.1946 1753.1258,-566.3719"/>
+<!-- Node56->Node59 -->
+<g id="edge177" class="edge">
+<title>Node56->Node59</title>
+<path fill="none" stroke="#191970" d="M1036.6875,-777.8906C1031.7761,-769.0068 1024.3421,-755.5601 1018.2725,-744.5811"/>
+<polygon fill="#191970" stroke="#191970" points="1021.2888,-742.8031 1013.3874,-735.7449 1015.1627,-746.1899 1021.2888,-742.8031"/>
</g>
-<!-- Node62 -->
+<!-- Node60 -->
<g id="node44" class="node">
-<title>Node62</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="1240,-716.5 1240,-735.5 1326,-735.5 1326,-716.5 1240,-716.5"/>
-<text text-anchor="middle" x="1283" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_set</text>
-</g>
-<!-- Node55->Node62 -->
-<g id="edge193" class="edge">
-<title>Node55->Node62</title>
-<path fill="none" stroke="#191970" d="M2653.4121,-783.741C2607.6967,-780.2472 2536.6662,-775.1255 2475,-772 1987.8074,-747.307 1864.6626,-769.5553 1378,-736 1364.5521,-735.0728 1350.0669,-733.7262 1336.5587,-732.3202"/>
-<polygon fill="#191970" stroke="#191970" points="1336.7682,-728.8227 1326.4527,-731.2393 1336.0237,-735.783 1336.7682,-728.8227"/>
-</g>
-<!-- Node56->Node3 -->
-<g id="edge165" class="edge">
-<title>Node56->Node3</title>
-<path fill="none" stroke="#191970" d="M2663.9598,-668.1209C2623.2679,-666.0692 2555.9816,-662.7141 2498,-660 2118.2816,-642.2255 1660.2651,-622.5115 1510.7856,-616.1219"/>
-<polygon fill="#191970" stroke="#191970" points="1510.7019,-612.6152 1500.5616,-615.6851 1510.403,-619.6089 1510.7019,-612.6152"/>
+<title>Node60</title>
+<g id="a_node44"><a xlink:href="source__map_8h.html" target="_top" xlink:title="A map from source names to source code. ">
+<polygon fill="#ffffff" stroke="#ff0000" points="1062.5,-548.5 1062.5,-567.5 1203.5,-567.5 1203.5,-548.5 1062.5,-548.5"/>
+<text text-anchor="middle" x="1133" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/parser/source_map.h</text>
+</a>
</g>
-<!-- Node56->Node5 -->
-<g id="edge167" class="edge">
-<title>Node56->Node5</title>
-<path fill="none" stroke="#191970" d="M2691.5185,-660.2057C2667.5706,-636.1766 2601.6498,-574.3518 2533,-548 2358.7082,-481.0965 1778.4176,-454.8667 1589.7933,-447.9808"/>
-<polygon fill="#191970" stroke="#191970" points="1589.9042,-444.4827 1579.7847,-447.6203 1589.6521,-451.4781 1589.9042,-444.4827"/>
</g>
-<!-- Node56->Node10 -->
-<g id="edge170" class="edge">
-<title>Node56->Node10</title>
-<path fill="none" stroke="#191970" d="M2738.2565,-662.3873C2762.4163,-655.7866 2793.1588,-644.0393 2814,-624 2890.7147,-550.237 3048.1685,-268.7657 2991,-179 2959.3846,-129.3576 2927.8682,-138.1629 2871,-123 2783.6408,-99.7073 2524.0585,-85.5545 2398.1067,-79.8774"/>
-<polygon fill="#191970" stroke="#191970" points="2397.9537,-76.3672 2387.8079,-79.4187 2397.6422,-83.3603 2397.9537,-76.3672"/>
+<!-- Node56->Node60 -->
+<g id="edge186" class="edge">
+<title>Node56->Node60</title>
+<path fill="none" stroke="#191970" d="M994.296,-787.0819C857.5712,-785.3921 471.6745,-777.0005 434,-736 411.1457,-711.128 411.9071,-685.5508 434,-660 474.0366,-613.6972 876.7612,-577.5783 1052.1209,-563.9205"/>
+<polygon fill="#191970" stroke="#191970" points="1052.625,-567.3921 1062.3252,-563.1312 1052.0851,-560.4129 1052.625,-567.3921"/>
</g>
-<!-- Node56->Node16 -->
-<g id="edge171" class="edge">
-<title>Node56->Node16</title>
-<path fill="none" stroke="#191970" d="M2663.9228,-669.7886C2479.9311,-668.5701 1663.8073,-661.1303 1413,-624 1235.0275,-597.6524 1193.175,-573.2226 1024,-512 871.1024,-456.668 793.2388,-476.508 699,-344 627.7433,-243.8068 612.2095,-89.8839 608.8854,-35.4276"/>
-<polygon fill="#191970" stroke="#191970" points="612.3627,-34.9063 608.3337,-25.1074 605.3726,-35.28 612.3627,-34.9063"/>
+<!-- Node63 -->
+<g id="node45" class="node">
+<title>Node63</title>
+<polygon fill="#ffffff" stroke="#bfbfbf" points="1151,-716.5 1151,-735.5 1237,-735.5 1237,-716.5 1151,-716.5"/>
+<text text-anchor="middle" x="1194" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">unordered_set</text>
</g>
-<!-- Node56->Node21 -->
-<g id="edge168" class="edge">
-<title>Node56->Node21</title>
-<path fill="none" stroke="#191970" d="M2738.1669,-665.666C2775.3713,-660.1389 2833.3492,-648.2269 2878,-624 2922.2164,-600.0088 3173.5301,-359.3233 3251.758,-283.9465"/>
-<polygon fill="#191970" stroke="#191970" points="3254.4205,-286.2413 3259.19,-276.7808 3249.5618,-281.2021 3254.4205,-286.2413"/>
+<!-- Node56->Node63 -->
+<g id="edge197" class="edge">
+<title>Node56->Node63</title>
+<path fill="none" stroke="#191970" d="M1065.75,-777.8906C1091.2939,-767.5554 1132.1009,-751.0447 1160.811,-739.4284"/>
+<polygon fill="#191970" stroke="#191970" points="1162.4596,-742.5371 1170.4168,-735.5419 1159.834,-736.0481 1162.4596,-742.5371"/>
</g>
-<!-- Node56->Node33 -->
+<!-- Node57->Node3 -->
<g id="edge169" class="edge">
-<title>Node56->Node33</title>
-<path fill="none" stroke="#191970" d="M2726.9001,-660.3737C2763.5134,-644.8905 2826,-610.7402 2826,-558 2826,-558 2826,-558 2826,-446 2826,-414.7875 2829.2983,-403.3594 2850,-380 2873.4658,-353.5215 2900.0952,-372.5437 2921,-344 2947.5944,-307.6877 2937.2444,-251.9783 2927.7966,-219.808"/>
-<polygon fill="#191970" stroke="#191970" points="2931.0106,-218.3594 2924.6818,-209.8626 2924.3306,-220.4516 2931.0106,-218.3594"/>
+<title>Node57->Node3</title>
+<path fill="none" stroke="#191970" d="M1790.2634,-662.3387C1794.8798,-661.4944 1799.5419,-660.6915 1804,-660 1942.8098,-638.4688 1979.079,-644.8014 2118,-624 2119.2995,-623.8054 2120.6155,-623.6028 2121.9426,-623.3936"/>
+<polygon fill="#191970" stroke="#191970" points="2122.9486,-626.7746 2132.2404,-621.6842 2121.8022,-619.8691 2122.9486,-626.7746"/>
</g>
-<!-- Node56->Node49 -->
-<g id="edge166" class="edge">
-<title>Node56->Node49</title>
-<path fill="none" stroke="#191970" d="M2682.4987,-660.4509C2644.3039,-640.7375 2556.5527,-595.4465 2511.6178,-572.2543"/>
-<polygon fill="#191970" stroke="#191970" points="2512.946,-569.0012 2502.4545,-567.5249 2509.7354,-575.2215 2512.946,-569.0012"/>
+<!-- Node57->Node5 -->
+<g id="edge171" class="edge">
+<title>Node57->Node5</title>
+<path fill="none" stroke="#191970" d="M1790.0897,-661.1134C1791.7483,-660.7335 1793.391,-660.3609 1795,-660 1870.7835,-643.004 1891.1753,-644.8148 1966,-624 2137.8433,-576.1964 2174.4303,-544.166 2345,-492 2386.609,-479.2745 2434.4361,-466.7823 2469.4047,-458.0349"/>
+<polygon fill="#191970" stroke="#191970" points="2470.5064,-461.3676 2479.3659,-455.5573 2468.8168,-454.5746 2470.5064,-461.3676"/>
</g>
-<!-- Node58->Node1 -->
+<!-- Node57->Node10 -->
<g id="edge174" class="edge">
-<title>Node58->Node1</title>
-<path fill="none" stroke="#191970" d="M2828.7383,-724.7965C2621.2244,-719.7084 1797.7516,-699.3349 1121,-680 1024.4489,-677.2415 911.6751,-673.6705 848.1674,-671.6274"/>
-<polygon fill="#191970" stroke="#191970" points="848.1379,-668.1247 838.0303,-671.3008 847.9124,-675.1211 848.1379,-668.1247"/>
+<title>Node57->Node10</title>
+<path fill="none" stroke="#191970" d="M1734.5643,-660.2596C1705.0026,-645.1713 1644.7495,-616.5789 1590,-604 1531.7179,-590.6095 1093.8467,-611.6767 1053,-568 1045.273,-559.7376 1004.2577,-382.0377 1113,-246 1137.598,-215.2276 1158.7368,-227.5643 1194,-210 1265.4073,-174.4326 1274.3157,-144.9903 1351,-123 1427.4517,-101.0764 1962.9397,-84.2738 2156.4452,-78.8563"/>
+<polygon fill="#191970" stroke="#191970" points="2156.6004,-82.3535 2166.4992,-78.5765 2156.4056,-75.3562 2156.6004,-82.3535"/>
</g>
-<!-- Node58->Node3 -->
+<!-- Node57->Node16 -->
<g id="edge175" class="edge">
-<title>Node58->Node3</title>
-<path fill="none" stroke="#191970" d="M2828.9275,-717.3184C2745.5802,-702.9284 2570.8986,-674.306 2422,-660 2074.4727,-626.6101 1653.8015,-617.0791 1511.1041,-614.7055"/>
-<polygon fill="#191970" stroke="#191970" points="1510.9743,-611.203 1500.9188,-614.5404 1510.8608,-618.2021 1510.9743,-611.203"/>
+<title>Node57->Node16</title>
+<path fill="none" stroke="#191970" d="M1790.1751,-665.0974C1806.1051,-663.185 1824.9368,-661.1736 1842,-660 2155.5832,-638.4316 2948.7123,-690.1351 3256,-624 3344.4174,-604.9706 3622,-536.442 3622,-446 3622,-446 3622,-446 3622,-133 3622,-101.7875 3614.8301,-93.2863 3598,-67 3589.4831,-53.6978 3576.976,-41.1707 3566.3622,-31.8027"/>
+<polygon fill="#191970" stroke="#191970" points="3568.5967,-29.1085 3558.7123,-25.2941 3564.0607,-34.4399 3568.5967,-29.1085"/>
</g>
-<!-- Node58->Node16 -->
-<g id="edge179" class="edge">
-<title>Node58->Node16</title>
-<path fill="none" stroke="#191970" d="M2828.6614,-725.3405C2519.1384,-721.1525 854.7738,-697.8661 749,-680 669.3119,-666.54 636.9024,-677.1249 576,-624 417.8781,-486.0711 380,-404.3259 380,-194.5 380,-194.5 380,-194.5 380,-133 380,-46.0732 512.5702,-23.3944 575.5337,-17.5253"/>
-<polygon fill="#191970" stroke="#191970" points="576.0527,-20.994 585.7233,-16.6663 575.4646,-14.0188 576.0527,-20.994"/>
+<!-- Node57->Node28 -->
+<g id="edge173" class="edge">
+<title>Node57->Node28</title>
+<path fill="none" stroke="#191970" d="M1715.8867,-660.5352C1684.1873,-652.0847 1637.5731,-638.7853 1598,-624 1577.8776,-616.4819 1574.8408,-609.2049 1554,-604 1492.2164,-588.5697 1025.5923,-614.4222 982,-568 882.0588,-461.5711 972.375,-371.4849 1047,-246 1053.0989,-235.7444 1061.4088,-225.6786 1069.2885,-217.2054"/>
+<polygon fill="#191970" stroke="#191970" points="1071.9018,-219.5376 1076.3283,-209.9117 1066.8652,-214.6763 1071.9018,-219.5376"/>
</g>
-<!-- Node58->Node17 -->
-<g id="edge180" class="edge">
-<title>Node58->Node17</title>
-<path fill="none" stroke="#191970" d="M2875.5211,-716.2414C2869.2161,-693.3485 2850.4289,-635.7367 2814,-604 2490.5902,-322.2466 2245.6875,-538.8994 1906,-277 1816.726,-208.1697 1755.2051,-82.4023 1734.0761,-34.6135"/>
-<polygon fill="#191970" stroke="#191970" points="1737.1697,-32.9498 1729.9807,-25.1671 1730.7473,-35.7342 1737.1697,-32.9498"/>
+<!-- Node57->Node33 -->
+<g id="edge172" class="edge">
+<title>Node57->Node33</title>
+<path fill="none" stroke="#191970" d="M1747.9686,-660.3051C1721.0899,-608.5128 1594.1406,-363.8959 1553.5277,-285.6394"/>
+<polygon fill="#191970" stroke="#191970" points="1556.518,-283.8031 1548.805,-276.5394 1550.3049,-287.0276 1556.518,-283.8031"/>
</g>
-<!-- Node58->Node21 -->
-<g id="edge176" class="edge">
-<title>Node58->Node21</title>
-<path fill="none" stroke="#191970" d="M2927.0208,-720.9983C2985.2887,-714.2273 3078.1491,-700.5751 3106,-680 3134.4726,-658.9656 3247.2099,-433.7151 3258,-400 3270.1902,-361.9101 3273.7278,-315.3503 3274.703,-287.0844"/>
-<polygon fill="#191970" stroke="#191970" points="3278.2077,-286.9457 3274.9702,-276.8577 3271.2101,-286.7629 3278.2077,-286.9457"/>
+<!-- Node57->Node50 -->
+<g id="edge170" class="edge">
+<title>Node57->Node50</title>
+<path fill="none" stroke="#191970" d="M1790.2741,-662.406C1794.8887,-661.5501 1799.5474,-660.7261 1804,-660 1926.0928,-640.0884 1961.1987,-658.4872 2080,-624 2100.2415,-618.124 2102.804,-610.0307 2123,-604 2214.0482,-576.8122 2324.8793,-565.3949 2387.8545,-560.8282"/>
+<polygon fill="#191970" stroke="#191970" points="2388.1827,-564.3139 2397.9154,-560.1276 2387.6964,-557.3308 2388.1827,-564.3139"/>
</g>
-<!-- Node58->Node33 -->
+<!-- Node59->Node1 -->
<g id="edge178" class="edge">
-<title>Node58->Node33</title>
-<path fill="none" stroke="#191970" d="M2927.0959,-721.7181C2990.276,-713.2074 3092,-688.0126 3092,-614 3092,-614 3092,-614 3092,-558 3092,-488.6439 3125.8046,-301.3412 3084,-246 3077.7911,-237.7807 3030.7773,-223.5633 2988.5159,-212.1463"/>
-<polygon fill="#191970" stroke="#191970" points="2989.3129,-208.7365 2978.7481,-209.5335 2987.504,-215.4988 2989.3129,-208.7365"/>
-</g>
-<!-- Node58->Node42 -->
-<g id="edge177" class="edge">
-<title>Node58->Node42</title>
-<path fill="none" stroke="#191970" d="M2927.24,-720.2559C2989.5243,-712.4173 3092.7905,-697.3455 3127,-680 3327.2317,-578.4754 3500.2366,-358.2207 3553.8617,-285.4052"/>
-<polygon fill="#191970" stroke="#191970" points="3557.0078,-287.0319 3560.08,-276.8922 3551.3552,-282.9029 3557.0078,-287.0319"/>
+<title>Node59->Node1</title>
+<path fill="none" stroke="#191970" d="M1057.0957,-720.832C1158.0631,-710.2039 1388.0397,-685.9958 1489.8761,-675.2762"/>
+<polygon fill="#191970" stroke="#191970" points="1490.3259,-678.7483 1499.9046,-674.2206 1489.5931,-671.7867 1490.3259,-678.7483"/>
</g>
-<!-- Node59->Node4 -->
-<g id="edge183" class="edge">
-<title>Node59->Node4</title>
-<path fill="none" stroke="#191970" d="M1671.6041,-548.3733C1643.1693,-539.0613 1599.9123,-524.8953 1568.6919,-514.671"/>
-<polygon fill="#191970" stroke="#191970" points="1569.605,-511.2872 1559.0124,-511.5011 1567.4264,-517.9396 1569.605,-511.2872"/>
+<!-- Node59->Node3 -->
+<g id="edge179" class="edge">
+<title>Node59->Node3</title>
+<path fill="none" stroke="#191970" d="M1057.305,-722.0866C1082.6148,-720.1371 1113.9477,-717.8151 1142,-716 1287.9139,-706.5587 1657.1491,-715.4729 1799,-680 1819.4475,-674.8866 1821.7612,-665.8855 1842,-660 1959.9388,-625.7033 1994.6231,-642.8007 2116,-624 2118.0587,-623.6811 2120.1583,-623.3469 2122.2781,-623.002"/>
+<polygon fill="#191970" stroke="#191970" points="2122.9838,-626.4327 2132.2679,-621.3281 2121.827,-619.5289 2122.9838,-626.4327"/>
</g>
<!-- Node59->Node16 -->
-<g id="edge185" class="edge">
+<g id="edge183" class="edge">
<title>Node59->Node16</title>
-<path fill="none" stroke="#191970" d="M1651.9095,-548.4807C1607.2198,-539.6381 1539.4869,-525.7935 1481,-512 1385.7298,-489.5316 1362.6638,-480.8998 1268,-456 1234.2212,-447.115 1226.1402,-443.3755 1192,-436 1098.584,-415.8189 1067.7519,-437.8607 980,-400 896.6693,-364.0468 876.8399,-345.2337 817,-277 746.267,-196.3452 773.697,-143.0152 698,-67 681.3415,-50.2714 658.1325,-37.1673 639.4558,-28.3642"/>
-<polygon fill="#191970" stroke="#191970" points="640.7144,-25.092 630.1609,-24.1563 637.8275,-31.469 640.7144,-25.092"/>
-</g>
-<!-- Node59->Node18 -->
-<g id="edge186" class="edge">
-<title>Node59->Node18</title>
-<path fill="none" stroke="#191970" d="M1771.6369,-549.5734C1994.8548,-522.7121 2704.9014,-435.4869 3290,-344 3373.8529,-330.8886 3599.9055,-330.2421 3666,-277 3696.8843,-252.1213 3700,-234.1584 3700,-194.5 3700,-194.5 3700,-194.5 3700,-133 3700,-93.7716 3673.1458,-54.4419 3655.3687,-32.7039"/>
-<polygon fill="#191970" stroke="#191970" points="3657.9896,-30.3829 3648.8532,-25.0184 3652.6501,-34.9096 3657.9896,-30.3829"/>
+<path fill="none" stroke="#191970" d="M1057.3028,-722.0531C1082.6121,-720.0949 1113.9452,-717.7753 1142,-716 1295.8998,-706.2613 1685.8874,-719.312 1835,-680 1854.2194,-674.933 1855.7143,-664.8088 1875,-660 2184.5124,-582.8238 2995.1372,-675.1426 3310,-624 3396.1296,-610.0101 3660,-533.2584 3660,-446 3660,-446 3660,-446 3660,-133 3660,-84.5473 3609.4485,-48.5212 3575.6708,-29.8573"/>
+<polygon fill="#191970" stroke="#191970" points="3577.1172,-26.6624 3566.6445,-25.0577 3573.8307,-32.843 3577.1172,-26.6624"/>
</g>
-<!-- Node59->Node20 -->
-<g id="edge187" class="edge">
-<title>Node59->Node20</title>
-<path fill="none" stroke="#191970" d="M1685.4039,-548.3187C1662.783,-534.5515 1619.2732,-509.095 1580,-492 1445.5031,-433.4557 1367.721,-465.1366 1285,-344 1243.3114,-282.9512 1221.0691,-239.1816 1264,-179 1280.9535,-155.2342 1312.8166,-143.6439 1337.3803,-138.055"/>
-<polygon fill="#191970" stroke="#191970" points="1338.2987,-141.4397 1347.3959,-136.0091 1336.8977,-134.5813 1338.2987,-141.4397"/>
-</g>
-<!-- Node59->Node41 -->
+<!-- Node59->Node17 -->
<g id="edge184" class="edge">
-<title>Node59->Node41</title>
-<path fill="none" stroke="#191970" d="M1723.057,-548.4309C1802.8733,-513.8036 2077.6249,-394.606 2185.7671,-347.6899"/>
-<polygon fill="#191970" stroke="#191970" points="2187.3126,-350.8346 2195.0935,-343.6438 2184.5266,-344.4129 2187.3126,-350.8346"/>
+<title>Node59->Node17</title>
+<path fill="none" stroke="#191970" d="M958.7049,-720.5238C881.781,-711.6188 739.9875,-693.6254 721,-680 624.5503,-610.788 524,-388.2258 524,-194.5 524,-194.5 524,-194.5 524,-133 524,28.3554 720.6294,-84.8 881,-67 1012.393,-52.4163 1962.4584,-23.374 2181.179,-16.8303"/>
+<polygon fill="#191970" stroke="#191970" points="2181.4388,-20.3242 2191.3298,-16.5271 2181.2297,-13.3273 2181.4388,-20.3242"/>
</g>
-<!-- Node63->Node1 -->
-<g id="edge198" class="edge">
-<title>Node63->Node1</title>
-<path fill="none" stroke="#191970" d="M618.2941,-895.2089C611.3718,-881.9639 601.6073,-857.8297 610,-839 643.1249,-764.6813 726.8723,-709.3706 770.5469,-684.5147"/>
-<polygon fill="#191970" stroke="#191970" points="772.445,-687.4638 779.4777,-679.5397 769.0385,-681.3486 772.445,-687.4638"/>
+<!-- Node59->Node28 -->
+<g id="edge182" class="edge">
+<title>Node59->Node28</title>
+<path fill="none" stroke="#191970" d="M958.6547,-719.8067C866.1698,-706.8127 676,-672.9294 676,-614 676,-614 676,-614 676,-502 676,-443.4665 694.7206,-285.409 738,-246 758.4856,-227.3464 922.0274,-209.7412 1019.8423,-200.7403"/>
+<polygon fill="#191970" stroke="#191970" points="1020.3298,-204.2104 1029.9709,-199.8173 1019.6946,-197.2393 1020.3298,-204.2104"/>
</g>
-<!-- Node63->Node3 -->
-<g id="edge199" class="edge">
-<title>Node63->Node3</title>
-<path fill="none" stroke="#191970" d="M629.7471,-895.4138C638.8422,-881.0531 657.9112,-854.0392 681,-839 837.9155,-736.7906 904.0372,-767.794 1084,-716 1100.2248,-711.3304 1319.4661,-652.1688 1415.955,-626.1459"/>
-<polygon fill="#191970" stroke="#191970" points="1416.9797,-629.4947 1425.7233,-623.5115 1415.1569,-622.7362 1416.9797,-629.4947"/>
+<!-- Node59->Node33 -->
+<g id="edge180" class="edge">
+<title>Node59->Node33</title>
+<path fill="none" stroke="#191970" d="M1010.0236,-716.236C1015.4165,-692.8157 1032.433,-633.2278 1071,-604 1134.2861,-556.039 1180.6963,-613.1753 1246,-568 1278.8553,-545.2716 1268.5198,-522.7703 1294,-492 1364.7564,-406.5533 1465.7914,-321.5428 1513.7378,-282.9682"/>
+<polygon fill="#191970" stroke="#191970" points="1516.1602,-285.5125 1521.7819,-276.5321 1511.7869,-280.0466 1516.1602,-285.5125"/>
</g>
-<!-- Node63->Node16 -->
-<g id="edge206" class="edge">
-<title>Node63->Node16</title>
-<path fill="none" stroke="#191970" d="M588.8395,-902.9751C518.3665,-898.398 362.6719,-885.525 317,-859 114.3444,-741.3029 76,-624.3542 76,-390 76,-390 76,-390 76,-133 76,-101.7875 75.3716,-86.1746 100,-67 137.5738,-37.7466 469.9536,-21.319 575.7852,-16.7956"/>
-<polygon fill="#191970" stroke="#191970" points="576.0223,-20.2888 585.8663,-16.3716 575.7281,-13.295 576.0223,-20.2888"/>
+<!-- Node59->Node43 -->
+<g id="edge181" class="edge">
+<title>Node59->Node43</title>
+<path fill="none" stroke="#191970" d="M958.8326,-722.9595C854.3932,-716.1692 617.3782,-698.8768 586,-680 435.8323,-589.6609 377.4584,-362.7546 361.7255,-286.7536"/>
+<polygon fill="#191970" stroke="#191970" points="365.1019,-285.7884 359.7078,-276.6695 358.2379,-287.1619 365.1019,-285.7884"/>
</g>
-<!-- Node63->Node18 -->
-<g id="edge207" class="edge">
-<title>Node63->Node18</title>
-<path fill="none" stroke="#191970" d="M659.1361,-903.7787C921.7735,-894.6141 2581.7647,-836.0676 3084,-803 3462.9196,-778.0516 3928,-1049.74 3928,-670 3928,-670 3928,-670 3928,-133 3928,-98.6999 3916.0086,-86.7993 3888,-67 3853.6175,-42.695 3731.8978,-25.9343 3672.7468,-19.0315"/>
-<polygon fill="#191970" stroke="#191970" points="3673.134,-15.5531 3662.8014,-17.8953 3672.3394,-22.5078 3673.134,-15.5531"/>
+<!-- Node60->Node4 -->
+<g id="edge187" class="edge">
+<title>Node60->Node4</title>
+<path fill="none" stroke="#191970" d="M1203.6252,-554.9693C1437.8163,-544.9198 2185.4005,-512.8395 2387.3223,-504.1747"/>
+<polygon fill="#191970" stroke="#191970" points="2387.5136,-507.6698 2397.3543,-503.7442 2387.2134,-500.6762 2387.5136,-507.6698"/>
</g>
-<!-- Node63->Node20 -->
-<g id="edge208" class="edge">
-<title>Node63->Node20</title>
-<path fill="none" stroke="#191970" d="M588.9997,-903.504C522.1415,-899.9827 379.563,-889.0714 342,-859 271.3218,-802.4179 266,-760.5369 266,-670 266,-670 266,-670 266,-614 266,-422.5275 322.5043,-338.7735 490,-246 574.2203,-199.3516 601.479,-197.3005 696,-179 820.9664,-154.8048 1218.1484,-138.6068 1337.0506,-134.207"/>
-<polygon fill="#191970" stroke="#191970" points="1337.4909,-137.6933 1347.3561,-133.8295 1337.2346,-130.698 1337.4909,-137.6933"/>
+<!-- Node60->Node16 -->
+<g id="edge189" class="edge">
+<title>Node60->Node16</title>
+<path fill="none" stroke="#191970" d="M1203.851,-551.9421C1416.1688,-533.4522 2065.6084,-474.4434 2601,-400 2747.478,-379.633 2783.3648,-369.7099 2929,-344 3004.632,-330.6482 3023.3725,-326.3774 3099,-313 3192.2473,-296.5059 3231.4578,-331.3537 3309,-277 3343.5556,-252.7781 3356,-236.6994 3356,-194.5 3356,-194.5 3356,-194.5 3356,-133 3356,-59.7342 3459.4585,-30.6153 3513.6884,-20.3846"/>
+<polygon fill="#191970" stroke="#191970" points="3514.5989,-23.7778 3523.8327,-18.5828 3513.3747,-16.8856 3514.5989,-23.7778"/>
</g>
-<!-- Node63->Node49 -->
-<g id="edge200" class="edge">
-<title>Node63->Node49</title>
-<path fill="none" stroke="#191970" d="M659.1676,-896.3677C694.4376,-887.5544 750.2252,-873.1898 798,-859 992.2793,-801.2962 1033.2569,-760.4052 1231,-716 1754.8866,-598.3559 1899.336,-649.811 2430,-568 2431.2721,-567.8039 2432.5602,-567.6006 2433.8591,-567.3916"/>
-<polygon fill="#191970" stroke="#191970" points="2434.6601,-570.8061 2443.9412,-565.6961 2433.4992,-563.903 2434.6601,-570.8061"/>
+<!-- Node60->Node18 -->
+<g id="edge190" class="edge">
+<title>Node60->Node18</title>
+<path fill="none" stroke="#191970" d="M1107.8022,-548.4772C1016.6064,-514.1877 694.8659,-394.7357 424,-313 362.9049,-294.5641 329.51,-322.7314 285,-277 258.7566,-250.0364 266,-232.1265 266,-194.5 266,-194.5 266,-194.5 266,-133 266,-85.4454 416.0342,-41.0544 483.6441,-23.4647"/>
+<polygon fill="#191970" stroke="#191970" points="484.5555,-26.8443 493.3732,-20.9709 482.8173,-20.0635 484.5555,-26.8443"/>
</g>
-<!-- Node64 -->
-<g id="node46" class="node">
-<title>Node64</title>
-<polygon fill="#ffffff" stroke="#bfbfbf" points="351.5,-839.5 351.5,-858.5 440.5,-858.5 440.5,-839.5 351.5,-839.5"/>
-<text text-anchor="middle" x="396" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">dmlc/registry.h</text>
+<!-- Node60->Node20 -->
+<g id="edge191" class="edge">
+<title>Node60->Node20</title>
+<path fill="none" stroke="#191970" d="M1130.5347,-548.2674C1122.0892,-512.4893 1097.8806,-386.5171 1155,-313 1184.4951,-275.0375 1212.0637,-294.0833 1257,-277 1291.0987,-264.0368 1298.4621,-257.743 1333,-246 1390.1667,-226.5631 1409.9966,-237.0086 1464,-210 1484.1162,-199.9394 1483.4436,-188.1276 1504,-179 1543.7181,-161.3641 1667.8227,-144.4341 1728.257,-136.9768"/>
+<polygon fill="#191970" stroke="#191970" points="1728.919,-140.4221 1738.4221,-135.7379 1728.0721,-133.4735 1728.919,-140.4221"/>
</g>
-<!-- Node63->Node64 -->
-<g id="edge197" class="edge">
-<title>Node63->Node64</title>
-<path fill="none" stroke="#191970" d="M588.8747,-896.3727C550.2844,-886.8944 488.0424,-871.6069 444.741,-860.9715"/>
-<polygon fill="#191970" stroke="#191970" points="445.5333,-857.5621 434.9871,-858.5758 443.8636,-864.3601 445.5333,-857.5621"/>
+<!-- Node60->Node42 -->
+<g id="edge188" class="edge">
+<title>Node60->Node42</title>
+<path fill="none" stroke="#191970" d="M1136.7109,-548.4309C1149.6376,-515.0974 1192.9557,-403.3952 1212.4046,-353.2432"/>
+<polygon fill="#191970" stroke="#191970" points="1215.7142,-354.3889 1216.0667,-343.8 1209.1878,-351.8579 1215.7142,-354.3889"/>
</g>
-<!-- Node65 -->
-<g id="node47" class="node">
-<title>Node65</title>
-<g id="a_node47"><a xlink:href="type__relation_8h.html" target="_top" xlink:title="Type relation and function for type inference(checking). ">
-<polygon fill="#ffffff" stroke="#ff0000" points="961,-839.5 961,-858.5 1083,-858.5 1083,-839.5 961,-839.5"/>
-<text text-anchor="middle" x="1022" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm/ir/type_relation.h</text>
-</a>
+<!-- Node64->Node1 -->
+<g id="edge202" class="edge">
+<title>Node64->Node1</title>
+<path fill="none" stroke="#191970" d="M1893.7928,-720.9316C1824.5248,-710.9599 1670.3384,-688.7634 1590.3368,-677.2464"/>
+<polygon fill="#191970" stroke="#191970" points="1590.4209,-673.7225 1580.0242,-675.7618 1589.4234,-680.6511 1590.4209,-673.7225"/>
</g>
+<!-- Node64->Node3 -->
+<g id="edge203" class="edge">
+<title>Node64->Node3</title>
+<path fill="none" stroke="#191970" d="M1949.718,-716.4509C1992.7582,-696.6135 2091.9926,-650.8758 2142.0169,-627.8194"/>
+<polygon fill="#191970" stroke="#191970" points="2143.7177,-630.8894 2151.3344,-623.5249 2140.7875,-624.5322 2143.7177,-630.8894"/>
</g>
-<!-- Node63->Node65 -->
-<g id="edge201" class="edge">
-<title>Node63->Node65</title>
-<path fill="none" stroke="#191970" d="M659.3198,-900.0304C724.5592,-890.851 865.1033,-871.0759 950.8125,-859.0163"/>
-<polygon fill="#191970" stroke="#191970" points="951.3124,-862.4806 960.7272,-857.6213 950.3371,-855.5488 951.3124,-862.4806"/>
+<!-- Node64->Node16 -->
+<g id="edge205" class="edge">
+<title>Node64->Node16</title>
+<path fill="none" stroke="#191970" d="M1964.1951,-725.049C2190.1869,-718.929 3428.546,-685.1794 3447,-680 3453.0606,-678.299 3638.6992,-571.3949 3644,-568 3686.3765,-540.8601 3736,-552.3224 3736,-502 3736,-502 3736,-502 3736,-390 3736,-301.485 3774,-283.015 3774,-194.5 3774,-194.5 3774,-194.5 3774,-133 3774,-46.0732 3641.4298,-23.3944 3578.4663,-17.5253"/>
+<polygon fill="#191970" stroke="#191970" points="3578.5354,-14.0188 3568.2767,-16.6663 3577.9473,-20.994 3578.5354,-14.0188"/>
</g>
-<!-- Node65->Node1 -->
-<g id="edge202" class="edge">
-<title>Node65->Node1</title>
-<path fill="none" stroke="#191970" d="M1009.9568,-839.3762C973.4179,-810.1777 863.5478,-722.3797 818.0588,-686.0291"/>
-<polygon fill="#191970" stroke="#191970" points="820.0998,-683.1799 810.1028,-679.6714 815.7299,-688.6484 820.0998,-683.1799"/>
+<!-- Node64->Node18 -->
+<g id="edge206" class="edge">
+<title>Node64->Node18</title>
+<path fill="none" stroke="#191970" d="M1893.7852,-724.8508C1785.6318,-721.1094 1448.7744,-707.8777 1171,-680 992.8237,-662.1181 942.5268,-678.6552 772,-624 575.0059,-560.8618 530.7071,-522.482 364,-400 258.2504,-322.3043 152,-325.7235 152,-194.5 152,-194.5 152,-194.5 152,-133 152,-86.2171 191.4598,-86.4672 234,-67 278.1542,-46.7942 418.8454,-27.4693 483.2474,-19.4225"/>
+<polygon fill="#191970" stroke="#191970" points="483.7686,-22.8848 493.2641,-18.1852 482.9105,-15.9376 483.7686,-22.8848"/>
</g>
-<!-- Node65->Node15 -->
-<g id="edge205" class="edge">
-<title>Node65->Node15</title>
-<path fill="none" stroke="#191970" d="M1083.3365,-840.2585C1087.9539,-839.7731 1092.547,-839.3441 1097,-839 1833.2014,-782.1181 2020.9274,-847.1811 2758,-803 2909.7915,-793.9014 3336.8741,-848.6666 3439,-736 3495.9955,-673.1219 3915.7979,-900.1823 3138,-548 2810.1745,-399.5626 2688.0968,-454.408 2375,-277 2246.4697,-204.1717 2118.4675,-78.0725 2074.23,-32.5273"/>
-<polygon fill="#191970" stroke="#191970" points="2076.6471,-29.9917 2067.1857,-25.2237 2071.6087,-34.8512 2076.6471,-29.9917"/>
+<!-- Node64->Node20 -->
+<g id="edge207" class="edge">
+<title>Node64->Node20</title>
+<path fill="none" stroke="#191970" d="M1893.7534,-721.1605C1834.1488,-712.6223 1718.7409,-694.4232 1707,-680 1684.8129,-652.7443 1742.4353,-627.5031 1744,-624 1819.1026,-455.8551 1756.026,-394.0879 1761,-210 1761.523,-190.6426 1761.7743,-168.5403 1761.8939,-152.9959"/>
+<polygon fill="#191970" stroke="#191970" points="1765.394,-152.9921 1761.9598,-142.9693 1758.3941,-152.946 1765.394,-152.9921"/>
</g>
-<!-- Node65->Node49 -->
+<!-- Node64->Node50 -->
<g id="edge204" class="edge">
-<title>Node65->Node49</title>
-<path fill="none" stroke="#191970" d="M1083.3884,-840.7642C1087.9938,-840.1619 1092.57,-839.5682 1097,-839 1468.3229,-791.3718 1567.4573,-816.7938 1933,-736 2133.8785,-691.601 2365.7052,-604.4373 2450.6295,-571.2544"/>
-<polygon fill="#191970" stroke="#191970" points="2451.9837,-574.4828 2460.015,-567.5727 2449.4274,-567.9663 2451.9837,-574.4828"/>
+<title>Node64->Node50</title>
+<path fill="none" stroke="#191970" d="M1957.8244,-716.4862C2044.3377,-687.9318 2301.8081,-602.9514 2399.6722,-570.6504"/>
+<polygon fill="#191970" stroke="#191970" points="2400.7779,-573.9713 2409.177,-567.5133 2398.5839,-567.324 2400.7779,-573.9713"/>
</g>
-<!-- Node65->Node55 -->
-<g id="edge203" class="edge">
-<title>Node65->Node55</title>
-<path fill="none" stroke="#191970" d="M1083.3382,-840.2809C1087.9553,-839.7903 1092.5478,-839.354 1097,-839 1707.7264,-790.446 1863.0317,-831.9664 2475,-803 2532.3397,-800.2859 2597.7624,-795.628 2643.4108,-792.1251"/>
-<polygon fill="#191970" stroke="#191970" points="2643.7162,-795.612 2653.4166,-791.3515 2643.1765,-788.6329 2643.7162,-795.612"/>
+<!-- Node65 -->
+<g id="node47" class="node">
+<title>Node65</title>
... 445354 lines suppressed ...