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 2023/02/05 18:21:59 UTC
[tvm-site] branch asf-site updated: deploying docs (apache/tvm@f7aeaf1d389881e408d29585ea62c6bb5ea65843)
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 b22b06eff5 deploying docs (apache/tvm@f7aeaf1d389881e408d29585ea62c6bb5ea65843)
b22b06eff5 is described below
commit b22b06eff5a7cc93534fda8cf371969ab204ea6c
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Sun Feb 5 18:21:53 2023 +0000
deploying docs (apache/tvm@f7aeaf1d389881e408d29585ea62c6bb5ea65843)
---
docs/_images/sphx_glr_micro_train_001.png | Bin 323351 -> 321381 bytes
docs/_images/sphx_glr_micro_train_thumb.png | Bin 23144 -> 23148 bytes
.../how_to/compile_models/from_darknet.rst.txt | 2 +-
.../how_to/compile_models/from_keras.rst.txt | 2 +-
.../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_adreno.rst.txt | 7 +-
.../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 | 22 +-
.../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 | 1490 ++++++++------------
.../tune_network_cuda.rst.txt | 4 +-
.../tune_network_x86.rst.txt | 4 +-
.../tune_sparse_x86.rst.txt | 79 +-
.../tune_with_autotvm/sg_execution_times.rst.txt | 8 +-
.../tune_with_autotvm/tune_conv2d_cuda.rst.txt | 496 +------
.../work_with_microtvm/micro_autotune.rst.txt | 16 +-
.../work_with_microtvm/micro_pytorch.rst.txt | 4 +-
.../how_to/work_with_microtvm/micro_train.rst.txt | 18 +-
.../work_with_microtvm/sg_execution_times.rst.txt | 12 +-
.../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 | 14 +-
.../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 | 11 +-
docs/_sources/tutorial/autotvm_matmul_x86.rst.txt | 20 +-
docs/_sources/tutorial/autotvm_relay_x86.rst.txt | 59 +-
.../tutorial/cross_compilation_and_rpc.rst.txt | 2 +-
docs/_sources/tutorial/intro_topi.rst.txt | 2 +-
docs/_sources/tutorial/sg_execution_times.rst.txt | 18 +-
.../tutorial/tensor_expr_get_started.rst.txt | 44 +-
docs/commit_hash | 2 +-
docs/how_to/compile_models/from_darknet.html | 2 +-
docs/how_to/compile_models/from_keras.html | 2 +-
docs/how_to/compile_models/from_mxnet.html | 2 +-
docs/how_to/compile_models/from_oneflow.html | 18 +-
docs/how_to/compile_models/from_pytorch.html | 13 +-
docs/how_to/compile_models/from_tensorflow.html | 2 +-
docs/how_to/compile_models/sg_execution_times.html | 22 +-
.../deploy_models/deploy_model_on_adreno.html | 3 +-
.../deploy_models/deploy_model_on_android.html | 2 +-
.../deploy_object_detection_pytorch.html | 51 +-
docs/how_to/deploy_models/deploy_prequantized.html | 9 +-
.../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 | 36 +-
docs/how_to/deploy_models/sg_execution_times.html | 22 +-
.../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 | 1490 ++++++++------------
.../tune_with_autoscheduler/tune_network_cuda.html | 4 +-
.../tune_with_autoscheduler/tune_network_x86.html | 4 +-
.../tune_with_autoscheduler/tune_sparse_x86.html | 79 +-
.../tune_with_autotvm/sg_execution_times.html | 8 +-
.../how_to/tune_with_autotvm/tune_conv2d_cuda.html | 496 +------
docs/how_to/work_with_microtvm/micro_autotune.html | 16 +-
docs/how_to/work_with_microtvm/micro_pytorch.html | 6 +-
docs/how_to/work_with_microtvm/micro_train.html | 16 +-
.../work_with_microtvm/sg_execution_times.html | 12 +-
.../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 | 14 +-
docs/how_to/work_with_schedules/tensorize.html | 2 +-
.../classtvm_1_1PrinterConfigNode-members.html | 21 +-
.../api/doxygen/classtvm_1_1PrinterConfigNode.html | 35 +-
.../classtvm_1_1PrinterConfigNode__coll__graph.svg | 257 ++--
...asstvm_1_1PrinterConfigNode__inherit__graph.svg | 109 +-
.../classtvm_1_1SEqualHandlerDefault-members.html | 13 +-
.../doxygen/classtvm_1_1SEqualHandlerDefault.html | 53 +-
...asstvm_1_1SEqualHandlerDefault__coll__graph.svg | 52 +-
...tvm_1_1SEqualHandlerDefault__inherit__graph.svg | 52 +-
...asstvm_1_1SEqualReducer_1_1Handler-members.html | 9 +-
.../classtvm_1_1SEqualReducer_1_1Handler.html | 37 +-
...vm_1_1SEqualReducer_1_1Handler__coll__graph.svg | 25 +-
...1_1SEqualReducer_1_1Handler__inherit__graph.svg | 52 +-
docs/reference/api/doxygen/doc_8h_source.html | 2 +-
docs/reference/api/doxygen/functions_func_i.html | 8 +-
docs/reference/api/doxygen/functions_func_s.html | 4 +-
docs/reference/api/doxygen/functions_func_t.html | 4 +-
docs/reference/api/doxygen/functions_func_u.html | 2 +-
docs/reference/api/doxygen/functions_i.html | 16 +-
docs/reference/api/doxygen/functions_s.html | 11 +-
docs/reference/api/doxygen/functions_t.html | 14 +-
docs/reference/api/doxygen/functions_u.html | 2 +-
docs/reference/api/doxygen/functions_v.html | 10 +-
docs/reference/api/doxygen/functions_vars_s.html | 3 +
docs/reference/api/doxygen/ir_2expr_8h_source.html | 4 +-
docs/reference/api/doxygen/ir_2type_8h_source.html | 2 +-
.../api/doxygen/ir__docsifier_8h_source.html | 2 +-
.../api/doxygen/relay_2base_8h_source.html | 2 +-
.../api/doxygen/script__printer_8h_source.html | 19 +-
docs/reference/api/doxygen/search/all_11.js | 2 +-
docs/reference/api/doxygen/search/all_13.js | 2 +-
docs/reference/api/doxygen/search/all_14.js | 17 +-
docs/reference/api/doxygen/search/all_15.js | 8 +-
docs/reference/api/doxygen/search/all_16.js | 6 +-
docs/reference/api/doxygen/search/all_17.js | 4 +-
docs/reference/api/doxygen/search/all_a.js | 1 +
docs/reference/api/doxygen/search/all_e.js | 4 +-
docs/reference/api/doxygen/search/functions_10.js | 2 +-
docs/reference/api/doxygen/search/functions_12.js | 2 +-
docs/reference/api/doxygen/search/functions_13.js | 10 +-
docs/reference/api/doxygen/search/functions_14.js | 4 +-
docs/reference/api/doxygen/search/functions_15.js | 4 +-
docs/reference/api/doxygen/search/functions_16.js | 2 +-
docs/reference/api/doxygen/search/functions_9.js | 1 +
docs/reference/api/doxygen/search/functions_d.js | 2 +-
docs/reference/api/doxygen/search/variables_11.js | 3 +-
.../api/doxygen/structural__equal_8h_source.html | 20 +-
docs/reference/api/doxygen/var_8h_source.html | 2 +-
docs/reference/api/python/auto_scheduler.html | 4 +-
docs/reference/api/python/runtime.html | 6 +-
.../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 | 7 +-
docs/tutorial/autotvm_matmul_x86.html | 20 +-
docs/tutorial/autotvm_relay_x86.html | 274 ++--
docs/tutorial/cross_compilation_and_rpc.html | 2 +-
docs/tutorial/intro_topi.html | 2 +-
docs/tutorial/sg_execution_times.html | 18 +-
docs/tutorial/tensor_expr_get_started.html | 44 +-
177 files changed, 2671 insertions(+), 4015 deletions(-)
diff --git a/docs/_images/sphx_glr_micro_train_001.png b/docs/_images/sphx_glr_micro_train_001.png
index deeb6582d3..803c7ccf21 100644
Binary files a/docs/_images/sphx_glr_micro_train_001.png and b/docs/_images/sphx_glr_micro_train_001.png differ
diff --git a/docs/_images/sphx_glr_micro_train_thumb.png b/docs/_images/sphx_glr_micro_train_thumb.png
index 408b2492d0..26a309d27c 100644
Binary files a/docs/_images/sphx_glr_micro_train_thumb.png and b/docs/_images/sphx_glr_micro_train_thumb.png differ
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 c27950d5d6..4ebd58bb71 100644
--- a/docs/_sources/how_to/compile_models/from_darknet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
@@ -318,7 +318,7 @@ The process is no different from other examples.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 19.667 seconds)
+ **Total running time of the script:** ( 1 minutes 20.072 seconds)
.. _sphx_glr_download_how_to_compile_models_from_darknet.py:
diff --git a/docs/_sources/how_to/compile_models/from_keras.rst.txt b/docs/_sources/how_to/compile_models/from_keras.rst.txt
index e8597d2b38..25006acf57 100644
--- a/docs/_sources/how_to/compile_models/from_keras.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_keras.rst.txt
@@ -232,7 +232,7 @@ Look up prediction top 1 index in 1000 class synset.
.. code-block:: none
Relay top-1 id: 285, class name: Egyptian cat
-
1/1 [==============================] - ETA: 0s
1/1 [==============================] - 1s 993ms/step
+
1/1 [==============================] - ETA: 0s
1/1 [==============================] - 1s 996ms/step
Keras top-1 id: 285, class name: Egyptian cat
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 48816fe9a3..142d07ff12 100644
--- a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
@@ -116,7 +116,7 @@ In this section, we download a pretrained imagenet model and classify an image.
.. code-block:: none
- Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip867feb82-13fe-4ac9-9ed8-064a92e9ff84 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+ Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip6c21ea8d-f38a-47fa-8916-023b4f07d20e 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 03e266fd42..d3dd214c43 100644
--- a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
@@ -121,7 +121,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:00, 57.1MB/s]
28%|##8 | 11.8M/41.5M [00:00<00:00, 49.9MB/s]
40%|###9 | 16.6M/41.5M [00:00<00:00, 33.8MB/s]
54%|#####3 | 22.3M/41.5M [00:00<00:00, 29.6MB/s]
61%|######1 | 25.5M/41.5M [00:00<00:00, 30.2MB/s]
77%|#######7 | 32.0M/41.5M [00:00<00:00, 35.9MB/s]
86%|########5 | 35.6M/41.5M [00:01<00:00, 34.6MB/s]
94%|#########4| 39.0M/41.5M [00:01<00:00, 29.9MB/s]
100%|##########| 41.5M/41.5M [00:01<00:00, 33.4MB/s]
+
0%| | 0.00/41.5M [00:00<?, ?B/s]
19%|#9 | 7.99M/41.5M [00:00<00:00, 44.8MB/s]
35%|###4 | 14.3M/41.5M [00:00<00:00, 49.4MB/s]
46%|####6 | 19.1M/41.5M [00:00<00:00, 42.2MB/s]
56%|#####5 | 23.2M/41.5M [00:00<00:00, 41.0MB/s]
65%|######5 | 27.2M/41.5M [00:00<00:00, 32.8MB/s]
77%|#######7 | 32.0M/41.5M [00:00<00:00, 35.2MB/s]
86%|########5 | 35.5M/41.5M [00:01<00:00, 30.7MB/s]
96%|#########6| 40.0M/41.5M [00:01<00:00, 31.7MB/s]
100%|##########| 41.5M/41.5M [00:01<00:00, 36.7MB/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 b04f914ebe..f3e0a7cdd6 100644
--- a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
@@ -101,7 +101,7 @@ Load a pretrained PyTorch model
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.
warnings.warn(msg)
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]
18%|#7 | 7.99M/44.7M [00:00<00:00, 57.7MB/s]
32%|###2 | 14.3M/44.7M [00:00<00:00, 55.8MB/s]
46%|####5 | 20.5M/44.7M [00:00<00:00, 59.2MB/s]
59%|#####8 | 26.2M/44.7M [00:00<00:00, 58.0MB/s]
72%|#######1 | 32.0M/44.7M [00:00<00:00, 57.9MB/s]
90%|########9 | 40.0M/44.7M [00:00<00:00, 60.4MB/s]
100%|##########| 44.7M/44.7M [00:00<00:00, 55.4MB/s]
+
0%| | 0.00/44.7M [00:00<?, ?B/s]
18%|#7 | 7.99M/44.7M [00:00<00:01, 25.8MB/s]
36%|###5 | 16.0M/44.7M [00:00<00:00, 35.6MB/s]
56%|#####5 | 24.9M/44.7M [00:00<00:00, 50.7MB/s]
80%|#######9 | 35.7M/44.7M [00:00<00:00, 67.8MB/s]
99%|#########8| 44.2M/44.7M [00:00<00:00, 64.3MB/s]
100%|##########| 44.7M/44.7M [00:00<00:00, 54.9MB/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 504fa13bc9..595f6f2af4 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -424,7 +424,7 @@ Run the corresponding model on tensorflow
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 25.182 seconds)
+ **Total running time of the script:** ( 1 minutes 25.067 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 467a38dcab..cb44887405 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
=================
-**06:40.110** total execution time for **how_to_compile_models** files:
+**06:40.860** total execution time for **how_to_compile_models** files:
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:25.182 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:25.067 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``) | 01:19.667 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``) | 01:20.072 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``) | 00:55.377 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``) | 00:55.588 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``) | 00:37.760 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``) | 00:37.729 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``) | 00:32.144 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``) | 00:31.986 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``) | 00:31.941 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``) | 00:31.944 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``) | 00:27.312 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``) | 00:27.650 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``) | 00:25.054 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``) | 00:25.763 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``) | 00:22.924 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``) | 00:22.269 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``) | 00:02.749 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``) | 00:02.791 | 0.0 MB |
+-----------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
index 4bd9116fee..b7fefebe8f 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_adreno.rst.txt
@@ -727,13 +727,18 @@ well as provides information about the model's performance
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 2757.8206 2757.1375 2761.3960 2756.0175 1.9356
+ 3346.4930 3346.7782 3350.8307 3342.5832 2.7176
+.. rst-class:: sphx-glr-timing
+
+ **Total running time of the script:** ( 1 minutes 4.223 seconds)
+
+
.. _sphx_glr_download_how_to_deploy_models_deploy_model_on_adreno.py:
.. only:: html
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 8077c010e0..69728d9087 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
@@ -437,7 +437,7 @@ Execute on TVM
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 16.5346 16.5556 17.3170 15.9225 0.4869
+ 16.2607 16.2663 16.3941 16.1104 0.0858
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 7a0fbdb93d..c306052a11 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
@@ -130,7 +130,7 @@ Load pre-trained maskrcnn from torchvision and do tracing
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=MaskRCNN_ResNet50_FPN_Weights.COCO_V1`. You can also use `weights=MaskRCNN_ResNet50_FPN_Weights.DEFAULT` to get the most up-to-date weights.
warnings.warn(msg)
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]
5%|4 | 7.99M/170M [00:00<00:02, 58.6MB/s]
9%|9 | 16.0M/170M [00:00<00:03, 52.4MB/s]
14%|#4 | 24.0M/170M [00:00<00:02, 59.5MB/s]
18%|#7 | 30.3M/170M [00:00<00:02, 60.2MB/s]
21%|##1 | 36.5M/170M [00:00<00:02, 61.6MB/s]
26%|##6 | 44.6M/170M [00:00<00:01, 68.7MB/s]
30%|### | 51.3M/170M [00:00<00:02, 57.3MB/s]
34%|###3 | 57.4M/170M [00:01<00:01, 59.2MB/s]
38%|###7 | 64.0M/170M [00:01<00:01, 57.9MB/s]
42%|####2 | 72.0M/170M [00:01<00:01, 61.0MB/s]
46%|####6 | 78.3M/170M [00:01<00:01, 60.3MB/s]
51%|#####1 | 87.5M/170M [00:01<00:01, 69.8MB/s]
56%|#####5 | 94.3M/170M [00:01<00:01, 59.3MB/s]
59%|#####9 | 100M/170M [00:01<00:01, 56.5MB/s]
62%|######2 | 106M/170M [00:01<00:01, 52.1MB/s]
67%|######7 | 114M/170M [00:02<00:01, 54.0MB/s]
71%|#######1 | 121M/170M [00:02<00:00, 57.5MB/s]
74%|#######4 | 126M/170M [00:02<00:00, 56.2MB/s]
78%|#######7 | 132M/170M [00:02<00:00, 41.7MB/s]
80%|######## | 136M/170M [00:02<00:00, 39.3MB/s]
85%|########4 | 144M/170M [00:02<00:00, 46.3MB/s]
88%|########8 | 150M/170M [00:02<00:00, 49.8MB/s]
91%|#########1| 155M/170M [00:02<00:00, 48.1MB/s]
94%|#########4| 160M/170M [00:03<00:00, 37.6MB/s]
99%|#########8| 168M/170M [00:03<00:00, 45.0MB/s]
100%|##########| 170M/170M [00:03<00:00, 53.2MB/s]
+
0%| | 0.00/170M [00:00<?, ?B/s]
5%|4 | 7.99M/170M [00:00<00:03, 49.1MB/s]
9%|9 | 16.0M/170M [00:00<00:03, 51.3MB/s]
13%|#3 | 22.5M/170M [00:00<00:02, 57.2MB/s]
17%|#6 | 28.8M/170M [00:00<00:02, 59.8MB/s]
20%|## | 34.6M/170M [00:00<00:02, 55.4MB/s]
25%|##4 | 42.1M/170M [00:00<00:02, 61.9MB/s]
28%|##8 | 48.1M/170M [00:00<00:02, 60.8MB/s]
32%|###1 | 54.1M/170M [00:00<00:01, 61.3MB/s]
37%|###6 | 62.5M/170M [00:01<00:01, 69.1MB/s]
41%|#### | 69.2M/170M [00:01<00:01, 66.1MB/s]
45%|####5 | 76.5M/170M [00:01<00:01, 69.3MB/s]
49%|####8 | 83.2M/170M [00:01<00:01, 56.0MB/s]
52%|#####2 | 89.0M/170M [00:01<00:01, 54.0MB/s]
57%|#####6 | 96.7M/170M [00:01<00:01, 60.8MB/s]
61%|######1 | 104M/170M [00:01<00:01, 50.5MB/s]
66%|######6 | 112M/170M [00:02<00:01, 58.0MB/s]
72%|#######1 | 122M/170M [00:02<00:00, 65.0MB/s]
76%|#######5 | 129M/170M [00:02<00:00, 50.3MB/s]
80%|######## | 136M/170M [00:02<00:00, 53.4MB/s]
88%|########8 | 150M/170M [00:02<00:00, 73.7MB/s]
93%|#########3| 158M/170M [00:02<00:00, 73.6MB/s]
98%|#########7| 166M/170M [00:02<00:00, 72.7MB/s]
100%|##########| 170M/170M [00:02<00:00, 62.3MB/s]
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/nn/functional.py:3897: 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)
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/detection/anchor_utils.py:124: 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').
@@ -299,7 +299,7 @@ Get boxes with score larger than 0.9
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 3 minutes 37.669 seconds)
+ **Total running time of the script:** ( 3 minutes 39.740 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 e4998d4162..f1c83053dd 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -227,7 +227,7 @@ training. Other models require a full post training calibration.
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and will be removed in 0.15. The current behavior is equivalent to passing `weights=MobileNet_V2_Weights.IMAGENET1K_V1`. You can also use `weights=MobileNet_V2_Weights.DEFAULT` to get the most up-to-date weights.
warnings.warn(msg)
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]
47%|####6 | 6.30M/13.6M [00:00<00:00, 62.5MB/s]
91%|######### | 12.3M/13.6M [00:00<00:00, 31.2MB/s]
100%|##########| 13.6M/13.6M [00:00<00:00, 36.8MB/s]
+
0%| | 0.00/13.6M [00:00<?, ?B/s]
59%|#####8 | 7.99M/13.6M [00:00<00:00, 67.2MB/s]
100%|##########| 13.6M/13.6M [00:00<00:00, 72.1MB/s]
@@ -409,7 +409,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.5351 90.3906 91.1886 90.2169 0.2770
+ 90.6126 90.5213 94.4287 90.1787 0.4976
@@ -458,7 +458,7 @@ TODO
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 16.492 seconds)
+ **Total running time of the script:** ( 1 minutes 17.124 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 912d41e3ea..d0c5ae5bfd 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
@@ -423,7 +423,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)
- 120.8493 120.8345 121.6863 119.8915 0.3304
+ 121.1432 121.0440 122.7098 120.1117 0.5692
@@ -460,7 +460,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:** ( 2 minutes 28.055 seconds)
+ **Total running time of the script:** ( 2 minutes 31.105 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 4459d16b38..1d0de9e578 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -257,7 +257,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 50.485 seconds)
+ **Total running time of the script:** ( 1 minutes 40.890 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 5f59a41398..73c050e9fe 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
@@ -170,7 +170,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]
3%|2 | 3469/132723 [00:00<00:03, 34686.23KB/s]
9%|8 | 11761/132723 [00:00<00:01, 63055.86KB/s]
14%|#3 | 18067/132723 [00:00<00:01, 61975.59KB/s]
20%|## | 26766/132723 [00:00<00:01, 71745.64KB/s]
26%|##5 | 33953/132723 [00:00<00:01, 54923.20KB/s]
32%|###2 | 42568/132723 [00:00<00:01, 63706.53KB/s]
39%|###8 | 51240/132723 [00:00<00:01, 70294.33KB/s]
45%|####5 | 59833/132723 [00:00<00:00, 74835.33KB/s]
51%|##### | 67658/132723 [00:01<00:00, 70550.42KB/s]
57%|#####7 | 76297/132723 [00:01<00:00, 74989.69KB/s]
63%|######3 | 84029/132723 [00:01<00:00, 72998.91KB/s]
70%|######9 | 92747/132723 [00:01<00:00, 77007.31KB/s]
76%|#######6 | 101392/132723 [00:01<00:00, 79721.31KB/s]
83%|########2 | 110111/132723 [00:01<00:00, 81892.86KB/s]
89%|########9 | 118749/132723 [00:01<00:00, 83207.33KB/s]
96%|########
#6| 127451/132723 [00:01<00:00, 84332.51KB/s]
100%|##########| 132723/132723 [00:01<00:00, 74158.96KB/s]
+
0%| | 0/132723 [00:00<?, ?KB/s]
5%|4 | 6108/132723 [00:00<00:02, 61073.65KB/s]
11%|# | 14004/132723 [00:00<00:01, 71589.80KB/s]
17%|#6 | 21962/132723 [00:00<00:01, 75234.34KB/s]
23%|##2 | 29947/132723 [00:00<00:01, 77055.16KB/s]
29%|##8 | 37857/132723 [00:00<00:01, 77790.59KB/s]
34%|###4 | 45700/132723 [00:00<00:01, 78002.12KB/s]
40%|#### | 53622/132723 [00:00<00:01, 78395.93KB/s]
46%|####6 | 61594/132723 [00:00<00:00, 78814.56KB/s]
52%|#####2 | 69537/132723 [00:00<00:00, 79002.90KB/s]
58%|#####8 | 77518/132723 [00:01<00:00, 79246.18KB/s]
64%|######4 | 85478/132723 [00:01<00:00, 79350.89KB/s]
70%|####### | 93439/132723 [00:01<00:00, 79428.57KB/s]
76%|#######6 | 101456/132723 [00:01<00:00, 79650.94KB/s]
83%|########2 | 109502/132723 [00:01<00:00, 79893.42KB/s]
89%|########8 | 117560/132723 [00:01<00:00, 80097.79KB/s]
95%|########
#4| 125570/132723 [00:01<00:00, 80008.80KB/s]
100%|##########| 132723/132723 [00:01<00:00, 78518.94KB/s]
@@ -246,7 +246,7 @@ Display result
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 3 minutes 51.806 seconds)
+ **Total running time of the script:** ( 3 minutes 50.823 seconds)
.. _sphx_glr_download_how_to_deploy_models_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
index d8a1dba4d8..0f8413be95 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,26 +5,26 @@
Computation times
=================
-**15:37.838** total execution time for **how_to_deploy_models** files:
+**15:41.881** total execution time for **how_to_deploy_models** files:
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``) | 03:51.806 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``) | 03:50.823 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:37.669 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:39.740 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``) | 02:28.055 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``) | 02:31.105 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``) | 01:50.485 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``) | 01:40.890 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``) | 01:16.492 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``) | 01:17.124 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_adreno.py` (``deploy_model_on_adreno.py``) | 00:57.050 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_adreno.py` (``deploy_model_on_adreno.py``) | 01:04.223 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``) | 00:41.736 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``) | 00:42.441 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``) | 00:27.510 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``) | 00:27.995 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``) | 00:27.029 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``) | 00:27.534 | 0.0 MB |
+------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``) | 00:00.007 | 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 5dee341932..0e8f85d788 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
@@ -463,7 +463,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.zip776947c3-9fb0-40c6-9459-520e3c7ad700 from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+ Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip642ca368-188b-4971-b935-e853fb1d9c9d 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 6b2c3b8650..8cadc435f3 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:54.926** total execution time for **how_to_extend_tvm** files:
+**00:55.614** 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:50.966 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:51.624 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``) | 00:02.827 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``) | 00:02.848 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``) | 00:01.124 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``) | 00:01.134 | 0.0 MB |
+-------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``) | 00:00.009 | 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 420bb96a5b..8e391a2b9d 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
@@ -220,10 +220,10 @@ profile the execution time of each passes.
.. code-block:: none
Printing results of timing profile...
- InferType: 21426us [21426us] (48.74%; 48.74%)
- FoldScaleAxis: 22538us [8us] (51.26%; 51.26%)
- FoldConstant: 22530us [1785us] (51.25%; 99.96%)
- InferType: 20744us [20744us] (47.19%; 92.08%)
+ InferType: 21898us [21898us] (49.07%; 49.07%)
+ FoldScaleAxis: 22726us [9us] (50.93%; 50.93%)
+ FoldConstant: 22717us [1749us] (50.91%; 99.96%)
+ InferType: 20968us [20968us] (46.99%; 92.30%)
@@ -262,10 +262,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
.. code-block:: none
Printing results of timing profile...
- InferType: 21307us [21307us] (48.17%; 48.17%)
- FoldScaleAxis: 22926us [7us] (51.83%; 51.83%)
- FoldConstant: 22919us [1837us] (51.81%; 99.97%)
- InferType: 21082us [21082us] (47.66%; 91.98%)
+ InferType: 20843us [20843us] (48.21%; 48.21%)
+ FoldScaleAxis: 22394us [6us] (51.79%; 51.79%)
+ FoldConstant: 22389us [1762us] (51.78%; 99.97%)
+ InferType: 20627us [20627us] (47.71%; 92.13%)
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
index ddebe1dddb..f161be0180 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
@@ -331,7 +331,7 @@ latency of convolution.
.. code-block:: none
- Convolution: 54.173278 ms
+ Convolution: 54.140926 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 7c95498aec..ea9d0954b1 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
@@ -608,7 +608,7 @@ be able to run on our build server
.. code-block:: none
- conv2d with tensor core: 7.187190 ms
+ conv2d with tensor core: 9.808022 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 bb62221275..4774c6b1f4 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
@@ -134,8 +134,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
.. code-block:: none
- Numpy running time: 0.019796
- Baseline: 3.343958
+ Numpy running time: 0.019557
+ Baseline: 3.415455
@@ -227,7 +227,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
.. code-block:: none
- Opt1: 0.319501
+ Opt1: 0.335021
@@ -318,7 +318,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
.. code-block:: none
- Opt2: 0.352584
+ Opt2: 0.356353
@@ -406,7 +406,7 @@ the access pattern for A matrix is more cache friendly.
.. code-block:: none
- Opt3: 0.123492
+ Opt3: 0.121695
@@ -523,7 +523,7 @@ flattening.
.. code-block:: none
- Opt4: 0.109739
+ Opt4: 0.109818
@@ -635,7 +635,7 @@ write to C when all the block results are ready.
.. code-block:: none
- Opt5: 0.112837
+ Opt5: 0.112447
@@ -748,7 +748,7 @@ Furthermore, we can also utilize multi-core processors to do the thread-level pa
.. code-block:: none
- Opt6: 0.146648
+ Opt6: 0.147908
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 9323314e6d..c71fe4f37b 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.363** total execution time for **how_to_optimize_operators** files:
+**00:35.927** total execution time for **how_to_optimize_operators** files:
+-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``) | 00:32.757 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``) | 00:33.235 | 0.0 MB |
+-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.519 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.599 | 0.0 MB |
+-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``) | 00:01.087 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``) | 00:01.094 | 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 f0a1ab20c4..dc96465d28 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
=================
-**10:18.667** total execution time for **how_to_tune_with_autoscheduler** files:
+**09:59.077** 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``) | 06:15.096 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 06:08.038 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``) | 01:42.307 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``) | 01:42.454 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``) | 01:09.069 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``) | 01:09.392 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``) | 00:43.507 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``) | 00:30.470 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``) | 00:15.093 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``) | 00:15.118 | 0.0 MB |
+----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``) | 00:13.594 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``) | 00:13.605 | 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 fd0fe73e44..8594f451de 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
@@ -244,12 +244,12 @@ cooperative fetching, unrolling and operator fusion.
def main(data: T.Buffer((1, 512, 7, 7), "float32"), kernel: T.Buffer((512, 512, 3, 3), "float32"), bias: T.Buffer((1, 512, 1, 1), "float32"), compute: T.Buffer((1, 512, 7, 7), "float32")):
T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
blockIdx_x = T.env_thread("blockIdx.x")
- T.launch_thread(blockIdx_x, 28)
+ T.launch_thread(blockIdx_x, 128)
conv2d_nchw = T.allocate([14], "float32", "local")
- pad_temp_shared = T.allocate([72], "float32", "shared")
- kernel_shared = T.allocate([3072], "float32", "shared")
+ pad_temp_shared = T.allocate([162], "float32", "shared")
+ kernel_shared = T.allocate([72], "float32", "shared")
threadIdx_x = T.env_thread("threadIdx.x")
- T.launch_thread(threadIdx_x, 64)
+ T.launch_thread(threadIdx_x, 14)
conv2d_nchw_1 = T.Buffer((14,), data=conv2d_nchw, scope="local", align=32)
conv2d_nchw_1[0] = T.float32(0)
conv2d_nchw_1[1] = T.float32(0)
@@ -265,460 +265,308 @@ cooperative fetching, unrolling and operator fusion.
conv2d_nchw_1[11] = T.float32(0)
conv2d_nchw_1[12] = T.float32(0)
conv2d_nchw_1[13] = T.float32(0)
- for rc_outer_outer, ry_outer_outer in T.grid(64, 3):
- cse_var_2: T.int32 = rc_outer_outer * 72
- cse_var_1: T.int32 = ry_outer_outer * 3
+ for rc_outer_outer in range(256):
+ cse_var_1: T.int32 = rc_outer_outer * 98
threadIdx_x_1 = T.env_thread("threadIdx.x")
- pad_temp_shared_1 = T.Buffer((72,), data=pad_temp_shared, scope="shared")
- with T.launch_thread(threadIdx_x_1, 64):
- data_1 = T.Buffer((25088,), data=data.data)
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= threadIdx_x_1 * 4 % 9 and threadIdx_x_1 * 4 % 9 < 8, data_1[rc_outer_outer * 392 + threadIdx_x_1 * 4 // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + threadIdx_x_1 * 4 % 9 - 8], T.float32(0))
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4 + 1] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= (threadIdx_x_1 * 4 + 1) % 9 and (threadIdx_x_1 * 4 + 1) % 9 < 8, data_1[rc_outer_outer * 392 + (threadIdx_x_1 * 4 + 1) // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + (threadIdx_x_1 * 4 + 1) % 9 - 8], T.float32(0))
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4 + 2] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= (threadIdx_x_1 * 4 + 2) % 9 and (threadIdx_x_1 * 4 + 2) % 9 < 8, data_1[rc_outer_outer * 392 + (threadIdx_x_1 * 4 + 2) // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + (threadIdx_x_1 * 4 + 2) % 9 - 8], T.float32(0))
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4 + 3] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= (threadIdx_x_1 * 4 + 3) % 9 and (threadIdx_x_1 * 4 + 3) % 9 < 8, data_1[rc_outer_outer * 392 + (threadIdx_x_1 * 4 + 3) // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + (threadIdx_x_1 * 4 + 3) % 9 - 8], T.float32(0))
+ pad_temp_shared_1 = T.Buffer((162,), data=pad_temp_shared, scope="shared")
+ data_1 = T.Buffer((25088,), data=data.data)
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1] = T.if_then_else(9 <= threadIdx_x_1 and 1 <= threadIdx_x_1 % 9 and threadIdx_x_1 % 9 < 8, data_1[cse_var_1 + threadIdx_x_1 // 9 * 7 + threadIdx_x_1 % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 14] = T.if_then_else(1 <= (threadIdx_x_1 + 5) % 9 and (threadIdx_x_1 + 5) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 14) // 9 * 7 + (threadIdx_x_1 + 5) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 28] = T.if_then_else(1 <= (threadIdx_x_1 + 1) % 9 and (threadIdx_x_1 + 1) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 28) // 9 * 7 + (threadIdx_x_1 + 1) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 42] = T.if_then_else(1 <= (threadIdx_x_1 + 6) % 9 and (threadIdx_x_1 + 6) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 42) // 9 * 7 + (threadIdx_x_1 + 6) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 56] = T.if_then_else(1 <= (threadIdx_x_1 + 2) % 9 and (threadIdx_x_1 + 2) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 56) // 9 * 7 + (threadIdx_x_1 + 2) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 70] = T.if_then_else(9 <= (threadIdx_x_1 + 70) % 81 and (threadIdx_x_1 + 70) % 81 < 72 and 1 <= (threadIdx_x_1 + 7) % 9 and (threadIdx_x_1 + 7) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 70) // 81 * 49 + (threadIdx_x_1 + 70) % 81 // 9 * 7 + (threadIdx_x_1 + 7) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 84] = T.if_then_else(6 <= threadIdx_x_1 and 1 <= (threadIdx_x_1 + 3) % 9 and (threadIdx_x_1 + 3) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 84) // 81 * 49 + (threadIdx_x_1 + 3) // 9 * 7 + (threadIdx_x_1 + 3) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 98] = T.if_then_else(1 <= (threadIdx_x_1 + 8) % 9 and (threadIdx_x_1 + 8) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 98) // 81 * 49 + (threadIdx_x_1 + 17) // 9 * 7 + (threadIdx_x_1 + 8) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 112] = T.if_then_else(1 <= (threadIdx_x_1 + 4) % 9 and (threadIdx_x_1 + 4) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 112) // 81 * 49 + (threadIdx_x_1 + 31) // 9 * 7 + (threadIdx_x_1 + 4) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 126] = T.if_then_else(1 <= threadIdx_x_1 % 9 and threadIdx_x_1 % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 126) // 81 * 49 + threadIdx_x_1 // 9 * 7 + threadIdx_x_1 % 9 + 27], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 140] = T.if_then_else(threadIdx_x_1 < 13 and 1 <= (threadIdx_x_1 + 5) % 9 and (threadIdx_x_1 + 5) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 140) // 81 * 49 + (threadIdx_x_1 + 59) // 9 * 7 + (threadIdx_x_1 + 5) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ if T.likely(threadIdx_x_1 < 8):
+ pad_temp_shared_1[threadIdx_x_1 + 154] = T.float32(0)
threadIdx_x_2 = T.env_thread("threadIdx.x")
- kernel_shared_1 = T.Buffer((3072,), data=kernel_shared, scope="shared")
- kernel_1 = T.Buffer((2359296,), data=kernel.data)
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 64) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 64) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 128) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 128) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 192] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 36864]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 256) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 256) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 320) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 320) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 384] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 73728]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 448) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 448) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 512) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 512) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 576] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 110592]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 640) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 640) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 704) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 704) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 768] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 147456]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 832) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 832) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 896) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 896) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 960] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 184320]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1024) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1024) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1088) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1088) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1152] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 221184]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1216) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1216) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1280) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1280) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1344] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 258048]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1408) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1408) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1472) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1472) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1536] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 294912]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1600) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1600) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1664) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1664) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1728] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 331776]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1792) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1792) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1856) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1856) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1920] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 368640]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1984) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1984) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2048) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2048) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2112] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 405504]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2176) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2176) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2240) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2240) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2304] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 442368]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2368) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2368) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2432) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2432) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2496] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 479232]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2560) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2560) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2624) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2624) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2688] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 516096]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2752) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2752) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2816) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2816) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2880] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 552960]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2944) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2944) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 3008) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 3008) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[0] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[9] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[0] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[9] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[8] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[17] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[8] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[17] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[18] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[27] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[18] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[27] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[26] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[35] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[26] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[35] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[36] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[45] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[36] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[45] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[44] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[53] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[44] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[53] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[54] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[63] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[54] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[63] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[62] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[71] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[62] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[71] * kernel_shared_1[threadIdx_x * 48 + 47]
- for i1_inner, i3_inner in T.grid(2, 7):
+ kernel_shared_1 = T.Buffer((72,), data=kernel_shared, scope="shared")
+ with T.launch_thread(threadIdx_x_2, 14):
+ kernel_1 = T.Buffer((2359296,), data=kernel.data)
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 1] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 1]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 2] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 2]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 3] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 3]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 4] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 4]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 5] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 5]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 72] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 72] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 81] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 81] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 153] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 153] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 1] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 1] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 73] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 73] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 82] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 82] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 154] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 154] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 2] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 2] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 74] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 74] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 83] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 83] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 155] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 155] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ for i1_inner, i2_inner in T.grid(2, 7):
compute_1 = T.Buffer((25088,), data=compute.data)
bias_1 = T.Buffer((512,), data=bias.data)
- compute_1[blockIdx_x // 7 * 6272 + threadIdx_x * 98 + i1_inner * 49 + blockIdx_x % 7 * 7 + i3_inner] = T.max(conv2d_nchw_1[i1_inner * 7 + i3_inner] + bias_1[blockIdx_x // 7 * 128 + threadIdx_x * 2 + i1_inner], T.float32(0))
+ compute_1[blockIdx_x * 196 + threadIdx_x // 7 * 98 + i1_inner * 49 + i2_inner * 7 + threadIdx_x % 7] = T.max(conv2d_nchw_1[i1_inner * 7 + i2_inner] + bias_1[blockIdx_x * 4 + threadIdx_x // 7 * 2 + i1_inner], T.float32(0))
@@ -768,7 +616,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 0.366 ms
+ Execution time of this operator: 0.264 ms
@@ -816,21 +664,21 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
conv2d_nchw_nn_o_o_i, conv2d_nchw_nn_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_i, factor=1)
conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_i, factor=1)
conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
- conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
- conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=2)
- conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=64)
+ conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=2)
+ 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_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=1)
- conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
+ conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=7)
conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=1)
conv2d_nchw_yy_o_o_o_o, conv2d_nchw_yy_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_o_i, factor=1)
conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, factor=1)
- conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=7)
- conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=1)
+ conv2d_nchw_xx_o_o_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=2)
- 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_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=1)
+ conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=3)
conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=3)
@@ -839,13 +687,13 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=2)
- compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=64)
+ compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=2)
compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
- compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
+ compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=7)
compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=1)
compute_i2_o_o_o, compute_i2_o_o_i = s[compute].split(compute_i2_o_o_i, factor=1)
- compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=7)
- compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
+ compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
+ compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=7)
compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
s[conv2d_nchw].compute_at(s[compute], compute_i3_o_i)
@@ -863,16 +711,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=6)
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=64)
+ 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=14)
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=4)
+ 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=64)
+ 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=14)
s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
- s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 512)
+ s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 1024)
s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "unroll_explicit", True)
CUDA source code:
@@ -890,10 +738,10 @@ 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__(64) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+ extern "C" __global__ void __launch_bounds__(14) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
float conv2d_nchw[14];
- __shared__ float pad_temp_shared[72];
- __shared__ float kernel_shared[3072];
+ __shared__ float pad_temp_shared[162];
+ __shared__ float kernel_shared[72];
conv2d_nchw[0] = 0.000000e+00f;
conv2d_nchw[1] = 0.000000e+00f;
conv2d_nchw[2] = 0.000000e+00f;
@@ -908,411 +756,297 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
conv2d_nchw[11] = 0.000000e+00f;
conv2d_nchw[12] = 0.000000e+00f;
conv2d_nchw[13] = 0.000000e+00f;
- for (int rc_outer_outer = 0; rc_outer_outer < 64; ++rc_outer_outer) {
- for (int ry_outer_outer = 0; ry_outer_outer < 3; ++ry_outer_outer) {
- __syncthreads();
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[(((int)threadIdx.x) * 4)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= ((((int)threadIdx.x) * 4) % 9))) && (((((int)threadIdx.x) * 4) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + (((((int)threadIdx.x) * 4) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + ((((int)threadIdx.x) * 4) % 9)) - 8)] : 0.000000e+00f);
- }
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[((((int)threadIdx.x) * 4) + 1)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (((((int)threadIdx.x) * 4) + 1) % 9))) && ((((((int)threadIdx.x) * 4) + 1) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + ((((((int)threadIdx.x) * 4) + 1) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + (((((int)threadIdx.x) * 4) + 1) % 9)) - 8)] : 0.000000e+00f);
- }
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[((((int)threadIdx.x) * 4) + 2)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (((((int)threadIdx.x) * 4) + 2) % 9))) && ((((((int)threadIdx.x) * 4) + 2) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + ((((((int)threadIdx.x) * 4) + 2) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + (((((int)threadIdx.x) * 4) + 2) % 9)) - 8)] : 0.000000e+00f);
- }
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[((((int)threadIdx.x) * 4) + 3)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (((((int)threadIdx.x) * 4) + 3) % 9))) && ((((((int)threadIdx.x) * 4) + 3) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + ((((((int)threadIdx.x) * 4) + 3) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + (((((int)threadIdx.x) * 4) + 3) % 9)) - 8)] : 0.000000e+00f);
- }
- kernel_shared[((int)threadIdx.x)] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 64) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 64) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 128) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 128) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 192)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 36864)];
- kernel_shared[(((((((int)threadIdx.x) + 256) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 256) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 320) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 320) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 384)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 73728)];
- kernel_shared[(((((((int)threadIdx.x) + 448) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 448) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 512) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 512) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 576)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 110592)];
- kernel_shared[(((((((int)threadIdx.x) + 640) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 640) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 704) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 704) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 768)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 147456)];
- kernel_shared[(((((((int)threadIdx.x) + 832) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 832) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 896) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 896) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 960)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 184320)];
- kernel_shared[(((((((int)threadIdx.x) + 1024) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1024) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1088) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1088) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1152)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 221184)];
- kernel_shared[(((((((int)threadIdx.x) + 1216) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1216) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1280) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1280) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1344)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 258048)];
- kernel_shared[(((((((int)threadIdx.x) + 1408) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1408) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1472) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1472) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1536)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 294912)];
- kernel_shared[(((((((int)threadIdx.x) + 1600) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1600) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1664) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1664) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1728)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 331776)];
- kernel_shared[(((((((int)threadIdx.x) + 1792) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1792) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1856) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1856) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1920)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 368640)];
- kernel_shared[(((((((int)threadIdx.x) + 1984) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1984) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2048) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2048) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2112)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 405504)];
- kernel_shared[(((((((int)threadIdx.x) + 2176) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2176) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2240) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2240) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2304)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 442368)];
- kernel_shared[(((((((int)threadIdx.x) + 2368) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2368) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2432) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2432) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2496)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 479232)];
- kernel_shared[(((((((int)threadIdx.x) + 2560) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2560) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2624) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2624) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2688)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 516096)];
- kernel_shared[(((((((int)threadIdx.x) + 2752) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2752) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2816) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2816) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2880)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 552960)];
- kernel_shared[(((((((int)threadIdx.x) + 2944) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2944) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 3008) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 3008) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- __syncthreads();
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[0] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[9] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[1] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[2] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[3] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[4] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[5] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[6] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[0] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[9] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[1] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[1] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[1] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[8] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[17] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[8] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[17] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[18] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[27] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[18] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[27] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[26] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[35] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[26] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[35] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[36] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[45] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[36] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[45] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[44] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[53] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[44] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[53] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[54] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[63] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[54] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[63] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[62] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[71] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[62] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[71] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
+ for (int rc_outer_outer = 0; rc_outer_outer < 256; ++rc_outer_outer) {
+ __syncthreads();
+ pad_temp_shared[((int)threadIdx.x)] = ((((9 <= ((int)threadIdx.x)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[((((rc_outer_outer * 98) + ((((int)threadIdx.x) / 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 14)] = (((1 <= ((((int)threadIdx.x) + 5) % 9)) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 14) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 28)] = (((1 <= ((((int)threadIdx.x) + 1) % 9)) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 28) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 42)] = (((1 <= ((((int)threadIdx.x) + 6) % 9)) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 42) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 56)] = (((1 <= ((((int)threadIdx.x) + 2) % 9)) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 56) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 70)] = (((((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 * 98) + (((((int)threadIdx.x) + 70) / 81) * 49)) + ((((((int)threadIdx.x) + 70) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 84)] = ((((6 <= ((int)threadIdx.x)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 84) / 81) * 49)) + (((((int)threadIdx.x) + 3) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 98)] = (((1 <= ((((int)threadIdx.x) + 8) % 9)) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 98) / 81) * 49)) + (((((int)threadIdx.x) + 17) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 112)] = (((1 <= ((((int)threadIdx.x) + 4) % 9)) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 112) / 81) * 49)) + (((((int)threadIdx.x) + 31) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 126)] = (((1 <= (((int)threadIdx.x) % 9)) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 126) / 81) * 49)) + ((((int)threadIdx.x) / 9) * 7)) + (((int)threadIdx.x) % 9)) + 27)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 140)] = ((((((int)threadIdx.x) < 13) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 140) / 81) * 49)) + (((((int)threadIdx.x) + 59) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
+ if (((int)threadIdx.x) < 8) {
+ pad_temp_shared[(((int)threadIdx.x) + 154)] = 0.000000e+00f;
}
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[(((int)threadIdx.x) * 6)] = kernel[((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6))];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 1)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 1)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 2)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 2)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 3)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 3)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 4)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 4)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 5)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 5)];
+ }
+ __syncthreads();
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((int)threadIdx.x) % 7)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((int)threadIdx.x) % 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 72)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 72)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 81)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 81)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 153)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 153)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 73)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 73)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 82)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 82)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 154)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 154)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 74)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 74)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 83)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 83)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 155)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 155)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
}
for (int i1_inner = 0; i1_inner < 2; ++i1_inner) {
- for (int i3_inner = 0; i3_inner < 7; ++i3_inner) {
- compute[((((((((int)blockIdx.x) / 7) * 6272) + (((int)threadIdx.x) * 98)) + (i1_inner * 49)) + ((((int)blockIdx.x) % 7) * 7)) + i3_inner)] = max((conv2d_nchw[((i1_inner * 7) + i3_inner)] + bias[((((((int)blockIdx.x) / 7) * 128) + (((int)threadIdx.x) * 2)) + i1_inner)]), 0.000000e+00f);
+ for (int i2_inner = 0; i2_inner < 7; ++i2_inner) {
+ compute[(((((((int)blockIdx.x) * 196) + ((((int)threadIdx.x) / 7) * 98)) + (i1_inner * 49)) + (i2_inner * 7)) + (((int)threadIdx.x) % 7))] = max((conv2d_nchw[((i1_inner * 7) + i2_inner)] + bias[(((((int)blockIdx.x) * 4) + ((((int)threadIdx.x) / 7) * 2)) + i1_inner)]), 0.000000e+00f);
}
}
}
@@ -1375,7 +1109,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:** ( 6 minutes 15.096 seconds)
+ **Total running time of the script:** ( 6 minutes 8.038 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 718b5ae7a2..3e14c42742 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)
- 7.8804 7.8818 7.8881 7.8714 0.0069
+ 7.9221 7.9226 7.9239 7.9198 0.0017
@@ -675,7 +675,7 @@ Other Tips
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 9.069 seconds)
+ **Total running time of the script:** ( 1 minutes 9.392 seconds)
.. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_cuda.py:
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 f93fca3b9a..7175132d76 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)
- 759.5023 760.3536 761.1737 756.9797 1.8149
+ 761.3823 761.4771 761.8591 760.8106 0.4333
@@ -694,7 +694,7 @@ Other Tips
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 42.307 seconds)
+ **Total running time of the script:** ( 1 minutes 42.454 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 6439197145..df7de9f83d 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
@@ -389,68 +389,25 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
@T.prim_func
def main(placeholder: T.Buffer((128, 256), "float32"), placeholder_1: T.Buffer((4916, 16, 1), "float32"), placeholder_2: T.Buffer((4916,), "int32"), placeholder_3: T.Buffer((33,), "int32"), placeholder_4: T.Buffer((128, 512), "float32"), compute: T.Buffer((128, 512), "float32")):
T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
- for i0_outer_i1_outer_fused in T.parallel(4096):
- cse_var_1: T.int32 = i0_outer_i1_outer_fused % 128 // 4
- compute_1 = T.allocate([16], "float32", "global")
- compute_2 = T.Buffer((16,), data=compute_1)
- compute_2[0] = T.float32(0)
- compute_2[1] = T.float32(0)
- compute_2[2] = T.float32(0)
- compute_2[3] = T.float32(0)
- compute_2[4] = T.float32(0)
- compute_2[5] = T.float32(0)
- compute_2[6] = T.float32(0)
- compute_2[7] = T.float32(0)
- compute_2[8] = T.float32(0)
- compute_2[9] = T.float32(0)
- compute_2[10] = T.float32(0)
- compute_2[11] = T.float32(0)
- compute_2[12] = T.float32(0)
- compute_2[13] = T.float32(0)
- compute_2[14] = T.float32(0)
- compute_2[15] = T.float32(0)
- for elem_idx in range(placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- placeholder_5 = T.Buffer((33,), "int32", data=placeholder_3.data)
- placeholder_6 = T.Buffer((78656,), data=placeholder_1.data)
- placeholder_7 = T.Buffer((32768,), data=placeholder.data)
- placeholder_8 = T.Buffer((4916,), "int32", data=placeholder_2.data)
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[0] = compute_2[0] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[1] = compute_2[1] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[2] = compute_2[2] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[3] = compute_2[3] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[4] = compute_2[4] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[5] = compute_2[5] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[6] = compute_2[6] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[7] = compute_2[7] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[8] = compute_2[8] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[9] = compute_2[9] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[10] = compute_2[10] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[11] = compute_2[11] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[12] = compute_2[12] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[13] = compute_2[13] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[14] = compute_2[14] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[15] = compute_2[15] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- for i0_inner in range(4):
- cse_var_2: T.int32 = i0_outer_i1_outer_fused // 128 * 2048 + i0_inner * 512 + i0_outer_i1_outer_fused % 128 * 4
+ for i0_outer_i1_outer_fused in T.parallel(32):
+ compute_1 = T.allocate([2048], "float32", "global")
+ compute_2 = T.Buffer((2048,), data=compute_1)
+ for i_outer_inner in range(2):
+ for i_inner_init, j_init in T.grid(64, 16):
+ compute_2[i_outer_inner * 1024 + i_inner_init * 16 + j_init] = T.float32(0)
+ for elem_idx, i_inner, j in T.grid(placeholder_5[i0_outer_i1_outer_fused + 1] - placeholder_5[i0_outer_i1_outer_fused], 64, 16):
+ placeholder_5 = T.Buffer((33,), "int32", data=placeholder_3.data)
+ if T.likely(elem_idx < placeholder_5[i0_outer_i1_outer_fused + 1] - placeholder_5[i0_outer_i1_outer_fused]):
+ placeholder_6 = T.Buffer((78656,), data=placeholder_1.data)
+ placeholder_7 = T.Buffer((32768,), data=placeholder.data)
+ placeholder_8 = T.Buffer((4916,), "int32", data=placeholder_2.data)
+ cse_var_1: T.int32 = i_outer_inner * 1024 + i_inner * 16 + j
+ compute_2[cse_var_1] = compute_2[cse_var_1] + placeholder_6[placeholder_5[i0_outer_i1_outer_fused] * 16 + elem_idx * 16 + j] * T.max(placeholder_7[i_outer_inner * 16384 + i_inner * 256 + placeholder_8[placeholder_5[i0_outer_i1_outer_fused] + elem_idx]], T.float32(0))
+ for i0_inner, i1_inner in T.grid(128, 16):
+ cse_var_2: T.int32 = i0_inner * 512 + i0_outer_i1_outer_fused * 16 + i1_inner
compute_3 = T.Buffer((65536,), data=compute.data)
placeholder_5 = T.Buffer((65536,), data=placeholder_4.data)
- compute_3[cse_var_2:cse_var_2 + 4] = T.max(compute_2[i0_inner * 4:i0_inner * 4 + 4] + placeholder_5[cse_var_2:cse_var_2 + 4], T.Broadcast(T.float32(0), 4))
+ compute_3[cse_var_2] = T.max(compute_2[i0_inner * 16 + i1_inner] + placeholder_5[cse_var_2], T.float32(0))
@@ -500,7 +457,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 2.008 ms
+ Execution time of this operator: 1.812 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 1af549aadc..49ba57cb1e 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,16 +5,16 @@
Computation times
=================
-**00:44.347** total execution time for **how_to_tune_with_autotvm** files:
+**00:31.862** 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:44.312 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``) | 00:31.828 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``) | 00:00.021 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``) | 00:00.020 | 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 |
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``) | 00:00.004 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_arm.py` (``tune_relay_arm.py``) | 00:00.005 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_mobile_gpu.py` (``tune_relay_mobile_gpu.py``) | 00:00.004 | 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 d3193bddf1..e06938d739 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
@@ -268,7 +268,8 @@ for this template
waiting for device...
device available
Get devices for measurement successfully!
- No: 1 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+ No: 1 GFLOPS: 88.20/88.20 result: MeasureResult(costs=(0.00262484011627907,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.1761999130249023, timestamp=1675619510.4564917) [('tile_f', [-1, 1, 64, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1560945
+ No: 2 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -390,8 +391,9 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7140251
- No: 2 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 32, 4, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2806617
+ No: 3 GFLOPS: 40.33/88.20 result: MeasureResult(costs=(0.005740008833333334,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9422626495361328, timestamp=1675619512.2149174) [('tile_f', [-1, 1, 4, 32]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1593434
+ No: 4 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -513,8 +515,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1077047
- No: 3 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 64, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 128, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9124193
+ No: 5 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -636,8 +638,11 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
- tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 8, 16, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1108269
- No: 4 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 2, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 128, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2578412
+ No: 6 GFLOPS: 59.72/88.20 result: MeasureResult(costs=(0.0038761452692307693,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.626629114151001, timestamp=1675619518.3074288) [('tile_f', [-1, 1, 8, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2006114
+ No: 7 GFLOPS: 22.85/88.20 result: MeasureResult(costs=(0.0101335327,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.759658098220825, timestamp=1675619520.0638223) [('tile_f', [-1, 4, 1, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 16, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9149582
+ No: 8 GFLOPS: 6.30/88.20 result: MeasureResult(costs=(0.03672691325,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.260091543197632, timestamp=1675619520.9714432) [('tile_f', [-1, 2, 2, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3885391
+ No: 9 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -759,162 +764,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 64, 8]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10184861
- No: 5 GFLOPS: 82.82/82.82 result: MeasureResult(costs=(0.002795293361111111,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9329617023468018, timestamp=1675453153.0119421) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8200398
- No: 6 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 742, in __call__
- yield remote, remote.load_module(os.path.split(build_result.filename)[1])
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/workspace/python/tvm/runtime/module.py", line 357, in evaluator
- blob = feval(*args)
- File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
- File "tvm/_ffi/_cython/./packed_func.pxi", line 262, in tvm._ffi._cy3.core.FuncCall
- File "tvm/_ffi/_cython/./packed_func.pxi", line 251, in tvm._ffi._cy3.core.FuncCall3
- File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
- tvm._ffi.base.TVMError: Traceback (most recent call last):
- 4: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 3: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 2: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../src/runtime/rpc/rpc_module.cc:129
- 1: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1012
- 0: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>)
- at ../src/runtime/rpc/rpc_endpoint.cc:804
- File "../src/runtime/rpc/rpc_endpoint.cc", line 804
- TVMError:
- ---------------------------------------------------------------
- An error occurred during the execution of TVM.
- For more information, please see: https://tvm.apache.org/docs/errors.html
- ---------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=kShutdown
-
- During handling of the above exception, another exception occurred:
-
- Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__
- self.gen.throw(type, value, traceback)
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 746, in __call__
- remote.remove(build_result.filename)
- File "/workspace/python/tvm/rpc/client.py", line 144, in remove
- self._remote_funcs["remove"] = self.get_function("tvm.rpc.server.remove")
- File "/workspace/python/tvm/rpc/client.py", line 72, in get_function
- return self._sess.get_function(name)
- File "/workspace/python/tvm/runtime/module.py", line 171, in get_function
- self.handle, c_str(name), ctypes.c_int(query_imports), ctypes.byref(ret_handle)
- File "/workspace/python/tvm/_ffi/base.py", line 348, in check_call
- raise get_last_ffi_error()
- tvm._ffi.base.TVMError: Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCallKeywords
- 18: _PyEval_EvalFrameDefault
- 17: _PyFunction_FastCallKeywords
- 16: _PyEval_EvalCodeWithName
- 15: _PyEval_EvalFrameDefault
- 14: 0x0000000000537c30
- 13: _PyObject_FastCallKeywords
- 12: 0x00007f0820765fa2
- 11: _ctypes_callproc
- 10: ffi_call
- 9: ffi_call_unix64
- 8: TVMModGetFunction
- at ../src/runtime/c_runtime_api.cc:408
- 7: tvm::runtime::ModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
- at ../src/runtime/module.cc:66
- 6: tvm::runtime::RPCModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)
- at ../src/runtime/rpc/rpc_module.cc:185
- 5: tvm::runtime::RPCClientSession::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1007
- 4: tvm::runtime::TVMRetValue tvm::runtime::RPCEndpoint::SysCallRemote<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(tvm::runtime::RPCCode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.h:223
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(int&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/rpc/rpc_endpoint.cc:684
- File "../src/runtime/rpc/rpc_endpoint.cc", line 684
- TVMError:
- ---------------------------------------------------------------
- An error occurred during the execution of TVM.
- For more information, please see: https://tvm.apache.org/docs/errors.html
- ---------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=1
-
- Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCall [('tile_f', [-1, 8, 2, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5809733
- No: 7 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 64, 4, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3865478
+ No: 10 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1036,8 +887,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 32, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1217646
- No: 8 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9094546
+ No: 11 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1159,285 +1010,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4990949
- No: 9 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
- func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
- func = build(s, args, target=target, runtime=runtime)
- File "/workspace/python/tvm/driver/build_module.py", line 227, in build
- input_mod = lower(inputs, args, name=name, binds=binds)
- File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
- return ffi.lower_schedule(inp, args, name, binds, simple_mode)
- File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
- File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
- File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
- tvm._ffi.base.TVMError: Traceback (most recent call last):
- 24: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 22: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 21: operator()
- at ../include/tvm/runtime/packed_func.h:1730
- 20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
- at ../include/tvm/runtime/packed_func.h:1670
- 19: run<>
- at ../include/tvm/runtime/packed_func.h:1630
- 18: run<tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1645
- 13: operator()
- at ../src/driver/driver_api.cc:395
- 12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
- at ../src/driver/driver_api.cc:381
- 11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
- at ../src/driver/driver_api.cc:276
- 10: tvm::transform::Pass::operator()(tvm::IRModule) const
- at ../src/ir/transform.cc:258
- 9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:451
- 7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/tir/ir/transform.cc:100
- 5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
- at ../include/tvm/runtime/packed_func.h:1749
- 4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
- at ../include/tvm/runtime/packed_func.h:1693
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/c_runtime_api.cc:534
- File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
- raise InstantiationError("Skipped because of invalid gpu kernel")
- tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
- Traceback (most recent call last):
- 24: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 22: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 21: operator()
- at ../include/tvm/runtime/packed_func.h:1730
- 20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
- at ../include/tvm/runtime/packed_func.h:1670
- 19: run<>
- at ../include/tvm/runtime/packed_func.h:1630
- 18: run<tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1645
- 13: operator()
- at ../src/driver/driver_api.cc:395
- 12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
- at ../src/driver/driver_api.cc:381
- 11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
- at ../src/driver/driver_api.cc:276
- 10: tvm::transform::Pass::operator()(tvm::IRModule) const
- at ../src/ir/transform.cc:258
- 9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:451
- 7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/tir/ir/transform.cc:100
- 5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
- at ../include/tvm/runtime/packed_func.h:1749
- 4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
- at ../include/tvm/runtime/packed_func.h:1693
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/c_runtime_api.cc:534
- File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
- raise InstantiationError("Skipped because of invalid gpu kernel")
- tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 32, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4639890
- No: 10 GFLOPS: 9.25/82.82 result: MeasureResult(costs=(0.02503936,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.678086519241333, timestamp=1675453165.0130067) [('tile_f', [-1, 1, 2, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3612590
- No: 11 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 742, in __call__
- yield remote, remote.load_module(os.path.split(build_result.filename)[1])
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/workspace/python/tvm/runtime/module.py", line 357, in evaluator
- blob = feval(*args)
- File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
- File "tvm/_ffi/_cython/./packed_func.pxi", line 262, in tvm._ffi._cy3.core.FuncCall
- File "tvm/_ffi/_cython/./packed_func.pxi", line 251, in tvm._ffi._cy3.core.FuncCall3
- File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
- tvm._ffi.base.TVMError: Traceback (most recent call last):
- 4: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 3: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 2: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../src/runtime/rpc/rpc_module.cc:129
- 1: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1012
- 0: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>)
- at ../src/runtime/rpc/rpc_endpoint.cc:804
- File "../src/runtime/rpc/rpc_endpoint.cc", line 804
- TVMError:
- ---------------------------------------------------------------
- An error occurred during the execution of TVM.
- For more information, please see: https://tvm.apache.org/docs/errors.html
- ---------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=kShutdown
-
- During handling of the above exception, another exception occurred:
-
- Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__
- self.gen.throw(type, value, traceback)
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 746, in __call__
- remote.remove(build_result.filename)
- File "/workspace/python/tvm/rpc/client.py", line 144, in remove
- self._remote_funcs["remove"] = self.get_function("tvm.rpc.server.remove")
- File "/workspace/python/tvm/rpc/client.py", line 72, in get_function
- return self._sess.get_function(name)
- File "/workspace/python/tvm/runtime/module.py", line 171, in get_function
- self.handle, c_str(name), ctypes.c_int(query_imports), ctypes.byref(ret_handle)
- File "/workspace/python/tvm/_ffi/base.py", line 348, in check_call
- raise get_last_ffi_error()
- tvm._ffi.base.TVMError: Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCallKeywords
- 18: _PyEval_EvalFrameDefault
- 17: _PyFunction_FastCallKeywords
- 16: _PyEval_EvalCodeWithName
- 15: _PyEval_EvalFrameDefault
- 14: 0x0000000000537c30
- 13: _PyObject_FastCallKeywords
- 12: 0x00007f2e2b249fa2
- 11: _ctypes_callproc
- 10: ffi_call
- 9: ffi_call_unix64
- 8: TVMModGetFunction
- at ../src/runtime/c_runtime_api.cc:408
- 7: tvm::runtime::ModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
- at ../src/runtime/module.cc:66
- 6: tvm::runtime::RPCModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)
- at ../src/runtime/rpc/rpc_module.cc:185
- 5: tvm::runtime::RPCClientSession::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1007
- 4: tvm::runtime::TVMRetValue tvm::runtime::RPCEndpoint::SysCallRemote<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(tvm::runtime::RPCCode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.h:223
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(int&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/rpc/rpc_endpoint.cc:684
- File "../src/runtime/rpc/rpc_endpoint.cc", line 684
- TVMError:
- ---------------------------------------------------------------
- An error occurred during the execution of TVM.
- For more information, please see: https://tvm.apache.org/docs/errors.html
- ---------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=1
-
- Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCall [('tile_f', [-1, 4, 1, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9560238
- No: 12 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 128, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 64, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9991875
+ No: 12 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1559,8 +1133,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
- tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 1, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 16]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2072720
- No: 13 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 32, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6416462
+ No: 13 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1682,9 +1256,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
- tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 8, 4, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,765455
- No: 14 GFLOPS: 17.56/82.82 result: MeasureResult(costs=(0.013183314,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6457138061523438, timestamp=1675453171.4247806) [('tile_f', [-1, 8, 2, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5682271
- No: 15 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 2, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2840343
+ No: 14 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1806,8 +1379,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 2, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5959067
- No: 16 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5226441
+ No: 15 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1929,8 +1502,9 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 8, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 64, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6058663
- No: 17 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6569983
+ No: 16 GFLOPS: 61.04/88.20 result: MeasureResult(costs=(0.003792554777777778,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2428197860717773, timestamp=1675619522.7079296) [('tile_f', [-1, 1, 4, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5388855
+ No: 17 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2052,8 +1626,8 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
- tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 128, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3257857
- No: 18 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 8, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4005568
+ No: 18 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2175,9 +1749,9 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 16, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3999909
- No: 19 GFLOPS: 1.29/82.82 result: MeasureResult(costs=(0.180045822,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.4288330078125, timestamp=1675453176.1079192) [('tile_f', [-1, 64, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7430726
- No: 20 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 4, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 128]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8498454
+ No: 19 GFLOPS: 7.81/88.20 result: MeasureResult(costs=(0.0296330795,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.5613219738006592, timestamp=1675619524.4727242) [('tile_f', [-1, 16, 8, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1363203
+ No: 20 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2299,7 +1873,7 @@ for this template
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 2, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6677426
+ tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 16, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3075760
@@ -2354,9 +1928,9 @@ and measure running time.
Finish loading 20 records
Best config:
- [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8200398
+ [('tile_f', [-1, 1, 64, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1560945
Finish loading 20 records
- Time cost of this operator: 0.001485
+ Time cost of this operator: 0.002662
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 e4c6bd02c3..76f37c75d6 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
@@ -360,10 +360,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 311.4 98.698 (1, 2, 10, 10, 3) 2 1 [311.4]
- tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.151 0.999 (1, 6, 10, 10) 1 1 [3.151]
- tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.959 0.304 (1, 1, 10, 10, 3) 1 1 [0.959]
- Total_time - 315.51 - - - - -
+ tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 315.2 98.721 (1, 2, 10, 10, 3) 2 1 [315.2]
+ tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.118 0.977 (1, 6, 10, 10) 1 1 [3.118]
+ tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.967 0.303 (1, 1, 10, 10, 3) 1 1 [0.967]
+ Total_time - 319.285 - - - - -
@@ -428,10 +428,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 137.0 97.811 (1, 6, 10, 10, 1) 2 1 [137.0]
- tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 2.043 1.458 (1, 6, 10, 10) 1 1 [2.043]
- tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 1.024 0.731 (1, 3, 10, 10, 1) 1 1 [1.024]
- Total_time - 140.067 - - - - -
+ tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 137.4 98.039 (1, 6, 10, 10, 1) 2 1 [137.4]
+ tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 1.779 1.27 (1, 6, 10, 10) 1 1 [1.779]
+ tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.969 0.691 (1, 1, 10, 10, 3) 1 1 [0.969]
+ Total_time - 140.148 - - - - -
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
index 2455dcd222..18975f17e1 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_pytorch.rst.txt
@@ -118,7 +118,7 @@ download a cat image and preprocess it to use as the model input.
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/ao/quantization/utils.py:281: UserWarning: must run observer before calling calculate_qparams. Returning default values.
"must run observer before calling calculate_qparams. " +
Downloading: "https://download.pytorch.org/models/quantized/mobilenet_v2_qnnpack_37f702c5.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2_qnnpack_37f702c5.pth
-
0%| | 0.00/3.42M [00:00<?, ?B/s]
61%|###### | 2.09M/3.42M [00:00<00:00, 21.1MB/s]
100%|##########| 3.42M/3.42M [00:00<00:00, 32.3MB/s]
+
0%| | 0.00/3.42M [00:00<?, ?B/s]
61%|###### | 2.09M/3.42M [00:00<00:00, 14.3MB/s]
100%|##########| 3.42M/3.42M [00:00<00:00, 22.6MB/s]
/workspace/python/tvm/relay/frontend/pytorch_utils.py:47: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
return LooseVersion(torch_ver) > ver
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/setuptools/_distutils/version.py:346: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
@@ -324,7 +324,7 @@ Look up prediction top 1 index in 1000 class synset.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 13.525 seconds)
+ **Total running time of the script:** ( 1 minutes 13.455 seconds)
.. _sphx_glr_download_how_to_work_with_microtvm_micro_pytorch.py:
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 738391ca58..3dd509357b 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
@@ -218,7 +218,7 @@ take about **2 minutes** to download the Stanford Cars, while COCO 2017 validati
.. code-block:: none
- '/tmp/tmpgaxc_tem/images/random'
+ '/tmp/tmpwvui23po/images/random'
@@ -309,7 +309,7 @@ objects to other stuff? We can display some examples from our datasets using ``m
.. image-sg:: /how_to/work_with_microtvm/images/sphx_glr_micro_train_001.png
- :alt: [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0]
+ :alt: [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0]
:srcset: /how_to/work_with_microtvm/images/sphx_glr_micro_train_001.png
:class: sphx-glr-single-img
@@ -318,8 +318,8 @@ objects to other stuff? We can display some examples from our datasets using ``m
.. code-block:: none
- /tmp/tmpgaxc_tem/images/target contains 8144 images
- /tmp/tmpgaxc_tem/images/random contains 5000 images
+ /tmp/tmpwvui23po/images/target contains 8144 images
+ /tmp/tmpwvui23po/images/random contains 5000 images
@@ -494,13 +494,13 @@ the time on our validation set).
.. code-block:: none
Epoch 1/3
- 328/328 - 48s - loss: 0.2330 - accuracy: 0.9202 - val_loss: 0.2149 - val_accuracy: 0.9294 - 48s/epoch - 146ms/step
+ 328/328 - 48s - loss: 0.2133 - accuracy: 0.9240 - val_loss: 0.1137 - val_accuracy: 0.9585 - 48s/epoch - 145ms/step
Epoch 2/3
- 328/328 - 44s - loss: 0.0964 - accuracy: 0.9632 - val_loss: 0.1986 - val_accuracy: 0.9271 - 44s/epoch - 133ms/step
+ 328/328 - 44s - loss: 0.0953 - accuracy: 0.9660 - val_loss: 0.1165 - val_accuracy: 0.9630 - 44s/epoch - 133ms/step
Epoch 3/3
- 328/328 - 44s - loss: 0.0746 - accuracy: 0.9723 - val_loss: 0.1193 - val_accuracy: 0.9600 - 44s/epoch - 133ms/step
+ 328/328 - 44s - loss: 0.0720 - accuracy: 0.9737 - val_loss: 0.0969 - val_accuracy: 0.9634 - 44s/epoch - 133ms/step
- <keras.callbacks.History object at 0x7f0f595b2110>
+ <keras.callbacks.History object at 0x7f20bc4e8b90>
@@ -861,7 +861,7 @@ Arduino tutorial for how to do that `on GitHub <https://github.com/guberti/tvm-a
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 4 minutes 54.472 seconds)
+ **Total running time of the script:** ( 5 minutes 28.246 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 41698871e8..1eff0f873f 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,18 +5,18 @@
Computation times
=================
-**07:15.528** total execution time for **how_to_work_with_microtvm** files:
+**07:50.693** total execution time for **how_to_work_with_microtvm** files:
+-----------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``) | 04:54.472 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``) | 05:28.246 | 0.0 MB |
+-----------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_pytorch.py` (``micro_pytorch.py``) | 01:13.525 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_pytorch.py` (``micro_pytorch.py``) | 01:13.455 | 0.0 MB |
+-----------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``) | 00:54.011 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``) | 00:55.174 | 0.0 MB |
+-----------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``) | 00:08.109 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``) | 00:08.382 | 0.0 MB |
+-----------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``) | 00:05.411 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``) | 00:05.435 | 0.0 MB |
+-----------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``) | 00:00.000 | 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 1f0b2c31cd..468bbc9745 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:45.898** total execution time for **how_to_work_with_relay** files:
+**00:46.143** 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:33.560 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:33.594 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``) | 00:10.751 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``) | 00:10.803 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``) | 00:01.581 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``) | 00:01.739 | 0.0 MB |
+----------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``) | 00:00.006 | 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 fd0bcef4b1..27ae05a695 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
@@ -264,7 +264,7 @@ The following example customizes CUDA lowering rule for :code:`exp`.
.. code-block:: none
- <function my_cuda_math_rule at 0x7f0dec9174d0>
+ <function my_cuda_math_rule at 0x7f1f689694d0>
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 333b4bea3e..3d87347d73 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,22 +5,22 @@
Computation times
=================
-**00:08.562** total execution time for **how_to_work_with_schedules** files:
+**00:08.397** 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:05.982 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``) | 00:05.733 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``) | 00:01.179 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``) | 00:01.249 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``) | 00:00.593 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``) | 00:00.601 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``) | 00:00.569 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``) | 00:00.575 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``) | 00:00.120 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.056 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``) | 00:00.033 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``) | 00:00.034 | 0.0 MB |
+------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``) | 00:00.028 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tuple_inputs.py` (``tuple_inputs.py``) | 00:00.029 | 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 f6f8f78374..9057fec33c 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -340,7 +340,7 @@ The importing needs to happen before the tensorized GEMV being executed.
def main(A: T.Buffer((1024, 64), "float32"), B: T.Buffer((512, 64), "float32"), C: T.Buffer((1024, 512), "float32")):
T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
i = T.var("int32")
- T.attr(T.iter_var(i, None, "DataPar", ""), "pragma_import_llvm", "; ModuleID = '/tmp/tmpm7mbzd3h/input0.cc'\nsource_filename = \"/tmp/tmpm7mbzd3h/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 float*, [...]
+ T.attr(T.iter_var(i, None, "DataPar", ""), "pragma_import_llvm", "; ModuleID = '/tmp/tmp9ygsqlqr/input0.cc'\nsource_filename = \"/tmp/tmp9ygsqlqr/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 float*, [...]
for i, j_outer in T.grid(1024, 32):
T.call_extern("int32", "gemv_update", T.tvm_access_ptr(T.type_annotation("float32"), C.data, i * 512 + j_outer * 16, 16, 2), T.tvm_access_ptr(T.type_annotation("float32"), A.data, i * 64, 64, 1), T.tvm_access_ptr(T.type_annotation("float32"), B.data, j_outer * 1024, 1024, 1), 16, 64, 64)
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 074700861e..c163fe439f 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:31.473** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:31.755** 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:31.467 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:31.748 | 0.0 MB |
+---------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``) | 00:00.007 | 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 7f11f89135..1855d136e1 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -293,7 +293,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 34.13s!
+ resnet18_v1 inference graph built in 34.34s!
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 e5e5a7fd54..c78ea3cca1 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -337,7 +337,7 @@ The compilation steps are:
/workspace/python/tvm/relay/build_module.py:348: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
DeprecationWarning,
- yolov3-tiny inference graph built in 22.99s!
+ yolov3-tiny inference graph built in 23.18s!
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 a4273a29f5..dbdb985db9 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:41.252** total execution time for **topic_vta_tutorials_frontend** files:
+**01:41.667** total execution time for **topic_vta_tutorials_frontend** files:
+------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:51.040 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:51.348 | 0.0 MB |
+------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``) | 00:50.212 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``) | 00:50.318 | 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 0bda399833..e58301155f 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.265** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.240** total execution time for **topic_vta_tutorials_optimize** files:
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``) | 00:02.793 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``) | 00:02.762 | 0.0 MB |
+--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.472 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.478 | 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 10f150b4c1..dfaff03bbd 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.786** total execution time for **topic_vta_tutorials** files:
+**00:00.805** total execution time for **topic_vta_tutorials** files:
+---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.407 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.418 | 0.0 MB |
+---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.378 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.387 | 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 d89c59dfef..922bc33cf8 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -207,13 +207,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
-
-
@@ -325,7 +318,7 @@ We build the binary and check its correctness and performance.
.. code-block:: none
- Execution time of this operator: 96.422 ms
+ Execution time of this operator: 96.975 ms
@@ -443,7 +436,7 @@ operations.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 29.600 seconds)
+ **Total running time of the script:** ( 1 minutes 13.843 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 df187dfde0..d392821b43 100644
--- a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
@@ -454,16 +454,16 @@ reduce variance, we take 5 measurements and average them.
waiting for device...
device available
Get devices for measurement successfully!
- No: 1 GFLOPS: 10.17/10.17 result: MeasureResult(costs=(0.0263936198,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7273364067077637, timestamp=1675451557.3652563) [('tile_y', [-1, 4]), ('tile_x', [-1, 128])],None,72
- No: 2 GFLOPS: 10.55/10.55 result: MeasureResult(costs=(0.025455954800000003,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7020795345306396, timestamp=1675451558.024905) [('tile_y', [-1, 8]), ('tile_x', [-1, 64])],None,63
- No: 3 GFLOPS: 0.86/10.55 result: MeasureResult(costs=(0.312659217,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.234482288360596, timestamp=1675451564.069804) [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
- No: 4 GFLOPS: 1.96/10.55 result: MeasureResult(costs=(0.137246909,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.4331161975860596, timestamp=1675451566.5180027) [('tile_y', [-1, 8]), ('tile_x', [-1, 2])],None,13
- No: 5 GFLOPS: 10.18/10.55 result: MeasureResult(costs=(0.026380323600000005,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.686262845993042, timestamp=1675451567.393286) [('tile_y', [-1, 4]), ('tile_x', [-1, 64])],None,62
- No: 6 GFLOPS: 12.73/12.73 result: MeasureResult(costs=(0.0210891304,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6872258186340332, timestamp=1675451568.7727106) [('tile_y', [-1, 256]), ('tile_x', [-1, 128])],None,78
- No: 7 GFLOPS: 11.10/12.73 result: MeasureResult(costs=(0.0241758644,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7167158126831055, timestamp=1675451570.2054935) [('tile_y', [-1, 1]), ('tile_x', [-1, 128])],None,70
- No: 8 GFLOPS: 12.28/12.73 result: MeasureResult(costs=(0.0218633964,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6194229125976562, timestamp=1675451570.8177347) [('tile_y', [-1, 8]), ('tile_x', [-1, 256])],None,83
- No: 9 GFLOPS: 3.27/12.73 result: MeasureResult(costs=(0.0820516506,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.544581651687622, timestamp=1675451572.4775548) [('tile_y', [-1, 32]), ('tile_x', [-1, 8])],None,35
- No: 10 GFLOPS: 10.67/12.73 result: MeasureResult(costs=(0.025150868799999997,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6249599456787109, timestamp=1675451573.137933) [('tile_y', [-1, 1]), ('tile_x', [-1, 512])],None,90
+ No: 1 GFLOPS: 10.00/10.00 result: MeasureResult(costs=(0.026843839200000004,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.691511869430542, timestamp=1675617928.3493974) [('tile_y', [-1, 2]), ('tile_x', [-1, 32])],None,51
+ No: 2 GFLOPS: 1.56/10.00 result: MeasureResult(costs=(0.17243622760000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.9980199337005615, timestamp=1675617932.170176) [('tile_y', [-1, 1]), ('tile_x', [-1, 4])],None,20
+ No: 3 GFLOPS: 8.29/10.00 result: MeasureResult(costs=(0.032378571,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7390720844268799, timestamp=1675617933.7458804) [('tile_y', [-1, 512]), ('tile_x', [-1, 256])],None,89
+ No: 4 GFLOPS: 9.57/10.00 result: MeasureResult(costs=(0.0280635654,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.7117960453033447, timestamp=1675617934.4530365) [('tile_y', [-1, 8]), ('tile_x', [-1, 32])],None,53
+ No: 5 GFLOPS: 12.33/12.33 result: MeasureResult(costs=(0.021773184,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6157326698303223, timestamp=1675617935.1818109) [('tile_y', [-1, 4]), ('tile_x', [-1, 256])],None,82
+ No: 6 GFLOPS: 11.08/12.33 result: MeasureResult(costs=(0.024234619000000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6392669677734375, timestamp=1675617935.8301754) [('tile_y', [-1, 2]), ('tile_x', [-1, 256])],None,81
+ No: 7 GFLOPS: 2.80/12.33 result: MeasureResult(costs=(0.09573944780000002,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7754175662994385, timestamp=1675617938.4169025) [('tile_y', [-1, 16]), ('tile_x', [-1, 4])],None,24
+ No: 8 GFLOPS: 2.55/12.33 result: MeasureResult(costs=(0.105276169,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9381048679351807, timestamp=1675617940.356045) [('tile_y', [-1, 8]), ('tile_x', [-1, 4])],None,23
+ No: 9 GFLOPS: 1.88/12.33 result: MeasureResult(costs=(0.1425465042,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.5173542499542236, timestamp=1675617943.026919) [('tile_y', [-1, 2]), ('tile_x', [-1, 4])],None,21
+ No: 10 GFLOPS: 10.66/12.33 result: MeasureResult(costs=(0.025171759999999998,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.6808891296386719, timestamp=1675617943.6887803) [('tile_y', [-1, 4]), ('tile_x', [-1, 128])],None,72
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index be0df8b90b..a5a1d73c1c 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -311,7 +311,7 @@ standard deviation.
.. code-block:: none
- {'mean': 519.4295429399983, 'median': 519.0552881999963, 'std': 1.9325290192094304}
+ {'mean': 516.9155461900016, 'median': 517.4163127000043, 'std': 1.5180639214923766}
@@ -545,30 +545,29 @@ the tuning data to.
.. code-block:: none
-
[Task 1/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 1/25] Current/Best: 3.44/ 11.27 GFLOPS | Progress: (4/20) | 12.28 s
[Task 1/25] Current/Best: 11.05/ 23.56 GFLOPS | Progress: (8/20) | 16.84 s
[Task 1/25] Current/Best: 9.77/ 23.56 GFLOPS | Progress: (12/20) | 20.21 s
[Task 1/25] Current/Best: 16.74/ 23.56 GFLOPS | Progress: (16/20) | 24.28 s
[Task 1/25] Current/Best: 8.34/ 23.56 GFLOPS | Progress: (20/20) | 27.56 s Done.
-
[Task 2/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 2/25] Current/Best: 18.52/ 18.53 GFLOPS | Progress: (4/20) | 3.49 s
[Task 2/25] Current/Best: 16.29/ 18.53 GFLOPS | Progress: (8/20) | 4.96 s
[Task 2/25] Current/Best: 8.03/ 18.53 GFLOPS | Progress: (12/20) | 6.54 s
[Task 2/25] Current/Best: 6.54/ 19.86 GFLOPS | Progress: (16/20) | 8.28 s
[Task 2/25] Current/Best: 20.73/ 20.73 GFLOPS | Progress: (20/20) | 9.57 s Done.
-
[Task 3/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 3/25] Current/Best: 5.16/ 15.36 GFLOPS | Progress: (4/20) | 4.68 s
[Task 3/25] Current/Best: 18.22/ 18.22 GFLOPS | Progress: (8/20) | 8.06 s
[Task 3/25] Current/Best: 16.22/ 18.87 GFLOPS | Progress: (12/20) | 10.55 s
[Task 3/25] Current/Best: 17.76/ 18.87 GFLOPS | Progress: (16/20) | 13.39 s
[Task 3/25] Current/Best: 6.90/ 18.87 GFLOPS | Progress: (20/20) | 15.58 s Done.
-
[Task 4/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 4/25] Current/Best: 11.21/ 19.66 GFLOPS | Progress: (4/20) | 6.49 s
[Task 4/25] Current/Best: 9.78/ 19.66 GFLOPS | Progress: (8/20) | 12.17 s
[Task 4/25] Current/Best: 5.85/ 22.40 GFLOPS | Progress: (12/20) | 13.91 s
[Task 4/25] Current/Best: 18.46/ 22.40 GFLOPS | Progress: (16/20) | 15.88 s
[Task 4/25] Current/Best: 13.70/ 22.40 GFLOPS | Progress: (20/20) | 20.65 s Done.
-
[Task 5/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 5/25] Current/Best: 10.86/ 16.06 GFLOPS | Progress: (4/20) | 4.54 s
[Task 5/25] Current/Best: 11.42/ 16.06 GFLOPS | Progress: (8/20) | 6.95 s
[Task 5/25] Current/Best: 13.72/ 22.60 GFLOPS | Progress: (12/20) | 9.23 s
[Task 5/25] Current/Best: 13.18/ 22.60 GFLOPS | Progress: (16/20) | 11.18 s
[Task 5/25] Current/Best: 21.96/ 22.60 GFLOPS | Progress: (20/20) | 12.93 s Done.
-
[Task 6/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 6/25] Current/Best: 5.21/ 16.02 GFLOPS | Progress: (4/20) | 4.25 s
[Task 6/25] Current/Best: 14.99/ 19.09 GFLOPS | Progress: (8/20) | 6.53 s
[Task 6/25] Current/Best: 21.14/ 21.14 GFLOPS | Progress: (12/20) | 8.96 s
[Task 6/25] Current/Best: 15.55/ 22.01 GFLOPS | Progress: (16/20) | 12.12 s
[Task 6/25] Current/Best: 4.63/ 22.01 GFLOPS | Progress: (20/20) | 14.66 s Done.
-
[Task 7/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 7/25] Current/Best: 20.95/ 20.95 GFLOPS | Progress: (4/20) | 4.13 s
[Task 7/25] Current/Best: 17.17/ 20.95 GFLOPS | Progress: (8/20) | 6.17 s
[Task 7/25] Current/Best: 15.02/ 20.95 GFLOPS | Progress: (12/20) | 8.21 s
[Task 7/25] Current/Best: 9.41/ 20.95 GFLOPS | Progress: (16/20) | 10.83 s
[Task 7/25] Current/Best: 19.78/ 20.95 GFLOPS | Progress: (20/20) | 13.30 s Done.
-
[Task 8/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 8/25] Current/Best: 15.00/ 17.59 GFLOPS | Progress: (4/20) | 5.78 s
[Task 8/25] Current/Best: 10.89/ 17.59 GFLOPS | Progress: (8/20) | 8.11 s
[Task 8/25] Current/Best: 11.34/ 19.76 GFLOPS | Progress: (12/20) | 14.55 s
[Task 8/25] Current/Best: 15.77/ 19.76 GFLOPS | Progress: (16/20) | 19.27 s
[Task 8/25] Current/Best: 12.09/ 19.76 GFLOPS | Progress: (20/20) | 21.57 s Done.
-
[Task 9/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 9/25] Current/Best: 9.60/ 15.55 GFLOPS | Progress: (4/20) | 8.85 s
[Task 9/25] Current/Best: 17.39/ 17.39 GFLOPS | Progress: (8/20) | 10.68 s
[Task 9/25] Current/Best: 20.43/ 20.43 GFLOPS | Progress: (12/20) | 12.17 s
[Task 9/25] Current/Best: 20.46/ 20.46 GFLOPS | Progress: (16/20) | 14.00 s
[Task 9/25] Current/Best: 13.79/ 21.38 GFLOPS | Progress: (20/20) | 19.23 s Done.
-
[Task 10/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 10/25] Current/Best: 12.12/ 18.50 GFLOPS | Progress: (4/20) | 3.66 s
[Task 10/25] Current/Best: 16.47/ 18.50 GFLOPS | Progress: (8/20) | 5.58 s
[Task 10/25] Current/Best: 2.96/ 18.50 GFLOPS | Progress: (12/20) | 7.65 s
[Task 10/25] Current/Best: 5.99/ 18.50 GFLOPS | Progress: (16/20) | 10.05 s
[Task 10/25] Current/Best: 11.54/ 18.50 GFLOPS | Progress: (20/20) | 13.18 s Done.
-
[Task 11/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 11/25] Current/Best: 14.28/ 16.20 GFLOPS | Progress: (4/20) | 4.41 s
[Task 11/25] Current/Best: 6.28/ 16.87 GFLOPS | Progress: (8/20) | 7.03 s
[Task 11/25] Current/Best: 10.98/ 21.65 GFLOPS | Progress: (12/20) | 9.49 s
[Task 11/25] Current/Best: 21.80/ 21.80 GFLOPS | Progress: (16/20) | 12.62 s
[Task 11/25] Current/Best: 9.42/ 21.80 GFLOPS | Progress: (20/20) | 15.32 s Done.
-
[Task 12/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 12/25] Current/Best: 10.17/ 14.02 GFLOPS | Progress: (4/20) | 5.66 s
[Task 12/25] Current/Best: 11.58/ 14.52 GFLOPS | Progress: (8/20) | 8.21 s
[Task 12/25] Current/Best: 5.17/ 18.50 GFLOPS | Progress: (12/20) | 14.27 s
[Task 12/25] Current/Best: 15.38/ 18.50 GFLOPS | Progress: (16/20) | 20.42 s
[Task 12/25] Current/Best: 11.30/ 19.87 GFLOPS | Progress: (20/20) | 23.28 s Done.
-
[Task 13/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 13/25] Current/Best: 9.46/ 16.97 GFLOPS | Progress: (4/20) | 5.01 s
[Task 13/25] Current/Best: 12.72/ 19.60 GFLOPS | Progress: (8/20) | 8.00 s
[Task 13/25] Current/Best: 12.33/ 20.55 GFLOPS | Progress: (12/20) | 11.02 s
[Task 13/25] Current/Best: 11.30/ 20.55 GFLOPS | Progress: (16/20) | 14.59 s
[Task 13/25] Current/Best: 13.07/ 20.55 GFLOPS | Progress: (20/20) | 17.84 s Done.
-
[Task 14/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 14/25] Current/Best: 5.61/ 15.10 GFLOPS | Progress: (4/20) | 4.98 s
[Task 14/25] Current/Best: 3.12/ 16.43 GFLOPS | Progress: (8/20) | 8.64 s
[Task 14/25] Current/Best: 5.39/ 16.43 GFLOPS | Progress: (12/20) | 12.34 s
[Task 14/25] Current/Best: 8.55/ 18.30 GFLOPS | Progress: (16/20) | 15.17 s
[Task 14/25] Current/Best: 9.21/ 19.94 GFLOPS | Progress: (20/20) | 22.19 s
[Task 15/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
-
[Task 15/25] Current/Best: 10.95/ 14.11 GFLOPS | Progress: (4/20) | 5.83 s
[Task 15/25] Current/Best: 11.35/ 14.11 GFLOPS | Progress: (8/20) | 10.28 s
[Task 15/25] Current/Best: 7.04/ 20.88 GFLOPS | Progress: (12/20) | 12.71 s
[Task 15/25] Current/Best: 15.21/ 20.88 GFLOPS | Progress: (16/20) | 14.58 s
[Task 15/25] Current/Best: 17.09/ 20.88 GFLOPS | Progress: (20/20) | 15.88 s
[Task 16/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 16/25] Current/Best: 22.30/ 22.30 GFLOPS | Progress: (4/20) | 5.15 s
[Task 16/25] Current/Best: 14.37/ 22.30 GFLOPS | Progress: (8/20) | 8.18 s
[Task 16/25] Current/Best: 11.31/ 22.30 GFLOPS | Progress: (12/20) | 12.25 s
[Task 16/25] Current/Best: 6.25/ 22.30 GFLOPS | Progress: (16/20) | 14.39 s
[Task 16/25] Current/Best: 11.61/ 22.30 GFLOPS | Progress: (20/20) | 16.39 s Done.
-
[Task 17/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 17/25] Current/Best: 10.15/ 21.61 GFLOPS | Progress: (4/20) | 4.29 s
[Task 17/25] Current/Best: 18.56/ 21.61 GFLOPS | Progress: (8/20) | 7.39 s
[Task 17/25] Current/Best: 12.78/ 21.61 GFLOPS | Progress: (12/20) | 10.39 s
[Task 17/25] Current/Best: 13.69/ 21.61 GFLOPS | Progress: (16/20) | 13.91 s
[Task 17/25] Current/Best: 18.28/ 21.61 GFLOPS | Progress: (20/20) | 16.05 s Done.
-
[Task 18/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 18/25] Current/Best: 4.51/ 16.53 GFLOPS | Progress: (4/20) | 4.29 s
[Task 18/25] Current/Best: 15.54/ 22.24 GFLOPS | Progress: (8/20) | 6.79 s
[Task 18/25] Current/Best: 16.10/ 22.24 GFLOPS | Progress: (12/20) | 9.44 s
[Task 18/25] Current/Best: 9.39/ 22.24 GFLOPS | Progress: (16/20) | 12.91 s
[Task 18/25] Current/Best: 16.71/ 22.24 GFLOPS | Progress: (20/20) | 14.87 s Done.
-
[Task 19/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 19/25] Current/Best: 19.86/ 19.86 GFLOPS | Progress: (4/20) | 4.90 s
[Task 19/25] Current/Best: 9.39/ 19.86 GFLOPS | Progress: (8/20) | 9.17 s
[Task 19/25] Current/Best: 13.27/ 19.86 GFLOPS | Progress: (12/20) | 12.63 s
[Task 19/25] Current/Best: 8.65/ 19.86 GFLOPS | Progress: (16/20) | 15.56 s
[Task 19/25] Current/Best: 20.85/ 20.85 GFLOPS | Progress: (20/20) | 18.02 s Done.
-
[Task 20/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 20/25] Current/Best: 19.90/ 19.90 GFLOPS | Progress: (4/20) | 3.93 s
[Task 20/25] Current/Best: 19.38/ 19.90 GFLOPS | Progress: (8/20) | 6.37 s
[Task 20/25] Current/Best: 16.86/ 19.90 GFLOPS | Progress: (12/20) | 9.36 s
[Task 20/25] Current/Best: 13.07/ 19.90 GFLOPS | Progress: (16/20) | 11.48 s
[Task 20/25] Current/Best: 16.73/ 19.90 GFLOPS | Progress: (20/20) | 14.58 s
[Task 21/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 21/25] Current/Best: 12.65/ 20.70 GFLOPS | Progress: (4/20) | 4.66 s
[Task 21/25] Current/Best: 18.53/ 20.70 GFLOPS | Progress: (8/20) | 6.06 s
[Task 21/25] Current/Best: 7.50/ 20.70 GFLOPS | Progress: (12/20) | 8.38 s
[Task 21/25] Current/Best: 14.26/ 20.70 GFLOPS | Progress: (16/20) | 10.88 s
[Task 21/25] Current/Best: 15.39/ 20.70 GFLOPS | Progress: (20/20)
| 13.41 s
[Task 22/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 22/25] Current/Best: 2.23/ 17.55 GFLOPS | Progress: (4/20) | 5.38 s
[Task 22/25] Current/Best: 5.47/ 20.15 GFLOPS | Progress: (8/20) | 7.75 s
[Task 22/25] Current/Best: 16.76/ 20.15 GFLOPS | Progress: (12/20) | 9.60 s
[Task 22/25] Current/Best: 7.42/ 20.15 GFLOPS | Progress: (16/20) | 11.57 s
[Task 22/25] Current/Best: 16.26/ 20.15 GFLOPS | Progress: (20/20) | 16.16 s Done.
-
[Task 23/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 23/25] Current/Best: 19.95/ 22.46 GFLOPS | Progress: (4/20) | 4.45 s
[Task 23/25] Current/Best: 2.65/ 22.46 GFLOPS | Progress: (8/20) | 7.61 s
[Task 23/25] Current/Best: 11.95/ 22.46 GFLOPS | Progress: (12/20) | 10.45 s
[Task 23/25] Current/Best: 5.16/ 22.46 GFLOPS | Progress: (16/20) | 13.60 s
[Task 23/25] Current/Best: 11.49/ 22.46 GFLOPS | Progress: (20/20) | 19.49 s Done.
-
[Task 24/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 24/25] Current/Best: 2.54/ 3.48 GFLOPS | Progress: (4/20) | 12.54 s
[Task 24/25] Current/Best: 4.60/ 4.60 GFLOPS | Progress: (8/20) | 24.10 s Done.
-
[Task 24/25] Current/Best: 0.55/ 8.02 GFLOPS | Progress: (12/20) | 36.49 s
[Task 24/25] Current/Best: 6.12/ 8.02 GFLOPS | Progress: (16/20) | 47.44 s
[Task 24/25] Current/Best: 8.04/ 8.32 GFLOPS | Progress: (20/20) | 58.38 s
[Task 25/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 25/25] Current/Best: 1.54/ 7.71 GFLOPS | Progress: (4/20) | 13.39 s Done.
-
[Task 25/25] Current/Best: 3.41/ 7.99 GFLOPS | Progress: (8/20) | 16.03 s
[Task 25/25] Current/Best: 5.62/ 7.99 GFLOPS | Progress: (12/20) | 17.55 s
[Task 25/25] Current/Best: 8.39/ 8.39 GFLOPS | Progress: (16/20) | 21.42 s
[Task 25/25] Current/Best: 7.03/ 8.39 GFLOPS | Progress: (20/20) | 23.52 s Done.
-
+
[Task 1/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 1/25] Current/Best: 6.33/ 21.82 GFLOPS | Progress: (4/20) | 9.28 s
[Task 1/25] Current/Best: 11.81/ 23.22 GFLOPS | Progress: (8/20) | 12.66 s
[Task 1/25] Current/Best: 8.40/ 23.22 GFLOPS | Progress: (12/20) | 16.75 s
[Task 1/25] Current/Best: 13.43/ 23.22 GFLOPS | Progress: (16/20) | 23.20 s
[Task 1/25] Current/Best: 3.45/ 23.22 GFLOPS | Progress: (20/20) | 26.55 s Done.
+
[Task 2/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 2/25] Current/Best: 16.81/ 16.81 GFLOPS | Progress: (4/20) | 3.93 s
[Task 2/25] Current/Best: 20.11/ 20.11 GFLOPS | Progress: (8/20) | 6.01 s
[Task 2/25] Current/Best: 19.01/ 20.11 GFLOPS | Progress: (12/20) | 7.84 s
[Task 2/25] Current/Best: 18.51/ 20.11 GFLOPS | Progress: (16/20) | 9.47 s
[Task 2/25] Current/Best: 5.50/ 21.01 GFLOPS | Progress: (20/20) | 11.05 s Done.
+
[Task 3/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 3/25] Current/Best: 13.09/ 18.49 GFLOPS | Progress: (4/20) | 4.45 s
[Task 3/25] Current/Best: 13.75/ 20.18 GFLOPS | Progress: (8/20) | 7.51 s
[Task 3/25] Current/Best: 16.47/ 20.18 GFLOPS | Progress: (12/20) | 10.92 s
[Task 3/25] Current/Best: 20.09/ 20.18 GFLOPS | Progress: (16/20) | 13.19 s
[Task 3/25] Current/Best: 3.19/ 22.52 GFLOPS | Progress: (20/20) | 16.20 s Done.
+
[Task 4/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 4/25] Current/Best: 9.34/ 15.88 GFLOPS | Progress: (4/20) | 3.99 s
[Task 4/25] Current/Best: 9.65/ 15.88 GFLOPS | Progress: (8/20) | 6.07 s
[Task 4/25] Current/Best: 11.56/ 15.88 GFLOPS | Progress: (12/20) | 8.97 s
[Task 4/25] Current/Best: 12.17/ 15.88 GFLOPS | Progress: (16/20) | 13.33 s
[Task 4/25] Current/Best: 4.65/ 15.88 GFLOPS | Progress: (20/20) | 20.32 s Done.
+
[Task 5/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 5/25] Current/Best: 21.94/ 21.94 GFLOPS | Progress: (4/20) | 3.81 s
[Task 5/25] Current/Best: 13.70/ 21.94 GFLOPS | Progress: (8/20) | 6.07 s
[Task 5/25] Current/Best: 7.81/ 21.94 GFLOPS | Progress: (12/20) | 8.09 s
[Task 5/25] Current/Best: 2.69/ 21.94 GFLOPS | Progress: (16/20) | 10.89 s
[Task 5/25] Current/Best: 6.09/ 21.94 GFLOPS | Progress: (20/20) | 13.36 s Done.
+
[Task 6/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 6/25] Current/Best: 8.47/ 20.07 GFLOPS | Progress: (4/20) | 4.15 s
[Task 6/25] Current/Best: 20.22/ 20.22 GFLOPS | Progress: (8/20) | 7.20 s
[Task 6/25] Current/Best: 8.27/ 20.22 GFLOPS | Progress: (12/20) | 10.26 s
[Task 6/25] Current/Best: 11.58/ 20.22 GFLOPS | Progress: (16/20) | 14.40 s
[Task 6/25] Current/Best: 5.84/ 21.59 GFLOPS | Progress: (20/20) | 18.63 s Done.
+
[Task 7/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 7/25] Current/Best: 4.75/ 16.16 GFLOPS | Progress: (4/20) | 4.78 s
[Task 7/25] Current/Best: 20.30/ 20.30 GFLOPS | Progress: (8/20) | 7.34 s
[Task 7/25] Current/Best: 9.21/ 20.30 GFLOPS | Progress: (12/20) | 9.70 s
[Task 7/25] Current/Best: 18.55/ 21.45 GFLOPS | Progress: (16/20) | 11.71 s
[Task 7/25] Current/Best: 12.20/ 21.45 GFLOPS | Progress: (20/20) | 14.09 s Done.
+
[Task 8/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 8/25] Current/Best: 15.87/ 15.87 GFLOPS | Progress: (4/20) | 4.48 s
[Task 8/25] Current/Best: 3.50/ 15.87 GFLOPS | Progress: (8/20) | 8.81 s
[Task 8/25] Current/Best: 13.77/ 16.96 GFLOPS | Progress: (12/20) | 11.52 s
[Task 8/25] Current/Best: 4.00/ 16.96 GFLOPS | Progress: (16/20) | 18.00 s
[Task 8/25] Current/Best: 11.92/ 16.96 GFLOPS | Progress: (20/20) | 21.42 s Done.
+
[Task 9/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 9/25] Current/Best: 16.87/ 16.87 GFLOPS | Progress: (4/20) | 5.42 s
[Task 9/25] Current/Best: 9.28/ 17.49 GFLOPS | Progress: (8/20) | 7.70 s
[Task 9/25] Current/Best: 18.04/ 18.04 GFLOPS | Progress: (12/20) | 18.87 s
[Task 9/25] Current/Best: 9.03/ 18.04 GFLOPS | Progress: (16/20) | 25.04 s
[Task 9/25] Current/Best: 12.70/ 18.04 GFLOPS | Progress: (20/20) | 28.60 s
[Task 10/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 10/25] Current/Best: 8.64/ 11.59 GFLOPS | Progress: (4/20) | 3.69 s
[Task 10/25] Current/Best: 15.88/ 18.81 GFLOPS | Progress: (8/20) | 5.64 s
[Task 10/25] Current/Best: 10.93/ 19.40 GFLOPS | Progress: (12/20) | 7.26 s
[Task 10/25] Current/Best: 18.31/ 19.40 GFLOPS | Progress: (16/20) | 9.65 s
[Task 10/25] Current/Best: 20.11/ 20.11 GFLOPS | Progress: (20/20)
| 12.63 s Done.
+
[Task 11/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 11/25] Current/Best: 18.81/ 19.65 GFLOPS | Progress: (4/20) | 5.31 s
[Task 11/25] Current/Best: 20.81/ 20.81 GFLOPS | Progress: (8/20) | 8.27 s
[Task 11/25] Current/Best: 17.59/ 20.81 GFLOPS | Progress: (12/20) | 10.61 s
[Task 11/25] Current/Best: 18.45/ 20.81 GFLOPS | Progress: (16/20) | 13.03 s
[Task 11/25] Current/Best: 12.32/ 21.69 GFLOPS | Progress: (20/20) | 15.29 s Done.
+
[Task 12/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 12/25] Current/Best: 6.06/ 20.44 GFLOPS | Progress: (4/20) | 4.65 s
[Task 12/25] Current/Best: 3.97/ 20.44 GFLOPS | Progress: (8/20) | 7.43 s
[Task 12/25] Current/Best: 17.99/ 20.44 GFLOPS | Progress: (12/20) | 11.46 s
[Task 12/25] Current/Best: 11.58/ 20.44 GFLOPS | Progress: (16/20) | 14.96 s
[Task 12/25] Current/Best: 10.57/ 20.44 GFLOPS | Progress: (20/20) | 19.30 s Done.
+
[Task 13/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 13/25] Current/Best: 6.08/ 12.98 GFLOPS | Progress: (4/20) | 4.53 s
[Task 13/25] Current/Best: 14.46/ 16.92 GFLOPS | Progress: (8/20) | 6.64 s
[Task 13/25] Current/Best: 21.34/ 21.34 GFLOPS | Progress: (12/20) | 9.20 s
[Task 13/25] Current/Best: 20.07/ 21.34 GFLOPS | Progress: (16/20) | 12.01 s
[Task 13/25] Current/Best: 12.35/ 21.34 GFLOPS | Progress: (20/20) | 14.72 s Done.
+
[Task 14/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 14/25] Current/Best: 15.44/ 17.14 GFLOPS | Progress: (4/20) | 3.87 s
[Task 14/25] Current/Best: 18.65/ 18.65 GFLOPS | Progress: (8/20) | 7.00 s
[Task 14/25] Current/Best: 18.18/ 18.65 GFLOPS | Progress: (12/20) | 9.18 s
[Task 14/25] Current/Best: 9.07/ 18.65 GFLOPS | Progress: (16/20) | 15.27 s Done.
+
[Task 14/25] Current/Best: 10.86/ 18.65 GFLOPS | Progress: (20/20) | 17.58 s
[Task 15/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 15/25] Current/Best: 6.04/ 18.25 GFLOPS | Progress: (4/20) | 11.32 s
[Task 15/25] Current/Best: 15.01/ 20.65 GFLOPS | Progress: (8/20) | 14.38 s
[Task 15/25] Current/Best: 11.96/ 20.65 GFLOPS | Progress: (12/20) | 19.91 s
[Task 15/25] Current/Best: 13.10/ 20.65 GFLOPS | Progress: (16/20) | 22.52 s
[Task 15/25] Current/Best: 19.69/ 20.65 GFLOPS | Progress: (20/20) | 29.06 s Done.
+
[Task 16/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 16/25] Current/Best: 11.43/ 18.01 GFLOPS | Progress: (4/20) | 4.12 s
[Task 16/25] Current/Best: 18.93/ 18.93 GFLOPS | Progress: (8/20) | 7.81 s
[Task 16/25] Current/Best: 9.97/ 18.93 GFLOPS | Progress: (12/20) | 11.74 s
[Task 16/25] Current/Best: 11.39/ 20.92 GFLOPS | Progress: (16/20) | 14.99 s
[Task 16/25] Current/Best: 19.54/ 20.92 GFLOPS | Progress: (20/20) | 17.35 s Done.
+
[Task 17/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 17/25] Current/Best: 9.74/ 22.21 GFLOPS | Progress: (4/20) | 4.43 s
[Task 17/25] Current/Best: 17.69/ 22.21 GFLOPS | Progress: (8/20) | 6.79 s
[Task 17/25] Current/Best: 12.22/ 22.21 GFLOPS | Progress: (12/20) | 9.25 s
[Task 17/25] Current/Best: 20.54/ 22.21 GFLOPS | Progress: (16/20) | 11.50 s
[Task 17/25] Current/Best: 15.21/ 22.21 GFLOPS | Progress: (20/20) | 14.93 s Done.
+
[Task 18/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 18/25] Current/Best: 15.60/ 19.02 GFLOPS | Progress: (4/20) | 3.79 s
[Task 18/25] Current/Best: 9.60/ 19.02 GFLOPS | Progress: (8/20) | 5.85 s
[Task 18/25] Current/Best: 18.03/ 19.02 GFLOPS | Progress: (12/20) | 10.85 s
[Task 18/25] Current/Best: 19.86/ 20.93 GFLOPS | Progress: (16/20) | 12.61 s
[Task 18/25] Current/Best: 5.10/ 20.93 GFLOPS | Progress: (20/20) | 18.58 s Done.
+
[Task 19/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 19/25] Current/Best: 14.32/ 17.69 GFLOPS | Progress: (4/20) | 6.33 s
[Task 19/25] Current/Best: 18.70/ 19.32 GFLOPS | Progress: (8/20) | 10.50 s
[Task 19/25] Current/Best: 11.95/ 19.32 GFLOPS | Progress: (12/20) | 13.61 s
[Task 19/25] Current/Best: 10.35/ 19.32 GFLOPS | Progress: (16/20) | 20.19 s
[Task 19/25] Current/Best: 11.96/ 20.39 GFLOPS | Progress: (20/20) | 23.62 s Done.
+
[Task 20/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 20/25] Current/Best: 16.62/ 16.62 GFLOPS | Progress: (4/20) | 4.45 s
[Task 20/25] Current/Best: 15.75/ 17.77 GFLOPS | Progress: (8/20) | 11.92 s
[Task 20/25] Current/Best: 16.04/ 17.77 GFLOPS | Progress: (12/20) | 14.09 s
[Task 20/25] Current/Best: 16.58/ 17.77 GFLOPS | Progress: (16/20) | 18.34 s
[Task 20/25] Current/Best: 5.25/ 21.02 GFLOPS | Progress: (20/20) | 21.32 s
[Task 21/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 21/25] Current/Best: 11.52/ 11.52 GFLOPS | Progress: (4/20) | 4.44 s Done.
+
[Task 21/25] Current/Best: 5.32/ 13.19 GFLOPS | Progress: (8/20) | 6.13 s
[Task 21/25] Current/Best: 4.65/ 18.39 GFLOPS | Progress: (12/20) | 9.33 s
[Task 21/25] Current/Best: 17.69/ 20.82 GFLOPS | Progress: (16/20) | 11.07 s
[Task 21/25] Current/Best: 12.18/ 20.82 GFLOPS | Progress: (20/20) | 13.17 s
[Task 22/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 22/25] Current/Best: 5.18/ 20.62 GFLOPS | Progress: (4/20) | 5.24 s
[Task 22/25] Current/Best: 13.60/ 20.62 GFLOPS | Progress: (8/20) | 7.29 s
[Task 22/25] Current/Best: 16.39/ 20.62 GFLOPS | Progress: (12/20) | 10.59 s
[Task 22/25] Current/Best: 20.22/ 20.62 GFLOPS | Progress: (16/20) | 12.09 s
[Task 22/25] Current/Best: 10.39/ 20.62 GFLOPS | Progress: (20/20) | 14.22 s Done.
+
[Task 23/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 23/25] Current/Best: 10.57/ 16.24 GFLOPS | Progress: (4/20) | 6.22 s
[Task 23/25] Current/Best: 11.77/ 17.71 GFLOPS | Progress: (8/20) | 9.11 s
[Task 23/25] Current/Best: 5.37/ 17.71 GFLOPS | Progress: (12/20) | 14.29 s
[Task 23/25] Current/Best: 2.68/ 18.85 GFLOPS | Progress: (16/20) | 18.88 s
[Task 23/25] Current/Best: 2.68/ 18.85 GFLOPS | Progress: (20/20) | 23.12 s Done.
+
[Task 24/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s
[Task 24/25] Current/Best: 2.96/ 3.56 GFLOPS | Progress: (4/20) | 12.89 s
[Task 24/25] Current/Best: 6.47/ 7.84 GFLOPS | Progress: (8/20) | 23.87 s
[Task 24/25] Current/Best: 8.34/ 9.05 GFLOPS | Progress: (12/20) | 34.83 s
[Task 24/25] Current/Best: 9.90/ 10.07 GFLOPS | Progress: (16/20) | 46.61 s
[Task 24/25] Current/Best: 4.31/ 10.07 GFLOPS | Progress: (20/20) | 58.12 s
[Task 25/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/20) | 0.00 s Done.
+
[Task 25/25] Current/Best: 7.98/ 8.91 GFLOPS | Progress: (4/20) | 12.84 s
[Task 25/25] Current/Best: 3.51/ 8.91 GFLOPS | Progress: (8/20) | 23.83 s
[Task 25/25] Current/Best: 1.54/ 8.91 GFLOPS | Progress: (12/20) | 26.23 s
[Task 25/25] Current/Best: 1.51/ 8.91 GFLOPS | Progress: (16/20) | 29.14 s
[Task 25/25] Current/Best: 9.33/ 9.33 GFLOPS | Progress: (20/20) | 40.09 s
@@ -664,8 +663,8 @@ Verify that the optimized model runs and produces the same results:
.. code-block:: none
- class='n02123045 tabby, tabby cat' with probability=0.621103
- class='n02123159 tiger cat' with probability=0.356379
+ class='n02123045 tabby, tabby cat' with probability=0.621104
+ class='n02123159 tiger cat' with probability=0.356378
class='n02124075 Egyptian cat' with probability=0.019712
class='n02129604 tiger, Panthera tigris' with probability=0.001215
class='n04040759 radiator' with probability=0.000262
@@ -722,8 +721,8 @@ improvement in comparing the optimized model to the unoptimized model.
.. code-block:: none
- optimized: {'mean': 407.55241841999805, 'median': 407.1987353000054, 'std': 1.2733669758655524}
- unoptimized: {'mean': 519.4295429399983, 'median': 519.0552881999963, 'std': 1.9325290192094304}
+ optimized: {'mean': 424.62985488000413, 'median': 423.8392144000045, 'std': 2.1818921606460897}
+ unoptimized: {'mean': 516.9155461900016, 'median': 517.4163127000043, 'std': 1.5180639214923766}
@@ -746,7 +745,7 @@ profiling/benchmarking.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 11 minutes 44.628 seconds)
+ **Total running time of the script:** ( 12 minutes 34.943 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 697fb66642..f89488133e 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -274,7 +274,7 @@ device and returns the measured cost. Network overhead is excluded.
.. code-block:: none
- 1.509e-07 secs/op
+ 1.205e-07 secs/op
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index 5506845689..2dae0f6c16 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -277,7 +277,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
.. code-block:: none
- [stage(a, placeholder(a, 0xebb37f0)), stage(b, placeholder(b, 0x1086b110)), stage(T_add, compute(T_add, body=[a[ax0, ax1, ax2] + b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T.Range(0, 10), "DataPar", ""), T.iter_var(ax2, T.Range(0, 10), "DataPar", "")], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[a[ax0, ax1, ax2] * b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T. [...]
+ [stage(a, placeholder(a, 0x122d79e0)), stage(b, placeholder(b, 0x7db6270)), stage(T_add, compute(T_add, body=[a[ax0, ax1, ax2] + b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T.Range(0, 10), "DataPar", ""), T.iter_var(ax2, T.Range(0, 10), "DataPar", "")], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[a[ax0, ax1, ax2] * b[ax1, ax2]], axis=[T.iter_var(ax0, T.Range(0, 100), "DataPar", ""), T.iter_var(ax1, T. [...]
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 32dc5c37b3..46f7e65bb9 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,24 +5,24 @@
Computation times
=================
-**15:15.472** total execution time for **tutorial** files:
+**15:49.693** total execution time for **tutorial** files:
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``) | 11:44.628 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``) | 12:34.943 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:29.600 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:13.843 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``) | 01:00.489 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``) | 01:00.666 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``) | 00:37.250 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``) | 00:37.212 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``) | 00:20.915 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``) | 00:20.466 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``) | 00:01.530 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``) | 00:01.505 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``) | 00:00.881 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``) | 00:00.875 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.179 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.183 | 0.0 MB |
+------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_tutorial_uma.py` (``uma.py``) | 00:00.000 | 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 efb77d3b1c..de2082af88 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -286,7 +286,7 @@ helper function to run a profile of the TVM generated code.
.. code-block:: none
Numpy running time: 0.000008
- naive: 0.000009
+ naive: 0.000008
@@ -392,7 +392,7 @@ compile and run this new schedule with the parallel operation applied:
.. code-block:: none
- parallel: 0.000008
+ parallel: 0.000007
@@ -504,10 +504,10 @@ We can now compare the different schedules
.. code-block:: none
Operator Timing Performance
- numpy 7.509649999519752e-06 1.0
- naive 8.9555e-06 1.192532275215584
- parallel 8.184099999999998e-06 1.0898111097752063
- vector 2.4623400000000002e-05 3.2789011474003034
+ numpy 7.766480000555021e-06 1.0
+ naive 7.6315e-06 0.982620183075811
+ parallel 6.9891e-06 0.899905748743386
+ vector 2.4575900000000003e-05 3.1643550228988833
@@ -928,7 +928,7 @@ matrix multiplication.
.. code-block:: none
- Numpy running time: 0.019055
+ Numpy running time: 0.018867
@@ -986,7 +986,7 @@ optimizations.
.. code-block:: none
- none: 3.318498
+ none: 3.333209
@@ -1086,7 +1086,7 @@ schedule.
.. code-block:: none
- blocking: 0.324959
+ blocking: 0.327618
@@ -1170,7 +1170,7 @@ already cache friendly from our previous optimizations.
.. code-block:: none
- vectorization: 0.355031
+ vectorization: 0.350865
# from tvm.script import ir as I
# from tvm.script import tir as T
@@ -1236,7 +1236,7 @@ more cache friendly.
.. code-block:: none
- loop permutation: 0.123562
+ loop permutation: 0.123478
# from tvm.script import ir as I
# from tvm.script import tir as T
@@ -1327,7 +1327,7 @@ optimized schedule.
.. code-block:: none
- array packing: 0.108641
+ array packing: 0.108571
# from tvm.script import ir as I
# from tvm.script import tir as T
@@ -1410,7 +1410,7 @@ to `C` when all the block results are ready.
.. code-block:: none
- block caching: 0.111143
+ block caching: 0.111032
# from tvm.script import ir as I
# from tvm.script import tir as T
@@ -1484,7 +1484,7 @@ of thread-level parallelization.
.. code-block:: none
- parallelization: 0.147497
+ parallelization: 0.146407
# from tvm.script import ir as I
# from tvm.script import tir as T
@@ -1554,13 +1554,13 @@ working, we can compare the results.
.. code-block:: none
Operator Timing Performance
- none 3.3184976293 1.0
- blocking 0.3249590683 0.09792354993140269
- vectorization 0.35503104090000004 0.10698547371718023
- loop permutation 0.1235617905 0.037234256070890724
- array packing 0.1086407567 0.03273793410029241
- block caching 0.11114298920000001 0.03349195980093088
- parallelization 0.1474971396 0.04444696247413408
+ none 3.3332089075000004 1.0
+ blocking 0.3276179625 0.09828905765937204
+ vectorization 0.3508651517 0.1052634747586699
+ loop permutation 0.1234778334 0.037044732816525386
+ array packing 0.10857057339999998 0.032572387873951454
+ block caching 0.11103241159999999 0.03331096690344482
+ parallelization 0.14640668780000002 0.04392364591087365
@@ -1602,7 +1602,7 @@ the computation for specific platforms.
.. rst-class:: sphx-glr-timing
- **Total running time of the script:** ( 1 minutes 0.489 seconds)
+ **Total running time of the script:** ( 1 minutes 0.666 seconds)
.. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
diff --git a/docs/commit_hash b/docs/commit_hash
index f31c323869..0294b8876e 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-98008c2d676dd14b43ec97050f935217c014dc49
+f7aeaf1d389881e408d29585ea62c6bb5ea65843
diff --git a/docs/how_to/compile_models/from_darknet.html b/docs/how_to/compile_models/from_darknet.html
index 976e2d2534..2226de959b 100644
--- a/docs/how_to/compile_models/from_darknet.html
+++ b/docs/how_to/compile_models/from_darknet.html
@@ -585,7 +585,7 @@ 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 19.667 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 20.072 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_keras.html b/docs/how_to/compile_models/from_keras.html
index 60734941c9..49da827fd4 100644
--- a/docs/how_to/compile_models/from_keras.html
+++ b/docs/how_to/compile_models/from_keras.html
@@ -506,7 +506,7 @@ Tensorflow is also required since it’s used as the default backend of keras.</
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Relay top-1 id: 285, class name: Egyptian cat
1/1 [==============================] - ETA: 0s
-1/1 [==============================] - 1s 993ms/step
+1/1 [==============================] - 1s 996ms/step
Keras top-1 id: 285, class name: Egyptian cat
</pre></div>
</div>
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index ffe16ffd09..115df8fb56 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -439,7 +439,7 @@
<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.zip867feb82-13fe-4ac9-9ed8-064a92e9ff84 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.zip6c21ea8d-f38a-47fa-8916-023b4f07d20e 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 b52acccf73..2ac98f37a5 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -449,15 +449,15 @@ Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdo
<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:00, 57.1MB/s]
- 28%|##8 | 11.8M/41.5M [00:00<00:00, 49.9MB/s]
- 40%|###9 | 16.6M/41.5M [00:00<00:00, 33.8MB/s]
- 54%|#####3 | 22.3M/41.5M [00:00<00:00, 29.6MB/s]
- 61%|######1 | 25.5M/41.5M [00:00<00:00, 30.2MB/s]
- 77%|#######7 | 32.0M/41.5M [00:00<00:00, 35.9MB/s]
- 86%|########5 | 35.6M/41.5M [00:01<00:00, 34.6MB/s]
- 94%|#########4| 39.0M/41.5M [00:01<00:00, 29.9MB/s]
-100%|##########| 41.5M/41.5M [00:01<00:00, 33.4MB/s]
+ 19%|#9 | 7.99M/41.5M [00:00<00:00, 44.8MB/s]
+ 35%|###4 | 14.3M/41.5M [00:00<00:00, 49.4MB/s]
+ 46%|####6 | 19.1M/41.5M [00:00<00:00, 42.2MB/s]
+ 56%|#####5 | 23.2M/41.5M [00:00<00:00, 41.0MB/s]
+ 65%|######5 | 27.2M/41.5M [00:00<00:00, 32.8MB/s]
+ 77%|#######7 | 32.0M/41.5M [00:00<00:00, 35.2MB/s]
+ 86%|########5 | 35.5M/41.5M [00:01<00:00, 30.7MB/s]
+ 96%|#########6| 40.0M/41.5M [00:01<00:00, 31.7MB/s]
+100%|##########| 41.5M/41.5M [00:01<00:00, 36.7MB/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 7f6588658c..ace45efeae 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -432,13 +432,12 @@ be unstable.</p>
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]
- 18%|#7 | 7.99M/44.7M [00:00<00:00, 57.7MB/s]
- 32%|###2 | 14.3M/44.7M [00:00<00:00, 55.8MB/s]
- 46%|####5 | 20.5M/44.7M [00:00<00:00, 59.2MB/s]
- 59%|#####8 | 26.2M/44.7M [00:00<00:00, 58.0MB/s]
- 72%|#######1 | 32.0M/44.7M [00:00<00:00, 57.9MB/s]
- 90%|########9 | 40.0M/44.7M [00:00<00:00, 60.4MB/s]
-100%|##########| 44.7M/44.7M [00:00<00:00, 55.4MB/s]
+ 18%|#7 | 7.99M/44.7M [00:00<00:01, 25.8MB/s]
+ 36%|###5 | 16.0M/44.7M [00:00<00:00, 35.6MB/s]
+ 56%|#####5 | 24.9M/44.7M [00:00<00:00, 50.7MB/s]
+ 80%|#######9 | 35.7M/44.7M [00:00<00:00, 67.8MB/s]
+ 99%|#########8| 44.2M/44.7M [00:00<00:00, 64.3MB/s]
+100%|##########| 44.7M/44.7M [00:00<00:00, 54.9MB/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 5ea25d5982..06a86152ec 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -649,7 +649,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 25.182 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 25.067 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 28404bba51..d11e745216 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -340,7 +340,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>06:40.110</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>06:40.860</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 81%" />
@@ -349,43 +349,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:25.182</p></td>
+<td><p>01:25.067</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:19.667</p></td>
+<td><p>01:20.072</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:55.377</p></td>
+<td><p>00:55.588</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:37.760</p></td>
+<td><p>00:37.729</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:32.144</p></td>
+<td><p>00:31.986</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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:31.941</p></td>
+<td><p>00:31.944</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><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:27.312</p></td>
+<td><p>00:27.650</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:25.054</p></td>
+<td><p>00:25.763</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:22.924</p></td>
+<td><p>00:22.269</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.749</p></td>
+<td><p>00:02.791</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>
diff --git a/docs/how_to/deploy_models/deploy_model_on_adreno.html b/docs/how_to/deploy_models/deploy_model_on_adreno.html
index b8145e179b..4126ee2d9c 100644
--- a/docs/how_to/deploy_models/deploy_model_on_adreno.html
+++ b/docs/how_to/deploy_models/deploy_model_on_adreno.html
@@ -920,9 +920,10 @@ Top5 predictions:
Evaluate inference time cost...
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 2757.8206 2757.1375 2761.3960 2756.0175 1.9356
+ 3346.4930 3346.7782 3350.8307 3342.5832 2.7176
</pre></div>
</div>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 4.223 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-model-on-adreno-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/2387d8448da213eb625e6b3d916327d4/deploy_model_on_adreno.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_model_on_adreno.py</span></code></a></p>
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 a6d2726c9d..a13ed154b0 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -662,7 +662,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.5346 16.5556 17.3170 15.9225 0.4869
+ 16.2607 16.2663 16.3941 16.1104 0.0858
</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 95c44d2701..5f056ffa79 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -454,32 +454,29 @@ be unstable.</p>
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]
- 5%|4 | 7.99M/170M [00:00<00:02, 58.6MB/s]
- 9%|9 | 16.0M/170M [00:00<00:03, 52.4MB/s]
- 14%|#4 | 24.0M/170M [00:00<00:02, 59.5MB/s]
- 18%|#7 | 30.3M/170M [00:00<00:02, 60.2MB/s]
- 21%|##1 | 36.5M/170M [00:00<00:02, 61.6MB/s]
- 26%|##6 | 44.6M/170M [00:00<00:01, 68.7MB/s]
- 30%|### | 51.3M/170M [00:00<00:02, 57.3MB/s]
- 34%|###3 | 57.4M/170M [00:01<00:01, 59.2MB/s]
- 38%|###7 | 64.0M/170M [00:01<00:01, 57.9MB/s]
- 42%|####2 | 72.0M/170M [00:01<00:01, 61.0MB/s]
- 46%|####6 | 78.3M/170M [00:01<00:01, 60.3MB/s]
- 51%|#####1 | 87.5M/170M [00:01<00:01, 69.8MB/s]
- 56%|#####5 | 94.3M/170M [00:01<00:01, 59.3MB/s]
- 59%|#####9 | 100M/170M [00:01<00:01, 56.5MB/s]
- 62%|######2 | 106M/170M [00:01<00:01, 52.1MB/s]
- 67%|######7 | 114M/170M [00:02<00:01, 54.0MB/s]
- 71%|#######1 | 121M/170M [00:02<00:00, 57.5MB/s]
- 74%|#######4 | 126M/170M [00:02<00:00, 56.2MB/s]
- 78%|#######7 | 132M/170M [00:02<00:00, 41.7MB/s]
- 80%|######## | 136M/170M [00:02<00:00, 39.3MB/s]
- 85%|########4 | 144M/170M [00:02<00:00, 46.3MB/s]
- 88%|########8 | 150M/170M [00:02<00:00, 49.8MB/s]
- 91%|#########1| 155M/170M [00:02<00:00, 48.1MB/s]
- 94%|#########4| 160M/170M [00:03<00:00, 37.6MB/s]
- 99%|#########8| 168M/170M [00:03<00:00, 45.0MB/s]
-100%|##########| 170M/170M [00:03<00:00, 53.2MB/s]
+ 5%|4 | 7.99M/170M [00:00<00:03, 49.1MB/s]
+ 9%|9 | 16.0M/170M [00:00<00:03, 51.3MB/s]
+ 13%|#3 | 22.5M/170M [00:00<00:02, 57.2MB/s]
+ 17%|#6 | 28.8M/170M [00:00<00:02, 59.8MB/s]
+ 20%|## | 34.6M/170M [00:00<00:02, 55.4MB/s]
+ 25%|##4 | 42.1M/170M [00:00<00:02, 61.9MB/s]
+ 28%|##8 | 48.1M/170M [00:00<00:02, 60.8MB/s]
+ 32%|###1 | 54.1M/170M [00:00<00:01, 61.3MB/s]
+ 37%|###6 | 62.5M/170M [00:01<00:01, 69.1MB/s]
+ 41%|#### | 69.2M/170M [00:01<00:01, 66.1MB/s]
+ 45%|####5 | 76.5M/170M [00:01<00:01, 69.3MB/s]
+ 49%|####8 | 83.2M/170M [00:01<00:01, 56.0MB/s]
+ 52%|#####2 | 89.0M/170M [00:01<00:01, 54.0MB/s]
+ 57%|#####6 | 96.7M/170M [00:01<00:01, 60.8MB/s]
+ 61%|######1 | 104M/170M [00:01<00:01, 50.5MB/s]
+ 66%|######6 | 112M/170M [00:02<00:01, 58.0MB/s]
+ 72%|#######1 | 122M/170M [00:02<00:00, 65.0MB/s]
+ 76%|#######5 | 129M/170M [00:02<00:00, 50.3MB/s]
+ 80%|######## | 136M/170M [00:02<00:00, 53.4MB/s]
+ 88%|########8 | 150M/170M [00:02<00:00, 73.7MB/s]
+ 93%|#########3| 158M/170M [00:02<00:00, 73.6MB/s]
+ 98%|#########7| 166M/170M [00:02<00:00, 72.7MB/s]
+100%|##########| 170M/170M [00:02<00:00, 62.3MB/s]
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torch/nn/functional.py:3897: 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)
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/torchvision/models/detection/anchor_utils.py:124: 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=& [...]
@@ -577,7 +574,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 37.669 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes 39.740 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 1717025051..14ca6c0132 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -495,9 +495,8 @@ training. Other models require a full post training calibration.</p>
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]
- 47%|####6 | 6.30M/13.6M [00:00<00:00, 62.5MB/s]
- 91%|######### | 12.3M/13.6M [00:00<00:00, 31.2MB/s]
-100%|##########| 13.6M/13.6M [00:00<00:00, 36.8MB/s]
+ 59%|#####8 | 7.99M/13.6M [00:00<00:00, 67.2MB/s]
+100%|##########| 13.6M/13.6M [00:00<00:00, 72.1MB/s]
</pre></div>
</div>
</div>
@@ -588,7 +587,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.5351 90.3906 91.1886 90.2169 0.2770
+ 90.6126 90.5213 94.4287 90.1787 0.4976
</pre></div>
</div>
<div class="admonition note">
@@ -627,7 +626,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 16.492 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 17.124 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 62324897e7..26a7e3f9de 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -580,7 +580,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)
- 120.8493 120.8345 121.6863 119.8915 0.3304
+ 121.1432 121.0440 122.7098 120.1117 0.5692
</pre></div>
</div>
<div class="admonition note">
@@ -608,7 +608,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> ( 2 minutes 28.055 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 31.105 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 fd6e78a4e3..79248227fe 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -521,7 +521,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 50.485 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 40.890 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 bd2c208f49..ef38650b90 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -463,23 +463,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]
- 3%|2 | 3469/132723 [00:00<00:03, 34686.23KB/s]
- 9%|8 | 11761/132723 [00:00<00:01, 63055.86KB/s]
- 14%|#3 | 18067/132723 [00:00<00:01, 61975.59KB/s]
- 20%|## | 26766/132723 [00:00<00:01, 71745.64KB/s]
- 26%|##5 | 33953/132723 [00:00<00:01, 54923.20KB/s]
- 32%|###2 | 42568/132723 [00:00<00:01, 63706.53KB/s]
- 39%|###8 | 51240/132723 [00:00<00:01, 70294.33KB/s]
- 45%|####5 | 59833/132723 [00:00<00:00, 74835.33KB/s]
- 51%|##### | 67658/132723 [00:01<00:00, 70550.42KB/s]
- 57%|#####7 | 76297/132723 [00:01<00:00, 74989.69KB/s]
- 63%|######3 | 84029/132723 [00:01<00:00, 72998.91KB/s]
- 70%|######9 | 92747/132723 [00:01<00:00, 77007.31KB/s]
- 76%|#######6 | 101392/132723 [00:01<00:00, 79721.31KB/s]
- 83%|########2 | 110111/132723 [00:01<00:00, 81892.86KB/s]
- 89%|########9 | 118749/132723 [00:01<00:00, 83207.33KB/s]
- 96%|#########6| 127451/132723 [00:01<00:00, 84332.51KB/s]
-100%|##########| 132723/132723 [00:01<00:00, 74158.96KB/s]
+ 5%|4 | 6108/132723 [00:00<00:02, 61073.65KB/s]
+ 11%|# | 14004/132723 [00:00<00:01, 71589.80KB/s]
+ 17%|#6 | 21962/132723 [00:00<00:01, 75234.34KB/s]
+ 23%|##2 | 29947/132723 [00:00<00:01, 77055.16KB/s]
+ 29%|##8 | 37857/132723 [00:00<00:01, 77790.59KB/s]
+ 34%|###4 | 45700/132723 [00:00<00:01, 78002.12KB/s]
+ 40%|#### | 53622/132723 [00:00<00:01, 78395.93KB/s]
+ 46%|####6 | 61594/132723 [00:00<00:00, 78814.56KB/s]
+ 52%|#####2 | 69537/132723 [00:00<00:00, 79002.90KB/s]
+ 58%|#####8 | 77518/132723 [00:01<00:00, 79246.18KB/s]
+ 64%|######4 | 85478/132723 [00:01<00:00, 79350.89KB/s]
+ 70%|####### | 93439/132723 [00:01<00:00, 79428.57KB/s]
+ 76%|#######6 | 101456/132723 [00:01<00:00, 79650.94KB/s]
+ 83%|########2 | 109502/132723 [00:01<00:00, 79893.42KB/s]
+ 89%|########8 | 117560/132723 [00:01<00:00, 80097.79KB/s]
+ 95%|#########4| 125570/132723 [00:01<00:00, 80008.80KB/s]
+100%|##########| 132723/132723 [00:01<00:00, 78518.94KB/s]
</pre></div>
</div>
<p>Create TVM runtime and do inference
@@ -518,7 +518,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> ( 3 minutes 51.806 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> ( 3 minutes 50.823 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 d5680caf3d..fdf6f6632b 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -340,7 +340,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>15:37.838</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>15:41.881</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 86%" />
@@ -349,43 +349,43 @@
</colgroup>
<tbody>
<tr class="row-odd"><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>03:51.806</p></td>
+<td><p>03:50.823</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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:37.669</p></td>
+<td><p>03:39.740</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>02:28.055</p></td>
+<td><p>02:31.105</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:50.485</p></td>
+<td><p>01:40.890</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:16.492</p></td>
+<td><p>01:17.124</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_adreno.html#sphx-glr-how-to-deploy-models-deploy-model-on-adreno-py"><span class="std std-ref">Deploy the Pretrained Model on Adreno</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_adreno.py</span></code>)</p></td>
-<td><p>00:57.050</p></td>
+<td><p>01:04.223</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><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:41.736</p></td>
+<td><p>00:42.441</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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:27.510</p></td>
+<td><p>00:27.995</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><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:27.029</p></td>
+<td><p>00:27.534</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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>
-<td><p>00:00.007</p></td>
+<td><p>00:00.006</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>
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 ecbbf00af5..c6078cb477 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -619,7 +619,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.zip776947c3-9fb0-40c6-9459-520e3c7ad700 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.zip642ca368-188b-4971-b935-e853fb1d9c9d 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 fba5afc437..14a880f1df 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -340,7 +340,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:54.926</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:55.614</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 84%" />
@@ -349,15 +349,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:50.966</p></td>
+<td><p>00:51.624</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.827</p></td>
+<td><p>00:02.848</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:01.124</p></td>
+<td><p>00:01.134</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 63ceadbc91..31121a4ca5 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -526,10 +526,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: 21426us [21426us] (48.74%; 48.74%)
-FoldScaleAxis: 22538us [8us] (51.26%; 51.26%)
- FoldConstant: 22530us [1785us] (51.25%; 99.96%)
- InferType: 20744us [20744us] (47.19%; 92.08%)
+InferType: 21898us [21898us] (49.07%; 49.07%)
+FoldScaleAxis: 22726us [9us] (50.93%; 50.93%)
+ FoldConstant: 22717us [1749us] (50.91%; 99.96%)
+ InferType: 20968us [20968us] (46.99%; 92.30%)
</pre></div>
</div>
</div>
@@ -551,10 +551,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: 21307us [21307us] (48.17%; 48.17%)
-FoldScaleAxis: 22926us [7us] (51.83%; 51.83%)
- FoldConstant: 22919us [1837us] (51.81%; 99.97%)
- InferType: 21082us [21082us] (47.66%; 91.98%)
+InferType: 20843us [20843us] (48.21%; 48.21%)
+FoldScaleAxis: 22394us [6us] (51.79%; 51.79%)
+ FoldConstant: 22389us [1762us] (51.78%; 99.97%)
+ InferType: 20627us [20627us] (47.71%; 92.13%)
</pre></div>
</div>
<p>Register empty list to clear existing instruments.</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index f1de8af244..2d726184dc 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -575,7 +575,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.173278 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 54.140926 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 1f17d4256f..bdc5004978 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -867,7 +867,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.187190 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 9.808022 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 53d6d73c25..9abf476682 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -472,8 +472,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.019796
-Baseline: 3.343958
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.019557
+Baseline: 3.415455
</pre></div>
</div>
<p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -532,7 +532,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.319501
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.335021
</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.352584
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.356353
</pre></div>
</div>
<p>Here is the generated IR after vectorization.</p>
@@ -644,7 +644,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.123492
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.121695
</pre></div>
</div>
<p>Here is the generated IR after loop permutation.</p>
@@ -721,7 +721,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.109739
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.109818
</pre></div>
</div>
<p>Here is the generated IR after array packing.</p>
@@ -799,7 +799,7 @@ write to C when all the block results are ready.</p>
<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.112837
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.112447
</pre></div>
</div>
<p>Here is the generated IR after blocking.</p>
@@ -879,7 +879,7 @@ class Module:
<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.146648
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.147908
</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 0da78cd5e7..bc62011396 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -340,7 +340,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.363</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:35.927</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 83%" />
@@ -349,15 +349,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.757</p></td>
+<td><p>00:33.235</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.519</p></td>
+<td><p>00:01.599</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.087</p></td>
+<td><p>00:01.094</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 da80425d08..1571467fbb 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -340,7 +340,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>10:18.667</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>09:59.077</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 85%" />
@@ -349,27 +349,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>06:15.096</p></td>
+<td><p>06:08.038</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:42.307</p></td>
+<td><p>01:42.454</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>01:09.069</p></td>
+<td><p>01:09.392</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:43.507</p></td>
+<td><p>00:30.470</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><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:15.093</p></td>
+<td><p>00:15.118</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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:13.594</p></td>
+<td><p>00:13.605</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 7212439258..211a0ce61f 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
@@ -506,12 +506,12 @@ class Module:
def main(data: T.Buffer((1, 512, 7, 7), "float32"), kernel: T.Buffer((512, 512, 3, 3), "float32"), bias: T.Buffer((1, 512, 1, 1), "float32"), compute: T.Buffer((1, 512, 7, 7), "float32")):
T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
blockIdx_x = T.env_thread("blockIdx.x")
- T.launch_thread(blockIdx_x, 28)
+ T.launch_thread(blockIdx_x, 128)
conv2d_nchw = T.allocate([14], "float32", "local")
- pad_temp_shared = T.allocate([72], "float32", "shared")
- kernel_shared = T.allocate([3072], "float32", "shared")
+ pad_temp_shared = T.allocate([162], "float32", "shared")
+ kernel_shared = T.allocate([72], "float32", "shared")
threadIdx_x = T.env_thread("threadIdx.x")
- T.launch_thread(threadIdx_x, 64)
+ T.launch_thread(threadIdx_x, 14)
conv2d_nchw_1 = T.Buffer((14,), data=conv2d_nchw, scope="local", align=32)
conv2d_nchw_1[0] = T.float32(0)
conv2d_nchw_1[1] = T.float32(0)
@@ -527,460 +527,308 @@ class Module:
conv2d_nchw_1[11] = T.float32(0)
conv2d_nchw_1[12] = T.float32(0)
conv2d_nchw_1[13] = T.float32(0)
- for rc_outer_outer, ry_outer_outer in T.grid(64, 3):
- cse_var_2: T.int32 = rc_outer_outer * 72
- cse_var_1: T.int32 = ry_outer_outer * 3
+ for rc_outer_outer in range(256):
+ cse_var_1: T.int32 = rc_outer_outer * 98
threadIdx_x_1 = T.env_thread("threadIdx.x")
- pad_temp_shared_1 = T.Buffer((72,), data=pad_temp_shared, scope="shared")
- with T.launch_thread(threadIdx_x_1, 64):
- data_1 = T.Buffer((25088,), data=data.data)
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= threadIdx_x_1 * 4 % 9 and threadIdx_x_1 * 4 % 9 < 8, data_1[rc_outer_outer * 392 + threadIdx_x_1 * 4 // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + threadIdx_x_1 * 4 % 9 - 8], T.float32(0))
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4 + 1] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= (threadIdx_x_1 * 4 + 1) % 9 and (threadIdx_x_1 * 4 + 1) % 9 < 8, data_1[rc_outer_outer * 392 + (threadIdx_x_1 * 4 + 1) // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + (threadIdx_x_1 * 4 + 1) % 9 - 8], T.float32(0))
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4 + 2] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= (threadIdx_x_1 * 4 + 2) % 9 and (threadIdx_x_1 * 4 + 2) % 9 < 8, data_1[rc_outer_outer * 392 + (threadIdx_x_1 * 4 + 2) // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + (threadIdx_x_1 * 4 + 2) % 9 - 8], T.float32(0))
- if T.likely(threadIdx_x_1 < 18):
- pad_temp_shared_1[threadIdx_x_1 * 4 + 3] = T.if_then_else(1 <= ry_outer_outer + blockIdx_x % 7 and ry_outer_outer + blockIdx_x % 7 < 8 and 1 <= (threadIdx_x_1 * 4 + 3) % 9 and (threadIdx_x_1 * 4 + 3) % 9 < 8, data_1[rc_outer_outer * 392 + (threadIdx_x_1 * 4 + 3) // 9 * 49 + ry_outer_outer * 7 + blockIdx_x % 7 * 7 + (threadIdx_x_1 * 4 + 3) % 9 - 8], T.float32(0))
+ pad_temp_shared_1 = T.Buffer((162,), data=pad_temp_shared, scope="shared")
+ data_1 = T.Buffer((25088,), data=data.data)
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1] = T.if_then_else(9 <= threadIdx_x_1 and 1 <= threadIdx_x_1 % 9 and threadIdx_x_1 % 9 < 8, data_1[cse_var_1 + threadIdx_x_1 // 9 * 7 + threadIdx_x_1 % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 14] = T.if_then_else(1 <= (threadIdx_x_1 + 5) % 9 and (threadIdx_x_1 + 5) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 14) // 9 * 7 + (threadIdx_x_1 + 5) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 28] = T.if_then_else(1 <= (threadIdx_x_1 + 1) % 9 and (threadIdx_x_1 + 1) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 28) // 9 * 7 + (threadIdx_x_1 + 1) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 42] = T.if_then_else(1 <= (threadIdx_x_1 + 6) % 9 and (threadIdx_x_1 + 6) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 42) // 9 * 7 + (threadIdx_x_1 + 6) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 56] = T.if_then_else(1 <= (threadIdx_x_1 + 2) % 9 and (threadIdx_x_1 + 2) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 56) // 9 * 7 + (threadIdx_x_1 + 2) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 70] = T.if_then_else(9 <= (threadIdx_x_1 + 70) % 81 and (threadIdx_x_1 + 70) % 81 < 72 and 1 <= (threadIdx_x_1 + 7) % 9 and (threadIdx_x_1 + 7) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 70) // 81 * 49 + (threadIdx_x_1 + 70) % 81 // 9 * 7 + (threadIdx_x_1 + 7) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 84] = T.if_then_else(6 <= threadIdx_x_1 and 1 <= (threadIdx_x_1 + 3) % 9 and (threadIdx_x_1 + 3) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 84) // 81 * 49 + (threadIdx_x_1 + 3) // 9 * 7 + (threadIdx_x_1 + 3) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 98] = T.if_then_else(1 <= (threadIdx_x_1 + 8) % 9 and (threadIdx_x_1 + 8) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 98) // 81 * 49 + (threadIdx_x_1 + 17) // 9 * 7 + (threadIdx_x_1 + 8) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 112] = T.if_then_else(1 <= (threadIdx_x_1 + 4) % 9 and (threadIdx_x_1 + 4) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 112) // 81 * 49 + (threadIdx_x_1 + 31) // 9 * 7 + (threadIdx_x_1 + 4) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 126] = T.if_then_else(1 <= threadIdx_x_1 % 9 and threadIdx_x_1 % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 126) // 81 * 49 + threadIdx_x_1 // 9 * 7 + threadIdx_x_1 % 9 + 27], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ pad_temp_shared_1[threadIdx_x_1 + 140] = T.if_then_else(threadIdx_x_1 < 13 and 1 <= (threadIdx_x_1 + 5) % 9 and (threadIdx_x_1 + 5) % 9 < 8, data_1[cse_var_1 + (threadIdx_x_1 + 140) // 81 * 49 + (threadIdx_x_1 + 59) // 9 * 7 + (threadIdx_x_1 + 5) % 9 - 8], T.float32(0))
+ with T.launch_thread(threadIdx_x_1, 14):
+ if T.likely(threadIdx_x_1 < 8):
+ pad_temp_shared_1[threadIdx_x_1 + 154] = T.float32(0)
threadIdx_x_2 = T.env_thread("threadIdx.x")
- kernel_shared_1 = T.Buffer((3072,), data=kernel_shared, scope="shared")
- kernel_1 = T.Buffer((2359296,), data=kernel.data)
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 64) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 64) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 128) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 128) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 192] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 36864]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 256) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 256) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 320) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 320) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 384] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 73728]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 448) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 448) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 512) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 512) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 576] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 110592]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 640) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 640) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 704) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 704) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 768] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 147456]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 832) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 832) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 896) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 896) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 960] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 184320]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1024) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1024) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1088) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1088) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1152] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 221184]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1216) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1216) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1280) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1280) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1344] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 258048]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1408) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1408) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1472) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1472) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1536] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 294912]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1600) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1600) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1664) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1664) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1728] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 331776]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1792) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1792) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1856) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1856) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 1920] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 368640]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 1984) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 1984) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2048) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2048) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2112] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 405504]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2176) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2176) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2240) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2240) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2304] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 442368]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2368) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2368) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2432) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2432) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2496] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 479232]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2560) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2560) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2624) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2624) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2688] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 516096]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2752) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2752) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2816) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2816) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[threadIdx_x_2 + 2880] = kernel_1[blockIdx_x // 7 * 589824 + threadIdx_x_2 // 24 * 4608 + cse_var_2 + threadIdx_x_2 % 24 // 3 * 9 + cse_var_1 + threadIdx_x_2 % 3 + 552960]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 2944) // 24 * 24 + (threadIdx_x_2 + 16) % 24 // 3 * 3 + (threadIdx_x_2 + 1) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 2944) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 16) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 1) % 3]
- with T.launch_thread(threadIdx_x_2, 64):
- kernel_shared_1[(threadIdx_x_2 + 3008) // 24 * 24 + (threadIdx_x_2 + 8) % 24 // 3 * 3 + (threadIdx_x_2 + 2) % 3] = kernel_1[blockIdx_x // 7 * 589824 + (threadIdx_x_2 + 3008) // 24 * 4608 + cse_var_2 + (threadIdx_x_2 + 8) % 24 // 3 * 9 + cse_var_1 + (threadIdx_x_2 + 2) % 3]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[0] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[9] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 3]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[0] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[9] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 24]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 27]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 1]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 4]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[1] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[10] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 25]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 28]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[8] * kernel_shared_1[threadIdx_x * 48 + 2]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[17] * kernel_shared_1[threadIdx_x * 48 + 5]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[2] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[11] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[3] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[12] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[4] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[13] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[5] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[14] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[6] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[15] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[7] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[16] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[8] * kernel_shared_1[threadIdx_x * 48 + 26]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[17] * kernel_shared_1[threadIdx_x * 48 + 29]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[18] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[27] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 6]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 9]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[18] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[27] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 30]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 33]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 7]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 10]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[19] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[28] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 31]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 34]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[26] * kernel_shared_1[threadIdx_x * 48 + 8]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[35] * kernel_shared_1[threadIdx_x * 48 + 11]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[20] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[29] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[21] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[30] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[22] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[31] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[23] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[32] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[24] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[33] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[25] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[34] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[26] * kernel_shared_1[threadIdx_x * 48 + 32]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[35] * kernel_shared_1[threadIdx_x * 48 + 35]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[36] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[45] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 12]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 15]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[36] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[45] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 36]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 39]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 13]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 16]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[37] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[46] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 37]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 40]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[44] * kernel_shared_1[threadIdx_x * 48 + 14]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[53] * kernel_shared_1[threadIdx_x * 48 + 17]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[38] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[47] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[39] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[48] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[40] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[49] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[41] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[50] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[42] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[51] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[43] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[52] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[44] * kernel_shared_1[threadIdx_x * 48 + 38]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[53] * kernel_shared_1[threadIdx_x * 48 + 41]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[54] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[63] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 18]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 21]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[54] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[63] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 42]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 45]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 19]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 22]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[55] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[64] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 43]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 46]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[62] * kernel_shared_1[threadIdx_x * 48 + 20]
- conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[71] * kernel_shared_1[threadIdx_x * 48 + 23]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[56] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[65] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[57] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[66] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[58] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[67] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[59] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[68] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[60] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[69] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[61] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[70] * kernel_shared_1[threadIdx_x * 48 + 47]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[62] * kernel_shared_1[threadIdx_x * 48 + 44]
- conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[71] * kernel_shared_1[threadIdx_x * 48 + 47]
- for i1_inner, i3_inner in T.grid(2, 7):
+ kernel_shared_1 = T.Buffer((72,), data=kernel_shared, scope="shared")
+ with T.launch_thread(threadIdx_x_2, 14):
+ kernel_1 = T.Buffer((2359296,), data=kernel.data)
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 1] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 1]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 2] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 2]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 3] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 3]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 4] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 4]
+ if T.likely(threadIdx_x_2 < 12):
+ kernel_shared_1[threadIdx_x_2 * 6 + 5] = kernel_1[blockIdx_x * 18432 + threadIdx_x_2 // 3 * 4608 + rc_outer_outer * 18 + threadIdx_x_2 % 3 * 6 + 5]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 18]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 3]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 9] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 21]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 72] * kernel_shared_1[threadIdx_x // 7 * 36 + 6]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 18] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 27] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 36] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 45] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 54] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 63] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 72] * kernel_shared_1[threadIdx_x // 7 * 36 + 24]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 81] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 9]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 81] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 27]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 12]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 90] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 30]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 153] * kernel_shared_1[threadIdx_x // 7 * 36 + 15]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 99] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 108] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 117] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 126] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 135] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 144] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 153] * kernel_shared_1[threadIdx_x // 7 * 36 + 33]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 1] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 1]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 1] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 19]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 4]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 10] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 22]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 73] * kernel_shared_1[threadIdx_x // 7 * 36 + 7]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 19] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 28] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 37] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 46] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 55] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 64] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 73] * kernel_shared_1[threadIdx_x // 7 * 36 + 25]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 82] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 10]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 82] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 28]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 13]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 91] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 31]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 154] * kernel_shared_1[threadIdx_x // 7 * 36 + 16]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 100] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 109] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 118] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 127] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 136] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 145] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 154] * kernel_shared_1[threadIdx_x // 7 * 36 + 34]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 2] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 2]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 2] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 20]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 5]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 11] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 23]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 74] * kernel_shared_1[threadIdx_x // 7 * 36 + 8]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 20] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 29] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 38] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 47] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 56] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 65] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 74] * kernel_shared_1[threadIdx_x // 7 * 36 + 26]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 83] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 11]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 83] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 29]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 14]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 92] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 32]
+ conv2d_nchw_1[0] = conv2d_nchw_1[0] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[1] = conv2d_nchw_1[1] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[2] = conv2d_nchw_1[2] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[3] = conv2d_nchw_1[3] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[4] = conv2d_nchw_1[4] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[5] = conv2d_nchw_1[5] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[6] = conv2d_nchw_1[6] + pad_temp_shared_1[threadIdx_x % 7 + 155] * kernel_shared_1[threadIdx_x // 7 * 36 + 17]
+ conv2d_nchw_1[7] = conv2d_nchw_1[7] + pad_temp_shared_1[threadIdx_x % 7 + 101] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[8] = conv2d_nchw_1[8] + pad_temp_shared_1[threadIdx_x % 7 + 110] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[9] = conv2d_nchw_1[9] + pad_temp_shared_1[threadIdx_x % 7 + 119] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[10] = conv2d_nchw_1[10] + pad_temp_shared_1[threadIdx_x % 7 + 128] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[11] = conv2d_nchw_1[11] + pad_temp_shared_1[threadIdx_x % 7 + 137] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[12] = conv2d_nchw_1[12] + pad_temp_shared_1[threadIdx_x % 7 + 146] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ conv2d_nchw_1[13] = conv2d_nchw_1[13] + pad_temp_shared_1[threadIdx_x % 7 + 155] * kernel_shared_1[threadIdx_x // 7 * 36 + 35]
+ for i1_inner, i2_inner in T.grid(2, 7):
compute_1 = T.Buffer((25088,), data=compute.data)
bias_1 = T.Buffer((512,), data=bias.data)
- compute_1[blockIdx_x // 7 * 6272 + threadIdx_x * 98 + i1_inner * 49 + blockIdx_x % 7 * 7 + i3_inner] = T.max(conv2d_nchw_1[i1_inner * 7 + i3_inner] + bias_1[blockIdx_x // 7 * 128 + threadIdx_x * 2 + i1_inner], T.float32(0))
+ compute_1[blockIdx_x * 196 + threadIdx_x // 7 * 98 + i1_inner * 49 + i2_inner * 7 + threadIdx_x % 7] = T.max(conv2d_nchw_1[i1_inner * 7 + i2_inner] + bias_1[blockIdx_x * 4 + threadIdx_x // 7 * 2 + i1_inner], T.float32(0))
</pre></div>
</div>
</div>
@@ -1014,7 +862,7 @@ class Module:
<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.366 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.264 ms
</pre></div>
</div>
</div>
@@ -1043,21 +891,21 @@ conv2d_nchw_nn_o_i, conv2d_nchw_nn_i = s[conv2d_nchw].split(conv2d_nchw_nn, fact
conv2d_nchw_nn_o_o_i, conv2d_nchw_nn_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_i, factor=1)
conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_i, factor=1)
conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
-conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
-conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=2)
-conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=64)
+conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=2)
+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_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=1)
-conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
+conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=7)
conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=1)
conv2d_nchw_yy_o_o_o_o, conv2d_nchw_yy_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_o_i, factor=1)
conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, factor=1)
-conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=7)
-conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=1)
+conv2d_nchw_xx_o_o_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=2)
-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_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=1)
+conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=3)
conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
conv2d_nchw_rx_o_o, conv2d_nchw_rx_o_i = s[conv2d_nchw].split(conv2d_nchw_rx_o_i, factor=3)
@@ -1066,13 +914,13 @@ compute_i0_o_i, compute_i0_i = s[compute].split(compute_i0, factor=1)
compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=2)
-compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=64)
+compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=2)
compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
-compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
+compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=7)
compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=1)
compute_i2_o_o_o, compute_i2_o_o_i = s[compute].split(compute_i2_o_o_i, factor=1)
-compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=7)
-compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
+compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
+compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=7)
compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
s[conv2d_nchw].compute_at(s[compute], compute_i3_o_i)
@@ -1090,16 +938,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=6)
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=64)
+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=14)
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=4)
+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=64)
+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=14)
s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
-s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 512)
+s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 1024)
s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "unroll_explicit", True)
CUDA source code:
@@ -1117,10 +965,10 @@ CUDA source code:
#define int64_t long long
#define uint64_t unsigned long long
#endif
-extern "C" __global__ void __launch_bounds__(64) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+extern "C" __global__ void __launch_bounds__(14) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
float conv2d_nchw[14];
- __shared__ float pad_temp_shared[72];
- __shared__ float kernel_shared[3072];
+ __shared__ float pad_temp_shared[162];
+ __shared__ float kernel_shared[72];
conv2d_nchw[0] = 0.000000e+00f;
conv2d_nchw[1] = 0.000000e+00f;
conv2d_nchw[2] = 0.000000e+00f;
@@ -1135,411 +983,297 @@ extern "C" __global__ void __launch_bounds__(64) default_function_kern
conv2d_nchw[11] = 0.000000e+00f;
conv2d_nchw[12] = 0.000000e+00f;
conv2d_nchw[13] = 0.000000e+00f;
- for (int rc_outer_outer = 0; rc_outer_outer < 64; ++rc_outer_outer) {
- for (int ry_outer_outer = 0; ry_outer_outer < 3; ++ry_outer_outer) {
- __syncthreads();
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[(((int)threadIdx.x) * 4)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= ((((int)threadIdx.x) * 4) % 9))) && (((((int)threadIdx.x) * 4) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + (((((int)threadIdx.x) * 4) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + ((((int)threadIdx.x) * 4) % 9)) - 8)] : 0.000000e+00f);
- }
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[((((int)threadIdx.x) * 4) + 1)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (((((int)threadIdx.x) * 4) + 1) % 9))) && ((((((int)threadIdx.x) * 4) + 1) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + ((((((int)threadIdx.x) * 4) + 1) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + (((((int)threadIdx.x) * 4) + 1) % 9)) - 8)] : 0.000000e+00f);
- }
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[((((int)threadIdx.x) * 4) + 2)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (((((int)threadIdx.x) * 4) + 2) % 9))) && ((((((int)threadIdx.x) * 4) + 2) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + ((((((int)threadIdx.x) * 4) + 2) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + (((((int)threadIdx.x) * 4) + 2) % 9)) - 8)] : 0.000000e+00f);
- }
- if (((int)threadIdx.x) < 18) {
- pad_temp_shared[((((int)threadIdx.x) * 4) + 3)] = (((((1 <= (ry_outer_outer + (((int)blockIdx.x) % 7))) && ((ry_outer_outer + (((int)blockIdx.x) % 7)) < 8)) && (1 <= (((((int)threadIdx.x) * 4) + 3) % 9))) && ((((((int)threadIdx.x) * 4) + 3) % 9) < 8)) ? data[((((((rc_outer_outer * 392) + ((((((int)threadIdx.x) * 4) + 3) / 9) * 49)) + (ry_outer_outer * 7)) + ((((int)blockIdx.x) % 7) * 7)) + (((((int)threadIdx.x) * 4) + 3) % 9)) - 8)] : 0.000000e+00f);
- }
- kernel_shared[((int)threadIdx.x)] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 64) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 64) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 128) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 128) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 192)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 36864)];
- kernel_shared[(((((((int)threadIdx.x) + 256) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 256) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 320) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 320) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 384)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 73728)];
- kernel_shared[(((((((int)threadIdx.x) + 448) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 448) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 512) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 512) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 576)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 110592)];
- kernel_shared[(((((((int)threadIdx.x) + 640) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 640) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 704) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 704) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 768)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 147456)];
- kernel_shared[(((((((int)threadIdx.x) + 832) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 832) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 896) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 896) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 960)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 184320)];
- kernel_shared[(((((((int)threadIdx.x) + 1024) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1024) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1088) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1088) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1152)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 221184)];
- kernel_shared[(((((((int)threadIdx.x) + 1216) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1216) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1280) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1280) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1344)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 258048)];
- kernel_shared[(((((((int)threadIdx.x) + 1408) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1408) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1472) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1472) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1536)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 294912)];
- kernel_shared[(((((((int)threadIdx.x) + 1600) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1600) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1664) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1664) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1728)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 331776)];
- kernel_shared[(((((((int)threadIdx.x) + 1792) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1792) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 1856) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1856) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 1920)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 368640)];
- kernel_shared[(((((((int)threadIdx.x) + 1984) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 1984) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2048) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2048) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2112)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 405504)];
- kernel_shared[(((((((int)threadIdx.x) + 2176) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2176) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2240) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2240) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2304)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 442368)];
- kernel_shared[(((((((int)threadIdx.x) + 2368) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2368) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2432) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2432) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2496)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 479232)];
- kernel_shared[(((((((int)threadIdx.x) + 2560) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2560) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2624) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2624) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2688)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 516096)];
- kernel_shared[(((((((int)threadIdx.x) + 2752) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2752) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 2816) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2816) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- kernel_shared[(((int)threadIdx.x) + 2880)] = kernel[((((((((((int)blockIdx.x) / 7) * 589824) + ((((int)threadIdx.x) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 552960)];
- kernel_shared[(((((((int)threadIdx.x) + 2944) / 24) * 24) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 1) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 2944) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 16) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
- kernel_shared[(((((((int)threadIdx.x) + 3008) / 24) * 24) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 3)) + ((((int)threadIdx.x) + 2) % 3))] = kernel[(((((((((int)blockIdx.x) / 7) * 589824) + (((((int)threadIdx.x) + 3008) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 8) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
- __syncthreads();
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[0] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[9] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[1] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[2] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[3] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[4] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[5] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[6] * kernel_shared[(((int)threadIdx.x) * 48)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 3)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[0] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[9] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[1] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 24)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 27)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[1] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 1)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 4)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[1] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[10] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 25)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 28)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[8] * kernel_shared[((((int)threadIdx.x) * 48) + 2)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[17] * kernel_shared[((((int)threadIdx.x) * 48) + 5)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[2] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[11] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[3] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[12] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[4] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[13] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[5] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[14] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[6] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[15] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[7] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[16] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[8] * kernel_shared[((((int)threadIdx.x) * 48) + 26)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[17] * kernel_shared[((((int)threadIdx.x) * 48) + 29)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[18] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[27] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 6)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 9)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[18] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[27] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 30)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 33)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 7)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 10)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[19] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[28] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 31)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 34)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[26] * kernel_shared[((((int)threadIdx.x) * 48) + 8)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[35] * kernel_shared[((((int)threadIdx.x) * 48) + 11)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[20] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[29] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[21] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[30] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[22] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[31] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[23] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[32] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[24] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[33] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[25] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[34] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[26] * kernel_shared[((((int)threadIdx.x) * 48) + 32)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[35] * kernel_shared[((((int)threadIdx.x) * 48) + 35)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[36] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[45] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 12)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 15)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[36] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[45] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 36)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 39)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 13)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 16)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[37] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[46] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 37)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 40)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[44] * kernel_shared[((((int)threadIdx.x) * 48) + 14)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[53] * kernel_shared[((((int)threadIdx.x) * 48) + 17)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[38] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[47] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[39] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[48] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[40] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[49] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[41] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[50] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[42] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[51] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[43] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[52] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[44] * kernel_shared[((((int)threadIdx.x) * 48) + 38)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[53] * kernel_shared[((((int)threadIdx.x) * 48) + 41)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[54] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[63] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 18)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 21)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[54] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[63] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 42)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 45)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 19)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 22)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[55] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[64] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 43)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 46)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[62] * kernel_shared[((((int)threadIdx.x) * 48) + 20)]));
- conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[71] * kernel_shared[((((int)threadIdx.x) * 48) + 23)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[56] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[65] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[57] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[66] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[58] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[67] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[59] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[68] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[60] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[69] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[61] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[70] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[62] * kernel_shared[((((int)threadIdx.x) * 48) + 44)]));
- conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[71] * kernel_shared[((((int)threadIdx.x) * 48) + 47)]));
+ for (int rc_outer_outer = 0; rc_outer_outer < 256; ++rc_outer_outer) {
+ __syncthreads();
+ pad_temp_shared[((int)threadIdx.x)] = ((((9 <= ((int)threadIdx.x)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[((((rc_outer_outer * 98) + ((((int)threadIdx.x) / 9) * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 14)] = (((1 <= ((((int)threadIdx.x) + 5) % 9)) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 14) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 28)] = (((1 <= ((((int)threadIdx.x) + 1) % 9)) && (((((int)threadIdx.x) + 1) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 28) / 9) * 7)) + ((((int)threadIdx.x) + 1) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 42)] = (((1 <= ((((int)threadIdx.x) + 6) % 9)) && (((((int)threadIdx.x) + 6) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 42) / 9) * 7)) + ((((int)threadIdx.x) + 6) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 56)] = (((1 <= ((((int)threadIdx.x) + 2) % 9)) && (((((int)threadIdx.x) + 2) % 9) < 8)) ? data[((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 56) / 9) * 7)) + ((((int)threadIdx.x) + 2) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 70)] = (((((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 * 98) + (((((int)threadIdx.x) + 70) / 81) * 49)) + ((((((int)threadIdx.x) + 70) % 81) / 9) * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 84)] = ((((6 <= ((int)threadIdx.x)) && (1 <= ((((int)threadIdx.x) + 3) % 9))) && (((((int)threadIdx.x) + 3) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 84) / 81) * 49)) + (((((int)threadIdx.x) + 3) / 9) * 7)) + ((((int)threadIdx.x) + 3) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 98)] = (((1 <= ((((int)threadIdx.x) + 8) % 9)) && (((((int)threadIdx.x) + 8) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 98) / 81) * 49)) + (((((int)threadIdx.x) + 17) / 9) * 7)) + ((((int)threadIdx.x) + 8) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 112)] = (((1 <= ((((int)threadIdx.x) + 4) % 9)) && (((((int)threadIdx.x) + 4) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 112) / 81) * 49)) + (((((int)threadIdx.x) + 31) / 9) * 7)) + ((((int)threadIdx.x) + 4) % 9)) - 8)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 126)] = (((1 <= (((int)threadIdx.x) % 9)) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 126) / 81) * 49)) + ((((int)threadIdx.x) / 9) * 7)) + (((int)threadIdx.x) % 9)) + 27)] : 0.000000e+00f);
+ pad_temp_shared[(((int)threadIdx.x) + 140)] = ((((((int)threadIdx.x) < 13) && (1 <= ((((int)threadIdx.x) + 5) % 9))) && (((((int)threadIdx.x) + 5) % 9) < 8)) ? data[(((((rc_outer_outer * 98) + (((((int)threadIdx.x) + 140) / 81) * 49)) + (((((int)threadIdx.x) + 59) / 9) * 7)) + ((((int)threadIdx.x) + 5) % 9)) - 8)] : 0.000000e+00f);
+ if (((int)threadIdx.x) < 8) {
+ pad_temp_shared[(((int)threadIdx.x) + 154)] = 0.000000e+00f;
}
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[(((int)threadIdx.x) * 6)] = kernel[((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6))];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 1)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 1)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 2)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 2)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 3)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 3)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 4)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 4)];
+ }
+ if (((int)threadIdx.x) < 12) {
+ kernel_shared[((((int)threadIdx.x) * 6) + 5)] = kernel[(((((((int)blockIdx.x) * 18432) + ((((int)threadIdx.x) / 3) * 4608)) + (rc_outer_outer * 18)) + ((((int)threadIdx.x) % 3) * 6)) + 5)];
+ }
+ __syncthreads();
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((int)threadIdx.x) % 7)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[((((int)threadIdx.x) / 7) * 36)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((int)threadIdx.x) % 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 18)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 3)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 21)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 72)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 6)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 18)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 27)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 36)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 45)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 54)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 72)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 24)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 81)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 9)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 81)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 27)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 12)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 90)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 30)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 153)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 15)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 99)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 108)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 117)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 135)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 144)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 153)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 33)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 1)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 19)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 4)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 10)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 22)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 73)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 7)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 19)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 28)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 37)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 46)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 55)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 73)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 25)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 82)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 10)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 82)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 28)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 13)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 91)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 31)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 154)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 16)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 100)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 109)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 118)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 136)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 145)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 154)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 34)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 2)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 20)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 5)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 11)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 23)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 74)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 8)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 20)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 29)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 38)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 47)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 56)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 74)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 26)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 83)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 11)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 83)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 29)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 14)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 92)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 32)]));
+ conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 155)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 17)]));
+ conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 101)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 110)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 119)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 137)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 146)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
+ conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[((((int)threadIdx.x) % 7) + 155)] * kernel_shared[(((((int)threadIdx.x) / 7) * 36) + 35)]));
}
for (int i1_inner = 0; i1_inner < 2; ++i1_inner) {
- for (int i3_inner = 0; i3_inner < 7; ++i3_inner) {
- compute[((((((((int)blockIdx.x) / 7) * 6272) + (((int)threadIdx.x) * 98)) + (i1_inner * 49)) + ((((int)blockIdx.x) % 7) * 7)) + i3_inner)] = max((conv2d_nchw[((i1_inner * 7) + i3_inner)] + bias[((((((int)blockIdx.x) / 7) * 128) + (((int)threadIdx.x) * 2)) + i1_inner)]), 0.000000e+00f);
+ for (int i2_inner = 0; i2_inner < 7; ++i2_inner) {
+ compute[(((((((int)blockIdx.x) * 196) + ((((int)threadIdx.x) / 7) * 98)) + (i1_inner * 49)) + (i2_inner * 7)) + (((int)threadIdx.x) % 7))] = max((conv2d_nchw[((i1_inner * 7) + i2_inner)] + bias[(((((int)blockIdx.x) * 4) + ((((int)threadIdx.x) / 7) * 2)) + i1_inner)]), 0.000000e+00f);
}
}
}
@@ -1577,7 +1311,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> ( 6 minutes 15.096 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 6 minutes 8.038 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 a1e992b648..74a2774c7e 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -916,7 +916,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)
- 7.8804 7.8818 7.8881 7.8714 0.0069
+ 7.9221 7.9226 7.9239 7.9198 0.0017
</pre></div>
</div>
</div>
@@ -938,7 +938,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 9.069 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 9.392 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-cuda-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/eafe360d52540634c9eea0fa89e804bd/tune_network_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_network_cuda.py</span></code></a></p>
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 b9783a54d6..6637511a14 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -935,7 +935,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)
- 759.5023 760.3536 761.1737 756.9797 1.8149
+ 761.3823 761.4771 761.8591 760.8106 0.4333
</pre></div>
</div>
</div>
@@ -957,7 +957,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 42.307 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 42.454 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 ff69a05533..c9026ea631 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -632,68 +632,25 @@ class Module:
@T.prim_func
def main(placeholder: T.Buffer((128, 256), "float32"), placeholder_1: T.Buffer((4916, 16, 1), "float32"), placeholder_2: T.Buffer((4916,), "int32"), placeholder_3: T.Buffer((33,), "int32"), placeholder_4: T.Buffer((128, 512), "float32"), compute: T.Buffer((128, 512), "float32")):
T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
- for i0_outer_i1_outer_fused in T.parallel(4096):
- cse_var_1: T.int32 = i0_outer_i1_outer_fused % 128 // 4
- compute_1 = T.allocate([16], "float32", "global")
- compute_2 = T.Buffer((16,), data=compute_1)
- compute_2[0] = T.float32(0)
- compute_2[1] = T.float32(0)
- compute_2[2] = T.float32(0)
- compute_2[3] = T.float32(0)
- compute_2[4] = T.float32(0)
- compute_2[5] = T.float32(0)
- compute_2[6] = T.float32(0)
- compute_2[7] = T.float32(0)
- compute_2[8] = T.float32(0)
- compute_2[9] = T.float32(0)
- compute_2[10] = T.float32(0)
- compute_2[11] = T.float32(0)
- compute_2[12] = T.float32(0)
- compute_2[13] = T.float32(0)
- compute_2[14] = T.float32(0)
- compute_2[15] = T.float32(0)
- for elem_idx in range(placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- placeholder_5 = T.Buffer((33,), "int32", data=placeholder_3.data)
- placeholder_6 = T.Buffer((78656,), data=placeholder_1.data)
- placeholder_7 = T.Buffer((32768,), data=placeholder.data)
- placeholder_8 = T.Buffer((4916,), "int32", data=placeholder_2.data)
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[0] = compute_2[0] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[1] = compute_2[1] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[2] = compute_2[2] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[3] = compute_2[3] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx]], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[4] = compute_2[4] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[5] = compute_2[5] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[6] = compute_2[6] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[7] = compute_2[7] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 256], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[8] = compute_2[8] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[9] = compute_2[9] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[10] = compute_2[10] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[11] = compute_2[11] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 512], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[12] = compute_2[12] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[13] = compute_2[13] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 1] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[14] = compute_2[14] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 2] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- if T.likely(elem_idx < placeholder_5[cse_var_1 + 1] - placeholder_5[cse_var_1]):
- compute_2[15] = compute_2[15] + placeholder_6[placeholder_5[cse_var_1] * 16 + elem_idx * 16 + i0_outer_i1_outer_fused % 4 * 4 + 3] * T.max(placeholder_7[i0_outer_i1_outer_fused // 128 * 1024 + placeholder_8[placeholder_5[cse_var_1] + elem_idx] + 768], T.float32(0))
- for i0_inner in range(4):
- cse_var_2: T.int32 = i0_outer_i1_outer_fused // 128 * 2048 + i0_inner * 512 + i0_outer_i1_outer_fused % 128 * 4
+ for i0_outer_i1_outer_fused in T.parallel(32):
+ compute_1 = T.allocate([2048], "float32", "global")
+ compute_2 = T.Buffer((2048,), data=compute_1)
+ for i_outer_inner in range(2):
+ for i_inner_init, j_init in T.grid(64, 16):
+ compute_2[i_outer_inner * 1024 + i_inner_init * 16 + j_init] = T.float32(0)
+ for elem_idx, i_inner, j in T.grid(placeholder_5[i0_outer_i1_outer_fused + 1] - placeholder_5[i0_outer_i1_outer_fused], 64, 16):
+ placeholder_5 = T.Buffer((33,), "int32", data=placeholder_3.data)
+ if T.likely(elem_idx < placeholder_5[i0_outer_i1_outer_fused + 1] - placeholder_5[i0_outer_i1_outer_fused]):
+ placeholder_6 = T.Buffer((78656,), data=placeholder_1.data)
+ placeholder_7 = T.Buffer((32768,), data=placeholder.data)
+ placeholder_8 = T.Buffer((4916,), "int32", data=placeholder_2.data)
+ cse_var_1: T.int32 = i_outer_inner * 1024 + i_inner * 16 + j
+ compute_2[cse_var_1] = compute_2[cse_var_1] + placeholder_6[placeholder_5[i0_outer_i1_outer_fused] * 16 + elem_idx * 16 + j] * T.max(placeholder_7[i_outer_inner * 16384 + i_inner * 256 + placeholder_8[placeholder_5[i0_outer_i1_outer_fused] + elem_idx]], T.float32(0))
+ for i0_inner, i1_inner in T.grid(128, 16):
+ cse_var_2: T.int32 = i0_inner * 512 + i0_outer_i1_outer_fused * 16 + i1_inner
compute_3 = T.Buffer((65536,), data=compute.data)
placeholder_5 = T.Buffer((65536,), data=placeholder_4.data)
- compute_3[cse_var_2:cse_var_2 + 4] = T.max(compute_2[i0_inner * 4:i0_inner * 4 + 4] + placeholder_5[cse_var_2:cse_var_2 + 4], T.Broadcast(T.float32(0), 4))
+ compute_3[cse_var_2] = T.max(compute_2[i0_inner * 16 + i1_inner] + placeholder_5[cse_var_2], T.float32(0))
</pre></div>
</div>
</div>
@@ -727,7 +684,7 @@ class Module:
<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: 2.008 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.812 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 16f5a96cb4..62e8450c34 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -340,7 +340,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:44.347</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:31.862</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 84%" />
@@ -349,11 +349,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:44.312</p></td>
+<td><p>00:31.828</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.021</p></td>
+<td><p>00:00.020</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>
@@ -361,7 +361,7 @@
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tune_relay_arm.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-arm-py"><span class="std std-ref">Auto-tuning a Convolutional Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_arm.py</span></code>)</p></td>
-<td><p>00:00.004</p></td>
+<td><p>00:00.005</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="tune_relay_mobile_gpu.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-mobile-gpu-py"><span class="std std-ref">Auto-tuning a Convolutional Network for Mobile GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_mobile_gpu.py</span></code>)</p></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 c8909180af..00c26dca41 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -568,7 +568,8 @@ for this template</p>
waiting for device...
device available
Get devices for measurement successfully!
-No: 1 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+No: 1 GFLOPS: 88.20/88.20 result: MeasureResult(costs=(0.00262484011627907,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.1761999130249023, timestamp=1675619510.4564917) [('tile_f', [-1, 1, 64, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1560945
+No: 2 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -690,8 +691,9 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7140251
-No: 2 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 32, 4, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2806617
+No: 3 GFLOPS: 40.33/88.20 result: MeasureResult(costs=(0.005740008833333334,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9422626495361328, timestamp=1675619512.2149174) [('tile_f', [-1, 1, 4, 32]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1593434
+No: 4 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -813,8 +815,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 8]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1077047
-No: 3 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 64, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 128, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9124193
+No: 5 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -936,8 +938,11 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 8, 16, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 32, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1108269
-No: 4 GFLOPS: 0.00/0.00 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 2, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 128, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2578412
+No: 6 GFLOPS: 59.72/88.20 result: MeasureResult(costs=(0.0038761452692307693,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.626629114151001, timestamp=1675619518.3074288) [('tile_f', [-1, 1, 8, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2006114
+No: 7 GFLOPS: 22.85/88.20 result: MeasureResult(costs=(0.0101335327,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.759658098220825, timestamp=1675619520.0638223) [('tile_f', [-1, 4, 1, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 16, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9149582
+No: 8 GFLOPS: 6.30/88.20 result: MeasureResult(costs=(0.03672691325,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.260091543197632, timestamp=1675619520.9714432) [('tile_f', [-1, 2, 2, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3885391
+No: 9 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1059,162 +1064,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 64, 8]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10184861
-No: 5 GFLOPS: 82.82/82.82 result: MeasureResult(costs=(0.002795293361111111,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.9329617023468018, timestamp=1675453153.0119421) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8200398
-No: 6 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 742, in __call__
- yield remote, remote.load_module(os.path.split(build_result.filename)[1])
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/workspace/python/tvm/runtime/module.py", line 357, in evaluator
- blob = feval(*args)
- File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
- File "tvm/_ffi/_cython/./packed_func.pxi", line 262, in tvm._ffi._cy3.core.FuncCall
- File "tvm/_ffi/_cython/./packed_func.pxi", line 251, in tvm._ffi._cy3.core.FuncCall3
- File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
-tvm._ffi.base.TVMError: Traceback (most recent call last):
- 4: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 3: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 2: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../src/runtime/rpc/rpc_module.cc:129
- 1: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1012
- 0: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>)
- at ../src/runtime/rpc/rpc_endpoint.cc:804
- File "../src/runtime/rpc/rpc_endpoint.cc", line 804
-TVMError:
----------------------------------------------------------------
-An error occurred during the execution of TVM.
-For more information, please see: https://tvm.apache.org/docs/errors.html
----------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=kShutdown
-
-During handling of the above exception, another exception occurred:
-
-Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__
- self.gen.throw(type, value, traceback)
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 746, in __call__
- remote.remove(build_result.filename)
- File "/workspace/python/tvm/rpc/client.py", line 144, in remove
- self._remote_funcs["remove"] = self.get_function("tvm.rpc.server.remove")
- File "/workspace/python/tvm/rpc/client.py", line 72, in get_function
- return self._sess.get_function(name)
- File "/workspace/python/tvm/runtime/module.py", line 171, in get_function
- self.handle, c_str(name), ctypes.c_int(query_imports), ctypes.byref(ret_handle)
- File "/workspace/python/tvm/_ffi/base.py", line 348, in check_call
- raise get_last_ffi_error()
-tvm._ffi.base.TVMError: Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCallKeywords
- 18: _PyEval_EvalFrameDefault
- 17: _PyFunction_FastCallKeywords
- 16: _PyEval_EvalCodeWithName
- 15: _PyEval_EvalFrameDefault
- 14: 0x0000000000537c30
- 13: _PyObject_FastCallKeywords
- 12: 0x00007f0820765fa2
- 11: _ctypes_callproc
- 10: ffi_call
- 9: ffi_call_unix64
- 8: TVMModGetFunction
- at ../src/runtime/c_runtime_api.cc:408
- 7: tvm::runtime::ModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
- at ../src/runtime/module.cc:66
- 6: tvm::runtime::RPCModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)
- at ../src/runtime/rpc/rpc_module.cc:185
- 5: tvm::runtime::RPCClientSession::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1007
- 4: tvm::runtime::TVMRetValue tvm::runtime::RPCEndpoint::SysCallRemote<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(tvm::runtime::RPCCode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.h:223
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(int&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/rpc/rpc_endpoint.cc:684
- File "../src/runtime/rpc/rpc_endpoint.cc", line 684
-TVMError:
----------------------------------------------------------------
-An error occurred during the execution of TVM.
-For more information, please see: https://tvm.apache.org/docs/errors.html
----------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=1
-
-Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCall [('tile_f', [-1, 8, 2, 32]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5809733
-No: 7 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 64, 4, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3865478
+No: 10 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1336,8 +1187,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 1, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 32, 2]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1217646
-No: 8 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 1, 32]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9094546
+No: 11 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1459,285 +1310,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4990949
-No: 9 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
- func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
- func = build(s, args, target=target, runtime=runtime)
- File "/workspace/python/tvm/driver/build_module.py", line 227, in build
- input_mod = lower(inputs, args, name=name, binds=binds)
- File "/workspace/python/tvm/driver/build_module.py", line 134, in lower
- return ffi.lower_schedule(inp, args, name, binds, simple_mode)
- File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
- File "tvm/_ffi/_cython/./packed_func.pxi", line 276, in tvm._ffi._cy3.core.FuncCall
- File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
-tvm._ffi.base.TVMError: Traceback (most recent call last):
- 24: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 22: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 21: operator()
- at ../include/tvm/runtime/packed_func.h:1730
- 20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
- at ../include/tvm/runtime/packed_func.h:1670
- 19: run<>
- at ../include/tvm/runtime/packed_func.h:1630
- 18: run<tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1645
- 13: operator()
- at ../src/driver/driver_api.cc:395
- 12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
- at ../src/driver/driver_api.cc:381
- 11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
- at ../src/driver/driver_api.cc:276
- 10: tvm::transform::Pass::operator()(tvm::IRModule) const
- at ../src/ir/transform.cc:258
- 9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:451
- 7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/tir/ir/transform.cc:100
- 5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
- at ../include/tvm/runtime/packed_func.h:1749
- 4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
- at ../include/tvm/runtime/packed_func.h:1693
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/c_runtime_api.cc:534
- File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
- raise InstantiationError("Skipped because of invalid gpu kernel")
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel
-
-Traceback (most recent call last):
- 24: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 23: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 22: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 21: operator()
- at ../include/tvm/runtime/packed_func.h:1730
- 20: unpack_call<tvm::IRModule, 5, tvm::<lambda(tvm::te::Schedule, const tvm::runtime::Array<tvm::runtime::ObjectRef>&, const tvm::runtime::String&, const tvm::runtime::Map<tvm::te::Tensor, tvm::tir::Buffer>&, bool)> >
- at ../include/tvm/runtime/packed_func.h:1670
- 19: run<>
- at ../include/tvm/runtime/packed_func.h:1630
- 18: run<tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 17: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 16: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 15: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1630
- 14: run<tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_, tvm::runtime::TVMMovableArgValueWithContext_>
- at ../include/tvm/runtime/packed_func.h:1645
- 13: operator()
- at ../src/driver/driver_api.cc:395
- 12: tvm::LowerSchedule(tvm::te::Schedule, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<tvm::te::Tensor, tvm::tir::Buffer, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::tir::Buffer> > > const&, tvm::GlobalVarSupply, bool)
- at ../src/driver/driver_api.cc:381
- 11: tvm::LowerWithPassList(tvm::IRModule, tvm::runtime::Array<tvm::transform::Pass, void>)
- at ../src/driver/driver_api.cc:276
- 10: tvm::transform::Pass::operator()(tvm::IRModule) const
- at ../src/ir/transform.cc:258
- 9: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 8: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:451
- 7: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/ir/transform.cc:274
- 6: tvm::tir::transform::PrimFuncPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const
- at ../src/tir/ir/transform.cc:100
- 5: tvm::runtime::TypedPackedFunc<tvm::tir::PrimFunc (tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext)>::operator()(tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext) const
- at ../include/tvm/runtime/packed_func.h:1749
- 4: tvm::tir::PrimFunc tvm::runtime::detail::typed_packed_call_dispatcher<tvm::tir::PrimFunc>::run<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::runtime::PackedFunc const&, tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&)
- at ../include/tvm/runtime/packed_func.h:1693
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<tvm::tir::PrimFunc, tvm::IRModule, tvm::transform::PassContext>(tvm::tir::PrimFunc&&, tvm::IRModule&&, tvm::transform::PassContext&&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/c_runtime_api.cc:534
- File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
- raise InstantiationError("Skipped because of invalid gpu kernel")
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 32, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 256]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4639890
-No: 10 GFLOPS: 9.25/82.82 result: MeasureResult(costs=(0.02503936,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.678086519241333, timestamp=1675453165.0130067) [('tile_f', [-1, 1, 2, 32]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3612590
-No: 11 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 742, in __call__
- yield remote, remote.load_module(os.path.split(build_result.filename)[1])
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/workspace/python/tvm/runtime/module.py", line 357, in evaluator
- blob = feval(*args)
- File "tvm/_ffi/_cython/./packed_func.pxi", line 331, in tvm._ffi._cy3.core.PackedFuncBase.__call__
- File "tvm/_ffi/_cython/./packed_func.pxi", line 262, in tvm._ffi._cy3.core.FuncCall
- File "tvm/_ffi/_cython/./packed_func.pxi", line 251, in tvm._ffi._cy3.core.FuncCall3
- File "tvm/_ffi/_cython/./base.pxi", line 181, in tvm._ffi._cy3.core.CHECK_CALL
-tvm._ffi.base.TVMError: Traceback (most recent call last):
- 4: TVMFuncCall
- at ../src/runtime/c_runtime_api.cc:477
- 3: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 2: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../src/runtime/rpc/rpc_module.cc:129
- 1: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1012
- 0: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>)
- at ../src/runtime/rpc/rpc_endpoint.cc:804
- File "../src/runtime/rpc/rpc_endpoint.cc", line 804
-TVMError:
----------------------------------------------------------------
-An error occurred during the execution of TVM.
-For more information, please see: https://tvm.apache.org/docs/errors.html
----------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=kShutdown
-
-During handling of the above exception, another exception occurred:
-
-Traceback (most recent call last):
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 706, in run_through_rpc
- costs = time_f(*args).results
- File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__
- self.gen.throw(type, value, traceback)
- File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 746, in __call__
- remote.remove(build_result.filename)
- File "/workspace/python/tvm/rpc/client.py", line 144, in remove
- self._remote_funcs["remove"] = self.get_function("tvm.rpc.server.remove")
- File "/workspace/python/tvm/rpc/client.py", line 72, in get_function
- return self._sess.get_function(name)
- File "/workspace/python/tvm/runtime/module.py", line 171, in get_function
- self.handle, c_str(name), ctypes.c_int(query_imports), ctypes.byref(ret_handle)
- File "/workspace/python/tvm/_ffi/base.py", line 348, in check_call
- raise get_last_ffi_error()
-tvm._ffi.base.TVMError: Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCallKeywords
- 18: _PyEval_EvalFrameDefault
- 17: _PyFunction_FastCallKeywords
- 16: _PyEval_EvalCodeWithName
- 15: _PyEval_EvalFrameDefault
- 14: 0x0000000000537c30
- 13: _PyObject_FastCallKeywords
- 12: 0x00007f2e2b249fa2
- 11: _ctypes_callproc
- 10: ffi_call
- 9: ffi_call_unix64
- 8: TVMModGetFunction
- at ../src/runtime/c_runtime_api.cc:408
- 7: tvm::runtime::ModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
- at ../src/runtime/module.cc:66
- 6: tvm::runtime::RPCModuleNode::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)
- at ../src/runtime/rpc/rpc_module.cc:185
- 5: tvm::runtime::RPCClientSession::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.cc:1007
- 4: tvm::runtime::TVMRetValue tvm::runtime::RPCEndpoint::SysCallRemote<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(tvm::runtime::RPCCode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
- at ../src/runtime/rpc/rpc_endpoint.h:223
- 3: tvm::runtime::TVMRetValue tvm::runtime::PackedFunc::operator()<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(int&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
- at ../include/tvm/runtime/packed_func.h:1617
- 2: tvm::runtime::PackedFuncObj::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
- at ../include/tvm/runtime/packed_func.h:1217
- 1: Call
- at ../include/tvm/runtime/packed_func.h:1213
- 0: operator()
- at ../src/runtime/rpc/rpc_endpoint.cc:684
- File "../src/runtime/rpc/rpc_endpoint.cc", line 684
-TVMError:
----------------------------------------------------------------
-An error occurred during the execution of TVM.
-For more information, please see: https://tvm.apache.org/docs/errors.html
----------------------------------------------------------------
- Check failed: (code == RPCCode::kReturn) is false: code=1
-
-Traceback (most recent call last):
- 52: 0xffffffffffffffff
- 51: _start
- 50: __libc_start_main
- 49: _Py_UnixMain
- 48: 0x0000000000650da0
- 47: 0x0000000000650afa
- 46: _PyFunction_FastCallDict
- 45: _PyEval_EvalCodeWithName
- 44: _PyEval_EvalFrameDefault
- 43: _PyFunction_FastCallKeywords
- 42: _PyEval_EvalCodeWithName
- 41: _PyEval_EvalFrameDefault
- 40: _PyMethodDef_RawFastCallKeywords
- 39: 0x0000000000546369
- 38: _PyEval_EvalCodeWithName
- 37: _PyEval_EvalFrameDefault
- 36: _PyFunction_FastCallKeywords
- 35: _PyEval_EvalCodeWithName
- 34: _PyEval_EvalFrameDefault
- 33: _PyFunction_FastCallDict
- 32: _PyEval_EvalCodeWithName
- 31: _PyEval_EvalFrameDefault
- 30: _PyObject_FastCallDict
- 29: 0x00000000004c06e1
- 28: _PyFunction_FastCallDict
- 27: _PyEval_EvalFrameDefault
- 26: _PyMethodDescr_FastCallKeywords
- 25: 0x00000000005dcb58
- 24: 0x00000000005dc83f
- 23: 0x00000000004ba127
- 22: _PyEval_EvalFrameDefault
- 21: _PyFunction_FastCallKeywords
- 20: _PyEval_EvalFrameDefault
- 19: _PyFunction_FastCall [('tile_f', [-1, 4, 1, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 2, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9560238
-No: 12 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 128, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 64, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,9991875
+No: 12 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1859,8 +1433,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 1, 4]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 16, 16]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2072720
-No: 13 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 32, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 1]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6416462
+No: 13 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -1982,9 +1556,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 8, 4, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,765455
-No: 14 GFLOPS: 17.56/82.82 result: MeasureResult(costs=(0.013183314,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6457138061523438, timestamp=1675453171.4247806) [('tile_f', [-1, 8, 2, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5682271
-No: 15 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 2, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2840343
+No: 14 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2106,8 +1679,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 2, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 32]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5959067
-No: 16 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 512]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5226441
+No: 15 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2229,8 +1802,9 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 8, 2]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 64, 2]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6058663
-No: 17 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6569983
+No: 16 GFLOPS: 61.04/88.20 result: MeasureResult(costs=(0.003792554777777778,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2428197860717773, timestamp=1675619522.7079296) [('tile_f', [-1, 1, 4, 16]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5388855
+No: 17 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2352,8 +1926,8 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, in verify_pass
raise InstantiationError("Skipped because of invalid gpu kernel")
-tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 1, 128, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3257857
-No: 18 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 2, 8, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4005568
+No: 18 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2475,9 +2049,9 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 16, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,3999909
-No: 19 GFLOPS: 1.29/82.82 result: MeasureResult(costs=(0.180045822,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.4288330078125, timestamp=1675453176.1079192) [('tile_f', [-1, 64, 1, 1]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 4, 4]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,7430726
-No: 20 GFLOPS: 0.00/82.82 result: Traceback (most recent call last):
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 4, 2]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 1, 128]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8498454
+No: 19 GFLOPS: 7.81/88.20 result: MeasureResult(costs=(0.0296330795,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.5613219738006592, timestamp=1675619524.4727242) [('tile_f', [-1, 16, 8, 2]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1363203
+No: 20 GFLOPS: 0.00/88.20 result: Traceback (most recent call last):
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 592, in __call__
func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 544, in _build_func_common
@@ -2599,7 +2173,7 @@ Traceback (most recent call last):
File "tvm/_ffi/_cython/./packed_func.pxi", line 56, in tvm._ffi._cy3.core.tvm_callback
File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 875, 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, 2, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 128, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6677426
+tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel [('tile_f', [-1, 4, 16, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 8, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,3075760
</pre></div>
</div>
<p>Finally we can inspect the best config from log file, check correctness,
@@ -2638,9 +2212,9 @@ and measure running time.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Finish loading 20 records
Best config:
-[('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 512), ('unroll_explicit', 1)],None,8200398
+[('tile_f', [-1, 1, 64, 1]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 8, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,1560945
Finish loading 20 records
-Time cost of this operator: 0.001485
+Time cost of this operator: 0.002662
</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 d578299c20..11f8653a29 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -643,10 +643,10 @@ the tuned operator.</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build without Autotuning ##########
Node Name Ops Time(us) Time(%) Shape Inputs Outputs Measurements(us)
--------- --- -------- ------- ----- ------ ------- ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 311.4 98.698 (1, 2, 10, 10, 3) 2 1 [311.4]
-tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.151 0.999 (1, 6, 10, 10) 1 1 [3.151]
-tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.959 0.304 (1, 1, 10, 10, 3) 1 1 [0.959]
-Total_time - 315.51 - - - - -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 315.2 98.721 (1, 2, 10, 10, 3) 2 1 [315.2]
+tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 3.118 0.977 (1, 6, 10, 10) 1 1 [3.118]
+tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.967 0.303 (1, 1, 10, 10, 3) 1 1 [0.967]
+Total_time - 319.285 - - - - -
</pre></div>
</div>
</div>
@@ -698,10 +698,10 @@ Total_time -
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build with Autotuning ##########
Node Name Ops Time(us) Time(%) Shape Inputs Outputs Measurements(us)
--------- --- -------- ------- ----- ------ ------- ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 137.0 97.811 (1, 6, 10, 10, 1) 2 1 [137.0]
-tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 2.043 1.458 (1, 6, 10, 10) 1 1 [2.043]
-tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 1.024 0.731 (1, 3, 10, 10, 1) 1 1 [1.024]
-Total_time - 140.067 - - - - -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc tvmgen_default_fused_nn_contrib_conv2d_NCHWc 137.4 98.039 (1, 6, 10, 10, 1) 2 1 [137.4]
+tvmgen_default_fused_layout_transform_1 tvmgen_default_fused_layout_transform_1 1.779 1.27 (1, 6, 10, 10) 1 1 [1.779]
+tvmgen_default_fused_layout_transform tvmgen_default_fused_layout_transform 0.969 0.691 (1, 1, 10, 10, 3) 1 1 [0.969]
+Total_time - 140.148 - - - - -
</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_pytorch.html b/docs/how_to/work_with_microtvm/micro_pytorch.html
index 145e5e78a9..16158102ff 100644
--- a/docs/how_to/work_with_microtvm/micro_pytorch.html
+++ b/docs/how_to/work_with_microtvm/micro_pytorch.html
@@ -454,8 +454,8 @@ download a cat image and preprocess it to use as the model input.</p>
Downloading: "https://download.pytorch.org/models/quantized/mobilenet_v2_qnnpack_37f702c5.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2_qnnpack_37f702c5.pth
0%| | 0.00/3.42M [00:00<?, ?B/s]
- 61%|###### | 2.09M/3.42M [00:00<00:00, 21.1MB/s]
-100%|##########| 3.42M/3.42M [00:00<00:00, 32.3MB/s]
+ 61%|###### | 2.09M/3.42M [00:00<00:00, 14.3MB/s]
+100%|##########| 3.42M/3.42M [00:00<00:00, 22.6MB/s]
/workspace/python/tvm/relay/frontend/pytorch_utils.py:47: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
return LooseVersion(torch_ver) > ver
/venv/apache-tvm-py3.7/lib/python3.7/site-packages/setuptools/_distutils/version.py:346: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
@@ -581,7 +581,7 @@ via the host <cite>main.cc`</cite> or if a Zephyr emulated board is selected as
Torch top-1 id: 282, class name: tiger cat
</pre></div>
</div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 13.525 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 13.455 seconds)</p>
<div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-pytorch-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/12b9ecc04c41abaa12022061771821d1/micro_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">micro_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/micro_train.html b/docs/how_to/work_with_microtvm/micro_train.html
index b701dadd1e..dda63818c1 100644
--- a/docs/how_to/work_with_microtvm/micro_train.html
+++ b/docs/how_to/work_with_microtvm/micro_train.html
@@ -523,7 +523,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/tmpgaxc_tem/images/random'
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>'/tmp/tmpwvui23po/images/random'
</pre></div>
</div>
</div>
@@ -583,8 +583,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="[0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpgaxc_tem/images/target contains 8144 images
-/tmp/tmpgaxc_tem/images/random contains 5000 images
+<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmpwvui23po/images/target contains 8144 images
+/tmp/tmpwvui23po/images/random contains 5000 images
</pre></div>
</div>
</div>
@@ -696,13 +696,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 - 48s - loss: 0.2330 - accuracy: 0.9202 - val_loss: 0.2149 - val_accuracy: 0.9294 - 48s/epoch - 146ms/step
+328/328 - 48s - loss: 0.2133 - accuracy: 0.9240 - val_loss: 0.1137 - val_accuracy: 0.9585 - 48s/epoch - 145ms/step
Epoch 2/3
-328/328 - 44s - loss: 0.0964 - accuracy: 0.9632 - val_loss: 0.1986 - val_accuracy: 0.9271 - 44s/epoch - 133ms/step
+328/328 - 44s - loss: 0.0953 - accuracy: 0.9660 - val_loss: 0.1165 - val_accuracy: 0.9630 - 44s/epoch - 133ms/step
Epoch 3/3
-328/328 - 44s - loss: 0.0746 - accuracy: 0.9723 - val_loss: 0.1193 - val_accuracy: 0.9600 - 44s/epoch - 133ms/step
+328/328 - 44s - loss: 0.0720 - accuracy: 0.9737 - val_loss: 0.0969 - val_accuracy: 0.9634 - 44s/epoch - 133ms/step
-<keras.callbacks.History object at 0x7f0f595b2110>
+<keras.callbacks.History object at 0x7f20bc4e8b90>
</pre></div>
</div>
</div>
@@ -966,7 +966,7 @@ as intended.</p>
<p>From here, we could modify the model to read live images from the camera - we have another
Arduino tutorial for how to do that <a class="reference external" href="https://github.com/guberti/tvm-arduino-demos/tree/master/examples/person_detection">on GitHub</a>. Alternatively, we could also
<a class="reference external" href="https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_autotune.html">use TVM’s autotuning capabilities</a> to dramatically improve the model’s performance.</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes 54.472 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 5 minutes 28.246 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 1d592427ae..40fc40febf 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -340,7 +340,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>07:15.528</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>07:50.693</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 82%" />
@@ -349,23 +349,23 @@
</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">5. 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>04:54.472</p></td>
+<td><p>05:28.246</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="micro_pytorch.html#sphx-glr-how-to-work-with-microtvm-micro-pytorch-py"><span class="std std-ref">4. microTVM PyTorch Tutorial</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_pytorch.py</span></code>)</p></td>
-<td><p>01:13.525</p></td>
+<td><p>01:13.455</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><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">6. Model Tuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></td>
-<td><p>00:54.011</p></td>
+<td><p>00:55.174</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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">3. microTVM Ahead-of-Time (AOT) Compilation</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_aot.py</span></code>)</p></td>
-<td><p>00:08.109</p></td>
+<td><p>00:08.382</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><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">2. microTVM TFLite Tutorial</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></td>
-<td><p>00:05.411</p></td>
+<td><p>00:05.435</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><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">7. 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 f17d05fd84..1859d14858 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -340,7 +340,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:45.898</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:46.143</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 84%" />
@@ -349,15 +349,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:33.560</p></td>
+<td><p>00:33.594</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:10.751</p></td>
+<td><p>00:10.803</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.581</p></td>
+<td><p>00:01.739</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 b9394181f2..6c104f5ed4 100644
--- a/docs/how_to/work_with_schedules/intrin_math.html
+++ b/docs/how_to/work_with_schedules/intrin_math.html
@@ -535,7 +535,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 0x7f0dec9174d0>
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span><function my_cuda_math_rule at 0x7f1f689694d0>
</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 35806d74c2..77332852b2 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -340,7 +340,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:08.562</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:08.397</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 83%" />
@@ -349,19 +349,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:05.982</p></td>
+<td><p>00:05.733</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.179</p></td>
+<td><p>00:01.249</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.593</p></td>
+<td><p>00:00.601</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.569</p></td>
+<td><p>00:00.575</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>
@@ -373,11 +373,11 @@
<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>
-<td><p>00:00.033</p></td>
+<td><p>00:00.034</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="tuple_inputs.html#sphx-glr-how-to-work-with-schedules-tuple-inputs-py"><span class="std std-ref">Compute and Reduce with Tuple Inputs</span></a> (<code class="docutils literal notranslate"><span class="pre">tuple_inputs.py</span></code>)</p></td>
-<td><p>00:00.028</p></td>
+<td><p>00:00.029</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index 51b977fa88..862956c096 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -586,7 +586,7 @@ class Module:
def main(A: T.Buffer((1024, 64), "float32"), B: T.Buffer((512, 64), "float32"), C: T.Buffer((1024, 512), "float32")):
T.func_attr({"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True})
i = T.var("int32")
- T.attr(T.iter_var(i, None, "DataPar", ""), "pragma_import_llvm", "; ModuleID = '/tmp/tmpm7mbzd3h/input0.cc'\nsource_filename = \"/tmp/tmpm7mbzd3h/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 [...]
+ T.attr(T.iter_var(i, None, "DataPar", ""), "pragma_import_llvm", "; ModuleID = '/tmp/tmp9ygsqlqr/input0.cc'\nsource_filename = \"/tmp/tmp9ygsqlqr/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 [...]
for i, j_outer in T.grid(1024, 32):
T.call_extern("int32", "gemv_update", T.tvm_access_ptr(T.type_annotation("float32"), C.data, i * 512 + j_outer * 16, 16, 2), T.tvm_access_ptr(T.type_annotation("float32"), A.data, i * 64, 64, 1), T.tvm_access_ptr(T.type_annotation("float32"), B.data, j_outer * 1024, 1024, 1), 16, 64, 64)
</pre></div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode-members.html b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode-members.html
index 589c72d41e..f28b42bb2b 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode-members.html
@@ -103,16 +103,17 @@ $(function() {
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55549a6c23987890246248682560a03d">RefCounterType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#ab16ceb4c8fb205dbd8493273cedd5326">relax_prefix</a></td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ad94d79729ac85aa7c976e23d39066383">RuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a2148a7bfe39c1cc3c645da5a00fc122c">tir_prefix</a></td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#aed421283ca0da143c00c111d6dca7926">TVM_DECLARE_FINAL_OBJECT_INFO</a>(PrinterConfigNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a481f01923b14e1851ebd38506e9c66ea">type_index</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4bfc2586cb55f2af47728187b3256255">type_index_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">TypeIndex2Key</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6ee32a02dd44257da105fbbe5d9c8622">TypeIndex2KeyHash</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6841f97e06e6614dd7e82c6dd41b818a">TypeKey2Index</a>(const std::string &key)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a434403f4e4cb71c75a7be8cba4845901">verbose_expr</a></td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#af560db7326ce64454f992c9828f4fce8">VisitAttrs</a>(AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b">syntax_sugar</a></td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a2148a7bfe39c1cc3c645da5a00fc122c">tir_prefix</a></td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#aed421283ca0da143c00c111d6dca7926">TVM_DECLARE_FINAL_OBJECT_INFO</a>(PrinterConfigNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a481f01923b14e1851ebd38506e9c66ea">type_index</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4bfc2586cb55f2af47728187b3256255">type_index_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">TypeIndex2Key</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6ee32a02dd44257da105fbbe5d9c8622">TypeIndex2KeyHash</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6841f97e06e6614dd7e82c6dd41b818a">TypeKey2Index</a>(const std::string &key)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a434403f4e4cb71c75a7be8cba4845901">verbose_expr</a></td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html#af560db7326ce64454f992c9828f4fce8">VisitAttrs</a>(AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode.html b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode.html
index 4fa25be26a..5f6249dffc 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode.html
@@ -76,13 +76,13 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::PrinterConfigNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1PrinterConfigNode__inherit__graph.svg" width="290" height="844"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1PrinterConfigNode__inherit__graph.svg" width="290" height="859"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::PrinterConfigNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1PrinterConfigNode__coll__graph.svg" width="744" height="1463"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1PrinterConfigNode__coll__graph.svg" width="744" height="1478"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<table class="memberdecls">
@@ -139,13 +139,20 @@ Public Attributes</h2></td></tr>
<tr class="memdesc:a434403f4e4cb71c75a7be8cba4845901"><td class="mdescLeft"> </td><td class="mdescRight">Whether or not to verbose print expressions. <a href="#a434403f4e4cb71c75a7be8cba4845901">More...</a><br /></td></tr>
<tr class="separator:a434403f4e4cb71c75a7be8cba4845901"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a91c90f8090acb5b755c0ba3066e6fb74"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a91c90f8090acb5b755c0ba3066e6fb74">indent_spaces</a> = 4</td></tr>
+<tr class="memdesc:a91c90f8090acb5b755c0ba3066e6fb74"><td class="mdescLeft"> </td><td class="mdescRight">Number of spaces used for indentation. <a href="#a91c90f8090acb5b755c0ba3066e6fb74">More...</a><br /></td></tr>
<tr class="separator:a91c90f8090acb5b755c0ba3066e6fb74"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a326fadb110a4356ccd783ed0e0b26733"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a326fadb110a4356ccd783ed0e0b26733">print_line_numbers</a> = false</td></tr>
+<tr class="memdesc:a326fadb110a4356ccd783ed0e0b26733"><td class="mdescLeft"> </td><td class="mdescRight">Whether to print line numbers. <a href="#a326fadb110a4356ccd783ed0e0b26733">More...</a><br /></td></tr>
<tr class="separator:a326fadb110a4356ccd783ed0e0b26733"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a977a3ed2d33dfff1c124a770840f973c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a977a3ed2d33dfff1c124a770840f973c">num_context_lines</a> = -1</td></tr>
+<tr class="memdesc:a977a3ed2d33dfff1c124a770840f973c"><td class="mdescLeft"> </td><td class="mdescRight">Number of context lines to print around the underlined text. <a href="#a977a3ed2d33dfff1c124a770840f973c">More...</a><br /></td></tr>
<tr class="separator:a977a3ed2d33dfff1c124a770840f973c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab2b6752383c2a0bd8cda8287efdf79b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrinterConfigNode.html#ab2b6752383c2a0bd8cda8287efdf79b0">path_to_underline</a> = <a class="el" href="namespacetvm.html#aae7034e3e41c18e7fb78ff32bfc6a318">NullO [...]
+<tr class="memdesc:ab2b6752383c2a0bd8cda8287efdf79b0"><td class="mdescLeft"> </td><td class="mdescRight">Object path to be underlined. <a href="#ab2b6752383c2a0bd8cda8287efdf79b0">More...</a><br /></td></tr>
<tr class="separator:ab2b6752383c2a0bd8cda8287efdf79b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a518824def075339074d4451a79e3dd9b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b">syntax_sugar</a> = true</td></tr>
+<tr class="memdesc:a518824def075339074d4451a79e3dd9b"><td class="mdescLeft"> </td><td class="mdescRight">Whether to output with syntax sugar, set false for complete printing. <a href="#a518824def075339074d4451a79e3dd9b">More...</a><br /></td></tr>
+<tr class="separator:a518824def075339074d4451a79e3dd9b"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
@@ -335,6 +342,8 @@ Additional Inherited Members</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Number of spaces used for indentation. </p>
+
</div>
</div>
<a id="a413eca72f3a8ae62d5adbbf43066fd5a"></a>
@@ -381,6 +390,8 @@ Additional Inherited Members</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Number of context lines to print around the underlined text. </p>
+
</div>
</div>
<a id="ab2b6752383c2a0bd8cda8287efdf79b0"></a>
@@ -395,6 +406,8 @@ Additional Inherited Members</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Object path to be underlined. </p>
+
</div>
</div>
<a id="a326fadb110a4356ccd783ed0e0b26733"></a>
@@ -409,6 +422,8 @@ Additional Inherited Members</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Whether to print line numbers. </p>
+
</div>
</div>
<a id="ab16ceb4c8fb205dbd8493273cedd5326"></a>
@@ -425,6 +440,22 @@ Additional Inherited Members</h2></td></tr>
<p>The prefix of Relax nodes. </p>
+</div>
+</div>
+<a id="a518824def075339074d4451a79e3dd9b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a518824def075339074d4451a79e3dd9b">◆ </a></span>syntax_sugar</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool tvm::PrinterConfigNode::syntax_sugar = true</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Whether to output with syntax sugar, set false for complete printing. </p>
+
</div>
</div>
<a id="a2148a7bfe39c1cc3c645da5a00fc122c"></a>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg
index 3c5a48d55b..49bbe98d3d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg
@@ -4,24 +4,25 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::PrinterConfigNode Pages: 1 -->
-<svg width="558pt" height="1097pt"
- viewBox="0.00 0.00 557.50 1097.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1093)">
+<svg width="558pt" height="1108pt"
+ viewBox="0.00 0.00 557.50 1108.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 1104)">
<title>tvm::PrinterConfigNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1093 553.5,-1093 553.5,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1104 553.5,-1104 553.5,4 -4,4"/>
<!-- Node2 -->
<g id="node1" class="node">
<title>Node2</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="231,-.5 231,-145.5 440,-145.5 440,-.5 231,-.5"/>
-<text text-anchor="middle" x="335.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrinterConfigNode</text>
-<polyline fill="none" stroke="#000000" points="231,-126.5 440,-126.5 "/>
-<text text-anchor="start" x="239" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ir_prefix</text>
-<text text-anchor="start" x="239" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ tir_prefix</text>
-<text text-anchor="start" x="239" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ relax_prefix</text>
-<text text-anchor="start" x="239" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ verbose_expr</text>
-<text text-anchor="start" x="239" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ indent_spaces</text>
-<text text-anchor="start" x="239" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ print_line_numbers</text>
-<text text-anchor="start" x="239" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_context_lines</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="231,-.5 231,-156.5 440,-156.5 440,-.5 231,-.5"/>
+<text text-anchor="middle" x="335.5" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrinterConfigNode</text>
+<polyline fill="none" stroke="#000000" points="231,-137.5 440,-137.5 "/>
+<text text-anchor="start" x="239" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ir_prefix</text>
+<text text-anchor="start" x="239" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ tir_prefix</text>
+<text text-anchor="start" x="239" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ relax_prefix</text>
+<text text-anchor="start" x="239" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ verbose_expr</text>
+<text text-anchor="start" x="239" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ indent_spaces</text>
+<text text-anchor="start" x="239" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ print_line_numbers</text>
+<text text-anchor="start" x="239" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_context_lines</text>
+<text text-anchor="start" x="239" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ syntax_sugar</text>
<text text-anchor="start" x="239" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
<polyline fill="none" stroke="#000000" points="231,-30.5 440,-30.5 "/>
<text text-anchor="start" x="239" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
@@ -31,68 +32,69 @@
<g id="node2" class="node">
<title>Node3</title>
<g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-215.5 0,-602.5 183,-602.5 183,-215.5 0,-215.5"/>
-<text text-anchor="middle" x="91.5" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
-<polyline fill="none" stroke="#000000" points="0,-583.5 183,-583.5 "/>
-<text text-anchor="start" x="8" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<text text-anchor="start" x="8" y="-560.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
-<text text-anchor="start" x="8" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
-<text text-anchor="start" x="8" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
-<text text-anchor="start" x="8" y="-494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="8" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="8" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
-<text text-anchor="start" x="8" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
-<text text-anchor="start" x="8" y="-428.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
-<polyline fill="none" stroke="#000000" points="0,-421.5 183,-421.5 "/>
-<text text-anchor="start" x="8" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
-<text text-anchor="start" x="8" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-226.5 0,-613.5 183,-613.5 183,-226.5 0,-226.5"/>
+<text text-anchor="middle" x="91.5" y="-601.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="0,-594.5 183,-594.5 "/>
+<text text-anchor="start" x="8" y="-582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="8" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="8" y="-560.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="8" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="8" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="8" y="-483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="8" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="8" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="8" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<polyline fill="none" stroke="#000000" points="0,-432.5 183,-432.5 "/>
+<text text-anchor="start" x="8" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="8" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="8" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
<text text-anchor="start" x="8" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
<text text-anchor="start" x="8" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="8" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="8" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
<text text-anchor="start" x="8" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="8" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="8" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
-<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
-<text text-anchor="start" x="8" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="8" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="8" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge1" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="#191970" d="M189.0014,-274.7358C221.0284,-230.633 255.4047,-183.2951 282.8033,-145.566"/>
-<polygon fill="none" stroke="#191970" points="186.0948,-272.7819 183.0508,-282.9301 191.7589,-276.8951 186.0948,-272.7819"/>
+<path fill="none" stroke="#191970" d="M188.9774,-283.5716C219.7817,-240.4583 252.7615,-194.3 279.6171,-156.7132"/>
+<polygon fill="none" stroke="#191970" points="186.0166,-281.6951 183.0508,-291.8664 191.7121,-285.7646 186.0166,-281.6951"/>
</g>
<!-- Node3->Node3 -->
<g id="edge2" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M183.3625,-442.9248C194.0482,-436.6637 201,-425.3555 201,-409 201,-398.0112 197.8618,-389.3007 192.5615,-382.8687"/>
-<polygon fill="none" stroke="#404040" points="192.5184,-382.8322 185.3548,-382.0056 183.3625,-375.0752 190.5261,-375.9017 192.5184,-382.8322"/>
-<text text-anchor="middle" x="227" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M183.3625,-453.9248C194.0482,-447.6637 201,-436.3555 201,-420 201,-409.0112 197.8618,-400.3007 192.5615,-393.8687"/>
+<polygon fill="none" stroke="#404040" points="192.5184,-393.8322 185.3548,-393.0056 183.3625,-386.0752 190.5261,-386.9017 192.5184,-393.8322"/>
+<text text-anchor="middle" x="227" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node3" class="node">
<title>Node4</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title="{tvm::runtime::Optional\l\< tvm::ObjectPath \>\n|+ _type_is_nullable\l|+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ Optional()\l+ operator=()\l+ operator=()\land 15 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="271.5,-320 271.5,-498 399.5,-498 399.5,-320 271.5,-320"/>
-<text text-anchor="start" x="279.5" y="-486" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="335.5" y="-475" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::ObjectPath ></text>
-<polyline fill="none" stroke="#000000" points="271.5,-468 399.5,-468 "/>
-<text text-anchor="start" x="279.5" y="-456" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="271.5,-449 399.5,-449 "/>
+<polygon fill="#ffffff" stroke="#000000" points="271.5,-331 271.5,-509 399.5,-509 399.5,-331 271.5,-331"/>
+<text text-anchor="start" x="279.5" y="-497" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="335.5" y="-486" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::ObjectPath ></text>
+<polyline fill="none" stroke="#000000" points="271.5,-479 399.5,-479 "/>
+<text text-anchor="start" x="279.5" y="-467" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="271.5,-460 399.5,-460 "/>
+<text text-anchor="start" x="279.5" y="-448" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
<text text-anchor="start" x="279.5" y="-437" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
<text text-anchor="start" x="279.5" y="-426" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
<text text-anchor="start" x="279.5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
@@ -100,124 +102,123 @@
<text text-anchor="start" x="279.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
<text text-anchor="start" x="279.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
<text text-anchor="start" x="279.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
-<text text-anchor="start" x="279.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Optional()</text>
+<text text-anchor="start" x="279.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
<text text-anchor="start" x="279.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="279.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="279.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<text text-anchor="start" x="279.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge3" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M335.5,-319.8403C335.5,-269.6563 335.5,-207.3341 335.5,-157.8677"/>
-<polygon fill="none" stroke="#404040" points="335.5001,-157.5838 331.5,-151.5838 335.5,-145.5838 339.5,-151.5837 335.5001,-157.5838"/>
-<text text-anchor="middle" x="385.5" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +path_to_underline</text>
+<path fill="none" stroke="#404040" d="M335.5,-330.721C335.5,-280.788 335.5,-218.7138 335.5,-168.6419"/>
+<polygon fill="none" stroke="#404040" points="335.5001,-168.5146 331.5,-162.5146 335.5,-156.5146 339.5,-162.5146 335.5001,-168.5146"/>
+<text text-anchor="middle" x="385.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +path_to_underline</text>
</g>
<!-- Node5 -->
<g id="node4" class="node">
<title>Node5</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="268.5,-640.5 268.5,-862.5 402.5,-862.5 402.5,-640.5 268.5,-640.5"/>
-<text text-anchor="middle" x="335.5" y="-850.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="268.5,-843.5 402.5,-843.5 "/>
-<text text-anchor="start" x="276.5" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<polyline fill="none" stroke="#000000" points="268.5,-824.5 402.5,-824.5 "/>
+<polygon fill="#ffffff" stroke="#000000" points="268.5,-651.5 268.5,-873.5 402.5,-873.5 402.5,-651.5 268.5,-651.5"/>
+<text text-anchor="middle" x="335.5" y="-861.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="268.5,-854.5 402.5,-854.5 "/>
+<text text-anchor="start" x="276.5" y="-842.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="268.5,-835.5 402.5,-835.5 "/>
+<text text-anchor="start" x="276.5" y="-823.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
<text text-anchor="start" x="276.5" y="-812.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="276.5" y="-801.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="276.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="276.5" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="276.5" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="276.5" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator<()</text>
-<text text-anchor="start" x="276.5" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="276.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="276.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
-<text text-anchor="start" x="276.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="276.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="276.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="276.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="276.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="276.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="276.5" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<text text-anchor="start" x="276.5" y="-801.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="276.5" y="-790.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="276.5" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="276.5" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator<()</text>
+<text text-anchor="start" x="276.5" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="276.5" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="276.5" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
+<text text-anchor="start" x="276.5" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="276.5" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="276.5" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="276.5" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="276.5" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="276.5" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="276.5" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge4" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="#191970" d="M335.5,-630.2298C335.5,-586.7434 335.5,-538.5445 335.5,-498.2656"/>
-<polygon fill="none" stroke="#191970" points="332.0001,-630.3 335.5,-640.3001 339.0001,-630.3001 332.0001,-630.3"/>
+<path fill="none" stroke="#191970" d="M335.5,-641.2298C335.5,-597.7434 335.5,-549.5445 335.5,-509.2656"/>
+<polygon fill="none" stroke="#191970" points="332.0001,-641.3 335.5,-651.3001 339.0001,-641.3001 332.0001,-641.3"/>
</g>
<!-- Node6 -->
<g id="node5" class="node">
<title>Node6</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\< tvm::runtime::Object \>\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator-\>()\land 11 more...\l}">
-<polygon fill="#ffffff" stroke="#000000" points="265.5,-910.5 265.5,-1088.5 405.5,-1088.5 405.5,-910.5 265.5,-910.5"/>
-<text text-anchor="start" x="273.5" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="335.5" y="-1065.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="#000000" points="265.5,-1058.5 405.5,-1058.5 "/>
-<text text-anchor="middle" x="335.5" y="-1046.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="265.5,-1039.5 405.5,-1039.5 "/>
+<polygon fill="#ffffff" stroke="#000000" points="265.5,-921.5 265.5,-1099.5 405.5,-1099.5 405.5,-921.5 265.5,-921.5"/>
+<text text-anchor="start" x="273.5" y="-1087.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="335.5" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="#000000" points="265.5,-1069.5 405.5,-1069.5 "/>
+<text text-anchor="middle" x="335.5" y="-1057.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="265.5,-1050.5 405.5,-1050.5 "/>
+<text text-anchor="start" x="273.5" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
<text text-anchor="start" x="273.5" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
<text text-anchor="start" x="273.5" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
<text text-anchor="start" x="273.5" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
<text text-anchor="start" x="273.5" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
<text text-anchor="start" x="273.5" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="273.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
-<text text-anchor="start" x="273.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="273.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
-<text text-anchor="start" x="273.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="273.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
-<text text-anchor="start" x="273.5" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+<text text-anchor="start" x="273.5" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="273.5" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="273.5" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="273.5" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator->()</text>
+<text text-anchor="start" x="273.5" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge5" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M335.5,-910.3167C335.5,-898.8765 335.5,-887.0062 335.5,-875.1402"/>
-<polygon fill="none" stroke="#404040" points="335.5001,-874.7944 331.5,-868.7944 335.5,-862.7944 339.5,-868.7943 335.5001,-874.7944"/>
-<text text-anchor="middle" x="355" y="-884" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+<path fill="none" stroke="#404040" d="M335.5,-921.3167C335.5,-909.8765 335.5,-898.0062 335.5,-886.1402"/>
+<polygon fill="none" stroke="#404040" points="335.5001,-885.7944 331.5,-879.7944 335.5,-873.7944 339.5,-879.7943 335.5001,-885.7944"/>
+<text text-anchor="middle" x="355" y="-895" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
</g>
<!-- Node7 -->
<g id="node6" class="node">
<title>Node7</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type. ">
-<polygon fill="#ffffff" stroke="#000000" points="417.5,-281.5 417.5,-536.5 549.5,-536.5 549.5,-281.5 417.5,-281.5"/>
-<text text-anchor="middle" x="483.5" y="-524.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="#000000" points="417.5,-517.5 549.5,-517.5 "/>
-<text text-anchor="middle" x="483.5" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="417.5,-498.5 549.5,-498.5 "/>
+<polygon fill="#ffffff" stroke="#000000" points="417.5,-292.5 417.5,-547.5 549.5,-547.5 549.5,-292.5 417.5,-292.5"/>
+<text text-anchor="middle" x="483.5" y="-535.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="#000000" points="417.5,-528.5 549.5,-528.5 "/>
+<text text-anchor="middle" x="483.5" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="417.5,-509.5 549.5,-509.5 "/>
+<text text-anchor="start" x="425.5" y="-497.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
<text text-anchor="start" x="425.5" y="-486.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
<text text-anchor="start" x="425.5" y="-475.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
-<text text-anchor="start" x="425.5" y="-464.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DataType()</text>
-<text text-anchor="start" x="425.5" y="-453.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ code()</text>
-<text text-anchor="start" x="425.5" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ bits()</text>
-<text text-anchor="start" x="425.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ bytes()</text>
-<text text-anchor="start" x="425.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ lanes()</text>
-<text text-anchor="start" x="425.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_scalar()</text>
-<text text-anchor="start" x="425.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_bool()</text>
-<text text-anchor="start" x="425.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_float()</text>
-<text text-anchor="start" x="425.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
-<text text-anchor="start" x="425.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
-<text text-anchor="start" x="425.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ UInt()</text>
-<text text-anchor="start" x="425.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
-<text text-anchor="start" x="425.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ BFloat()</text>
-<text text-anchor="start" x="425.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Bool()</text>
-<text text-anchor="start" x="425.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Handle()</text>
-<text text-anchor="start" x="425.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Void()</text>
-<text text-anchor="start" x="425.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ShapeIndex()</text>
+<text text-anchor="start" x="425.5" y="-464.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ code()</text>
+<text text-anchor="start" x="425.5" y="-453.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ bits()</text>
+<text text-anchor="start" x="425.5" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ bytes()</text>
+<text text-anchor="start" x="425.5" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ lanes()</text>
+<text text-anchor="start" x="425.5" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_scalar()</text>
+<text text-anchor="start" x="425.5" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_bool()</text>
+<text text-anchor="start" x="425.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ is_float()</text>
+<text text-anchor="start" x="425.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 15 more...</text>
+<text text-anchor="start" x="425.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Int()</text>
+<text text-anchor="start" x="425.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ UInt()</text>
+<text text-anchor="start" x="425.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Float()</text>
+<text text-anchor="start" x="425.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ BFloat()</text>
+<text text-anchor="start" x="425.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Bool()</text>
+<text text-anchor="start" x="425.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Handle()</text>
+<text text-anchor="start" x="425.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Void()</text>
+<text text-anchor="start" x="425.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ShapeIndex()</text>
</a>
</g>
</g>
<!-- Node7->Node2 -->
<g id="edge6" class="edge">
<title>Node7->Node2</title>
-<path fill="none" stroke="#404040" d="M476.97,-281.3152C470.7474,-241.7808 459.502,-199.3567 439.5,-164 437.8674,-161.1141 436.1079,-158.2745 434.2401,-155.4848"/>
-<polygon fill="none" stroke="#404040" points="434.1074,-155.3028 427.34,-152.8122 427.0362,-145.6075 433.8035,-148.0981 434.1074,-155.3028"/>
-<text text-anchor="middle" x="488.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +float_dtype</text>
-<text text-anchor="middle" x="488.5" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+int_dtype</text>
-<text text-anchor="middle" x="488.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+buffer_dtype</text>
+<path fill="none" stroke="#404040" d="M476.2977,-292.3459C470.0327,-252.9193 458.9322,-210.5499 439.5,-175 438.0011,-172.2579 436.3953,-169.5505 434.697,-166.8812"/>
+<polygon fill="none" stroke="#404040" points="434.5394,-166.6533 427.8376,-163.9913 427.7172,-156.7812 434.419,-159.4431 434.5394,-166.6533"/>
+<text text-anchor="middle" x="488.5" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +float_dtype</text>
+<text text-anchor="middle" x="488.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+int_dtype</text>
+<text text-anchor="middle" x="488.5" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+buffer_dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__inherit__graph.svg
index 03215677c7..8e1e85ef89 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__inherit__graph.svg
@@ -4,28 +4,29 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::PrinterConfigNode Pages: 1 -->
-<svg width="217pt" height="633pt"
- viewBox="0.00 0.00 217.00 633.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 629)">
+<svg width="217pt" height="644pt"
+ viewBox="0.00 0.00 217.00 644.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 640)">
<title>tvm::PrinterConfigNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-629 213,-629 213,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-640 213,-640 213,4 -4,4"/>
<!-- Node0 -->
<g id="node1" class="node">
<title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-189.5 209,-189.5 209,-.5 0,-.5"/>
-<text text-anchor="middle" x="104.5" y="-177.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrinterConfigNode</text>
-<polyline fill="none" stroke="#000000" points="0,-170.5 209,-170.5 "/>
-<text text-anchor="start" x="8" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ir_prefix</text>
-<text text-anchor="start" x="8" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ tir_prefix</text>
-<text text-anchor="start" x="8" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ relax_prefix</text>
-<text text-anchor="start" x="8" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ buffer_dtype</text>
-<text text-anchor="start" x="8" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ int_dtype</text>
-<text text-anchor="start" x="8" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ float_dtype</text>
-<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ verbose_expr</text>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ indent_spaces</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ print_line_numbers</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_context_lines</text>
-<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ path_to_underline</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-200.5 209,-200.5 209,-.5 0,-.5"/>
+<text text-anchor="middle" x="104.5" y="-188.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrinterConfigNode</text>
+<polyline fill="none" stroke="#000000" points="0,-181.5 209,-181.5 "/>
+<text text-anchor="start" x="8" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ir_prefix</text>
+<text text-anchor="start" x="8" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ tir_prefix</text>
+<text text-anchor="start" x="8" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ relax_prefix</text>
+<text text-anchor="start" x="8" y="-136.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ buffer_dtype</text>
+<text text-anchor="start" x="8" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ int_dtype</text>
+<text text-anchor="start" x="8" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ float_dtype</text>
+<text text-anchor="start" x="8" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ verbose_expr</text>
+<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ indent_spaces</text>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ print_line_numbers</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ num_context_lines</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ path_to_underline</text>
+<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ syntax_sugar</text>
<text text-anchor="start" x="8" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
<polyline fill="none" stroke="#000000" points="0,-30.5 209,-30.5 "/>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
@@ -35,51 +36,51 @@
<g id="node2" class="node">
<title>Node1</title>
<g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
-<polygon fill="#ffffff" stroke="#000000" points="13,-226.5 13,-624.5 196,-624.5 196,-226.5 13,-226.5"/>
-<text text-anchor="middle" x="104.5" y="-612.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
-<polyline fill="none" stroke="#000000" points="13,-605.5 196,-605.5 "/>
-<text text-anchor="start" x="21" y="-593.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<text text-anchor="start" x="21" y="-582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
-<text text-anchor="start" x="21" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
-<text text-anchor="start" x="21" y="-560.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
-<text text-anchor="start" x="21" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
-<text text-anchor="start" x="21" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
-<text text-anchor="start" x="21" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
-<text text-anchor="start" x="21" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="21" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="21" y="-494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
-<text text-anchor="start" x="21" y="-483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="21" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
-<text text-anchor="start" x="21" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
-<text text-anchor="start" x="21" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
-<text text-anchor="start" x="21" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
-<polyline fill="none" stroke="#000000" points="13,-432.5 196,-432.5 "/>
-<text text-anchor="start" x="21" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
-<text text-anchor="start" x="21" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
-<text text-anchor="start" x="21" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="21" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
-<text text-anchor="start" x="21" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<polygon fill="#ffffff" stroke="#000000" points="13,-237.5 13,-635.5 196,-635.5 196,-237.5 13,-237.5"/>
+<text text-anchor="middle" x="104.5" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="13,-616.5 196,-616.5 "/>
+<text text-anchor="start" x="21" y="-604.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="21" y="-593.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="21" y="-582.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="21" y="-571.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="21" y="-560.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="21" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="21" y="-538.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="21" y="-527.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="21" y="-516.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-505.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="21" y="-494.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-483.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="21" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="21" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<text text-anchor="start" x="21" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
+<polyline fill="none" stroke="#000000" points="13,-443.5 196,-443.5 "/>
+<text text-anchor="start" x="21" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="21" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="21" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="21" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="21" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="21" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
<text text-anchor="start" x="21" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
<text text-anchor="start" x="21" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="21" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
<text text-anchor="start" x="21" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="21" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="21" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="21" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="21" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
-<text text-anchor="start" x="21" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="21" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="21" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
-<text text-anchor="start" x="21" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
-<text text-anchor="start" x="21" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="21" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="21" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="21" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="21" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="21" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node1->Node0 -->
<g id="edge1" class="edge">
<title>Node1->Node0</title>
-<path fill="none" stroke="#191970" d="M104.5,-215.8765C104.5,-206.8897 104.5,-198.092 104.5,-189.6009"/>
-<polygon fill="none" stroke="#191970" points="101.0001,-216.097 104.5,-226.097 108.0001,-216.0971 101.0001,-216.097"/>
+<path fill="none" stroke="#191970" d="M104.5,-227.0222C104.5,-218.097 104.5,-209.3384 104.5,-200.856"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-227.164 104.5,-237.1641 108.0001,-227.1641 101.0001,-227.164"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault-members.html b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault-members.html
index 876f715d11..0a408c21d3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault-members.html
@@ -72,12 +72,13 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a916706dd76898d8ff4e381233c609d14">DeferFail</a>(const ObjectPathPair &mismatch_paths) override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a6a556567cb39505c52976be6dfbde76f">DispatchSEqualReduce</a>(const ObjectRef &lhs, const ObjectRef &rhs, bool map_free_vars, const Optional< ObjectPathPair > &current_paths)</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a47fc96c953560ab6996f63f242cb2adb">Equal</a>(const ObjectRef &lhs, const ObjectRef &rhs, bool map_free_vars)</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a7cd4bb5feca31f2731fb8a9845699702">MapLhsToRhs</a>(const ObjectRef &lhs) override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#afb033900262e701a1e0a7c598e4267ef">MarkGraphNode</a>() override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a3971c2653bf9bae74dd940cd80085aef">PathTracingData</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ac730a1a7785ee29e231eca8815826127">SEqualHandlerDefault</a>(bool assert_mode, Optional< ObjectPathPair > *first_mismatch)</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ab45b0ee6948947a06571986ded36d8b2">SEqualReduce</a>(const ObjectRef &lhs, const ObjectRef &rhs, bool map_free_vars, const Optional< ObjectPathPair > &current_paths) override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ab000f7924c8e839980690f3360418cbd">~SEqualHandlerDefault</a>()</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31">IsFailDeferralEnabled</a>() override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a7cd4bb5feca31f2731fb8a9845699702">MapLhsToRhs</a>(const ObjectRef &lhs) override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#afb033900262e701a1e0a7c598e4267ef">MarkGraphNode</a>() override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a3971c2653bf9bae74dd940cd80085aef">PathTracingData</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a843bd92c063e719d7459228594fc9237">SEqualHandlerDefault</a>(bool assert_mode, Optional< ObjectPathPair > *first_mismatch, bool defer_fails)</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ab45b0ee6948947a06571986ded36d8b2">SEqualReduce</a>(const ObjectRef &lhs, const ObjectRef &rhs, bool map_free_vars, const Optional< ObjectPathPair > &current_paths) override</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ab000f7924c8e839980690f3360418cbd">~SEqualHandlerDefault</a>()</td><td class="entry"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault.html b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault.html
index 033391fd24..2cf60de030 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault.html
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault.html
@@ -78,20 +78,20 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::SEqualHandlerDefault:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualHandlerDefault__inherit__graph.svg" width="212" height="375"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualHandlerDefault__inherit__graph.svg" width="212" height="404"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::SEqualHandlerDefault:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualHandlerDefault__coll__graph.svg" width="212" height="375"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualHandlerDefault__coll__graph.svg" width="212" height="404"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:ac730a1a7785ee29e231eca8815826127"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ac730a1a7785ee29e231eca8815826127">SEqualHandlerDefault</a> (bool assert_mode, <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> > *first_mismatch)</td></tr>
-<tr class="separator:ac730a1a7785ee29e231eca8815826127"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a843bd92c063e719d7459228594fc9237"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a843bd92c063e719d7459228594fc9237">SEqualHandlerDefault</a> (bool assert_mode, <a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> > *first_mismatch, bool defer_fails)</td></tr>
+<tr class="separator:a843bd92c063e719d7459228594fc9237"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab000f7924c8e839980690f3360418cbd"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ab000f7924c8e839980690f3360418cbd">~SEqualHandlerDefault</a> ()</td></tr>
<tr class="separator:ab000f7924c8e839980690f3360418cbd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab45b0ee6948947a06571986ded36d8b2"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ab45b0ee6948947a06571986ded36d8b2">SEqualReduce</a> (const <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> &lhs, const <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> &rhs, bool map_free_vars, const <a class="el" hr [...]
@@ -100,6 +100,9 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a916706dd76898d8ff4e381233c609d14"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a916706dd76898d8ff4e381233c609d14">DeferFail</a> (const <a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> &mismatch_paths) override</td></tr>
<tr class="memdesc:a916706dd76898d8ff4e381233c609d14"><td class="mdescLeft"> </td><td class="mdescRight">Mark the comparison as failed, but don't fail immediately. <a href="#a916706dd76898d8ff4e381233c609d14">More...</a><br /></td></tr>
<tr class="separator:a916706dd76898d8ff4e381233c609d14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0a6bf7984baa7682d1dbc635d4d78f31"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31">IsFailDeferralEnabled</a> () override</td></tr>
+<tr class="memdesc:a0a6bf7984baa7682d1dbc635d4d78f31"><td class="mdescLeft"> </td><td class="mdescRight">Check if fail defferal is enabled. <a href="#a0a6bf7984baa7682d1dbc635d4d78f31">More...</a><br /></td></tr>
+<tr class="separator:a0a6bf7984baa7682d1dbc635d4d78f31"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7cd4bb5feca31f2731fb8a9845699702"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a7cd4bb5feca31f2731fb8a9845699702">MapLhsToRhs</a> (const <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> &lhs) override</td></tr>
<tr class="memdesc:a7cd4bb5feca31f2731fb8a9845699702"><td class="mdescLeft"> </td><td class="mdescRight">Lookup the graph node equal map for vars that are already mapped. <a href="#a7cd4bb5feca31f2731fb8a9845699702">More...</a><br /></td></tr>
<tr class="separator:a7cd4bb5feca31f2731fb8a9845699702"><td class="memSeparator" colspan="2"> </td></tr>
@@ -126,8 +129,8 @@ Additional Inherited Members</h2></td></tr>
<div class="textblock"><p>The default handler for equality testing. </p>
<p>Users can derive from this class and override the DispatchSEqualReduce method, to customize equality testing. </p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
-<a id="ac730a1a7785ee29e231eca8815826127"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac730a1a7785ee29e231eca8815826127">◆ </a></span>SEqualHandlerDefault()</h2>
+<a id="a843bd92c063e719d7459228594fc9237"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a843bd92c063e719d7459228594fc9237">◆ </a></span>SEqualHandlerDefault()</h2>
<div class="memitem">
<div class="memproto">
@@ -142,7 +145,13 @@ Additional Inherited Members</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a>< <a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> > * </td>
- <td class="paramname"><em>first_mismatch</em> </td>
+ <td class="paramname"><em>first_mismatch</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool </td>
+ <td class="paramname"><em>defer_fails</em> </td>
</tr>
<tr>
<td></td>
@@ -322,6 +331,36 @@ Additional Inherited Members</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The equality result. </dd></dl>
+</div>
+</div>
+<a id="a0a6bf7984baa7682d1dbc635d4d78f31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a6bf7984baa7682d1dbc635d4d78f31">◆ </a></span>IsFailDeferralEnabled()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool tvm::SEqualHandlerDefault::IsFailDeferralEnabled </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Check if fail defferal is enabled. </p>
+<dl class="section return"><dt>Returns</dt><dd>false if the fail deferral is not enabled, true otherwise. </dd></dl>
+
+<p>Implements <a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9">tvm::SEqualReducer::Handler</a>.</p>
+
</div>
</div>
<a id="a7cd4bb5feca31f2731fb8a9845699702"></a>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__coll__graph.svg
index 1e8769460e..efe0653a45 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__coll__graph.svg
@@ -4,23 +4,24 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::SEqualHandlerDefault Pages: 1 -->
-<svg width="159pt" height="281pt"
- viewBox="0.00 0.00 159.00 281.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 277)">
+<svg width="159pt" height="303pt"
+ viewBox="0.00 0.00 159.00 303.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 299)">
<title>tvm::SEqualHandlerDefault</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-277 155,-277 155,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-299 155,-299 155,4 -4,4"/>
<!-- Node2 -->
<g id="node1" class="node">
<title>Node2</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-134.5 151,-134.5 151,-.5 0,-.5"/>
-<text text-anchor="middle" x="75.5" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualHandlerDefault</text>
-<polyline fill="none" stroke="#000000" points="0,-115.5 151,-115.5 "/>
-<text text-anchor="middle" x="75.5" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-96.5 151,-96.5 "/>
-<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualHandlerDefault()</text>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~SEqualHandlerDefault()</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-145.5 151,-145.5 151,-.5 0,-.5"/>
+<text text-anchor="middle" x="75.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualHandlerDefault</text>
+<polyline fill="none" stroke="#000000" points="0,-126.5 151,-126.5 "/>
+<text text-anchor="middle" x="75.5" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-107.5 151,-107.5 "/>
+<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualHandlerDefault()</text>
+<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~SEqualHandlerDefault()</text>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Equal()</text>
@@ -30,24 +31,25 @@
<g id="node2" class="node">
<title>Node3</title>
<g id="a_node2"><a xlink:href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_top" xlink:title="Internal handler that defines custom behaviors.. ">
-<polygon fill="#ffffff" stroke="#000000" points="18.5,-171.5 18.5,-272.5 132.5,-272.5 132.5,-171.5 18.5,-171.5"/>
-<text text-anchor="start" x="26.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
-<text text-anchor="middle" x="75.5" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
-<polyline fill="none" stroke="#000000" points="18.5,-242.5 132.5,-242.5 "/>
-<text text-anchor="middle" x="75.5" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="18.5,-223.5 132.5,-223.5 "/>
-<text text-anchor="start" x="26.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="26.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
-<text text-anchor="start" x="26.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
-<text text-anchor="start" x="26.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-182.5 6,-294.5 145,-294.5 145,-182.5 6,-182.5"/>
+<text text-anchor="start" x="14" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
+<text text-anchor="middle" x="75.5" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
+<polyline fill="none" stroke="#000000" points="6,-264.5 145,-264.5 "/>
+<text text-anchor="middle" x="75.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-245.5 145,-245.5 "/>
+<text text-anchor="start" x="14" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="14" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="14" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
+<text text-anchor="start" x="14" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
+<text text-anchor="start" x="14" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge1" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="#191970" d="M75.5,-161.2656C75.5,-152.4816 75.5,-143.3988 75.5,-134.5007"/>
-<polygon fill="none" stroke="#191970" points="72.0001,-161.4109 75.5,-171.4109 79.0001,-161.411 72.0001,-161.4109"/>
+<path fill="none" stroke="#191970" d="M75.5,-172.3314C75.5,-163.5732 75.5,-154.5566 75.5,-145.6961"/>
+<polygon fill="none" stroke="#191970" points="72.0001,-172.4692 75.5,-182.4692 79.0001,-172.4693 72.0001,-172.4692"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__inherit__graph.svg
index c29e799d1a..a990afaa52 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualHandlerDefault__inherit__graph.svg
@@ -4,23 +4,24 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::SEqualHandlerDefault Pages: 1 -->
-<svg width="159pt" height="281pt"
- viewBox="0.00 0.00 159.00 281.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 277)">
+<svg width="159pt" height="303pt"
+ viewBox="0.00 0.00 159.00 303.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 299)">
<title>tvm::SEqualHandlerDefault</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-277 155,-277 155,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-299 155,-299 155,4 -4,4"/>
<!-- Node0 -->
<g id="node1" class="node">
<title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-134.5 151,-134.5 151,-.5 0,-.5"/>
-<text text-anchor="middle" x="75.5" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualHandlerDefault</text>
-<polyline fill="none" stroke="#000000" points="0,-115.5 151,-115.5 "/>
-<text text-anchor="middle" x="75.5" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-96.5 151,-96.5 "/>
-<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualHandlerDefault()</text>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~SEqualHandlerDefault()</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-145.5 151,-145.5 151,-.5 0,-.5"/>
+<text text-anchor="middle" x="75.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualHandlerDefault</text>
+<polyline fill="none" stroke="#000000" points="0,-126.5 151,-126.5 "/>
+<text text-anchor="middle" x="75.5" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-107.5 151,-107.5 "/>
+<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualHandlerDefault()</text>
+<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~SEqualHandlerDefault()</text>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Equal()</text>
@@ -30,24 +31,25 @@
<g id="node2" class="node">
<title>Node1</title>
<g id="a_node2"><a xlink:href="classtvm_1_1SEqualReducer_1_1Handler.html" target="_top" xlink:title="Internal handler that defines custom behaviors.. ">
-<polygon fill="#ffffff" stroke="#000000" points="18.5,-171.5 18.5,-272.5 132.5,-272.5 132.5,-171.5 18.5,-171.5"/>
-<text text-anchor="start" x="26.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
-<text text-anchor="middle" x="75.5" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
-<polyline fill="none" stroke="#000000" points="18.5,-242.5 132.5,-242.5 "/>
-<text text-anchor="middle" x="75.5" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="18.5,-223.5 132.5,-223.5 "/>
-<text text-anchor="start" x="26.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="26.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
-<text text-anchor="start" x="26.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
-<text text-anchor="start" x="26.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
+<polygon fill="#ffffff" stroke="#000000" points="6,-182.5 6,-294.5 145,-294.5 145,-182.5 6,-182.5"/>
+<text text-anchor="start" x="14" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
+<text text-anchor="middle" x="75.5" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
+<polyline fill="none" stroke="#000000" points="6,-264.5 145,-264.5 "/>
+<text text-anchor="middle" x="75.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-245.5 145,-245.5 "/>
+<text text-anchor="start" x="14" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="14" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="14" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
+<text text-anchor="start" x="14" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
+<text text-anchor="start" x="14" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
</a>
</g>
</g>
<!-- Node1->Node0 -->
<g id="edge1" class="edge">
<title>Node1->Node0</title>
-<path fill="none" stroke="#191970" d="M75.5,-161.2656C75.5,-152.4816 75.5,-143.3988 75.5,-134.5007"/>
-<polygon fill="none" stroke="#191970" points="72.0001,-161.4109 75.5,-171.4109 79.0001,-161.411 72.0001,-161.4109"/>
+<path fill="none" stroke="#191970" d="M75.5,-172.3314C75.5,-163.5732 75.5,-154.5566 75.5,-145.6961"/>
+<polygon fill="none" stroke="#191970" points="72.0001,-172.4692 75.5,-182.4692 79.0001,-172.4693 72.0001,-172.4692"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler-members.html b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler-members.html
index 1eb9693dfa..158a28aa71 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler-members.html
@@ -70,10 +70,11 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#aa59c1a7a863c81f2a903795b1a96f986">DeferFail</a>(const ObjectPathPair &mismatch_paths)=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#ab87181ea7783fea4f0aa533efe368d33">MapLhsToRhs</a>(const ObjectRef &lhs)=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a919cf7532dbf7dc7a4e97260e02bc947">MarkGraphNode</a>()=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a3971c2653bf9bae74dd940cd80085aef">PathTracingData</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a02c09a956fe790e5acf20e29a50b2722">SEqualReduce</a>(const ObjectRef &lhs, const ObjectRef &rhs, bool map_free_vars, const Optional< ObjectPathPair > &current_paths)=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9">IsFailDeferralEnabled</a>()=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#ab87181ea7783fea4f0aa533efe368d33">MapLhsToRhs</a>(const ObjectRef &lhs)=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a919cf7532dbf7dc7a4e97260e02bc947">MarkGraphNode</a>()=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a3971c2653bf9bae74dd940cd80085aef">PathTracingData</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a02c09a956fe790e5acf20e29a50b2722">SEqualReduce</a>(const ObjectRef &lhs, const ObjectRef &rhs, bool map_free_vars, const Optional< ObjectPathPair > &current_paths)=0</td><td class="entry"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler.html b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler.html
index 72452129d5..9fea9a52df 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler.html
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler.html
@@ -78,13 +78,13 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::SEqualReducer::Handler:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualReducer_1_1Handler__inherit__graph.svg" width="212" height="375"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualReducer_1_1Handler__inherit__graph.svg" width="212" height="404"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::SEqualReducer::Handler:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualReducer_1_1Handler__coll__graph.svg" width="163" height="147"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1SEqualReducer_1_1Handler__coll__graph.svg" width="196" height="162"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<table class="memberdecls">
@@ -96,6 +96,9 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:aa59c1a7a863c81f2a903795b1a96f986"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#aa59c1a7a863c81f2a903795b1a96f986">DeferFail</a> (const <a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> &mismatch_paths)=0</td></tr>
<tr class="memdesc:aa59c1a7a863c81f2a903795b1a96f986"><td class="mdescLeft"> </td><td class="mdescRight">Mark the comparison as failed, but don't fail immediately. <a href="#aa59c1a7a863c81f2a903795b1a96f986">More...</a><br /></td></tr>
<tr class="separator:aa59c1a7a863c81f2a903795b1a96f986"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a76f03c6be7e3c24808ba4a72285952d9"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9">IsFailDeferralEnabled</a> ()=0</td></tr>
+<tr class="memdesc:a76f03c6be7e3c24808ba4a72285952d9"><td class="mdescLeft"> </td><td class="mdescRight">Check if fail defferal is enabled. <a href="#a76f03c6be7e3c24808ba4a72285952d9">More...</a><br /></td></tr>
+<tr class="separator:a76f03c6be7e3c24808ba4a72285952d9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab87181ea7783fea4f0aa533efe368d33"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#ab87181ea7783fea4f0aa533efe368d33">MapLhsToRhs</a> (const <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> &lhs)=0</td></tr>
<tr class="memdesc:ab87181ea7783fea4f0aa533efe368d33"><td class="mdescLeft"> </td><td class="mdescRight">Lookup the graph node equal map for vars that are already mapped. <a href="#ab87181ea7783fea4f0aa533efe368d33">More...</a><br /></td></tr>
<tr class="separator:ab87181ea7783fea4f0aa533efe368d33"><td class="memSeparator" colspan="2"> </td></tr>
@@ -163,6 +166,36 @@ Protected Types</h2></td></tr>
<p>Implemented in <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a916706dd76898d8ff4e381233c609d14">tvm::SEqualHandlerDefault</a>.</p>
+</div>
+</div>
+<a id="a76f03c6be7e3c24808ba4a72285952d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a76f03c6be7e3c24808ba4a72285952d9">◆ </a></span>IsFailDeferralEnabled()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual bool tvm::SEqualReducer::Handler::IsFailDeferralEnabled </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Check if fail defferal is enabled. </p>
+<dl class="section return"><dt>Returns</dt><dd>false if the fail deferral is not enabled, true otherwise. </dd></dl>
+
+<p>Implemented in <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31">tvm::SEqualHandlerDefault</a>.</p>
+
</div>
</div>
<a id="ab87181ea7783fea4f0aa533efe368d33"></a>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__coll__graph.svg
index b362ed528e..600bbc3332 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__coll__graph.svg
@@ -4,22 +4,23 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::SEqualReducer::Handler Pages: 1 -->
-<svg width="122pt" height="110pt"
- viewBox="0.00 0.00 122.00 110.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 106)">
+<svg width="147pt" height="121pt"
+ viewBox="0.00 0.00 147.00 121.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 117)">
<title>tvm::SEqualReducer::Handler</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-106 118,-106 118,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-117 143,-117 143,4 -4,4"/>
<!-- Node2 -->
<g id="node1" class="node">
<title>Node2</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-101.5 114,-101.5 114,-.5 0,-.5"/>
-<text text-anchor="start" x="8" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
-<text text-anchor="middle" x="57" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
-<polyline fill="none" stroke="#000000" points="0,-71.5 114,-71.5 "/>
-<text text-anchor="middle" x="57" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-52.5 114,-52.5 "/>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-112.5 139,-112.5 139,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
+<text text-anchor="middle" x="69.5" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
+<polyline fill="none" stroke="#000000" points="0,-82.5 139,-82.5 "/>
+<text text-anchor="middle" x="69.5" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-63.5 139,-63.5 "/>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__inherit__graph.svg
index b8e388e2a2..ceccbcd04d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1SEqualReducer_1_1Handler__inherit__graph.svg
@@ -4,38 +4,40 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: tvm::SEqualReducer::Handler Pages: 1 -->
-<svg width="159pt" height="281pt"
- viewBox="0.00 0.00 159.00 281.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 277)">
+<svg width="159pt" height="303pt"
+ viewBox="0.00 0.00 159.00 303.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 299)">
<title>tvm::SEqualReducer::Handler</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-277 155,-277 155,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-299 155,-299 155,4 -4,4"/>
<!-- Node0 -->
<g id="node1" class="node">
<title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="18.5,-171.5 18.5,-272.5 132.5,-272.5 132.5,-171.5 18.5,-171.5"/>
-<text text-anchor="start" x="26.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
-<text text-anchor="middle" x="75.5" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
-<polyline fill="none" stroke="#000000" points="18.5,-242.5 132.5,-242.5 "/>
-<text text-anchor="middle" x="75.5" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="18.5,-223.5 132.5,-223.5 "/>
-<text text-anchor="start" x="26.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="26.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
-<text text-anchor="start" x="26.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
-<text text-anchor="start" x="26.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="6,-182.5 6,-294.5 145,-294.5 145,-182.5 6,-182.5"/>
+<text text-anchor="start" x="14" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualReducer</text>
+<text text-anchor="middle" x="75.5" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::Handler</text>
+<polyline fill="none" stroke="#000000" points="6,-264.5 145,-264.5 "/>
+<text text-anchor="middle" x="75.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="6,-245.5 145,-245.5 "/>
+<text text-anchor="start" x="14" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="14" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="14" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
+<text text-anchor="start" x="14" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
+<text text-anchor="start" x="14" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
</g>
<!-- Node1 -->
<g id="node2" class="node">
<title>Node1</title>
<g id="a_node2"><a xlink:href="classtvm_1_1SEqualHandlerDefault.html" target="_top" xlink:title="The default handler for equality testing. ">
-<polygon fill="#ffffff" stroke="#000000" points="0,-.5 0,-134.5 151,-134.5 151,-.5 0,-.5"/>
-<text text-anchor="middle" x="75.5" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualHandlerDefault</text>
-<polyline fill="none" stroke="#000000" points="0,-115.5 151,-115.5 "/>
-<text text-anchor="middle" x="75.5" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="0,-96.5 151,-96.5 "/>
-<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualHandlerDefault()</text>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~SEqualHandlerDefault()</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<polygon fill="#ffffff" stroke="#000000" points="0,-.5 0,-145.5 151,-145.5 151,-.5 0,-.5"/>
+<text text-anchor="middle" x="75.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::SEqualHandlerDefault</text>
+<polyline fill="none" stroke="#000000" points="0,-126.5 151,-126.5 "/>
+<text text-anchor="middle" x="75.5" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-107.5 151,-107.5 "/>
+<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualHandlerDefault()</text>
+<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~SEqualHandlerDefault()</text>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ SEqualReduce()</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ DeferFail()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsFailDeferralEnabled()</text>
<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MapLhsToRhs()</text>
<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ MarkGraphNode()</text>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Equal()</text>
@@ -46,8 +48,8 @@
<!-- Node0->Node1 -->
<g id="edge1" class="edge">
<title>Node0->Node1</title>
-<path fill="none" stroke="#191970" d="M75.5,-161.2656C75.5,-152.4816 75.5,-143.3988 75.5,-134.5007"/>
-<polygon fill="none" stroke="#191970" points="72.0001,-161.4109 75.5,-171.4109 79.0001,-161.411 72.0001,-161.4109"/>
+<path fill="none" stroke="#191970" d="M75.5,-172.3314C75.5,-163.5732 75.5,-154.5566 75.5,-145.6961"/>
+<polygon fill="none" stroke="#191970" points="72.0001,-172.4692 75.5,-182.4692 79.0001,-172.4693 72.0001,-172.4692"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/doc_8h_source.html b/docs/reference/api/doxygen/doc_8h_source.html
index ffcafedebf..85f537034c 100644
--- a/docs/reference/api/doxygen/doc_8h_source.html
+++ b/docs/reference/api/doxygen/doc_8h_source.html
@@ -201,7 +201,7 @@ $(function() {
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FunctionDoc_html"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FunctionDoc.html">tvm::script::printer::FunctionDoc</a></div><div class="ttdoc">Reference type of FunctionDocNode. </div><div class="ttdef"><b>Definition:</b> doc.h:1140</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1ClassDocNode_html_a253cf698eba7d39b7345553e646bc8b9"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html#a253cf698eba7d39b7345553e646bc8b9">tvm::script::printer::ClassDocNode::decorators</a></div><div class="ttdeci">Array< ExprDoc > decorators</div><div class="ttdoc">Decorators of class. </div><div class="ttdef"><b>Definition:</b> doc.h:1165</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1TupleDoc_html_ac3ec09b672b619376fa70cead671de78"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1TupleDoc.html#ac3ec09b672b619376fa70cead671de78">tvm::script::printer::TupleDoc::TupleDoc</a></div><div class="ttdeci">TupleDoc()</div><div class="ttdoc">Create an empty TupleDoc. </div><div class="ttdef"><b>Definition:</b> doc.h:627</div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfig_html"><div class="ttname"><a href="classtvm_1_1PrinterConfig.html">tvm::PrinterConfig</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:81</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfig_html"><div class="ttname"><a href="classtvm_1_1PrinterConfig.html">tvm::PrinterConfig</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:84</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1AssignDocNode_html_a12eb8131926502501e1088fb0d398850"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html#a12eb8131926502501e1088fb0d398850">tvm::script::printer::AssignDocNode::annotation</a></div><div class="ttdeci">Optional< ExprDoc > annotation</div><div class="ttdoc">The type annotation of this assignment. </div><div class="ttdef"><b>Definition:</b> doc.h:781</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IndexDocNode_html_a9aed13f06616cbd8ea54f362de81cb0e"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html#a9aed13f06616cbd8ea54f362de81cb0e">tvm::script::printer::IndexDocNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> doc.h:400</div></div>
<div class="ttc" id="object_8h_html_a782d0de62fbf75736e29c1e79c22c7f1"><div class="ttname"><a href="object_8h.html#a782d0de62fbf75736e29c1e79c22c7f1">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:728</div></div>
diff --git a/docs/reference/api/doxygen/functions_func_i.html b/docs/reference/api/doxygen/functions_func_i.html
index efc9d11c96..78755872db 100644
--- a/docs/reference/api/doxygen/functions_func_i.html
+++ b/docs/reference/api/doxygen/functions_func_i.html
@@ -335,6 +335,10 @@ $(function() {
<li>IsExternalCodegenFor()
: <a class="el" href="classtvm_1_1Target.html#acc8e9cae4385eb160ca79b1ddf8a7510">tvm::Target</a>
</li>
+<li>IsFailDeferralEnabled()
+: <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31">tvm::SEqualHandlerDefault</a>
+, <a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9">tvm::SEqualReducer::Handler</a>
+</li>
<li>IsFullyConstrained()
: <a class="el" href="classtvm_1_1VirtualDeviceNode.html#ae3c848e08b56105cdb046907ccbfc59c">tvm::VirtualDeviceNode</a>
</li>
@@ -412,7 +416,7 @@ $(function() {
: <a class="el" href="classtvm_1_1arith_1_1IterMark.html#a7b46a2bc2460f43e529a6fc65a0a618d">tvm::arith::IterMark</a>
</li>
<li>IterSplitExpr()
-: <a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html#af919631fd9bfb7726d0a867ee9f0e6f5">tvm::arith::IterSplitExpr</a>
+: <a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html#a59bd2fa8d07f4ad2c4ac09c8f7004cb8">tvm::arith::IterSplitExpr</a>
</li>
<li>IterSumExpr()
: <a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html#a1b9f8013f3978bafe4da3a6cad65fb36">tvm::arith::IterSumExpr</a>
@@ -424,7 +428,7 @@ $(function() {
: <a class="el" href="classtvm_1_1te_1_1IterVarAttr.html#a5549479b7e3ce243d89b219b0dd7ef71">tvm::te::IterVarAttr</a>
</li>
<li>IterVarRelation()
-: <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a4b50caede957f1cb50587ce15a87109f">tvm::te::IterVarRelation</a>
+: <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a3e611ee0870d9a542b8deb79575dbf66">tvm::te::IterVarRelation</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/docs/reference/api/doxygen/functions_func_s.html b/docs/reference/api/doxygen/functions_func_s.html
index 3392e35615..c9aee69cc8 100644
--- a/docs/reference/api/doxygen/functions_func_s.html
+++ b/docs/reference/api/doxygen/functions_func_s.html
@@ -147,7 +147,7 @@ $(function() {
: <a class="el" href="classtvm_1_1tir_1_1SeqStmt.html#afe971b51fb6990008a118d4aa16c0920">tvm::tir::SeqStmt</a>
</li>
<li>SEqualHandlerDefault()
-: <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ac730a1a7785ee29e231eca8815826127">tvm::SEqualHandlerDefault</a>
+: <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a843bd92c063e719d7459228594fc9237">tvm::SEqualHandlerDefault</a>
</li>
<li>SEqualReduce()
: <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#ad7be026c2fbdd9c6fb439d6959300541">tvm::arith::ConstIntBoundNode</a>
@@ -643,7 +643,7 @@ $(function() {
, <a class="el" href="classtvm_1_1tir_1_1SeqStmtNode.html#a0b17eae7cf993b7e3c3e5b50b4fa5982">tvm::tir::SeqStmtNode</a>
</li>
<li>SizeVar()
-: <a class="el" href="classtvm_1_1tir_1_1SizeVar.html#ac470249315d9e395ad581d35dd5dcb05">tvm::tir::SizeVar</a>
+: <a class="el" href="classtvm_1_1tir_1_1SizeVar.html#a0f8cb8a92feb96343939d223db90f7cd">tvm::tir::SizeVar</a>
</li>
<li>Slice()
: <a class="el" href="classtvm_1_1te_1_1Tensor_1_1Slice.html#ab314819e8bcca6421e9a4f33e48578c3">tvm::te::Tensor::Slice</a>
diff --git a/docs/reference/api/doxygen/functions_func_t.html b/docs/reference/api/doxygen/functions_func_t.html
index 95b15e4a0d..ee0010a3ed 100644
--- a/docs/reference/api/doxygen/functions_func_t.html
+++ b/docs/reference/api/doxygen/functions_func_t.html
@@ -1220,7 +1220,7 @@ $(function() {
: <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#a2f46b59a6c1d5eb4575d7f583b5f1a0c">tvm::runtime::TVMPODValue_</a>
</li>
<li>TVMRetValue()
-: <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#ac4a3850c0989e7c2d5cd8e0f096d0997">tvm::runtime::TVMRetValue</a>
+: <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#a77455a8fe7d27b90a01a64f1cd28e9ec">tvm::runtime::TVMRetValue</a>
</li>
<li>type()
: <a class="el" href="classtvm_1_1runtime_1_1vm_1_1Allocator.html#a7cfb6d4ea480436801276fe2e7660eb2">tvm::runtime::vm::Allocator</a>
@@ -1249,7 +1249,7 @@ $(function() {
: <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a41a6b9014d0feeb628ca7edfd0d26f0b">tvm::TypedEnvFunc< R(Args...)></a>
</li>
<li>TypedPackedFunc()
-: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#afd8ee9dd9648c19b468bb4b0b00e8e4e">tvm::runtime::TypedPackedFunc< R(Args...)></a>
+: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a8941c80982a1b2a289440f3c79bb0ac8">tvm::runtime::TypedPackedFunc< R(Args...)></a>
</li>
<li>TypeIndex2Key()
: <a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">tvm::runtime::Object</a>
diff --git a/docs/reference/api/doxygen/functions_func_u.html b/docs/reference/api/doxygen/functions_func_u.html
index 4b4e0f203d..611cae9ff1 100644
--- a/docs/reference/api/doxygen/functions_func_u.html
+++ b/docs/reference/api/doxygen/functions_func_u.html
@@ -106,7 +106,7 @@ $(function() {
, <a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html#ae35b2b678760b8da57a43d3ae9c24da5">tvm::auto_scheduler::CostModelNode</a>
, <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#a2d7849df6c7dbe93bf363c1d9f860a26">tvm::auto_scheduler::PythonBasedModelNode</a>
, <a class="el" href="classtvm_1_1auto__scheduler_1_1RandomModelNode.html#a7febac6c05d8e2d407f466467769ee32">tvm::auto_scheduler::RandomModelNode</a>
-, <a class="el" href="classtvm_1_1IRModuleNode.html#a94a93385e64ce844299729af6a573015">tvm::IRModuleNode</a>
+, <a class="el" href="classtvm_1_1IRModuleNode.html#abdd8936c6fca33ef9b7c086f8fd58f84">tvm::IRModuleNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html#a1bba32eba84db583fe90d1a5bce085f1">tvm::meta_schedule::CostModelNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1PyCostModelNode.html#a970b00b0eb1bf6b88eea2711b58c4d1d">tvm::meta_schedule::PyCostModelNode</a>
</li>
diff --git a/docs/reference/api/doxygen/functions_i.html b/docs/reference/api/doxygen/functions_i.html
index b723254734..c82c950027 100644
--- a/docs/reference/api/doxygen/functions_i.html
+++ b/docs/reference/api/doxygen/functions_i.html
@@ -389,7 +389,7 @@ $(function() {
</li>
<li>Invoke()
: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#acb19406a24fa95bf39a29d15ad6be256">tvm::runtime::vm::Instruction</a>
-, <a class="el" href="classtvm_1_1runtime_1_1vm_1_1VirtualMachine.html#aa5f4724e2e702ef9d5c34e85dec53b02">tvm::runtime::vm::VirtualMachine</a>
+, <a class="el" href="classtvm_1_1runtime_1_1vm_1_1VirtualMachine.html#a1094291352e07e4c827a88b1167b89ad">tvm::runtime::vm::VirtualMachine</a>
</li>
<li>invoke_args_registers
: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a6fc678bca0e215303087981a79f23b7f">tvm::runtime::vm::Instruction</a>
@@ -544,6 +544,10 @@ $(function() {
<li>IsExternalCodegenFor()
: <a class="el" href="classtvm_1_1Target.html#acc8e9cae4385eb160ca79b1ddf8a7510">tvm::Target</a>
</li>
+<li>IsFailDeferralEnabled()
+: <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31">tvm::SEqualHandlerDefault</a>
+, <a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9">tvm::SEqualReducer::Handler</a>
+</li>
<li>IsFullyConstrained()
: <a class="el" href="classtvm_1_1VirtualDeviceNode.html#ae3c848e08b56105cdb046907ccbfc59c">tvm::VirtualDeviceNode</a>
</li>
@@ -574,8 +578,8 @@ $(function() {
<li>IsPrimal()
: <a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html#a4a8e9b07fbdfccc187ea41141b373ebe">tvm::tir::LayoutAxis</a>
</li>
-<li>IsPrimitiveOp
-: <a class="el" href="classtvm_1_1OpNode.html#aee9090e54dff3e72ed272b981e036ae6">tvm::OpNode</a>
+<li>IsPrimitiveOp()
+: <a class="el" href="classtvm_1_1OpNode.html#a3ba51353d63c4674eac080a3560a4412">tvm::OpNode</a>
</li>
<li>IsRegionCoveredConsumer()
: <a class="el" href="classtvm_1_1tir_1_1ScheduleStateNode.html#a9596efdecacb172c531a53b1f21717ad">tvm::tir::ScheduleStateNode</a>
@@ -646,7 +650,7 @@ $(function() {
<li>iterator
: <a class="el" href="classtvm_1_1runtime_1_1Array.html#a98e5ad633b8195d954c98067213ae29f">tvm::runtime::Array< T, typename ></a>
, <a class="el" href="classtvm_1_1runtime_1_1Map_1_1iterator.html#ad8b40ddeffccb6f221601eda70202f9a">tvm::runtime::Map< K, V, typename, typename >::iterator</a>
-, <a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1iterator.html#a75e3f2657cdb7cc613bf922429983165">tvm::runtime::MapNode::iterator</a>
+, <a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1iterator.html#ad605c9f9aaed23e669c2a3c595d08ba4">tvm::runtime::MapNode::iterator</a>
, <a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor.html#a79703afd52032715cc2d9d4c6830147f">tvm::runtime::metadata::ArrayAccessor< C, Ref ></a>
, <a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor_3_01const_01char_01_5_00_01_1_1tvm_1_1runtime_1_1String_01_4.html#a3216d91ef7fb0771463e76c9a0afcd1c">tvm::runtime::metadata::ArrayAccessor< const char *, ::tvm::runtime::String ></a>
, <a class="el" href="classtvm_1_1support_1_1Span.html#af6fbb6a54a3ecf8673146acae0c8228b">tvm::support::Span< T, W ></a>
@@ -680,10 +684,10 @@ $(function() {
: <a class="el" href="classtvm_1_1tir_1_1IterVar.html#a1c0d6998203092c953b7da00f16c5c31">tvm::tir::IterVar</a>
</li>
<li>IterVarAttr()
-: <a class="el" href="classtvm_1_1te_1_1IterVarAttr.html#a5549479b7e3ce243d89b219b0dd7ef71">tvm::te::IterVarAttr</a>
+: <a class="el" href="classtvm_1_1te_1_1IterVarAttr.html#aa20680587a1c880b659063cd37ba4763">tvm::te::IterVarAttr</a>
</li>
<li>IterVarRelation()
-: <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a4b50caede957f1cb50587ce15a87109f">tvm::te::IterVarRelation</a>
+: <a class="el" href="classtvm_1_1te_1_1IterVarRelation.html#a3e611ee0870d9a542b8deb79575dbf66">tvm::te::IterVarRelation</a>
</li>
<li>ivmap_
: <a class="el" href="classtvm_1_1tir_1_1DataTypeLegalizer.html#a4b60203572648ecb12a2aa72a552318d">tvm::tir::DataTypeLegalizer</a>
diff --git a/docs/reference/api/doxygen/functions_s.html b/docs/reference/api/doxygen/functions_s.html
index d637a502ea..f564fbe02f 100644
--- a/docs/reference/api/doxygen/functions_s.html
+++ b/docs/reference/api/doxygen/functions_s.html
@@ -230,7 +230,7 @@ $(function() {
: <a class="el" href="classtvm_1_1tir_1_1SeqStmt.html#afe971b51fb6990008a118d4aa16c0920">tvm::tir::SeqStmt</a>
</li>
<li>SEqualHandlerDefault()
-: <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#ac730a1a7785ee29e231eca8815826127">tvm::SEqualHandlerDefault</a>
+: <a class="el" href="classtvm_1_1SEqualHandlerDefault.html#a843bd92c063e719d7459228594fc9237">tvm::SEqualHandlerDefault</a>
</li>
<li>SEqualReduce()
: <a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#ad7be026c2fbdd9c6fb439d6959300541">tvm::arith::ConstIntBoundNode</a>
@@ -869,7 +869,7 @@ $(function() {
</li>
<li>Span()
: <a class="el" href="classtvm_1_1Span.html#a5216631b639e8c802263d87d3fe9e5f6">tvm::Span</a>
-, <a class="el" href="classtvm_1_1support_1_1Span.html#a77653730a2542edf93b7c4413a72f3ec">tvm::support::Span< T, W ></a>
+, <a class="el" href="classtvm_1_1support_1_1Span.html#a3c22dd06856e7029e7107adf38eb72f5">tvm::support::Span< T, W ></a>
</li>
<li>span
: <a class="el" href="classtvm_1_1tir_1_1BufferNode.html#a13fc164e1b65cee741b4895df6316a4a">tvm::tir::BufferNode</a>
@@ -1026,7 +1026,7 @@ $(function() {
: <a class="el" href="classtvm_1_1script_1_1printer_1_1StmtDoc.html#adec8d59e41d8a4093fb310089bf2c3ba">tvm::script::printer::StmtDoc</a>
</li>
<li>StmtNode()
-: <a class="el" href="classtvm_1_1tir_1_1StmtNode.html#a67693c4e97ae49890ea74605fe1b1f74">tvm::tir::StmtNode</a>
+: <a class="el" href="classtvm_1_1tir_1_1StmtNode.html#a79e21b14d3ab57209577bf4a8f694a87">tvm::tir::StmtNode</a>
</li>
<li>stmts
: <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40">tvm::script::ir_builder::tir::TIRFrameNode</a>
@@ -1140,7 +1140,7 @@ $(function() {
, <a class="el" href="classtvm_1_1tir_1_1BufferNode.html#ac18ddd10b79a30ae57d3a8283686259d">tvm::tir::BufferNode</a>
</li>
<li>String()
-: <a class="el" href="classtvm_1_1runtime_1_1String.html#a02fca36e3ff55cc1e83635b02a11fca3">tvm::runtime::String</a>
+: <a class="el" href="classtvm_1_1runtime_1_1String.html#ac5d930b522e9fef9c07e51819d96d2f3">tvm::runtime::String</a>
, <a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html#a7fb804f7dc96dd9f705c84095f37f1ca">tvm::runtime::StringObj::FromStd</a>
, <a class="el" href="classtvm_1_1runtime_1_1StringObj.html#a7fb804f7dc96dd9f705c84095f37f1ca">tvm::runtime::StringObj</a>
</li>
@@ -1180,6 +1180,9 @@ $(function() {
<li>SyncStreamFromTo()
: <a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html#a3e455879adb262d3d66945cbe4a5a118">tvm::runtime::DeviceAPI</a>
</li>
+<li>syntax_sugar
+: <a class="el" href="classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b">tvm::PrinterConfigNode</a>
+</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
diff --git a/docs/reference/api/doxygen/functions_t.html b/docs/reference/api/doxygen/functions_t.html
index ab3855e685..08a3f22680 100644
--- a/docs/reference/api/doxygen/functions_t.html
+++ b/docs/reference/api/doxygen/functions_t.html
@@ -81,7 +81,7 @@ $(function() {
, <a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html#a46879dbe84105fb621a6167f8d73b223">tvm::runtime::vm::Instruction</a>
</li>
<li>Target()
-: <a class="el" href="classtvm_1_1Target.html#a58a5a1e042e265fe5a6973045226fe1a">tvm::Target</a>
+: <a class="el" href="classtvm_1_1Target.html#a77f3d7cc97d8cfd7172af58b4e784d89">tvm::Target</a>
</li>
<li>target
: <a class="el" href="classtvm_1_1VirtualDeviceNode.html#a8b2d427d9e21886ccaeaae5e9cc55aaf">tvm::VirtualDeviceNode</a>
@@ -202,7 +202,7 @@ $(function() {
: <a class="el" href="classtvm_1_1te_1_1Stage.html#ab5fe485e1d730c36b096c060b8d2ef9d">tvm::te::Stage</a>
</li>
<li>Tensorize()
-: <a class="el" href="classtvm_1_1tir_1_1ScheduleNode.html#a66983e2dde6aeb18b443616398fff8bf">tvm::tir::ScheduleNode</a>
+: <a class="el" href="classtvm_1_1tir_1_1ScheduleNode.html#afa67abdb51145a49d42cd1464429d928">tvm::tir::ScheduleNode</a>
</li>
<li>TensorNode()
: <a class="el" href="classtvm_1_1te_1_1TensorNode.html#a153569448cb1bf9d2924d35639c3b8b8">tvm::te::TensorNode</a>
@@ -1434,7 +1434,7 @@ $(function() {
<li>TVMPODValue_
: <a class="el" href="classtvm_1_1runtime_1_1NDArray.html#a9a9fd94393cfd7d4b6e6029348e3e19a">tvm::runtime::NDArray</a>
, <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#a9a9fd94393cfd7d4b6e6029348e3e19a">tvm::runtime::ObjectPtr< T ></a>
-, <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#afe1837bdbafe8341c2031c5cebcf6e74">tvm::runtime::TVMPODValue_</a>
+, <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#a2f46b59a6c1d5eb4575d7f583b5f1a0c">tvm::runtime::TVMPODValue_</a>
</li>
<li>TVMRetValue
: <a class="el" href="classtvm_1_1BaseAttrsNode.html#a1f56f080d0c1fab79d9469029aef8ebb">tvm::BaseAttrsNode</a>
@@ -1443,7 +1443,7 @@ $(function() {
, <a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::ObjectPtr< T ></a>
, <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::ObjectRef</a>
, <a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::TVMPODValue_</a>
-, <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#ac4a3850c0989e7c2d5cd8e0f096d0997">tvm::runtime::TVMRetValue</a>
+, <a class="el" href="classtvm_1_1runtime_1_1TVMRetValue.html#a77455a8fe7d27b90a01a64f1cd28e9ec">tvm::runtime::TVMRetValue</a>
, <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#ae0ea8b4adc6dab8c74086bceaef6b3e1">tvm::runtime::TypedPackedFunc< R(Args...)></a>
</li>
<li>type
@@ -1512,10 +1512,10 @@ $(function() {
: <a class="el" href="classtvm_1_1TypeData.html#a0a98fd1095812379d2bd1337db1511c1">tvm::TypeData</a>
</li>
<li>TypedEnvFunc()
-: <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a0d72a6fa7263821c14bcd37837998ed9">tvm::TypedEnvFunc< R(Args...)></a>
+: <a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html#a41a6b9014d0feeb628ca7edfd0d26f0b">tvm::TypedEnvFunc< R(Args...)></a>
</li>
<li>TypedPackedFunc()
-: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#af45a2ceff92e6f6c394ea766a45027a0">tvm::runtime::TypedPackedFunc< R(Args...)></a>
+: <a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc_3_01R_07Args_8_8_8_08_4.html#a8941c80982a1b2a289440f3c79bb0ac8">tvm::runtime::TypedPackedFunc< R(Args...)></a>
</li>
<li>TypeIndex2Key()
: <a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">tvm::runtime::Object</a>
@@ -1538,7 +1538,7 @@ $(function() {
: <a class="el" href="classtvm_1_1TypeRelation.html#ac26b1897eab8197ed26606ab81b7403b">tvm::TypeRelation</a>
</li>
<li>TypeReporter()
-: <a class="el" href="classtvm_1_1TypeReporter.html#aa3dc38a3c84d324d0b3a9f358460a091">tvm::TypeReporter</a>
+: <a class="el" href="classtvm_1_1TypeReporter.html#a8e7e05a07f9f7ad9bea91f27afac9051">tvm::TypeReporter</a>
</li>
<li>types
: <a class="el" href="classtvm_1_1TupleAffineTypeNode.html#a30c834b7e1cb64467e6587ac16ebb187">tvm::TupleAffineTypeNode</a>
diff --git a/docs/reference/api/doxygen/functions_u.html b/docs/reference/api/doxygen/functions_u.html
index 9051d7808e..aee008c4c1 100644
--- a/docs/reference/api/doxygen/functions_u.html
+++ b/docs/reference/api/doxygen/functions_u.html
@@ -122,7 +122,7 @@ $(function() {
, <a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html#ae35b2b678760b8da57a43d3ae9c24da5">tvm::auto_scheduler::CostModelNode</a>
, <a class="el" href="classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#a2d7849df6c7dbe93bf363c1d9f860a26">tvm::auto_scheduler::PythonBasedModelNode</a>
, <a class="el" href="classtvm_1_1auto__scheduler_1_1RandomModelNode.html#a7febac6c05d8e2d407f466467769ee32">tvm::auto_scheduler::RandomModelNode</a>
-, <a class="el" href="classtvm_1_1IRModuleNode.html#a94a93385e64ce844299729af6a573015">tvm::IRModuleNode</a>
+, <a class="el" href="classtvm_1_1IRModuleNode.html#abdd8936c6fca33ef9b7c086f8fd58f84">tvm::IRModuleNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html#a1bba32eba84db583fe90d1a5bce085f1">tvm::meta_schedule::CostModelNode</a>
, <a class="el" href="classtvm_1_1meta__schedule_1_1PyCostModelNode.html#a970b00b0eb1bf6b88eea2711b58c4d1d">tvm::meta_schedule::PyCostModelNode</a>
</li>
diff --git a/docs/reference/api/doxygen/functions_v.html b/docs/reference/api/doxygen/functions_v.html
index fb001dd8ba..d89e83edba 100644
--- a/docs/reference/api/doxygen/functions_v.html
+++ b/docs/reference/api/doxygen/functions_v.html
@@ -648,7 +648,7 @@ $(function() {
: <a class="el" href="classtvm_1_1tir_1_1DataTypeLegalizer.html#a87e951cbdf97e52218f21db3fbbfaf38">tvm::tir::DataTypeLegalizer</a>
, <a class="el" href="classtvm_1_1tir_1_1IndexDataTypeRewriter.html#a8211e1dfd891b02917bd99531c8f22b2">tvm::tir::IndexDataTypeRewriter</a>
, <a class="el" href="classtvm_1_1tir_1_1StmtFunctor_3_01R_07const_01Stmt_01_6n_00_01Args_8_8_8_01args_08_4.html#a5d6146f080b95f73d41be3a2af34c934">tvm::tir::StmtFunctor< R(const Stmt &n, Args... args)></a>
-, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a51d66e88ec3779c117bab5ba9406091c">tvm::tir::StmtMutator</a>
+, <a class="el" href="classtvm_1_1tir_1_1StmtMutator.html#a60b18d6d6bfcb692ab4a369465a175a3">tvm::tir::StmtMutator</a>
, <a class="el" href="classtvm_1_1tir_1_1StmtVisitor.html#a54d994b1b7deb653e908ff5e59bb691e">tvm::tir::StmtVisitor</a>
</li>
<li>VisitStmtDefault_()
@@ -663,9 +663,9 @@ $(function() {
, <a class="el" href="classtvm_1_1TypeMutator.html#a84e824911927d98e20a338eab8b75a45">tvm::TypeMutator</a>
</li>
<li>VisitType_()
-: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#ae4061c0c04da5b6c889842506c2d5091">tvm::TypeFunctor< R(const Type &n, Args...)></a>
-, <a class="el" href="classtvm_1_1TypeMutator.html#ad4ad7209f8789568e5e57870f0b758f0">tvm::TypeMutator</a>
-, <a class="el" href="classtvm_1_1TypeVisitor.html#a3ed59cee793514b568fa0e9cb0ca437c">tvm::TypeVisitor</a>
+: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a0e715c54558934e4504c366ff803d8e1">tvm::TypeFunctor< R(const Type &n, Args...)></a>
+, <a class="el" href="classtvm_1_1TypeMutator.html#ab270cb7a0d9af50362137c1d68d32276">tvm::TypeMutator</a>
+, <a class="el" href="classtvm_1_1TypeVisitor.html#ae699be9a6ed94a635c315506e0c2a6d2">tvm::TypeVisitor</a>
</li>
<li>VisitTypeDefault_()
: <a class="el" href="classtvm_1_1TypeFunctor_3_01R_07const_01Type_01_6n_00_01Args_8_8_8_08_4.html#a91553f9e04c39b3821a70ae4f7b0c597">tvm::TypeFunctor< R(const Type &n, Args...)></a>
@@ -687,7 +687,7 @@ $(function() {
: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFrame.html#a8f8c990ee4fa7cb7472f5440f2ca3bde">tvm::runtime::vm::VMFrame</a>
</li>
<li>VMFunction()
-: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#af9d2bdcf19642c21bc4909b9e9b6196d">tvm::runtime::vm::VMFunction</a>
+: <a class="el" href="structtvm_1_1runtime_1_1vm_1_1VMFunction.html#aea763069fe1dd6849ce0d1ec336931e0">tvm::runtime::vm::VMFunction</a>
</li>
<li>Void()
: <a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab8dc0832aff8fd7421884c0fe20a3bfd">tvm::runtime::DataType</a>
diff --git a/docs/reference/api/doxygen/functions_vars_s.html b/docs/reference/api/doxygen/functions_vars_s.html
index 12d34b1731..5baddd83e4 100644
--- a/docs/reference/api/doxygen/functions_vars_s.html
+++ b/docs/reference/api/doxygen/functions_vars_s.html
@@ -431,6 +431,9 @@ $(function() {
<li>sync_handle
: <a class="el" href="structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c">TVMParallelGroupEnv</a>
</li>
+<li>syntax_sugar
+: <a class="el" href="classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b">tvm::PrinterConfigNode</a>
+</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
diff --git a/docs/reference/api/doxygen/ir_2expr_8h_source.html b/docs/reference/api/doxygen/ir_2expr_8h_source.html
index cdf0727b3c..be78f3cb6b 100644
--- a/docs/reference/api/doxygen/ir_2expr_8h_source.html
+++ b/docs/reference/api/doxygen/ir_2expr_8h_source.html
@@ -83,7 +83,7 @@ $(function() {
<div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Runtime String container types. </div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1TVMPODValue___html"><div class="ttname"><a href="classtvm_1_1runtime_1_1TVMPODValue__.html">tvm::runtime::TVMPODValue_</a></div><div class="ttdoc">Internal base class to handle conversion to POD values. </div><div class="ttdef"><b>Definition:</b> packed_func.h:541</div></div>
<div class="ttc" id="classtvm_1_1RangeNode_html_a7903313f813a5cb7660a5448e2eeb2b4"><div class="ttname"><a href="classtvm_1_1RangeNode.html#a7903313f813a5cb7660a5448e2eeb2b4">tvm::RangeNode::SHashReduce</a></div><div class="ttdeci">void SHashReduce(SHashReducer hash_reduce) const</div><div class="ttdef"><b>Definition:</b> expr.h:703</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
<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="classtvm_1_1BaseExprNode_html_a13d7d1f1e6f790951caf200cd59c3620"><div class="ttname"><a href="classtvm_1_1BaseExprNode.html#a13d7d1f1e6f790951caf200cd59c3620">tvm::BaseExprNode::_type_has_method_shash_reduce</a></div><div class="ttdeci">static constexpr const bool _type_has_method_shash_reduce</div><div class="ttdef"><b>Definition:</b> expr.h:59</div></div>
<div class="ttc" id="classtvm_1_1Integer_html_a2d3969d98441b5b2ee5d8a986a56c410"><div class="ttname"><a href="classtvm_1_1Integer.html#a2d3969d98441b5b2ee5d8a986a56c410">tvm::Integer::Integer</a></div><div class="ttdeci">Integer()</div><div class="ttdef"><b>Definition:</b> expr.h:624</div></div>
@@ -151,7 +151,7 @@ $(function() {
<div class="ttc" id="classtvm_1_1Integer_html_a1e099442e256b242fe8e2e2a49c1dc33"><div class="ttname"><a href="classtvm_1_1Integer.html#a1e099442e256b242fe8e2e2a49c1dc33">tvm::Integer::operator!=</a></div><div class="ttdeci">Bool operator!=(Enum other) const</div><div class="ttdef"><b>Definition:</b> expr.h:674</div></div>
<div class="ttc" id="namespacetvm_1_1relay_html_a661d95f170bca230773914caeef3fe52"><div class="ttname"><a href="namespacetvm_1_1relay.html#a661d95f170bca230773914caeef3fe52">tvm::relay::Type</a></div><div class="ttdeci">tvm::Type Type</div><div class="ttdef"><b>Definition:</b> type.h:47</div></div>
<div class="ttc" id="classtvm_1_1IntImmNode_html_ab9008e3e269a0e136b040ba3c6a906e0"><div class="ttname"><a href="classtvm_1_1IntImmNode.html#ab9008e3e269a0e136b040ba3c6a906e0">tvm::IntImmNode::SHashReduce</a></div><div class="ttdeci">void SHashReduce(SHashReducer hash_reduce) const</div><div class="ttdef"><b>Definition:</b> expr.h:506</div></div>
-<div class="ttc" id="script__printer_8h_html_aeb27774525547e9a0656235a3506bbed"><div class="ttname"><a href="script__printer_8h.html#aeb27774525547e9a0656235a3506bbed">TVM_OBJECT_ENABLE_SCRIPT_PRINTER</a></div><div class="ttdeci">#define TVM_OBJECT_ENABLE_SCRIPT_PRINTER()</div><div class="ttdef"><b>Definition:</b> script_printer.h:99</div></div>
+<div class="ttc" id="script__printer_8h_html_aeb27774525547e9a0656235a3506bbed"><div class="ttname"><a href="script__printer_8h.html#aeb27774525547e9a0656235a3506bbed">TVM_OBJECT_ENABLE_SCRIPT_PRINTER</a></div><div class="ttdeci">#define TVM_OBJECT_ENABLE_SCRIPT_PRINTER()</div><div class="ttdef"><b>Definition:</b> script_printer.h:102</div></div>
<div class="ttc" id="namespacetvm_html_a5530417da455bd46f5dc55f27d69bcdf"><div class="ttname"><a href="namespacetvm.html#a5530417da455bd46f5dc55f27d69bcdf">tvm::operator>=</a></div><div class="ttdeci">PrimExpr operator>=(PrimExpr a, PrimExpr b)</div><div class="ttdoc">greater_equal </div></div>
<div class="ttc" id="classtvm_1_1Integer_html_a49869e0f187d66dcd00568d3e953fc04"><div class="ttname"><a href="classtvm_1_1Integer.html#a49869e0f187d66dcd00568d3e953fc04">tvm::Integer::operator!=</a></div><div class="ttdeci">Bool operator!=(int other) const</div><div class="ttdef"><b>Definition:</b> expr.h:668</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference. </div><div class="ttdef"><b>Definition:</b> object.h:511</div></div>
diff --git a/docs/reference/api/doxygen/ir_2type_8h_source.html b/docs/reference/api/doxygen/ir_2type_8h_source.html
index b7606c8a2e..6bcafa6f29 100644
--- a/docs/reference/api/doxygen/ir_2type_8h_source.html
+++ b/docs/reference/api/doxygen/ir_2type_8h_source.html
@@ -80,7 +80,7 @@ $(function() {
<div class="ttc" id="classtvm_1_1TypeNode_html_a7b06d502a5162d51bb205691bbb95bb5"><div class="ttname"><a href="classtvm_1_1TypeNode.html#a7b06d502a5162d51bb205691bbb95bb5">tvm::TypeNode::span</a></div><div class="ttdeci">Span span</div><div class="ttdoc">Span that points to the original source code. Reserved debug information. </div><div class="ttdef"><b>Definition:</b> type.h:80</div></div>
<div class="ttc" id="classtvm_1_1PrimTypeNode_html_a3095121c58f824e258f2ac2f345ae7d1"><div class="ttname"><a href="classtvm_1_1PrimTypeNode.html#a3095121c58f824e258f2ac2f345ae7d1">tvm::PrimTypeNode::dtype</a></div><div class="ttdeci">runtime::DataType dtype</div><div class="ttdoc">The corresponding dtype field. </div><div class="ttdef"><b>Definition:</b> type.h:111</div></div>
<div class="ttc" id="classtvm_1_1TypeVarNode_html_a098a0b4e2ad1f3c8010a66bef2585ec4"><div class="ttname"><a href="classtvm_1_1TypeVarNode.html#a098a0b4e2ad1f3c8010a66bef2585ec4">tvm::TypeVarNode::SEqualReduce</a></div><div class="ttdeci">bool SEqualReduce(const TypeVarNode *other, SEqualReducer equal) const</div><div class="ttdef"><b>Definition:</b> type.h:264</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
<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="classtvm_1_1TypeVarNode_html_a1ff00c9482ca9e0366e40237180189c7"><div class="ttname"><a href="classtvm_1_1TypeVarNode.html#a1ff00c9482ca9e0366e40237180189c7">tvm::TypeVarNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> type.h:258</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>
diff --git a/docs/reference/api/doxygen/ir__docsifier_8h_source.html b/docs/reference/api/doxygen/ir__docsifier_8h_source.html
index 5d94b46f10..0706bbbda8 100644
--- a/docs/reference/api/doxygen/ir__docsifier_8h_source.html
+++ b/docs/reference/api/doxygen/ir__docsifier_8h_source.html
@@ -114,7 +114,7 @@ $(function() {
<div class="ttc" id="classtvm_1_1runtime_1_1Optional_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Optional.html">tvm::runtime::Optional</a></div><div class="ttdoc">Optional container that to represent to a Nullable variant of T. </div><div class="ttdef"><b>Definition:</b> optional.h:51</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FrameNode_html_a719603ac48e31bf4ee68a36b5716413c"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FrameNode.html#a719603ac48e31bf4ee68a36b5716413c">tvm::script::printer::FrameNode::AddExitCallback</a></div><div class="ttdeci">void AddExitCallback(TCallback &&cb)</div><div class="ttdoc">Add a callback function to be called when this frame exits. </div><div class="ttdef"><b>Definition:</b> ir_docsifier.h:72</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1IRDocsifierNode_html_a565f9fb59cfdd54522b3d206ba076ef4"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1IRDocsifierNode.html#a565f9fb59cfdd54522b3d206ba076ef4">tvm::script::printer::IRDocsifierNode::defined_names</a></div><div class="ttdeci">std::unordered_set< String > defined_names</div><div class="ttdoc">The variable names used already. </div><div class="ttdef"><b>Definition:</b> ir_docsifier.h:149</div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfig_html"><div class="ttname"><a href="classtvm_1_1PrinterConfig.html">tvm::PrinterConfig</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:81</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfig_html"><div class="ttname"><a href="classtvm_1_1PrinterConfig.html">tvm::PrinterConfig</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:84</div></div>
<div class="ttc" id="classtvm_1_1script_1_1printer_1_1FrameNode_html_a4e7e02f9ccd2e44cce2f2802910bfb23"><div class="ttname"><a href="classtvm_1_1script_1_1printer_1_1FrameNode.html#a4e7e02f9ccd2e44cce2f2802910bfb23">tvm::script::printer::FrameNode::ExitWithScope</a></div><div class="ttdeci">virtual void ExitWithScope()</div><div class="ttdoc">Method that&#39;s called when Frame exits the scope. </div><div class="ttdef"><b>Definition:</b> ir_docsifier.h:256</div></div>
<div class="ttc" id="doc_8h_html"><div class="ttname"><a href="doc_8h.html">doc.h</a></div></div>
<div class="ttc" id="structtvm_1_1script_1_1printer_1_1IRDocsifierNode_1_1VariableInfo_html_a551d25343e3a60ba2527312be97da349"><div class="ttname"><a href="structtvm_1_1script_1_1printer_1_1IRDocsifierNode_1_1VariableInfo.html#a551d25343e3a60ba2527312be97da349">tvm::script::printer::IRDocsifierNode::VariableInfo::name</a></div><div class="ttdeci">Optional< String > name</div><div class="ttdoc">The name of the variable. </div><div class="ttdef"><b>Definition:</b> ir_docsifier.h:128< [...]
diff --git a/docs/reference/api/doxygen/relay_2base_8h_source.html b/docs/reference/api/doxygen/relay_2base_8h_source.html
index 3dde19ed40..4426131de5 100644
--- a/docs/reference/api/doxygen/relay_2base_8h_source.html
+++ b/docs/reference/api/doxygen/relay_2base_8h_source.html
@@ -69,7 +69,7 @@ $(function() {
<a href="relay_2base_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or more [...]
<div class="ttc" id="classtvm_1_1SHashReducer_html_a6cab7ab9b4adbab253001be6d3b4cdfe"><div class="ttname"><a href="classtvm_1_1SHashReducer.html#a6cab7ab9b4adbab253001be6d3b4cdfe">tvm::SHashReducer::FreeVarHashImpl</a></div><div class="ttdeci">void FreeVarHashImpl(const runtime::Object *var) const</div><div class="ttdoc">Implementation for hash for a free var. </div><div class="ttdef"><b>Definition:</b> structural_hash.h:185</div></div>
<div class="ttc" id="node_8h_html"><div class="ttname"><a href="node_8h.html">node.h</a></div><div class="ttdoc">Definitions and helper macros for IR/AST nodes. </div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
<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="classtvm_1_1relay_1_1IdNode_html"><div class="ttname"><a href="classtvm_1_1relay_1_1IdNode.html">tvm::relay::IdNode</a></div><div class="ttdoc">The unique identifier of variables. </div><div class="ttdef"><b>Definition:</b> base.h:89</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>
diff --git a/docs/reference/api/doxygen/script__printer_8h_source.html b/docs/reference/api/doxygen/script__printer_8h_source.html
index e4a7c96b4b..ab049a4f12 100644
--- a/docs/reference/api/doxygen/script__printer_8h_source.html
+++ b/docs/reference/api/doxygen/script__printer_8h_source.html
@@ -66,27 +66,28 @@ $(function() {
<div class="title">script_printer.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="script__printer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or [...]
-<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a977a3ed2d33dfff1c124a770840f973c"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a977a3ed2d33dfff1c124a770840f973c">tvm::PrinterConfigNode::num_context_lines</a></div><div class="ttdeci">int num_context_lines</div><div class="ttdef"><b>Definition:</b> script_printer.h:61</div></div>
+<a href="script__printer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or [...]
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a977a3ed2d33dfff1c124a770840f973c"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a977a3ed2d33dfff1c124a770840f973c">tvm::PrinterConfigNode::num_context_lines</a></div><div class="ttdeci">int num_context_lines</div><div class="ttdoc">Number of context lines to print around the underlined text. </div><div class="ttdef"><b>Definition:</b> script_printer.h:61</div></div>
<div class="ttc" id="object_8h_html_a98fa3013ab23958a9f05200330e35805"><div class="ttname"><a href="object_8h.html#a98fa3013ab23958a9f05200330e35805">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:758</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a2148a7bfe39c1cc3c645da5a00fc122c"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a2148a7bfe39c1cc3c645da5a00fc122c">tvm::PrinterConfigNode::tir_prefix</a></div><div class="ttdeci">std::string tir_prefix</div><div class="ttdoc">The prefix of TIR nodes. </div><div class="ttdef"><b>Definition:</b> script_printer.h:41</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html">tvm::PrinterConfigNode</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:36</div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a91c90f8090acb5b755c0ba3066e6fb74"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a91c90f8090acb5b755c0ba3066e6fb74">tvm::PrinterConfigNode::indent_spaces</a></div><div class="ttdeci">int indent_spaces</div><div class="ttdef"><b>Definition:</b> script_printer.h:57</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a91c90f8090acb5b755c0ba3066e6fb74"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a91c90f8090acb5b755c0ba3066e6fb74">tvm::PrinterConfigNode::indent_spaces</a></div><div class="ttdeci">int indent_spaces</div><div class="ttdoc">Number of spaces used for indentation. </div><div class="ttdef"><b>Definition:</b> script_printer.h:57</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_ab8dc0832aff8fd7421884c0fe20a3bfd"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#ab8dc0832aff8fd7421884c0fe20a3bfd">tvm::runtime::DataType::Void</a></div><div class="ttdeci">static DataType Void()</div><div class="ttdoc">Construct a Void type. </div><div class="ttdef"><b>Definition:</b> data_type.h:203</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_1PrinterConfigNode_html_ab2b6752383c2a0bd8cda8287efdf79b0"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#ab2b6752383c2a0bd8cda8287efdf79b0">tvm::PrinterConfigNode::path_to_underline</a></div><div class="ttdeci">Optional< ObjectPath > path_to_underline</div><div class="ttdef"><b>Definition:</b> script_printer.h:63</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_ab2b6752383c2a0bd8cda8287efdf79b0"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#ab2b6752383c2a0bd8cda8287efdf79b0">tvm::PrinterConfigNode::path_to_underline</a></div><div class="ttdeci">Optional< ObjectPath > path_to_underline</div><div class="ttdoc">Object path to be underlined. </div><div class="ttdef"><b>Definition:</b> script_printer.h:63</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_ac448fdfedc5307fdd0fd7c63601398c6"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#ac448fdfedc5307fdd0fd7c63601398c6">tvm::PrinterConfigNode::float_dtype</a></div><div class="ttdeci">DataType float_dtype</div><div class="ttdoc">Default data type of float literals. Right now we always print out the explicit type of floating poin...</div><div class="ttdef"><b>Definition:</b> script_printer.h:53</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a413eca72f3a8ae62d5adbbf43066fd5a"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a413eca72f3a8ae62d5adbbf43066fd5a">tvm::PrinterConfigNode::int_dtype</a></div><div class="ttdeci">DataType int_dtype</div><div class="ttdoc">Default data type of integer literals. </div><div class="ttdef"><b>Definition:</b> script_printer.h:47</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1Object_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></div><div class="ttdoc">base class of all object containers. </div><div class="ttdef"><b>Definition:</b> object.h:167</div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a326fadb110a4356ccd783ed0e0b26733"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a326fadb110a4356ccd783ed0e0b26733">tvm::PrinterConfigNode::print_line_numbers</a></div><div class="ttdeci">bool print_line_numbers</div><div class="ttdef"><b>Definition:</b> script_printer.h:59</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a326fadb110a4356ccd783ed0e0b26733"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a326fadb110a4356ccd783ed0e0b26733">tvm::PrinterConfigNode::print_line_numbers</a></div><div class="ttdeci">bool print_line_numbers</div><div class="ttdoc">Whether to print line numbers. </div><div class="ttdef"><b>Definition:</b> script_printer.h:59</div></div>
<div class="ttc" id="classtvm_1_1AttrVisitor_html"><div class="ttname"><a href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a></div><div class="ttdoc">Visitor class to get the attributes of an AST/IR node. The content is going to be called for each fie...</div><div class="ttdef"><b>Definition:</b> reflection.h:52</div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a0e0accb21b68ee692b61db436558297f"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a0e0accb21b68ee692b61db436558297f">tvm::PrinterConfigNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> script_printer.h:77</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a0e0accb21b68ee692b61db436558297f"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a0e0accb21b68ee692b61db436558297f">tvm::PrinterConfigNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> script_printer.h:80</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a434403f4e4cb71c75a7be8cba4845901"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a434403f4e4cb71c75a7be8cba4845901">tvm::PrinterConfigNode::verbose_expr</a></div><div class="ttdeci">bool verbose_expr</div><div class="ttdoc">Whether or not to verbose print expressions. </div><div class="ttdef"><b>Definition:</b> script_printer.h:55</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type. </div><div class="ttdef"><b>Definition:</b> data_type.h:41</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_a237a714a6a16e14aa01fa4ac52426551"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#a237a714a6a16e14aa01fa4ac52426551">tvm::runtime::DataType::Float</a></div><div class="ttdeci">static DataType Float(int bits, int lanes=1)</div><div class="ttdoc">Construct an float type. </div><div class="ttdef"><b>Definition:</b> data_type.h:178</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_aed421283ca0da143c00c111d6dca7926"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#aed421283ca0da143c00c111d6dca7926">tvm::PrinterConfigNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(PrinterConfigNode, Object)</div></div>
-<div class="ttc" id="classtvm_1_1TVMScriptPrinter_html"><div class="ttname"><a href="classtvm_1_1TVMScriptPrinter.html">tvm::TVMScriptPrinter</a></div><div class="ttdoc">Legacy behavior of ReprPrinter. </div><div class="ttdef"><b>Definition:</b> script_printer.h:90</div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_af560db7326ce64454f992c9828f4fce8"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#af560db7326ce64454f992c9828f4fce8">tvm::PrinterConfigNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> script_printer.h:65</div></div>
+<div class="ttc" id="classtvm_1_1TVMScriptPrinter_html"><div class="ttname"><a href="classtvm_1_1TVMScriptPrinter.html">tvm::TVMScriptPrinter</a></div><div class="ttdoc">Legacy behavior of ReprPrinter. </div><div class="ttdef"><b>Definition:</b> script_printer.h:93</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_a518824def075339074d4451a79e3dd9b"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b">tvm::PrinterConfigNode::syntax_sugar</a></div><div class="ttdeci">bool syntax_sugar</div><div class="ttdoc">Whether to output with syntax sugar, set false for complete printing. </div><div class="ttdef"><b>Definition:</b> script_printer.h:65</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_af560db7326ce64454f992c9828f4fce8"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#af560db7326ce64454f992c9828f4fce8">tvm::PrinterConfigNode::VisitAttrs</a></div><div class="ttdeci">void VisitAttrs(AttrVisitor *v)</div><div class="ttdef"><b>Definition:</b> script_printer.h:67</div></div>
<div class="ttc" id="functor_8h_html"><div class="ttname"><a href="functor_8h.html">functor.h</a></div><div class="ttdoc">Defines the Functor data structures. </div></div>
<div class="ttc" id="object__path_8h_html"><div class="ttname"><a href="object__path_8h.html">object_path.h</a></div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference. </div><div class="ttdef"><b>Definition:</b> object.h:511</div></div>
@@ -96,7 +97,7 @@ $(function() {
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_ab16ceb4c8fb205dbd8493273cedd5326"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#ab16ceb4c8fb205dbd8493273cedd5326">tvm::PrinterConfigNode::relax_prefix</a></div><div class="ttdeci">std::string relax_prefix</div><div class="ttdoc">The prefix of Relax nodes. </div><div class="ttdef"><b>Definition:</b> script_printer.h:43</div></div>
<div class="ttc" id="namespacetvm_html_aae7034e3e41c18e7fb78ff32bfc6a318"><div class="ttname"><a href="namespacetvm.html#aae7034e3e41c18e7fb78ff32bfc6a318">tvm::NullOpt</a></div><div class="ttdeci">constexpr runtime::NullOptType NullOpt</div><div class="ttdef"><b>Definition:</b> optional.h:160</div></div>
<div class="ttc" id="reflection_8h_html"><div class="ttname"><a href="reflection_8h.html">reflection.h</a></div><div class="ttdoc">Reflection and serialization of compiler IR/AST nodes. </div></div>
-<div class="ttc" id="classtvm_1_1PrinterConfig_html"><div class="ttname"><a href="classtvm_1_1PrinterConfig.html">tvm::PrinterConfig</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:81</div></div>
+<div class="ttc" id="classtvm_1_1PrinterConfig_html"><div class="ttname"><a href="classtvm_1_1PrinterConfig.html">tvm::PrinterConfig</a></div><div class="ttdef"><b>Definition:</b> script_printer.h:84</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html_ab45f13dd70d982d9f977c79b6f7fac98"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">tvm::runtime::DataType::Int</a></div><div class="ttdeci">static DataType Int(int bits, int lanes=1)</div><div class="ttdoc">Construct an int type. </div><div class="ttdef"><b>Definition:</b> data_type.h:164</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_afeed5ce9bf46b8e845dfd027103ef24b"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#afeed5ce9bf46b8e845dfd027103ef24b">tvm::PrinterConfigNode::ir_prefix</a></div><div class="ttdeci">std::string ir_prefix</div><div class="ttdoc">The prefix of IR nodes. </div><div class="ttdef"><b>Definition:</b> script_printer.h:39</div></div>
<div class="ttc" id="classtvm_1_1PrinterConfigNode_html_aea1a1880a6566f3088af1e2c69ae2b05"><div class="ttname"><a href="classtvm_1_1PrinterConfigNode.html#aea1a1880a6566f3088af1e2c69ae2b05">tvm::PrinterConfigNode::buffer_dtype</a></div><div class="ttdeci">DataType buffer_dtype</div><div class="ttdoc">Default data type of TIR buffer. </div><div class="ttdef"><b>Definition:</b> script_printer.h:45</div></div>
diff --git a/docs/reference/api/doxygen/search/all_11.js b/docs/reference/api/doxygen/search/all_11.js
index 266995d5d5..29e0b1c3d0 100644
--- a/docs/reference/api/doxygen/search/all_11.js
+++ b/docs/reference/api/doxygen/search/all_11.js
@@ -166,7 +166,7 @@ var searchData=
['predict_5ffunc',['predict_func',['../classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#aa051c804bc592d7f4f1a5b5710f73595',1,'tvm::auto_scheduler::PythonBasedModelNode']]],
['predict_5fstage_5ffunc',['predict_stage_func',['../classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#a380809fbb5d4d68b9ec744e3a5015fe6',1,'tvm::auto_scheduler::PythonBasedModelNode']]],
['predictstages',['PredictStages',['../classtvm_1_1auto__scheduler_1_1CostModelNode.html#a213222251099444874698d2e9ff18adc',1,'tvm::auto_scheduler::CostModelNode::PredictStages()'],['../classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#a1f9975c4bdd61793b806663a61a9a703',1,'tvm::auto_scheduler::PythonBasedModelNode::PredictStages()']]],
- ['prefetch',['Prefetch',['../classtvm_1_1tir_1_1Prefetch.html',1,'tvm::tir::Prefetch'],['../classtvm_1_1tir_1_1Prefetch.html#af462f85dad4268685e3113b6b009d1b2',1,'tvm::tir::Prefetch::Prefetch()'],['../classtvm_1_1te_1_1Stage.html#a611327890918fb641a8e65396ab9c5f6',1,'tvm::te::Stage::prefetch()'],['../namespacetvm_1_1tir_1_1builtin.html#a543f1fc334d2bc830add972895a03f17',1,'tvm::tir::builtin::prefetch()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#aeb707d56c770edb33ebf73da27 [...]
+ ['prefetch',['Prefetch',['../classtvm_1_1tir_1_1Prefetch.html',1,'tvm::tir::Prefetch'],['../classtvm_1_1te_1_1Stage.html#a611327890918fb641a8e65396ab9c5f6',1,'tvm::te::Stage::prefetch()'],['../classtvm_1_1tir_1_1Prefetch.html#af462f85dad4268685e3113b6b009d1b2',1,'tvm::tir::Prefetch::Prefetch()'],['../namespacetvm_1_1tir_1_1builtin.html#a543f1fc334d2bc830add972895a03f17',1,'tvm::tir::builtin::prefetch()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#aeb707d56c770edb33ebf73da27 [...]
['prefetch_5fdata',['prefetch_data',['../classtvm_1_1te_1_1IterVarAttrNode.html#a0cd129334ac1bc8d6461fb06be67e731',1,'tvm::te::IterVarAttrNode']]],
['prefetch_5foffset',['prefetch_offset',['../classtvm_1_1te_1_1IterVarAttrNode.html#a2a4a8e201e6caefeecffd4a7647866fd',1,'tvm::te::IterVarAttrNode']]],
['prefetch_5fscope',['prefetch_scope',['../namespacetvm_1_1tir_1_1attr.html#ac95fbd1c09a60b10c7a5d07f6c4b68a6',1,'tvm::tir::attr']]],
diff --git a/docs/reference/api/doxygen/search/all_13.js b/docs/reference/api/doxygen/search/all_13.js
index 61dab67999..d2f5b07293 100644
--- a/docs/reference/api/doxygen/search/all_13.js
+++ b/docs/reference/api/doxygen/search/all_13.js
@@ -200,7 +200,7 @@ var searchData=
['rewritetensorize',['RewriteTensorize',['../classtvm_1_1meta__schedule_1_1Postproc.html#a95db036cfced4c2575367a26a41498ff',1,'tvm::meta_schedule::Postproc']]],
['rewriteunboundblock',['RewriteUnboundBlock',['../classtvm_1_1meta__schedule_1_1Postproc.html#a1836b2278bc24fdc227c490896d92980',1,'tvm::meta_schedule::Postproc']]],
['rewriteunsafeselect',['RewriteUnsafeSelect',['../namespacetvm_1_1tir_1_1transform.html#a4fe43327c4454dd05b6e925577443f49',1,'tvm::tir::transform']]],
- ['rfactor',['rfactor',['../classtvm_1_1auto__scheduler_1_1State.html#a21c27b06d439267f8b981fa05c5f48a0',1,'tvm::auto_scheduler::State::rfactor()'],['../classtvm_1_1te_1_1Schedule.html#a34ae85add41bbed0140726d024d08862',1,'tvm::te::Schedule::rfactor()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ab185c8eac1065290d84d58e7f4617232',1,'tvm::tir::ScheduleNode::RFactor()']]],
+ ['rfactor',['RFactor',['../classtvm_1_1tir_1_1ScheduleNode.html#ab185c8eac1065290d84d58e7f4617232',1,'tvm::tir::ScheduleNode::RFactor()'],['../classtvm_1_1auto__scheduler_1_1State.html#a21c27b06d439267f8b981fa05c5f48a0',1,'tvm::auto_scheduler::State::rfactor()'],['../classtvm_1_1te_1_1Schedule.html#a34ae85add41bbed0140726d024d08862',1,'tvm::te::Schedule::rfactor()']]],
['rfactorstep',['RfactorStep',['../classtvm_1_1auto__scheduler_1_1RfactorStep.html',1,'tvm::auto_scheduler::RfactorStep'],['../classtvm_1_1auto__scheduler_1_1RfactorStep.html#a26e6f85b55307f18fab4469e3bd4be0c',1,'tvm::auto_scheduler::RfactorStep::RfactorStep(int stage_id, int iter_id, int factor_iter_id)'],['../classtvm_1_1auto__scheduler_1_1RfactorStep.html#a95575c21441177634178245ab562cb4f',1,'tvm::auto_scheduler::RfactorStep::RfactorStep(dmlc::JSONReader *reader)']]],
['rfactorstepnode',['RfactorStepNode',['../classtvm_1_1auto__scheduler_1_1RfactorStepNode.html',1,'tvm::auto_scheduler']]],
['rhs',['rhs',['../classtvm_1_1relay_1_1ClauseNode.html#a93217eeea15c1f7c1a659da3da86d3bd',1,'tvm::relay::ClauseNode::rhs()'],['../classtvm_1_1script_1_1printer_1_1AssignDocNode.html#a436fcace00d445213fc367ece59c4067',1,'tvm::script::printer::AssignDocNode::rhs()'],['../classtvm_1_1script_1_1printer_1_1ForDocNode.html#aa72614136675287310ea08520f596642',1,'tvm::script::printer::ForDocNode::rhs()'],['../classtvm_1_1script_1_1printer_1_1ScopeDocNode.html#abf3636ac2820118a3d48f2fea32b2b0b' [...]
diff --git a/docs/reference/api/doxygen/search/all_14.js b/docs/reference/api/doxygen/search/all_14.js
index 82a741c438..e6044ff4c0 100644
--- a/docs/reference/api/doxygen/search/all_14.js
+++ b/docs/reference/api/doxygen/search/all_14.js
@@ -107,7 +107,7 @@ var searchData=
['seq_5findex',['seq_index',['../classtvm_1_1tir_1_1StmtSRefNode.html#a1ce9920064b0c2ed42be0e9412fd3939',1,'tvm::tir::StmtSRefNode']]],
['seqstmt',['SeqStmt',['../classtvm_1_1tir_1_1SeqStmt.html',1,'tvm::tir::SeqStmt'],['../classtvm_1_1tir_1_1SeqStmt.html#afe971b51fb6990008a118d4aa16c0920',1,'tvm::tir::SeqStmt::SeqStmt()']]],
['seqstmtnode',['SeqStmtNode',['../classtvm_1_1tir_1_1SeqStmtNode.html',1,'tvm::tir']]],
- ['sequalhandlerdefault',['SEqualHandlerDefault',['../classtvm_1_1SEqualHandlerDefault.html',1,'tvm::SEqualHandlerDefault'],['../classtvm_1_1SEqualHandlerDefault.html#ac730a1a7785ee29e231eca8815826127',1,'tvm::SEqualHandlerDefault::SEqualHandlerDefault()']]],
+ ['sequalhandlerdefault',['SEqualHandlerDefault',['../classtvm_1_1SEqualHandlerDefault.html',1,'tvm::SEqualHandlerDefault'],['../classtvm_1_1SEqualHandlerDefault.html#a843bd92c063e719d7459228594fc9237',1,'tvm::SEqualHandlerDefault::SEqualHandlerDefault()']]],
['sequalreduce',['SEqualReduce',['../structtvm_1_1detail_1_1ImplSEqualReduce.html#a2069b17f164be27516b0ca7b53b74d49',1,'tvm::detail::ImplSEqualReduce::SEqualReduce()'],['../structtvm_1_1detail_1_1SelectSEqualReduce.html#a6de180df5c5b0cec0e62f75e576259cb',1,'tvm::detail::SelectSEqualReduce::SEqualReduce()'],['../classtvm_1_1arith_1_1ConstIntBoundNode.html#ad7be026c2fbdd9c6fb439d6959300541',1,'tvm::arith::ConstIntBoundNode::SEqualReduce()'],['../classtvm_1_1arith_1_1ModularSetNode.html#a [...]
['sequalreducer',['SEqualReducer',['../classtvm_1_1SEqualReducer.html',1,'tvm::SEqualReducer'],['../classtvm_1_1SEqualReducer.html#abb85d3142af880fb96ae79423e5c382e',1,'tvm::SEqualReducer::SEqualReducer()=default'],['../classtvm_1_1SEqualReducer.html#a97eb296b45fee73c0ff6064c8eebdd7c',1,'tvm::SEqualReducer::SEqualReducer(Handler *handler, const PathTracingData *tracing_data, bool map_free_vars)']]],
['sequence_5fmask',['sequence_mask',['../namespacetvm_1_1topi.html#a037a112cc5c556107797e36e7feb0873',1,'tvm::topi']]],
@@ -180,7 +180,7 @@ var searchData=
['setvalue_3c_20uint64_5ft_20_3e',['SetValue< uint64_t >',['../namespacetvm_1_1detail.html#acb3382242cbf538f64edae13e4ec5a84',1,'tvm::detail']]],
['shallowcopy',['ShallowCopy',['../classtvm_1_1IRModuleNode.html#a86bbdc4b857ce5958a2b5f29e1d6fcb6',1,'tvm::IRModuleNode']]],
['shallowcopyirmodule',['ShallowCopyIRModule',['../classtvm_1_1IRModule.html#aea8b821cf92cf525bd87bf15f5d31889',1,'tvm::IRModule']]],
- ['shape',['shape',['../classtvm_1_1TensorTypeNode.html#a98fa347833e4504dd6f8056d9863a708',1,'tvm::TensorTypeNode::shape()'],['../classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ac16d3b10f7c68eefb27e55e865bb304c',1,'tvm::meta_schedule::TensorInfoNode::shape()'],['../structtvm_1_1relay_1_1InitOpAttrs.html#aaaec76cc5ea9a543c4ea174a6b38bf5e',1,'tvm::relay::InitOpAttrs::shape()'],['../classtvm_1_1relay_1_1ShapePatternNode.html#a749813cbbd38f8021a7df897d527d6e0',1,'tvm::relay::ShapePattern [...]
+ ['shape',['Shape',['../classtvm_1_1runtime_1_1NDArray.html#ad273c7bc59b73fb026fd64fc764cbebc',1,'tvm::runtime::NDArray::Shape()'],['../classtvm_1_1TensorTypeNode.html#a98fa347833e4504dd6f8056d9863a708',1,'tvm::TensorTypeNode::shape()'],['../classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ac16d3b10f7c68eefb27e55e865bb304c',1,'tvm::meta_schedule::TensorInfoNode::shape()'],['../structtvm_1_1relay_1_1InitOpAttrs.html#aaaec76cc5ea9a543c4ea174a6b38bf5e',1,'tvm::relay::InitOpAttrs::shape()' [...]
['shape_5f',['shape_',['../classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html#aa5597a1760c9f8c9d1fd51584b1283fb',1,'tvm::runtime::NDArray::ContainerBase']]],
['shape_5fbackward_5frule',['shape_backward_rule',['../classtvm_1_1tir_1_1BijectiveLayoutNode.html#a0befdd0a2371c0d12970e8ac6623b59b',1,'tvm::tir::BijectiveLayoutNode']]],
['shape_5fcount',['shape_count',['../structTVMGraphExecutorGraphAttr.html#a182b228582f1186f2a15de50a25b3375',1,'TVMGraphExecutorGraphAttr']]],
@@ -229,7 +229,7 @@ var searchData=
['singleton',['Singleton',['../classtvm_1_1te_1_1Singleton.html',1,'tvm::te::Singleton'],['../classtvm_1_1te_1_1Singleton.html#a94450b853dcd5e9865546d8c8fe351a1',1,'tvm::te::Singleton::Singleton()']]],
['singletonnode',['SingletonNode',['../classtvm_1_1te_1_1SingletonNode.html',1,'tvm::te']]],
['sinh',['sinh',['../namespacetvm.html#ad828bc801c73df761c58d9f8877d52ee',1,'tvm::sinh()'],['../namespacetvm_1_1topi.html#af9694f5470ba2cabc19866be3b00fe8d',1,'tvm::topi::sinh()']]],
- ['size',['size',['../structtvm_1_1relay_1_1Resize1DAttrs.html#afb1175c0ff019e485ed65d98305b5f62',1,'tvm::relay::Resize1DAttrs::size()'],['../structtvm_1_1relay_1_1Resize2DAttrs.html#ab3e26dbbc2dc1da40764832a99459c30',1,'tvm::relay::Resize2DAttrs::size()'],['../structtvm_1_1relay_1_1Resize3DAttrs.html#aab61649fe8417a8a7fbc849090bac083',1,'tvm::relay::Resize3DAttrs::size()'],['../structtvm_1_1relay_1_1LRNAttrs.html#a3758ed1f8a8bcf73008ae1dd2bfa148e',1,'tvm::relay::LRNAttrs::size()'],['.. [...]
+ ['size',['Size',['../classtvm_1_1TensorTypeNode.html#a1f08dac86ae8aea81d058ef64cfd38b4',1,'tvm::TensorTypeNode::Size()'],['../classtvm_1_1meta__schedule_1_1DatabaseNode.html#aae5b9ab9f7e497654b90c23a2159a5cc',1,'tvm::meta_schedule::DatabaseNode::Size()'],['../classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a36817d04978253571fef7d01427ce9c0',1,'tvm::meta_schedule::PyDatabaseNode::Size()'],['../classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html#ae395a0f1c6e79e825aa7a244c74a5d7b',1,' [...]
['size_5f',['size_',['../classtvm_1_1runtime_1_1MapNode.html#a2285f106f6afa29f512a7818ad59e9e5',1,'tvm::runtime::MapNode']]],
['size_5fbytes',['size_bytes',['../structtvm_1_1tir_1_1usmp_1_1BufferInfoNode.html#a0a5d4bd6072c268df05b90d267b4c0a0',1,'tvm::tir::usmp::BufferInfoNode']]],
['size_5fhint_5fbytes',['size_hint_bytes',['../structtvm_1_1PoolInfoNode.html#ac073aeb75bf031ff8687e132bc112f92',1,'tvm::PoolInfoNode::size_hint_bytes()'],['../structtvm_1_1PoolInfoPropertiesNode.html#aed7c5573ffc8db9424e77e3a85cad120',1,'tvm::PoolInfoPropertiesNode::size_hint_bytes()']]],
@@ -258,7 +258,7 @@ var searchData=
['solvelinearequations',['SolveLinearEquations',['../namespacetvm_1_1arith.html#ae0290f04432523ab8e5f76edde80071a',1,'tvm::arith']]],
['solvelinearinequalities',['SolveLinearInequalities',['../namespacetvm_1_1arith.html#ac59d63560e04431f108e81457b212fdc',1,'tvm::arith']]],
['sorted',['sorted',['../structtvm_1_1relay_1_1UniqueAttrs.html#aef434799646533ec9d796393ba01db44',1,'tvm::relay::UniqueAttrs']]],
- ['source',['Source',['../classtvm_1_1Source.html',1,'tvm::Source'],['../classtvm_1_1arith_1_1IterMarkNode.html#a8b885a675c88e5a5d142fa68bcba048a',1,'tvm::arith::IterMarkNode::source()'],['../classtvm_1_1arith_1_1IterSplitExprNode.html#a7a129dc9b432359a07c1a1e286c3c66f',1,'tvm::arith::IterSplitExprNode::source()'],['../classtvm_1_1SourceNode.html#a6a31f8a2bf412edf7a529c5931185529',1,'tvm::SourceNode::source()'],['../classtvm_1_1tir_1_1ReduceNode.html#ab1b5e256aabba3307ccfeb291bb58771',1 [...]
+ ['source',['Source',['../classtvm_1_1Source.html',1,'tvm::Source'],['../classtvm_1_1Source.html#a794f5989e4e89cb39b638a5cd837eaa9',1,'tvm::Source::Source()'],['../classtvm_1_1arith_1_1IterMarkNode.html#a8b885a675c88e5a5d142fa68bcba048a',1,'tvm::arith::IterMarkNode::source()'],['../classtvm_1_1arith_1_1IterSplitExprNode.html#a7a129dc9b432359a07c1a1e286c3c66f',1,'tvm::arith::IterSplitExprNode::source()'],['../classtvm_1_1SourceNode.html#a6a31f8a2bf412edf7a529c5931185529',1,'tvm::SourceNo [...]
['source_5fmap',['source_map',['../classtvm_1_1IRModuleNode.html#abc7bd8d734f093ecb6abe8969d6dbcba',1,'tvm::IRModuleNode::source_map()'],['../classtvm_1_1SourceMapNode.html#abd44bcd7252397ade5584c0387845342',1,'tvm::SourceMapNode::source_map()']]],
['source_5fmap_2eh',['source_map.h',['../source__map_8h.html',1,'']]],
['source_5fname',['source_name',['../classtvm_1_1DiagnosticBuilder.html#a92d320e1ede24fe5ff47862365002691',1,'tvm::DiagnosticBuilder::source_name()'],['../classtvm_1_1SpanNode.html#ad573167f93facbfbee19983b08bbba3d',1,'tvm::SpanNode::source_name()'],['../classtvm_1_1SourceNode.html#ad4002d5ddb822b7340fd16c460a1ec6f',1,'tvm::SourceNode::source_name()']]],
@@ -291,7 +291,7 @@ var searchData=
['specialize',['Specialize',['../namespacetvm_1_1tir.html#a69b6f1b0014dc6e7dd390cff746e9782',1,'tvm::tir']]],
['specializedcondition',['SpecializedCondition',['../classtvm_1_1te_1_1SpecializedCondition.html',1,'tvm::te::SpecializedCondition'],['../classtvm_1_1te_1_1SpecializedCondition.html#a48d119ee1c6033929a5592cfc2592e60',1,'tvm::te::SpecializedCondition::SpecializedCondition()']]],
['specializedconditionnode',['SpecializedConditionNode',['../classtvm_1_1te_1_1SpecializedConditionNode.html',1,'tvm::te']]],
- ['split',['Split',['../classtvm_1_1te_1_1Split.html',1,'tvm::te::Split'],['../classtvm_1_1te_1_1Split.html#a328e0c093ce5b41ebaf33e0e80592764',1,'tvm::te::Split::Split()'],['../classtvm_1_1tir_1_1Layout.html#ad7657af7789fe040d3224c0149976bb4',1,'tvm::tir::Layout::Split()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ac190a0ab76d8754a35209479bcc6dfa2',1,'tvm::tir::ScheduleNode::Split()'],['../classtvm_1_1auto__scheduler_1_1State.html#a5815f21fc90ba7cc379c2410c05ab54c',1,'tvm::auto_schedule [...]
+ ['split',['Split',['../classtvm_1_1te_1_1Split.html',1,'tvm::te::Split'],['../classtvm_1_1auto__scheduler_1_1State.html#a5815f21fc90ba7cc379c2410c05ab54c',1,'tvm::auto_scheduler::State::split()'],['../classtvm_1_1te_1_1Stage.html#a5a7cd562be59b68a187ad97085a3425d',1,'tvm::te::Stage::split()'],['../classtvm_1_1te_1_1Split.html#a328e0c093ce5b41ebaf33e0e80592764',1,'tvm::te::Split::Split()'],['../classtvm_1_1tir_1_1Layout.html#ad7657af7789fe040d3224c0149976bb4',1,'tvm::tir::Layout::Split( [...]
['split_5fby_5fnparts',['split_by_nparts',['../classtvm_1_1te_1_1Stage.html#a51432f38d9ec4792a2525023179ae604',1,'tvm::te::Stage']]],
['split_5fsections',['split_sections',['../namespacetvm_1_1topi.html#acc643e2ed166fa2ed82a95853e145619',1,'tvm::topi']]],
['splitargs',['SplitArgs',['../namespacetvm_1_1relay_1_1transform.html#a2425d757b896168a109498e8d34ba960',1,'tvm::relay::transform']]],
@@ -394,8 +394,8 @@ var searchData=
['store',['Store',['../classtvm_1_1tir_1_1Store.html',1,'tvm::tir::Store'],['../classtvm_1_1tir_1_1Store.html#a2c4278b8bcdae57ada2022ecc7c290c3',1,'tvm::tir::Store::Store()']]],
['store_5fpredicate',['store_predicate',['../classtvm_1_1te_1_1StageNode.html#a8f4ba7f2931b3541c12734af511600a7',1,'tvm::te::StageNode']]],
['storenode',['StoreNode',['../classtvm_1_1tir_1_1StoreNode.html',1,'tvm::tir']]],
- ['str',['str',['../classtvm_1_1TargetNode.html#a30cd67db46a9c4b098a8ba38fff22e26',1,'tvm::TargetNode::str()'],['../classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200',1,'tvm::script::printer::LiteralDoc::Str()']]],
- ['stream',['Stream',['../classtvm_1_1ReprLegacyPrinter.html#a8234b759c989ddac7fb24253d2e1e83d',1,'tvm::ReprLegacyPrinter::Stream()'],['../classtvm_1_1ReprPrinter.html#a036409dcdcf6f0ac5c6d7d27ec60ed94',1,'tvm::ReprPrinter::stream()']]],
+ ['str',['Str',['../classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200',1,'tvm::script::printer::LiteralDoc::Str()'],['../classtvm_1_1TargetNode.html#a30cd67db46a9c4b098a8ba38fff22e26',1,'tvm::TargetNode::str()']]],
+ ['stream',['stream',['../classtvm_1_1ReprPrinter.html#a036409dcdcf6f0ac5c6d7d27ec60ed94',1,'tvm::ReprPrinter::stream()'],['../classtvm_1_1ReprLegacyPrinter.html#a8234b759c989ddac7fb24253d2e1e83d',1,'tvm::ReprLegacyPrinter::Stream()']]],
['streamsync',['StreamSync',['../classtvm_1_1runtime_1_1DeviceAPI.html#ac29b9295c432a87658392872c644864f',1,'tvm::runtime::DeviceAPI']]],
['stride',['stride',['../structtvm_1_1relay_1_1YoloReorgAttrs.html#a720c79759a2f2b603b006b0bfcab5fe0',1,'tvm::relay::YoloReorgAttrs::stride()'],['../classtvm_1_1tir_1_1RampNode.html#a618c78e39d18f999dbdd3fe01436f447',1,'tvm::tir::RampNode::stride()']]],
['stride1',['stride1',['../structtvm_1_1relay_1_1CorrelationAttrs.html#aab5bf45d1aa0972bc1ce5cdb715546ff',1,'tvm::relay::CorrelationAttrs']]],
@@ -434,5 +434,6 @@ var searchData=
['swap',['swap',['../classtvm_1_1runtime_1_1ObjectPtr.html#a0306cc87b99ff5f392fdb90d6aabc70f',1,'tvm::runtime::ObjectPtr']]],
['sync_5fhandle',['sync_handle',['../structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c',1,'TVMParallelGroupEnv']]],
['syncandgetelapsednanos',['SyncAndGetElapsedNanos',['../classtvm_1_1runtime_1_1TimerNode.html#a0d7432265ae9053d8d50507b1ffb55f0',1,'tvm::runtime::TimerNode']]],
- ['syncstreamfromto',['SyncStreamFromTo',['../classtvm_1_1runtime_1_1DeviceAPI.html#a3e455879adb262d3d66945cbe4a5a118',1,'tvm::runtime::DeviceAPI']]]
+ ['syncstreamfromto',['SyncStreamFromTo',['../classtvm_1_1runtime_1_1DeviceAPI.html#a3e455879adb262d3d66945cbe4a5a118',1,'tvm::runtime::DeviceAPI']]],
+ ['syntax_5fsugar',['syntax_sugar',['../classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b',1,'tvm::PrinterConfigNode']]]
];
diff --git a/docs/reference/api/doxygen/search/all_15.js b/docs/reference/api/doxygen/search/all_15.js
index 872f76a515..8d65c7f8a2 100644
--- a/docs/reference/api/doxygen/search/all_15.js
+++ b/docs/reference/api/doxygen/search/all_15.js
@@ -39,7 +39,7 @@ var searchData=
['takeattrs',['TakeAttrs',['../structtvm_1_1relay_1_1TakeAttrs.html',1,'tvm::relay']]],
['tan',['tan',['../namespacetvm.html#af99838098788d40c80b402f29b3c2e8c',1,'tvm::tan()'],['../namespacetvm_1_1topi.html#a13b757fe52775f43a58d91c0a1330f97',1,'tvm::topi::tan()']]],
['tanh',['tanh',['../namespacetvm.html#a12c5457301d8a2c03a2ba1163edd7cee',1,'tvm::tanh()'],['../namespacetvm_1_1topi.html#aec153e599d33c78a7592007cde1c02cb',1,'tvm::topi::tanh()']]],
- ['target',['Target',['../classtvm_1_1Target.html',1,'tvm::Target'],['../classtvm_1_1Target.html#a58a5a1e042e265fe5a6973045226fe1a',1,'tvm::Target::Target(std::nullptr_t)'],['../classtvm_1_1Target.html#a77f3d7cc97d8cfd7172af58b4e784d89',1,'tvm::Target::Target(const String &tag_or_config_or_target_str)'],['../classtvm_1_1Target.html#ab825b350cf478bf948d807b6fdf636a0',1,'tvm::Target::Target(const Map< String, ObjectRef > &config)'],['../classtvm_1_1Target.html#a1abb29217d8e3 [...]
+ ['target',['Target',['../classtvm_1_1Target.html',1,'tvm::Target'],['../classtvm_1_1auto__scheduler_1_1SearchTaskNode.html#acf4407e0c8dced81b05b34ec0426c933',1,'tvm::auto_scheduler::SearchTaskNode::target()'],['../classtvm_1_1meta__schedule_1_1BuilderInputNode.html#afc001f3e427cfc8c05236b615cfd2868',1,'tvm::meta_schedule::BuilderInputNode::target()'],['../classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a45a380cfa2edfd63056fb1a00f9aac35',1,'tvm::meta_schedule::TuningRecordNode::targ [...]
['target_2eh',['target.h',['../target_8h.html',1,'']]],
['target_5fburst_5fbytes',['target_burst_bytes',['../structtvm_1_1PoolInfoNode.html#a747c03e3eafc83b053637b735244c6d7',1,'tvm::PoolInfoNode::target_burst_bytes()'],['../structtvm_1_1PoolInfoPropertiesNode.html#aa1efe29e920f5b003894a2ae3304da17',1,'tvm::PoolInfoPropertiesNode::target_burst_bytes()']]],
['target_5fdata_5ftype_5f',['target_data_type_',['../classtvm_1_1tir_1_1IndexDataTypeNormalizer.html#ac3433736903957d9062b6ebd62cc3a81',1,'tvm::tir::IndexDataTypeNormalizer']]],
@@ -96,7 +96,7 @@ var searchData=
['tensorintrincall',['TensorIntrinCall',['../classtvm_1_1te_1_1TensorIntrinCall.html',1,'tvm::te::TensorIntrinCall'],['../classtvm_1_1te_1_1TensorIntrinCall.html#a91c10074ce6babeba78fe72a0aab4b52',1,'tvm::te::TensorIntrinCall::TensorIntrinCall()']]],
['tensorintrincallnode',['TensorIntrinCallNode',['../classtvm_1_1te_1_1TensorIntrinCallNode.html',1,'tvm::te']]],
['tensorintrinnode',['TensorIntrinNode',['../classtvm_1_1te_1_1TensorIntrinNode.html',1,'tvm::te::TensorIntrinNode'],['../classtvm_1_1tir_1_1TensorIntrinNode.html',1,'tvm::tir::TensorIntrinNode'],['../classtvm_1_1te_1_1TensorIntrinNode.html#ad59e7f2b881fc798a8c64fd3959f929c',1,'tvm::te::TensorIntrinNode::TensorIntrinNode()']]],
- ['tensorize',['tensorize',['../classtvm_1_1te_1_1Stage.html#ab5fe485e1d730c36b096c060b8d2ef9d',1,'tvm::te::Stage::tensorize()'],['../classtvm_1_1tir_1_1ScheduleNode.html#a66983e2dde6aeb18b443616398fff8bf',1,'tvm::tir::ScheduleNode::Tensorize(const LoopRV &loop_rv, const String &intrin, bool preserve_unit_iters=true)=0'],['../classtvm_1_1tir_1_1ScheduleNode.html#afa67abdb51145a49d42cd1464429d928',1,'tvm::tir::ScheduleNode::Tensorize(const BlockRV &block_rv, const String & [...]
+ ['tensorize',['Tensorize',['../classtvm_1_1tir_1_1ScheduleNode.html#a66983e2dde6aeb18b443616398fff8bf',1,'tvm::tir::ScheduleNode::Tensorize(const LoopRV &loop_rv, const String &intrin, bool preserve_unit_iters=true)=0'],['../classtvm_1_1tir_1_1ScheduleNode.html#afa67abdb51145a49d42cd1464429d928',1,'tvm::tir::ScheduleNode::Tensorize(const BlockRV &block_rv, const String &intrin, bool preserve_unit_iters=true)=0'],['../classtvm_1_1te_1_1Stage.html#ab5fe485e1d730c36b096c06 [...]
['tensornode',['TensorNode',['../classtvm_1_1te_1_1TensorNode.html',1,'tvm::te::TensorNode'],['../classtvm_1_1te_1_1TensorNode.html#a153569448cb1bf9d2924d35639c3b8b8',1,'tvm::te::TensorNode::TensorNode()']]],
['tensors',['tensors',['../classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html#afc71b9ecc0d6b82a5c2ab3250f01514b',1,'tvm::auto_scheduler::ComputeDAGNode::tensors()'],['../classtvm_1_1te_1_1TensorIntrinCallNode.html#a92b543750ea55b9cfd6852139e2ddbd6',1,'tvm::te::TensorIntrinCallNode::tensors()']]],
['tensortype',['TensorType',['../classtvm_1_1TensorType.html',1,'tvm::TensorType'],['../classtvm_1_1TensorType.html#ade4460e9b02b42757a83808dec478b87',1,'tvm::TensorType::TensorType()'],['../namespacetvm_1_1relay.html#a52c13723bba53f4953dfd10c34d480f8',1,'tvm::relay::TensorType()']]],
@@ -172,7 +172,7 @@ var searchData=
['touchtask',['TouchTask',['../classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#af2471f9b70cc8bfd39c1e1f26310da85',1,'tvm::meta_schedule::TaskSchedulerNode']]],
['tovar',['ToVar',['../classtvm_1_1tir_1_1AnyNode.html#ae01ebbba2378afb6509a22de97f8fb30',1,'tvm::tir::AnyNode']]],
['tparent',['TParent',['../classtvm_1_1OpAttrMap.html#a316480ca7450209650fc1a62f7ce4a14',1,'tvm::OpAttrMap::TParent()'],['../classtvm_1_1TargetKindAttrMap.html#a37eb6bfb0d881cf897147b17ff7d3265',1,'tvm::TargetKindAttrMap::TParent()']]],
- ['trace',['Trace',['../classtvm_1_1tir_1_1Trace.html',1,'tvm::tir::Trace'],['../classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a8cc2d64f796593a1a774eef259f17b29',1,'tvm::meta_schedule::TuningRecordNode::trace()'],['../classtvm_1_1tir_1_1ScheduleNode.html#a953bca4123b5a758adfdcd65634a5f3b',1,'tvm::tir::ScheduleNode::trace()'],['../classtvm_1_1tir_1_1Trace.html#a8e09abffd0b9b1afac7b832cf16c142d',1,'tvm::tir::Trace::Trace()'],['../classtvm_1_1tir_1_1Trace.html#af79bccf1bde25efea387bb [...]
+ ['trace',['Trace',['../classtvm_1_1tir_1_1Trace.html',1,'tvm::tir::Trace'],['../classtvm_1_1tir_1_1Trace.html#a8e09abffd0b9b1afac7b832cf16c142d',1,'tvm::tir::Trace::Trace()'],['../classtvm_1_1tir_1_1Trace.html#af79bccf1bde25efea387bb1b82dacaa6',1,'tvm::tir::Trace::Trace(Array< Instruction > insts, Map< Instruction, ObjectRef > decisions)'],['../classtvm_1_1meta__schedule_1_1TuningRecordNode.html#a8cc2d64f796593a1a774eef259f17b29',1,'tvm::meta_schedule::TuningRecordNode::tra [...]
['trace_2eh',['trace.h',['../trace_8h.html',1,'']]],
['traced',['Traced',['../classtvm_1_1tir_1_1Schedule.html#a295d432b86621101f67b20fadb367b91',1,'tvm::tir::Schedule']]],
['tracenode',['TraceNode',['../classtvm_1_1tir_1_1TraceNode.html',1,'tvm::tir']]],
@@ -216,7 +216,7 @@ var searchData=
['tuningoptionsnode',['TuningOptionsNode',['../classtvm_1_1auto__scheduler_1_1TuningOptionsNode.html',1,'tvm::auto_scheduler']]],
['tuningrecord',['TuningRecord',['../classtvm_1_1meta__schedule_1_1TuningRecord.html',1,'tvm::meta_schedule::TuningRecord'],['../classtvm_1_1meta__schedule_1_1TuningRecord.html#aa4699af50f91bda306e6c199766c4757',1,'tvm::meta_schedule::TuningRecord::TuningRecord()']]],
['tuningrecordnode',['TuningRecordNode',['../classtvm_1_1meta__schedule_1_1TuningRecordNode.html',1,'tvm::meta_schedule']]],
- ['tuple',['Tuple',['../classtvm_1_1relay_1_1Tuple.html',1,'tvm::relay::Tuple'],['../classtvm_1_1relay_1_1Tuple.html#a284e236318986fd385a02aa68bd3e938',1,'tvm::relay::Tuple::Tuple()'],['../classtvm_1_1runtime_1_1ADT.html#a871e902541f0a7e550e74ae0c621994c',1,'tvm::runtime::ADT::Tuple()'],['../classtvm_1_1relay_1_1TupleGetItemPatternNode.html#a1fdd79b2fbbf3d7a14cea7e7efc38574',1,'tvm::relay::TupleGetItemPatternNode::tuple()'],['../classtvm_1_1relay_1_1TupleGetItemNode.html#aade4882f84d828 [...]
+ ['tuple',['Tuple',['../classtvm_1_1relay_1_1Tuple.html',1,'tvm::relay::Tuple'],['../classtvm_1_1relay_1_1TupleGetItemPatternNode.html#a1fdd79b2fbbf3d7a14cea7e7efc38574',1,'tvm::relay::TupleGetItemPatternNode::tuple()'],['../classtvm_1_1relay_1_1TupleGetItemNode.html#aade4882f84d828975c689b5c6b1b68e6',1,'tvm::relay::TupleGetItemNode::tuple()'],['../classtvm_1_1relay_1_1Tuple.html#a284e236318986fd385a02aa68bd3e938',1,'tvm::relay::Tuple::Tuple()'],['../classtvm_1_1runtime_1_1ADT.html#a871 [...]
['tupleaffinetype',['TupleAffineType',['../classtvm_1_1TupleAffineType.html',1,'tvm::TupleAffineType'],['../classtvm_1_1TupleAffineType.html#afced247570984fed7386c147d02efb79',1,'tvm::TupleAffineType::TupleAffineType()']]],
['tupleaffinetypenode',['TupleAffineTypeNode',['../classtvm_1_1TupleAffineTypeNode.html',1,'tvm']]],
['tupledoc',['TupleDoc',['../classtvm_1_1script_1_1printer_1_1TupleDoc.html',1,'tvm::script::printer::TupleDoc'],['../classtvm_1_1script_1_1printer_1_1TupleDoc.html#ac3ec09b672b619376fa70cead671de78',1,'tvm::script::printer::TupleDoc::TupleDoc()'],['../classtvm_1_1script_1_1printer_1_1TupleDoc.html#a78ef6fe46a358a34df8cf8c797ce3d6e',1,'tvm::script::printer::TupleDoc::TupleDoc(Array< ExprDoc > elements)']]],
diff --git a/docs/reference/api/doxygen/search/all_16.js b/docs/reference/api/doxygen/search/all_16.js
index 97c30fd821..a36241c4ed 100644
--- a/docs/reference/api/doxygen/search/all_16.js
+++ b/docs/reference/api/doxygen/search/all_16.js
@@ -40,7 +40,7 @@ var searchData=
['unionregion',['UnionRegion',['../namespacetvm_1_1arith.html#ad27c4f216e41eb8e81296fb7ec4b9453',1,'tvm::arith']]],
['unionregionlowerbound',['UnionRegionLowerBound',['../namespacetvm_1_1arith.html#a4c3dedfa4cba4ad39c953eb51eb83e4d',1,'tvm::arith']]],
['unipolar',['unipolar',['../structtvm_1_1relay_1_1BinaryConv2DAttrs.html#a7e0ad68dce226079b769a678aa01dc49',1,'tvm::relay::BinaryConv2DAttrs::unipolar()'],['../structtvm_1_1relay_1_1BinaryDenseAttrs.html#af21cdb9dac67ab9ecea5a19642658d8a',1,'tvm::relay::BinaryDenseAttrs::unipolar()']]],
- ['unique',['unique',['../classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7',1,'tvm::runtime::Object::unique()'],['../classtvm_1_1runtime_1_1ObjectPtr.html#af95c6c6fcd89da0f62b93f1167b72314',1,'tvm::runtime::ObjectPtr::unique()'],['../classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7',1,'tvm::runtime::ObjectRef::unique()'],['../classtvm_1_1VirtualDeviceCache.html#a25ba1351484aa58a2cc7cef8f8e4423c',1,'tvm::VirtualDeviceCache::Unique()']]],
+ ['unique',['Unique',['../classtvm_1_1VirtualDeviceCache.html#a25ba1351484aa58a2cc7cef8f8e4423c',1,'tvm::VirtualDeviceCache::Unique()'],['../classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7',1,'tvm::runtime::Object::unique()'],['../classtvm_1_1runtime_1_1ObjectPtr.html#af95c6c6fcd89da0f62b93f1167b72314',1,'tvm::runtime::ObjectPtr::unique()'],['../classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7',1,'tvm::runtime::ObjectRef::unique()']]],
['uniqueattrs',['UniqueAttrs',['../structtvm_1_1relay_1_1UniqueAttrs.html',1,'tvm::relay']]],
['uniqueglobalfor',['UniqueGlobalFor',['../classtvm_1_1GlobalVarSupplyNode.html#af67bad5d9d93381c440a7886cbef430a',1,'tvm::GlobalVarSupplyNode']]],
['unit_5fbits',['unit_bits',['../classtvm_1_1MemoryInfoNode.html#a505c2f2dd0dd0c28a12b9113e2176a8d',1,'tvm::MemoryInfoNode']]],
@@ -49,9 +49,9 @@ var searchData=
['unknownattributeaccesspathnode',['UnknownAttributeAccessPathNode',['../classtvm_1_1UnknownAttributeAccessPathNode.html',1,'tvm::UnknownAttributeAccessPathNode'],['../classtvm_1_1UnknownAttributeAccessPathNode.html#a1882e9e591466a2785acc761dc63d56e',1,'tvm::UnknownAttributeAccessPathNode::UnknownAttributeAccessPathNode()']]],
['unmatchedcases',['UnmatchedCases',['../namespacetvm_1_1relay.html#aa3a8cace40f8056fd6412f39c3eaa605',1,'tvm::relay']]],
['unravel_5findex',['unravel_index',['../namespacetvm_1_1topi.html#a8811a02532bbe3047986bf1a8449ac0e',1,'tvm::topi']]],
- ['unroll',['unroll',['../classtvm_1_1auto__scheduler_1_1State.html#aa68a9d2e226bae38a36e4be4af1d1ae4',1,'tvm::auto_scheduler::State::unroll()'],['../classtvm_1_1te_1_1Stage.html#af83ad8672660403504f472228b044b33',1,'tvm::te::Stage::unroll()'],['../classtvm_1_1tir_1_1ScheduleNode.html#a84ec742f6295f59390592a6d0d90a552',1,'tvm::tir::ScheduleNode::Unroll()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#acd41556b0c4088d0f309ef5495aaebe3',1,'tvm::script::ir_builder::tir::Unroll()']]],
+ ['unroll',['Unroll',['../classtvm_1_1tir_1_1ScheduleNode.html#a84ec742f6295f59390592a6d0d90a552',1,'tvm::tir::ScheduleNode::Unroll()'],['../classtvm_1_1auto__scheduler_1_1State.html#aa68a9d2e226bae38a36e4be4af1d1ae4',1,'tvm::auto_scheduler::State::unroll()'],['../classtvm_1_1te_1_1Stage.html#af83ad8672660403504f472228b044b33',1,'tvm::te::Stage::unroll()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#acd41556b0c4088d0f309ef5495aaebe3',1,'tvm::script::ir_builder::tir::Unroll()']]],
['unrollloop',['UnrollLoop',['../namespacetvm_1_1tir_1_1transform.html#ab2f279e91071fa96a1edb24fa004ea6a',1,'tvm::tir::transform']]],
- ['update',['update',['../classtvm_1_1te_1_1ScanOpNode.html#ace2bf7e43cd4197324ec6363626fc60a',1,'tvm::te::ScanOpNode::update()'],['../classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7',1,'tvm::arith::ConstIntBoundAnalyzer::Update()'],['../classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d',1,'tvm::arith::ModularSetAnalyzer::Update()'],['../classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b',1,'tvm::a [...]
+ ['update',['Update',['../classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7',1,'tvm::arith::ConstIntBoundAnalyzer::Update()'],['../classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d',1,'tvm::arith::ModularSetAnalyzer::Update()'],['../classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b',1,'tvm::arith::RewriteSimplifier::Update()'],['../classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940 [...]
['update_5ffunc',['update_func',['../classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#ade9364c152a36501d4f24fa4f0111519',1,'tvm::auto_scheduler::PythonBasedModelNode']]],
['updatecostmodel',['UpdateCostModel',['../classtvm_1_1meta__schedule_1_1MeasureCallback.html#afdf5503c6e6f53767de132d91a7b53f9',1,'tvm::meta_schedule::MeasureCallback']]],
['updateiters',['UpdateIters',['../classtvm_1_1auto__scheduler_1_1AttachMap.html#ab45b991ef2bcfb1bc191601aac42e778',1,'tvm::auto_scheduler::AttachMap']]],
diff --git a/docs/reference/api/doxygen/search/all_17.js b/docs/reference/api/doxygen/search/all_17.js
index 6165c09089..00a238d733 100644
--- a/docs/reference/api/doxygen/search/all_17.js
+++ b/docs/reference/api/doxygen/search/all_17.js
@@ -18,7 +18,7 @@ var searchData=
['values',['values',['../structTVMArgs.html#ab2d2a8c794bc11fdb56b294e711ff63c',1,'TVMArgs::values()'],['../classtvm_1_1runtime_1_1TVMArgs.html#a3b99059e2f1ad08c99b42b5bee82752f',1,'tvm::runtime::TVMArgs::values()'],['../classtvm_1_1script_1_1printer_1_1DictDocNode.html#a08d71431d889cd4588d57c06c12140c4',1,'tvm::script::printer::DictDocNode::values()']]],
['values_5fcount',['values_count',['../structTVMArgs.html#afa042427dc87d770d0def130f497f3f5',1,'TVMArgs']]],
['valuetypeinfomaker',['ValueTypeInfoMaker',['../structtvm_1_1detail_1_1ValueTypeInfoMaker.html',1,'tvm::detail']]],
- ['var',['Var',['../classtvm_1_1tir_1_1Var.html',1,'tvm::tir::Var'],['../classtvm_1_1relay_1_1Var.html',1,'tvm::relay::Var'],['../classtvm_1_1relay_1_1PatternVarNode.html#acfa1269806fbf19e7badd424c19c64bf',1,'tvm::relay::PatternVarNode::var()'],['../classtvm_1_1relay_1_1LetPatternNode.html#aff0c6dec182a3173fe0cb601a5b74ed1',1,'tvm::relay::LetPatternNode::var()'],['../classtvm_1_1relay_1_1LetNode.html#a3a841faeeb71a7e59f99feffb182a7c1',1,'tvm::relay::LetNode::var()'],['../classtvm_1_1scr [...]
+ ['var',['Var',['../classtvm_1_1tir_1_1Var.html',1,'tvm::tir::Var'],['../classtvm_1_1relay_1_1Var.html',1,'tvm::relay::Var'],['../classtvm_1_1relay_1_1Var.html#a06ef8ae1d07a5b8a3c25ca7775d17762',1,'tvm::relay::Var::Var(String name_hint, Type type_annotation, Span span=Span())'],['../classtvm_1_1relay_1_1Var.html#a45372a62057ee9332a391e29845505ff',1,'tvm::relay::Var::Var(Id vid, Type type_annotation, Span span=Span())'],['../classtvm_1_1tir_1_1Var.html#a21ba7568a83bfc2a5896f9e0ff181129', [...]
['var_2eh',['var.h',['../var_8h.html',1,'']]],
['var_5fremap_5f',['var_remap_',['../classtvm_1_1tir_1_1DataTypeLegalizer.html#a1de0d50699d7d15618b19d2cb7fadb35',1,'tvm::tir::DataTypeLegalizer']]],
['variableinfo',['VariableInfo',['../structtvm_1_1script_1_1printer_1_1IRDocsifierNode_1_1VariableInfo.html',1,'tvm::script::printer::IRDocsifierNode']]],
@@ -33,7 +33,7 @@ var searchData=
['vector_5funit_5fbytes',['vector_unit_bytes',['../classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html#a6f2dd9161fdb3233417a9912c8854434',1,'tvm::auto_scheduler::HardwareParamsNode']]],
['vectorcombine',['vectorcombine',['../namespacetvm_1_1tir_1_1builtin.html#a30dff65bc2c142b57fae7f60e378ff43',1,'tvm::tir::builtin']]],
['vectorhigh',['vectorhigh',['../namespacetvm_1_1tir_1_1builtin.html#a45bf65ca7ca01d2016e0b609117d7e25',1,'tvm::tir::builtin']]],
- ['vectorize',['vectorize',['../classtvm_1_1auto__scheduler_1_1State.html#a97b8a21210d63bea241dbab085d89b53',1,'tvm::auto_scheduler::State::vectorize()'],['../classtvm_1_1te_1_1Stage.html#a44d33e3920106e75dc7c68272f880812',1,'tvm::te::Stage::vectorize()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ab4a8cd91959ceab22855ec338978bcee',1,'tvm::tir::ScheduleNode::Vectorize()']]],
+ ['vectorize',['Vectorize',['../classtvm_1_1tir_1_1ScheduleNode.html#ab4a8cd91959ceab22855ec338978bcee',1,'tvm::tir::ScheduleNode::Vectorize()'],['../classtvm_1_1auto__scheduler_1_1State.html#a97b8a21210d63bea241dbab085d89b53',1,'tvm::auto_scheduler::State::vectorize()'],['../classtvm_1_1te_1_1Stage.html#a44d33e3920106e75dc7c68272f880812',1,'tvm::te::Stage::vectorize()']]],
['vectorized',['Vectorized',['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#a2b3df6013772bdd23dfa872b81555272',1,'tvm::script::ir_builder::tir']]],
['vectorizeloop',['VectorizeLoop',['../namespacetvm_1_1tir_1_1transform.html#af3cecb50a8b8fc8021f6a87bc27587da',1,'tvm::tir::transform']]],
['vectorizer',['Vectorizer',['../classtvm_1_1tir_1_1BufferLoadNode.html#a842a72b9d02a9f8541b512478932fece',1,'tvm::tir::BufferLoadNode']]],
diff --git a/docs/reference/api/doxygen/search/all_a.js b/docs/reference/api/doxygen/search/all_a.js
index 766da1a4d3..d49777fd7e 100644
--- a/docs/reference/api/doxygen/search/all_a.js
+++ b/docs/reference/api/doxygen/search/all_a.js
@@ -258,6 +258,7 @@ var searchData=
['isexpr',['IsExpr',['../namespacetvm_1_1relay.html#a61dc962beca310c25ef857e51fb3553c',1,'tvm::relay']]],
['isexternalcodegen',['IsExternalCodegen',['../classtvm_1_1Target.html#a4e4aca0d3516a0998b55d043e12cd832',1,'tvm::Target']]],
['isexternalcodegenfor',['IsExternalCodegenFor',['../classtvm_1_1Target.html#acc8e9cae4385eb160ca79b1ddf8a7510',1,'tvm::Target']]],
+ ['isfaildeferralenabled',['IsFailDeferralEnabled',['../classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9',1,'tvm::SEqualReducer::Handler::IsFailDeferralEnabled()'],['../classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31',1,'tvm::SEqualHandlerDefault::IsFailDeferralEnabled()']]],
['isfinite',['isfinite',['../namespacetvm.html#a096aa20c0df975d089231b2c6fda2e61',1,'tvm::isfinite()'],['../namespacetvm_1_1topi.html#aaa52f4a921ac110066390deeb052dfac',1,'tvm::topi::isfinite()']]],
['isfullyconstrained',['IsFullyConstrained',['../classtvm_1_1VirtualDeviceNode.html#ae3c848e08b56105cdb046907ccbfc59c',1,'tvm::VirtualDeviceNode']]],
['isfullyunconstrained',['IsFullyUnconstrained',['../classtvm_1_1VirtualDeviceNode.html#acbae67e35fb5348e30101ae23073ad52',1,'tvm::VirtualDeviceNode']]],
diff --git a/docs/reference/api/doxygen/search/all_e.js b/docs/reference/api/doxygen/search/all_e.js
index d3c640d7e8..6fced89779 100644
--- a/docs/reference/api/doxygen/search/all_e.js
+++ b/docs/reference/api/doxygen/search/all_e.js
@@ -71,7 +71,7 @@ var searchData=
['matmulattrs',['MatmulAttrs',['../structtvm_1_1relay_1_1MatmulAttrs.html',1,'tvm::relay']]],
['matrix_5fset_5fdiag',['matrix_set_diag',['../namespacetvm_1_1topi.html#aead477c6c9d4f4589d22b8acff82040c',1,'tvm::topi']]],
['matrixsetdiagattrs',['MatrixSetDiagAttrs',['../structtvm_1_1relay_1_1MatrixSetDiagAttrs.html',1,'tvm::relay']]],
- ['max',['Max',['../classtvm_1_1tir_1_1Max.html',1,'tvm::tir::Max'],['../classtvm_1_1arith_1_1IntSet.html#ac215840d3e9fb2817f1e5648e31317c5',1,'tvm::arith::IntSet::max()'],['../classtvm_1_1support_1_1LinearCongruentialEngine.html#a2c5ea87b1155aa7810e0beb3b69b955b',1,'tvm::support::LinearCongruentialEngine::max()'],['../classtvm_1_1tir_1_1Max.html#a7dff11b4dea01bfc7a03eacd077f0729',1,'tvm::tir::Max::Max()'],['../namespacetvm.html#a0df5ca82d2c566f628ebb2f1e84a3fcb',1,'tvm::max(PrimExpr a, [...]
+ ['max',['Max',['../classtvm_1_1tir_1_1Max.html',1,'tvm::tir::Max'],['../classtvm_1_1tir_1_1Max.html#a7dff11b4dea01bfc7a03eacd077f0729',1,'tvm::tir::Max::Max()'],['../classtvm_1_1arith_1_1IntSet.html#ac215840d3e9fb2817f1e5648e31317c5',1,'tvm::arith::IntSet::max()'],['../classtvm_1_1support_1_1LinearCongruentialEngine.html#a2c5ea87b1155aa7810e0beb3b69b955b',1,'tvm::support::LinearCongruentialEngine::max()'],['../namespacetvm.html#a0df5ca82d2c566f628ebb2f1e84a3fcb',1,'tvm::max(PrimExpr a, [...]
['max_5fcontinuous_5ferror',['max_continuous_error',['../classtvm_1_1auto__scheduler_1_1ProgramMeasurerNode.html#abdc38da91bcdf77be765c1e3d5af3648',1,'tvm::auto_scheduler::ProgramMeasurerNode']]],
['max_5fdisplacement',['max_displacement',['../structtvm_1_1relay_1_1CorrelationAttrs.html#ad1d16e2ba537736c8baee2553e1e32bf',1,'tvm::relay::CorrelationAttrs']]],
['max_5ffunctions',['max_functions',['../structTVMMutableFuncRegistry.html#a41745f8e0f73f8e4fb2074f5b154b49c',1,'TVMMutableFuncRegistry']]],
@@ -144,7 +144,7 @@ var searchData=
['meta_5fschedule_5funroll_5fexplicit',['meta_schedule_unroll_explicit',['../namespacetvm_1_1tir_1_1attr.html#a07e62a6db9189700e996599541506e7c',1,'tvm::tir::attr']]],
['meta_5fschedule_5funroll_5fimplicit',['meta_schedule_unroll_implicit',['../namespacetvm_1_1tir_1_1attr.html#a5267857a903d20285f4e0af38d2d9004',1,'tvm::tir::attr']]],
['meta_5fschedule_5fvectorize',['meta_schedule_vectorize',['../namespacetvm_1_1tir_1_1attr.html#af7d82995b58b837ac941af54bb70afec',1,'tvm::tir::attr']]],
- ['metadata',['Metadata',['../classtvm_1_1runtime_1_1metadata_1_1Metadata.html',1,'tvm::runtime::metadata::Metadata'],['../structtvm_1_1relay_1_1CallLoweredAttrs.html#a567c253569e4efde147e5fb7c2f581c7',1,'tvm::relay::CallLoweredAttrs::metadata()'],['../structTVMAotExecutor.html#a524b567769ce3140e8f0235369432e76',1,'TVMAotExecutor::metadata()'],['../classtvm_1_1runtime_1_1metadata_1_1Metadata.html#a27735af93ebc35d49585dd7bba5ac099',1,'tvm::runtime::metadata::Metadata::Metadata()']]],
+ ['metadata',['Metadata',['../classtvm_1_1runtime_1_1metadata_1_1Metadata.html',1,'tvm::runtime::metadata::Metadata'],['../classtvm_1_1runtime_1_1metadata_1_1Metadata.html#a27735af93ebc35d49585dd7bba5ac099',1,'tvm::runtime::metadata::Metadata::Metadata()'],['../structtvm_1_1relay_1_1CallLoweredAttrs.html#a567c253569e4efde147e5fb7c2f581c7',1,'tvm::relay::CallLoweredAttrs::metadata()'],['../structTVMAotExecutor.html#a524b567769ce3140e8f0235369432e76',1,'TVMAotExecutor::metadata()']]],
['metadata_2eh',['metadata.h',['../metadata_8h.html',1,'']]],
['metadata_5fbase_2eh',['metadata_base.h',['../metadata__base_8h.html',1,'']]],
['metadata_5ftypes_2eh',['metadata_types.h',['../metadata__types_8h.html',1,'']]],
diff --git a/docs/reference/api/doxygen/search/functions_10.js b/docs/reference/api/doxygen/search/functions_10.js
index fd34b2699c..1f75f9968d 100644
--- a/docs/reference/api/doxygen/search/functions_10.js
+++ b/docs/reference/api/doxygen/search/functions_10.js
@@ -67,7 +67,7 @@ var searchData=
['pragmastep',['PragmaStep',['../classtvm_1_1auto__scheduler_1_1PragmaStep.html#a9f3ec96f3e561a14d8d9235c4d46e2eb',1,'tvm::auto_scheduler::PragmaStep::PragmaStep(int stage_id, int iter_id, String pragma_type)'],['../classtvm_1_1auto__scheduler_1_1PragmaStep.html#a7692c2a9934af1f36b218840034a88d5',1,'tvm::auto_scheduler::PragmaStep::PragmaStep(dmlc::JSONReader *reader)']]],
['predict',['Predict',['../classtvm_1_1auto__scheduler_1_1CostModelNode.html#aa337ec72401a957a68b6eb4a96472a2c',1,'tvm::auto_scheduler::CostModelNode::Predict()'],['../classtvm_1_1auto__scheduler_1_1RandomModelNode.html#a09f1d81fd9d9f93fca5f2008ab6054ba',1,'tvm::auto_scheduler::RandomModelNode::Predict()'],['../classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#af16befe722e718fea23727469fecea1c',1,'tvm::auto_scheduler::PythonBasedModelNode::Predict()'],['../classtvm_1_1meta__sche [...]
['predictstages',['PredictStages',['../classtvm_1_1auto__scheduler_1_1CostModelNode.html#a213222251099444874698d2e9ff18adc',1,'tvm::auto_scheduler::CostModelNode::PredictStages()'],['../classtvm_1_1auto__scheduler_1_1PythonBasedModelNode.html#a1f9975c4bdd61793b806663a61a9a703',1,'tvm::auto_scheduler::PythonBasedModelNode::PredictStages()']]],
- ['prefetch',['Prefetch',['../classtvm_1_1tir_1_1Prefetch.html#af462f85dad4268685e3113b6b009d1b2',1,'tvm::tir::Prefetch::Prefetch()'],['../classtvm_1_1te_1_1Stage.html#a611327890918fb641a8e65396ab9c5f6',1,'tvm::te::Stage::prefetch()'],['../namespacetvm_1_1tir_1_1builtin.html#a543f1fc334d2bc830add972895a03f17',1,'tvm::tir::builtin::prefetch()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#aeb707d56c770edb33ebf73da27ebc1b9',1,'tvm::script::ir_builder::tir::Prefetch()']]],
+ ['prefetch',['prefetch',['../classtvm_1_1te_1_1Stage.html#a611327890918fb641a8e65396ab9c5f6',1,'tvm::te::Stage::prefetch()'],['../classtvm_1_1tir_1_1Prefetch.html#af462f85dad4268685e3113b6b009d1b2',1,'tvm::tir::Prefetch::Prefetch()'],['../namespacetvm_1_1tir_1_1builtin.html#a543f1fc334d2bc830add972895a03f17',1,'tvm::tir::builtin::prefetch()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#aeb707d56c770edb33ebf73da27ebc1b9',1,'tvm::script::ir_builder::tir::Prefetch()']]],
['prefetchnode',['PrefetchNode',['../classtvm_1_1tir_1_1PrefetchNode.html#acaaa5e89462c7edf3019df4283ec74db',1,'tvm::tir::PrefetchNode::PrefetchNode()=default'],['../classtvm_1_1tir_1_1PrefetchNode.html#a73ef244c364b9c7efaee36e6bec746e7',1,'tvm::tir::PrefetchNode::PrefetchNode(Buffer buffer, Array< Range > bounds, Span span=Span())']]],
['preloadmeasuredstates',['PreloadMeasuredStates',['../classtvm_1_1auto__scheduler_1_1PreloadMeasuredStates.html#a67daf1ccd25a208fdf8d001f9a31d86b',1,'tvm::auto_scheduler::PreloadMeasuredStates::PreloadMeasuredStates()'],['../classtvm_1_1auto__scheduler_1_1SearchPolicyNode.html#abc2529d0b1cd485876e48037dd19dde1',1,'tvm::auto_scheduler::SearchPolicyNode::PreloadMeasuredStates()']]],
['prelu',['prelu',['../namespacetvm_1_1topi.html#a315c34bbe2bf1be4c778acae08c906fc',1,'tvm::topi']]],
diff --git a/docs/reference/api/doxygen/search/functions_12.js b/docs/reference/api/doxygen/search/functions_12.js
index 3653f3320b..fd528f7c4e 100644
--- a/docs/reference/api/doxygen/search/functions_12.js
+++ b/docs/reference/api/doxygen/search/functions_12.js
@@ -99,7 +99,7 @@ var searchData=
['rewritetensorize',['RewriteTensorize',['../classtvm_1_1meta__schedule_1_1Postproc.html#a95db036cfced4c2575367a26a41498ff',1,'tvm::meta_schedule::Postproc']]],
['rewriteunboundblock',['RewriteUnboundBlock',['../classtvm_1_1meta__schedule_1_1Postproc.html#a1836b2278bc24fdc227c490896d92980',1,'tvm::meta_schedule::Postproc']]],
['rewriteunsafeselect',['RewriteUnsafeSelect',['../namespacetvm_1_1tir_1_1transform.html#a4fe43327c4454dd05b6e925577443f49',1,'tvm::tir::transform']]],
- ['rfactor',['rfactor',['../classtvm_1_1auto__scheduler_1_1State.html#a21c27b06d439267f8b981fa05c5f48a0',1,'tvm::auto_scheduler::State::rfactor()'],['../classtvm_1_1te_1_1Schedule.html#a34ae85add41bbed0140726d024d08862',1,'tvm::te::Schedule::rfactor()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ab185c8eac1065290d84d58e7f4617232',1,'tvm::tir::ScheduleNode::RFactor()']]],
+ ['rfactor',['RFactor',['../classtvm_1_1tir_1_1ScheduleNode.html#ab185c8eac1065290d84d58e7f4617232',1,'tvm::tir::ScheduleNode::RFactor()'],['../classtvm_1_1auto__scheduler_1_1State.html#a21c27b06d439267f8b981fa05c5f48a0',1,'tvm::auto_scheduler::State::rfactor()'],['../classtvm_1_1te_1_1Schedule.html#a34ae85add41bbed0140726d024d08862',1,'tvm::te::Schedule::rfactor()']]],
['rfactorstep',['RfactorStep',['../classtvm_1_1auto__scheduler_1_1RfactorStep.html#a26e6f85b55307f18fab4469e3bd4be0c',1,'tvm::auto_scheduler::RfactorStep::RfactorStep(int stage_id, int iter_id, int factor_iter_id)'],['../classtvm_1_1auto__scheduler_1_1RfactorStep.html#a95575c21441177634178245ab562cb4f',1,'tvm::auto_scheduler::RfactorStep::RfactorStep(dmlc::JSONReader *reader)']]],
['right_5fshift',['right_shift',['../namespacetvm.html#ae8ecc0382685a855187bede0c97d93e6',1,'tvm::right_shift(PrimExpr a, PrimExpr b, Span span=Span())'],['../namespacetvm.html#af49dde9dfdeea62e8ad3a6d8db53de0b',1,'tvm::right_shift(const PrimExpr &a, int b, Span span=Span())'],['../namespacetvm.html#a98ff4361d0a24570f8dc32d03cde972a',1,'tvm::right_shift(int a, const PrimExpr &b, Span span=Span())'],['../namespacetvm_1_1topi.html#a9673b9caffb46404b566c3f04a492dfe',1,'tvm::topi:: [...]
['rocblas_5fbatch_5fmatmul',['rocblas_batch_matmul',['../namespacetvm_1_1topi_1_1contrib.html#abf1113dd429e1285752b48f62fe12848',1,'tvm::topi::contrib']]],
diff --git a/docs/reference/api/doxygen/search/functions_13.js b/docs/reference/api/doxygen/search/functions_13.js
index 6813eaa63c..4dcf7452ae 100644
--- a/docs/reference/api/doxygen/search/functions_13.js
+++ b/docs/reference/api/doxygen/search/functions_13.js
@@ -46,7 +46,7 @@ var searchData=
['sendbodychunk',['SendBodyChunk',['../classtvm_1_1runtime_1_1micro__rpc_1_1Session.html#a37b77101825145283cced6cd05eb502c',1,'tvm::runtime::micro_rpc::Session']]],
['sendmessage',['SendMessage',['../classtvm_1_1runtime_1_1micro__rpc_1_1Session.html#a6e540521a7e9188564da712c0641619c',1,'tvm::runtime::micro_rpc::Session']]],
['seqstmt',['SeqStmt',['../classtvm_1_1tir_1_1SeqStmt.html#afe971b51fb6990008a118d4aa16c0920',1,'tvm::tir::SeqStmt']]],
- ['sequalhandlerdefault',['SEqualHandlerDefault',['../classtvm_1_1SEqualHandlerDefault.html#ac730a1a7785ee29e231eca8815826127',1,'tvm::SEqualHandlerDefault']]],
+ ['sequalhandlerdefault',['SEqualHandlerDefault',['../classtvm_1_1SEqualHandlerDefault.html#a843bd92c063e719d7459228594fc9237',1,'tvm::SEqualHandlerDefault']]],
['sequalreduce',['SEqualReduce',['../classtvm_1_1arith_1_1ConstIntBoundNode.html#ad7be026c2fbdd9c6fb439d6959300541',1,'tvm::arith::ConstIntBoundNode::SEqualReduce()'],['../classtvm_1_1arith_1_1ModularSetNode.html#a8632a4af73b6c0ae5ba9b0857f306b02',1,'tvm::arith::ModularSetNode::SEqualReduce()'],['../classtvm_1_1arith_1_1IntGroupBoundsNode.html#a0a53ec88a0c94bc074b4675f5e1ae556',1,'tvm::arith::IntGroupBoundsNode::SEqualReduce()'],['../classtvm_1_1arith_1_1IntConstraintsNode.html#a1e3983 [...]
['sequalreducer',['SEqualReducer',['../classtvm_1_1SEqualReducer.html#abb85d3142af880fb96ae79423e5c382e',1,'tvm::SEqualReducer::SEqualReducer()=default'],['../classtvm_1_1SEqualReducer.html#a97eb296b45fee73c0ff6064c8eebdd7c',1,'tvm::SEqualReducer::SEqualReducer(Handler *handler, const PathTracingData *tracing_data, bool map_free_vars)']]],
['sequence_5fmask',['sequence_mask',['../namespacetvm_1_1topi.html#a037a112cc5c556107797e36e7feb0873',1,'tvm::topi']]],
@@ -110,7 +110,7 @@ var searchData=
['setvalue_3c_20uint64_5ft_20_3e',['SetValue< uint64_t >',['../namespacetvm_1_1detail.html#acb3382242cbf538f64edae13e4ec5a84',1,'tvm::detail']]],
['shallowcopy',['ShallowCopy',['../classtvm_1_1IRModuleNode.html#a86bbdc4b857ce5958a2b5f29e1d6fcb6',1,'tvm::IRModuleNode']]],
['shallowcopyirmodule',['ShallowCopyIRModule',['../classtvm_1_1IRModule.html#aea8b821cf92cf525bd87bf15f5d31889',1,'tvm::IRModule']]],
- ['shape',['shape',['../classtvm_1_1runtime_1_1metadata_1_1TensorInfoNode.html#a5ddcd966b82c4df89084dbdf92d3108e',1,'tvm::runtime::metadata::TensorInfoNode::shape()'],['../classtvm_1_1runtime_1_1NDArray.html#ad273c7bc59b73fb026fd64fc764cbebc',1,'tvm::runtime::NDArray::Shape()'],['../namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1',1,'tvm::topi::shape()']]],
+ ['shape',['Shape',['../classtvm_1_1runtime_1_1NDArray.html#ad273c7bc59b73fb026fd64fc764cbebc',1,'tvm::runtime::NDArray::Shape()'],['../classtvm_1_1runtime_1_1metadata_1_1TensorInfoNode.html#a5ddcd966b82c4df89084dbdf92d3108e',1,'tvm::runtime::metadata::TensorInfoNode::shape()'],['../namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1',1,'tvm::topi::shape()']]],
['shapediv',['shapediv',['../namespacetvm.html#a15f25703cfce73c75cb4cd33c74ea8f0',1,'tvm']]],
['shapeindex',['ShapeIndex',['../classtvm_1_1runtime_1_1DataType.html#a04f0e069017af3f0da47bc0c1fd80916',1,'tvm::runtime::DataType']]],
['shapeof',['ShapeOf',['../structtvm_1_1runtime_1_1vm_1_1Instruction.html#a5f278c637580946bc06b020f5852e44a',1,'tvm::runtime::vm::Instruction']]],
@@ -139,7 +139,7 @@ var searchData=
['singlepoint',['SinglePoint',['../classtvm_1_1arith_1_1IntSet.html#a58aeb0d34656b1b43ac2532e4dfa12ed',1,'tvm::arith::IntSet']]],
['singleton',['Singleton',['../classtvm_1_1te_1_1Singleton.html#a94450b853dcd5e9865546d8c8fe351a1',1,'tvm::te::Singleton']]],
['sinh',['sinh',['../namespacetvm.html#ad828bc801c73df761c58d9f8877d52ee',1,'tvm::sinh()'],['../namespacetvm_1_1topi.html#af9694f5470ba2cabc19866be3b00fe8d',1,'tvm::topi::sinh()']]],
- ['size',['size',['../classtvm_1_1runtime_1_1ADT.html#af51613add20f67643684b1c7fdd5569a',1,'tvm::runtime::ADT::size()'],['../classtvm_1_1runtime_1_1ArrayNode.html#a3e88cee6eb31d0e495f7debd94b7573d',1,'tvm::runtime::ArrayNode::size()'],['../classtvm_1_1runtime_1_1Array.html#aed6387e67d18b9d5ad18f510fd600a25',1,'tvm::runtime::Array::size()'],['../classtvm_1_1runtime_1_1MapNode.html#a5c0c770f7667f911aa8bec879e3ac214',1,'tvm::runtime::MapNode::size()'],['../classtvm_1_1runtime_1_1Map.html#a [...]
+ ['size',['Size',['../classtvm_1_1TensorTypeNode.html#a1f08dac86ae8aea81d058ef64cfd38b4',1,'tvm::TensorTypeNode::Size()'],['../classtvm_1_1meta__schedule_1_1DatabaseNode.html#aae5b9ab9f7e497654b90c23a2159a5cc',1,'tvm::meta_schedule::DatabaseNode::Size()'],['../classtvm_1_1meta__schedule_1_1PyDatabaseNode.html#a36817d04978253571fef7d01427ce9c0',1,'tvm::meta_schedule::PyDatabaseNode::Size()'],['../classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html#ae395a0f1c6e79e825aa7a244c74a5d7b',1,' [...]
['sizevar',['SizeVar',['../classtvm_1_1tir_1_1SizeVar.html#ac470249315d9e395ad581d35dd5dcb05',1,'tvm::tir::SizeVar::SizeVar(ObjectPtr< Object > n)'],['../classtvm_1_1tir_1_1SizeVar.html#a0f8cb8a92feb96343939d223db90f7cd',1,'tvm::tir::SizeVar::SizeVar(String name_hint="s", DataType t=DataType::Int(32), Span span=Span())']]],
['skipassert',['SkipAssert',['../namespacetvm_1_1tir_1_1transform.html#a6fdd5910b00af823071dcdddd21cd2d3',1,'tvm::tir::transform']]],
['slice',['Slice',['../classtvm_1_1te_1_1Tensor_1_1Slice.html#ab314819e8bcca6421e9a4f33e48578c3',1,'tvm::te::Tensor::Slice']]],
@@ -161,7 +161,7 @@ var searchData=
['spatial',['Spatial',['../namespacetvm_1_1script_1_1ir__builder_1_1tir_1_1axis.html#ac6de6454b9002f401977546aa9385301',1,'tvm::script::ir_builder::tir::axis']]],
['specialize',['Specialize',['../namespacetvm_1_1tir.html#a69b6f1b0014dc6e7dd390cff746e9782',1,'tvm::tir']]],
['specializedcondition',['SpecializedCondition',['../classtvm_1_1te_1_1SpecializedCondition.html#a48d119ee1c6033929a5592cfc2592e60',1,'tvm::te::SpecializedCondition']]],
- ['split',['Split',['../classtvm_1_1te_1_1Split.html#a328e0c093ce5b41ebaf33e0e80592764',1,'tvm::te::Split::Split()'],['../classtvm_1_1tir_1_1Layout.html#ad7657af7789fe040d3224c0149976bb4',1,'tvm::tir::Layout::Split()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ac190a0ab76d8754a35209479bcc6dfa2',1,'tvm::tir::ScheduleNode::Split()'],['../classtvm_1_1auto__scheduler_1_1State.html#a5815f21fc90ba7cc379c2410c05ab54c',1,'tvm::auto_scheduler::State::split()'],['../classtvm_1_1te_1_1Stage.html#a [...]
+ ['split',['split',['../classtvm_1_1auto__scheduler_1_1State.html#a5815f21fc90ba7cc379c2410c05ab54c',1,'tvm::auto_scheduler::State::split()'],['../classtvm_1_1te_1_1Stage.html#a5a7cd562be59b68a187ad97085a3425d',1,'tvm::te::Stage::split()'],['../classtvm_1_1te_1_1Split.html#a328e0c093ce5b41ebaf33e0e80592764',1,'tvm::te::Split::Split()'],['../classtvm_1_1tir_1_1Layout.html#ad7657af7789fe040d3224c0149976bb4',1,'tvm::tir::Layout::Split()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ac190a0ab [...]
['split_5fby_5fnparts',['split_by_nparts',['../classtvm_1_1te_1_1Stage.html#a51432f38d9ec4792a2525023179ae604',1,'tvm::te::Stage']]],
['split_5fsections',['split_sections',['../namespacetvm_1_1topi.html#acc643e2ed166fa2ed82a95853e145619',1,'tvm::topi']]],
['splitargs',['SplitArgs',['../namespacetvm_1_1relay_1_1transform.html#a2425d757b896168a109498e8d34ba960',1,'tvm::relay::transform']]],
@@ -203,7 +203,7 @@ var searchData=
['storageflatten',['StorageFlatten',['../namespacetvm_1_1tir_1_1transform.html#a778d3e1efecdff97e7bcf0e6a5406e61',1,'tvm::tir::transform']]],
['storagerewrite',['StorageRewrite',['../namespacetvm_1_1tir_1_1transform.html#abe87b271e2c20e0ad901697f33c01d2c',1,'tvm::tir::transform']]],
['store',['Store',['../classtvm_1_1tir_1_1Store.html#a2c4278b8bcdae57ada2022ecc7c290c3',1,'tvm::tir::Store']]],
- ['str',['str',['../classtvm_1_1TargetNode.html#a30cd67db46a9c4b098a8ba38fff22e26',1,'tvm::TargetNode::str()'],['../classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200',1,'tvm::script::printer::LiteralDoc::Str()']]],
+ ['str',['Str',['../classtvm_1_1script_1_1printer_1_1LiteralDoc.html#a8423a0ede5a29b24f6db5d9f6574a200',1,'tvm::script::printer::LiteralDoc::Str()'],['../classtvm_1_1TargetNode.html#a30cd67db46a9c4b098a8ba38fff22e26',1,'tvm::TargetNode::str()']]],
['stream',['Stream',['../classtvm_1_1ReprLegacyPrinter.html#a8234b759c989ddac7fb24253d2e1e83d',1,'tvm::ReprLegacyPrinter']]],
['streamsync',['StreamSync',['../classtvm_1_1runtime_1_1DeviceAPI.html#ac29b9295c432a87658392872c644864f',1,'tvm::runtime::DeviceAPI']]],
['strided_5fslice',['strided_slice',['../namespacetvm_1_1topi.html#a208e90d4a8db8cf2c7d77b4460f7df70',1,'tvm::topi']]],
diff --git a/docs/reference/api/doxygen/search/functions_14.js b/docs/reference/api/doxygen/search/functions_14.js
index 7445962c6f..6e30931ff6 100644
--- a/docs/reference/api/doxygen/search/functions_14.js
+++ b/docs/reference/api/doxygen/search/functions_14.js
@@ -21,7 +21,7 @@ var searchData=
['tensorintrin',['TensorIntrin',['../classtvm_1_1te_1_1TensorIntrin.html#a4ff4237911227bf80b3076906dc3b7ea',1,'tvm::te::TensorIntrin::TensorIntrin()'],['../classtvm_1_1tir_1_1TensorIntrin.html#af5a94c7b098b56056e02eaf187e6871c',1,'tvm::tir::TensorIntrin::TensorIntrin()']]],
['tensorintrincall',['TensorIntrinCall',['../classtvm_1_1te_1_1TensorIntrinCall.html#a91c10074ce6babeba78fe72a0aab4b52',1,'tvm::te::TensorIntrinCall']]],
['tensorintrinnode',['TensorIntrinNode',['../classtvm_1_1te_1_1TensorIntrinNode.html#ad59e7f2b881fc798a8c64fd3959f929c',1,'tvm::te::TensorIntrinNode']]],
- ['tensorize',['tensorize',['../classtvm_1_1te_1_1Stage.html#ab5fe485e1d730c36b096c060b8d2ef9d',1,'tvm::te::Stage::tensorize()'],['../classtvm_1_1tir_1_1ScheduleNode.html#a66983e2dde6aeb18b443616398fff8bf',1,'tvm::tir::ScheduleNode::Tensorize(const LoopRV &loop_rv, const String &intrin, bool preserve_unit_iters=true)=0'],['../classtvm_1_1tir_1_1ScheduleNode.html#afa67abdb51145a49d42cd1464429d928',1,'tvm::tir::ScheduleNode::Tensorize(const BlockRV &block_rv, const String & [...]
+ ['tensorize',['Tensorize',['../classtvm_1_1tir_1_1ScheduleNode.html#a66983e2dde6aeb18b443616398fff8bf',1,'tvm::tir::ScheduleNode::Tensorize(const LoopRV &loop_rv, const String &intrin, bool preserve_unit_iters=true)=0'],['../classtvm_1_1tir_1_1ScheduleNode.html#afa67abdb51145a49d42cd1464429d928',1,'tvm::tir::ScheduleNode::Tensorize(const BlockRV &block_rv, const String &intrin, bool preserve_unit_iters=true)=0'],['../classtvm_1_1te_1_1Stage.html#ab5fe485e1d730c36b096c06 [...]
['tensornode',['TensorNode',['../classtvm_1_1te_1_1TensorNode.html#a153569448cb1bf9d2924d35639c3b8b8',1,'tvm::te::TensorNode']]],
['tensortype',['TensorType',['../classtvm_1_1TensorType.html#ade4460e9b02b42757a83808dec478b87',1,'tvm::TensorType']]],
['terminalrenderer',['TerminalRenderer',['../namespacetvm.html#a69a0e3f559d3a3b98d42701117d93ed0',1,'tvm']]],
@@ -56,7 +56,7 @@ var searchData=
['totupletype',['ToTupleType',['../namespacetvm_1_1relay.html#ae6757a008816e31cce4109e8dfc2bc16',1,'tvm::relay']]],
['touchtask',['TouchTask',['../classtvm_1_1meta__schedule_1_1TaskSchedulerNode.html#af2471f9b70cc8bfd39c1e1f26310da85',1,'tvm::meta_schedule::TaskSchedulerNode']]],
['tovar',['ToVar',['../classtvm_1_1tir_1_1AnyNode.html#ae01ebbba2378afb6509a22de97f8fb30',1,'tvm::tir::AnyNode']]],
- ['trace',['trace',['../classtvm_1_1tir_1_1ScheduleNode.html#a953bca4123b5a758adfdcd65634a5f3b',1,'tvm::tir::ScheduleNode::trace()'],['../classtvm_1_1tir_1_1Trace.html#a8e09abffd0b9b1afac7b832cf16c142d',1,'tvm::tir::Trace::Trace()'],['../classtvm_1_1tir_1_1Trace.html#af79bccf1bde25efea387bb1b82dacaa6',1,'tvm::tir::Trace::Trace(Array< Instruction > insts, Map< Instruction, ObjectRef > decisions)']]],
+ ['trace',['Trace',['../classtvm_1_1tir_1_1Trace.html#a8e09abffd0b9b1afac7b832cf16c142d',1,'tvm::tir::Trace::Trace()'],['../classtvm_1_1tir_1_1Trace.html#af79bccf1bde25efea387bb1b82dacaa6',1,'tvm::tir::Trace::Trace(Array< Instruction > insts, Map< Instruction, ObjectRef > decisions)'],['../classtvm_1_1tir_1_1ScheduleNode.html#a953bca4123b5a758adfdcd65634a5f3b',1,'tvm::tir::ScheduleNode::trace()']]],
['traced',['Traced',['../classtvm_1_1tir_1_1Schedule.html#a295d432b86621101f67b20fadb367b91',1,'tvm::tir::Schedule']]],
['transform',['Transform',['../classtvm_1_1te_1_1Transform.html#a51422cc2290f6b87fe61edb0db691125',1,'tvm::te::Transform']]],
['transform_5flayout',['transform_layout',['../classtvm_1_1te_1_1Stage.html#acec77eca6c9a4f1738a7c119d7ac2c2c',1,'tvm::te::Stage']]],
diff --git a/docs/reference/api/doxygen/search/functions_15.js b/docs/reference/api/doxygen/search/functions_15.js
index bdc768f4eb..7e95ae7553 100644
--- a/docs/reference/api/doxygen/search/functions_15.js
+++ b/docs/reference/api/doxygen/search/functions_15.js
@@ -37,12 +37,12 @@ var searchData=
['unionlowerbound',['UnionLowerBound',['../namespacetvm_1_1arith.html#ab22d7fd95abb5fa372843a40e19d80c5',1,'tvm::arith']]],
['unionregion',['UnionRegion',['../namespacetvm_1_1arith.html#ad27c4f216e41eb8e81296fb7ec4b9453',1,'tvm::arith']]],
['unionregionlowerbound',['UnionRegionLowerBound',['../namespacetvm_1_1arith.html#a4c3dedfa4cba4ad39c953eb51eb83e4d',1,'tvm::arith']]],
- ['unique',['unique',['../classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7',1,'tvm::runtime::Object::unique()'],['../classtvm_1_1runtime_1_1ObjectPtr.html#af95c6c6fcd89da0f62b93f1167b72314',1,'tvm::runtime::ObjectPtr::unique()'],['../classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7',1,'tvm::runtime::ObjectRef::unique()'],['../classtvm_1_1VirtualDeviceCache.html#a25ba1351484aa58a2cc7cef8f8e4423c',1,'tvm::VirtualDeviceCache::Unique()']]],
+ ['unique',['Unique',['../classtvm_1_1VirtualDeviceCache.html#a25ba1351484aa58a2cc7cef8f8e4423c',1,'tvm::VirtualDeviceCache::Unique()'],['../classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7',1,'tvm::runtime::Object::unique()'],['../classtvm_1_1runtime_1_1ObjectPtr.html#af95c6c6fcd89da0f62b93f1167b72314',1,'tvm::runtime::ObjectPtr::unique()'],['../classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7',1,'tvm::runtime::ObjectRef::unique()']]],
['uniqueglobalfor',['UniqueGlobalFor',['../classtvm_1_1GlobalVarSupplyNode.html#af67bad5d9d93381c440a7886cbef430a',1,'tvm::GlobalVarSupplyNode']]],
['unknownattributeaccesspathnode',['UnknownAttributeAccessPathNode',['../classtvm_1_1UnknownAttributeAccessPathNode.html#a1882e9e591466a2785acc761dc63d56e',1,'tvm::UnknownAttributeAccessPathNode']]],
['unmatchedcases',['UnmatchedCases',['../namespacetvm_1_1relay.html#aa3a8cace40f8056fd6412f39c3eaa605',1,'tvm::relay']]],
['unravel_5findex',['unravel_index',['../namespacetvm_1_1topi.html#a8811a02532bbe3047986bf1a8449ac0e',1,'tvm::topi']]],
- ['unroll',['unroll',['../classtvm_1_1auto__scheduler_1_1State.html#aa68a9d2e226bae38a36e4be4af1d1ae4',1,'tvm::auto_scheduler::State::unroll()'],['../classtvm_1_1te_1_1Stage.html#af83ad8672660403504f472228b044b33',1,'tvm::te::Stage::unroll()'],['../classtvm_1_1tir_1_1ScheduleNode.html#a84ec742f6295f59390592a6d0d90a552',1,'tvm::tir::ScheduleNode::Unroll()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#acd41556b0c4088d0f309ef5495aaebe3',1,'tvm::script::ir_builder::tir::Unroll()']]],
+ ['unroll',['Unroll',['../classtvm_1_1tir_1_1ScheduleNode.html#a84ec742f6295f59390592a6d0d90a552',1,'tvm::tir::ScheduleNode::Unroll()'],['../classtvm_1_1auto__scheduler_1_1State.html#aa68a9d2e226bae38a36e4be4af1d1ae4',1,'tvm::auto_scheduler::State::unroll()'],['../classtvm_1_1te_1_1Stage.html#af83ad8672660403504f472228b044b33',1,'tvm::te::Stage::unroll()'],['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#acd41556b0c4088d0f309ef5495aaebe3',1,'tvm::script::ir_builder::tir::Unroll()']]],
['unrollloop',['UnrollLoop',['../namespacetvm_1_1tir_1_1transform.html#ab2f279e91071fa96a1edb24fa004ea6a',1,'tvm::tir::transform']]],
['update',['Update',['../classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7',1,'tvm::arith::ConstIntBoundAnalyzer::Update()'],['../classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d',1,'tvm::arith::ModularSetAnalyzer::Update()'],['../classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b',1,'tvm::arith::RewriteSimplifier::Update()'],['../classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940 [...]
['updatecostmodel',['UpdateCostModel',['../classtvm_1_1meta__schedule_1_1MeasureCallback.html#afdf5503c6e6f53767de132d91a7b53f9',1,'tvm::meta_schedule::MeasureCallback']]],
diff --git a/docs/reference/api/doxygen/search/functions_16.js b/docs/reference/api/doxygen/search/functions_16.js
index 77d130f6e1..464391e978 100644
--- a/docs/reference/api/doxygen/search/functions_16.js
+++ b/docs/reference/api/doxygen/search/functions_16.js
@@ -8,7 +8,7 @@ var searchData=
['vector',['Vector',['../classtvm_1_1arith_1_1IntSet.html#a29b6f1e60f4b328fcfabc514e0c10f17',1,'tvm::arith::IntSet']]],
['vectorcombine',['vectorcombine',['../namespacetvm_1_1tir_1_1builtin.html#a30dff65bc2c142b57fae7f60e378ff43',1,'tvm::tir::builtin']]],
['vectorhigh',['vectorhigh',['../namespacetvm_1_1tir_1_1builtin.html#a45bf65ca7ca01d2016e0b609117d7e25',1,'tvm::tir::builtin']]],
- ['vectorize',['vectorize',['../classtvm_1_1auto__scheduler_1_1State.html#a97b8a21210d63bea241dbab085d89b53',1,'tvm::auto_scheduler::State::vectorize()'],['../classtvm_1_1te_1_1Stage.html#a44d33e3920106e75dc7c68272f880812',1,'tvm::te::Stage::vectorize()'],['../classtvm_1_1tir_1_1ScheduleNode.html#ab4a8cd91959ceab22855ec338978bcee',1,'tvm::tir::ScheduleNode::Vectorize()']]],
+ ['vectorize',['Vectorize',['../classtvm_1_1tir_1_1ScheduleNode.html#ab4a8cd91959ceab22855ec338978bcee',1,'tvm::tir::ScheduleNode::Vectorize()'],['../classtvm_1_1auto__scheduler_1_1State.html#a97b8a21210d63bea241dbab085d89b53',1,'tvm::auto_scheduler::State::vectorize()'],['../classtvm_1_1te_1_1Stage.html#a44d33e3920106e75dc7c68272f880812',1,'tvm::te::Stage::vectorize()']]],
['vectorized',['Vectorized',['../namespacetvm_1_1script_1_1ir__builder_1_1tir.html#a2b3df6013772bdd23dfa872b81555272',1,'tvm::script::ir_builder::tir']]],
['vectorizeloop',['VectorizeLoop',['../namespacetvm_1_1tir_1_1transform.html#af3cecb50a8b8fc8021f6a87bc27587da',1,'tvm::tir::transform']]],
['vectorjacobianproduct',['VectorJacobianProduct',['../namespacetvm_1_1te.html#a547183f5a311af53ab598faba423fd64',1,'tvm::te']]],
diff --git a/docs/reference/api/doxygen/search/functions_9.js b/docs/reference/api/doxygen/search/functions_9.js
index 982870df26..bd2bca114c 100644
--- a/docs/reference/api/doxygen/search/functions_9.js
+++ b/docs/reference/api/doxygen/search/functions_9.js
@@ -139,6 +139,7 @@ var searchData=
['isexpr',['IsExpr',['../namespacetvm_1_1relay.html#a61dc962beca310c25ef857e51fb3553c',1,'tvm::relay']]],
['isexternalcodegen',['IsExternalCodegen',['../classtvm_1_1Target.html#a4e4aca0d3516a0998b55d043e12cd832',1,'tvm::Target']]],
['isexternalcodegenfor',['IsExternalCodegenFor',['../classtvm_1_1Target.html#acc8e9cae4385eb160ca79b1ddf8a7510',1,'tvm::Target']]],
+ ['isfaildeferralenabled',['IsFailDeferralEnabled',['../classtvm_1_1SEqualReducer_1_1Handler.html#a76f03c6be7e3c24808ba4a72285952d9',1,'tvm::SEqualReducer::Handler::IsFailDeferralEnabled()'],['../classtvm_1_1SEqualHandlerDefault.html#a0a6bf7984baa7682d1dbc635d4d78f31',1,'tvm::SEqualHandlerDefault::IsFailDeferralEnabled()']]],
['isfinite',['isfinite',['../namespacetvm.html#a096aa20c0df975d089231b2c6fda2e61',1,'tvm::isfinite()'],['../namespacetvm_1_1topi.html#aaa52f4a921ac110066390deeb052dfac',1,'tvm::topi::isfinite()']]],
['isfullyconstrained',['IsFullyConstrained',['../classtvm_1_1VirtualDeviceNode.html#ae3c848e08b56105cdb046907ccbfc59c',1,'tvm::VirtualDeviceNode']]],
['isfullyunconstrained',['IsFullyUnconstrained',['../classtvm_1_1VirtualDeviceNode.html#acbae67e35fb5348e30101ae23073ad52',1,'tvm::VirtualDeviceNode']]],
diff --git a/docs/reference/api/doxygen/search/functions_d.js b/docs/reference/api/doxygen/search/functions_d.js
index 27a4521454..331ee93674 100644
--- a/docs/reference/api/doxygen/search/functions_d.js
+++ b/docs/reference/api/doxygen/search/functions_d.js
@@ -38,7 +38,7 @@ var searchData=
['matchrange',['MatchRange',['../classtvm_1_1arith_1_1IntSet.html#a2f2999336fbba4f436b66bdddce5c57a',1,'tvm::arith::IntSet']]],
['matmul',['matmul',['../namespacetvm_1_1topi.html#adae7dcb7e951109ba72192202d182994',1,'tvm::topi']]],
['matrix_5fset_5fdiag',['matrix_set_diag',['../namespacetvm_1_1topi.html#aead477c6c9d4f4589d22b8acff82040c',1,'tvm::topi']]],
- ['max',['max',['../classtvm_1_1arith_1_1IntSet.html#ac215840d3e9fb2817f1e5648e31317c5',1,'tvm::arith::IntSet::max()'],['../classtvm_1_1support_1_1LinearCongruentialEngine.html#a2c5ea87b1155aa7810e0beb3b69b955b',1,'tvm::support::LinearCongruentialEngine::max()'],['../classtvm_1_1tir_1_1Max.html#a7dff11b4dea01bfc7a03eacd077f0729',1,'tvm::tir::Max::Max()'],['../namespacetvm.html#a0df5ca82d2c566f628ebb2f1e84a3fcb',1,'tvm::max(PrimExpr a, PrimExpr b, Span span=Span())'],['../namespacetvm.ht [...]
+ ['max',['Max',['../classtvm_1_1tir_1_1Max.html#a7dff11b4dea01bfc7a03eacd077f0729',1,'tvm::tir::Max::Max()'],['../classtvm_1_1arith_1_1IntSet.html#ac215840d3e9fb2817f1e5648e31317c5',1,'tvm::arith::IntSet::max()'],['../classtvm_1_1support_1_1LinearCongruentialEngine.html#a2c5ea87b1155aa7810e0beb3b69b955b',1,'tvm::support::LinearCongruentialEngine::max()'],['../namespacetvm.html#a0df5ca82d2c566f628ebb2f1e84a3fcb',1,'tvm::max(PrimExpr a, PrimExpr b, Span span=Span())'],['../namespacetvm.ht [...]
['max_5fvalue',['max_value',['../namespacetvm.html#a4f1398024c0af23699447ef910b654b8',1,'tvm']]],
['maxconcurrency',['MaxConcurrency',['../namespacetvm_1_1runtime_1_1threading.html#af8c1c389a74e67bcc3680555288219f8',1,'tvm::runtime::threading']]],
['maximum',['maximum',['../namespacetvm_1_1topi.html#afd64bc3e27dfc97002d3add5d7ce4174',1,'tvm::topi::maximum(const tvm::PrimExpr &a, const tvm::PrimExpr &b)'],['../namespacetvm_1_1topi.html#a5338e9297463bc745027fca67daa2ebb',1,'tvm::topi::maximum(const tvm::te::Tensor &A, const tvm::te::Tensor &B, std::string name="T_" "maximum", std::string tag=kBroadcast)'],['../namespacetvm_1_1topi.html#a4076a8d6a2b243c548d741e9f6bcfe69',1,'tvm::topi::maximum(con [...]
diff --git a/docs/reference/api/doxygen/search/variables_11.js b/docs/reference/api/doxygen/search/variables_11.js
index bba973d1bd..d1ce41a666 100644
--- a/docs/reference/api/doxygen/search/variables_11.js
+++ b/docs/reference/api/doxygen/search/variables_11.js
@@ -101,5 +101,6 @@ var searchData=
['sub_5fdiag_5fright_5falign',['sub_diag_right_align',['../structtvm_1_1relay_1_1MatrixSetDiagAttrs.html#a1acfc2cf9788e7bef4798d059bd72aee',1,'tvm::relay::MatrixSetDiagAttrs']]],
['super_5fdiag_5fright_5falign',['super_diag_right_align',['../structtvm_1_1relay_1_1MatrixSetDiagAttrs.html#adb7c44439db1d842a6c804547df02a31',1,'tvm::relay::MatrixSetDiagAttrs']]],
['support_5flevel',['support_level',['../classtvm_1_1OpNode.html#a68a34098b5a111dec5f381cc4a80cb78',1,'tvm::OpNode']]],
- ['sync_5fhandle',['sync_handle',['../structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c',1,'TVMParallelGroupEnv']]]
+ ['sync_5fhandle',['sync_handle',['../structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c',1,'TVMParallelGroupEnv']]],
+ ['syntax_5fsugar',['syntax_sugar',['../classtvm_1_1PrinterConfigNode.html#a518824def075339074d4451a79e3dd9b',1,'tvm::PrinterConfigNode']]]
];
diff --git a/docs/reference/api/doxygen/structural__equal_8h_source.html b/docs/reference/api/doxygen/structural__equal_8h_source.html
index f1fcf3a815..91bff2b17e 100644
--- a/docs/reference/api/doxygen/structural__equal_8h_source.html
+++ b/docs/reference/api/doxygen/structural__equal_8h_source.html
@@ -66,13 +66,13 @@ $(function() {
<div class="title">structural_equal.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="structural__equal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * o [...]
-<div class="ttc" id="classtvm_1_1SEqualReducer_1_1Handler_html_a3971c2653bf9bae74dd940cd80085aef"><div class="ttname"><a href="classtvm_1_1SEqualReducer_1_1Handler.html#a3971c2653bf9bae74dd940cd80085aef">tvm::SEqualReducer::Handler::PathTracingData</a></div><div class="ttdeci">SEqualReducer::PathTracingData PathTracingData</div><div class="ttdef"><b>Definition:</b> structural_equal.h:171</div></div>
+<a href="structural__equal_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * o [...]
+<div class="ttc" id="classtvm_1_1SEqualReducer_1_1Handler_html_a3971c2653bf9bae74dd940cd80085aef"><div class="ttname"><a href="classtvm_1_1SEqualReducer_1_1Handler.html#a3971c2653bf9bae74dd940cd80085aef">tvm::SEqualReducer::Handler::PathTracingData</a></div><div class="ttdeci">SEqualReducer::PathTracingData PathTracingData</div><div class="ttdef"><b>Definition:</b> structural_equal.h:178</div></div>
<div class="ttc" id="classtvm_1_1BaseValueEqual_html_a47b854c8cb7ae0e4117c8587b1ca7d87"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html#a47b854c8cb7ae0e4117c8587b1ca7d87">tvm::BaseValueEqual::operator()</a></div><div class="ttdeci">bool operator()(const uint64_t &lhs, const uint64_t &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:49</div></div>
<div class="ttc" id="classtvm_1_1BaseValueEqual_html_aa85342117cc040157ee0ca5dcf9a748e"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html#aa85342117cc040157ee0ca5dcf9a748e">tvm::BaseValueEqual::operator()</a></div><div class="ttdeci">bool operator()(const std::string &lhs, const std::string &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:52</div></div>
<div class="ttc" id="classtvm_1_1ObjectPathPairNode_html"><div class="ttname"><a href="classtvm_1_1ObjectPathPairNode.html">tvm::ObjectPathPairNode</a></div><div class="ttdoc">Pair of ObjectPaths, one for each object being tested for structural equality. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:63</div></div>
<div class="ttc" id="classtvm_1_1BaseValueEqual_html_ab1d28212518d24cc1175b8b7ae2887d6"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html#ab1d28212518d24cc1175b8b7ae2887d6">tvm::BaseValueEqual::operator()</a></div><div class="ttdeci">bool operator()(const double &lhs, const double &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:40</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
<div class="ttc" id="classtvm_1_1BaseValueEqual_html_a77d0cce528fb92c5187e11d452b169f9"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html#a77d0cce528fb92c5187e11d452b169f9">tvm::BaseValueEqual::operator()</a></div><div class="ttdeci">bool operator()(const int &lhs, const int &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:50</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="classtvm_1_1BaseValueEqual_html_a3b4e1128fc280531030b4d8b06c346eb"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html#a3b4e1128fc280531030b4d8b06c346eb">tvm::BaseValueEqual::operator()</a></div><div class="ttdeci">bool operator()(const DataType &lhs, const DataType &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:53</div></div>
@@ -83,28 +83,28 @@ $(function() {
<div class="ttc" id="classtvm_1_1StructuralEqual_html"><div class="ttname"><a href="classtvm_1_1StructuralEqual.html">tvm::StructuralEqual</a></div><div class="ttdoc">Content-aware structural equality comparator for objects. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:103</div></div>
<div class="ttc" id="array_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div><div class="ttdoc">Runtime Array container types. </div></div>
<div class="ttc" id="classtvm_1_1BaseValueEqual_html_a65fe41787baaade1ee1d438f1e52ca19"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html#a65fe41787baaade1ee1d438f1e52ca19">tvm::BaseValueEqual::operator()</a></div><div class="ttdeci">bool operator()(const int64_t &lhs, const int64_t &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:48</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_a74b0cfae81ee9911078700377a8ac80d"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a74b0cfae81ee9911078700377a8ac80d">tvm::SEqualReducer::IsPathTracingEnabled</a></div><div class="ttdeci">bool IsPathTracingEnabled() const</div><div class="ttdoc">Check if this reducer is tracing paths to the first mismatch. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:289</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_a74b0cfae81ee9911078700377a8ac80d"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a74b0cfae81ee9911078700377a8ac80d">tvm::SEqualReducer::IsPathTracingEnabled</a></div><div class="ttdeci">bool IsPathTracingEnabled() const</div><div class="ttdoc">Check if this reducer is tracing paths to the first mismatch. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:296</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1Array_html_aed6387e67d18b9d5ad18f510fd600a25"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html#aed6387e67d18b9d5ad18f510fd600a25">tvm::runtime::Array::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdef"><b>Definition:</b> array.h:420</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type. </div><div class="ttdef"><b>Definition:</b> data_type.h:41</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1Array_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array</a></div><div class="ttdoc">Array, container representing a contiguous sequence of ObjectRefs. </div><div class="ttdef"><b>Definition:</b> array.h:289</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_a223371ab1879c2be58507790ada6300e"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a223371ab1879c2be58507790ada6300e">tvm::SEqualReducer::operator()</a></div><div class="ttdeci">bool operator()(const ENum &lhs, const ENum &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:200</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_a9e7206f06f19162849a0c0a7f3258e7b"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a9e7206f06f19162849a0c0a7f3258e7b">tvm::SEqualReducer::operator()</a></div><div class="ttdeci">bool operator()(const Array< T > &lhs, const Array< T > &rhs) const</div><div class="ttdoc">Reduce condition to comparison of two arrays. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:255</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_a223371ab1879c2be58507790ada6300e"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a223371ab1879c2be58507790ada6300e">tvm::SEqualReducer::operator()</a></div><div class="ttdeci">bool operator()(const ENum &lhs, const ENum &rhs) const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:207</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_a9e7206f06f19162849a0c0a7f3258e7b"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a9e7206f06f19162849a0c0a7f3258e7b">tvm::SEqualReducer::operator()</a></div><div class="ttdeci">bool operator()(const Array< T > &lhs, const Array< T > &rhs) const</div><div class="ttdoc">Reduce condition to comparison of two arrays. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:262</div></div>
<div class="ttc" id="functor_8h_html"><div class="ttname"><a href="functor_8h.html">functor.h</a></div><div class="ttdoc">Defines the Functor data structures. </div></div>
<div class="ttc" id="object__path_8h_html"><div class="ttname"><a href="object__path_8h.html">object_path.h</a></div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_a97eb296b45fee73c0ff6064c8eebdd7c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a97eb296b45fee73c0ff6064c8eebdd7c">tvm::SEqualReducer::SEqualReducer</a></div><div class="ttdeci">SEqualReducer(Handler *handler, const PathTracingData *tracing_data, bool map_free_vars)</div><div class="ttdoc">Constructor with a specific handler. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:182</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_a97eb296b45fee73c0ff6064c8eebdd7c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a97eb296b45fee73c0ff6064c8eebdd7c">tvm::SEqualReducer::SEqualReducer</a></div><div class="ttdeci">SEqualReducer(Handler *handler, const PathTracingData *tracing_data, bool map_free_vars)</div><div class="ttdoc">Constructor with a specific handler. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:189</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference. </div><div class="ttdef"><b>Definition:</b> object.h:511</div></div>
<div class="ttc" id="classtvm_1_1ObjectPathPair_html"><div class="ttname"><a href="classtvm_1_1ObjectPathPair.html">tvm::ObjectPathPair</a></div><div class="ttdef"><b>Definition:</b> structural_equal.h:74</div></div>
<div class="ttc" id="classtvm_1_1SEqualReducer_1_1Handler_html"><div class="ttname"><a href="classtvm_1_1SEqualReducer_1_1Handler.html">tvm::SEqualReducer::Handler</a></div><div class="ttdoc">Internal handler that defines custom behaviors.. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:130</div></div>
<div class="ttc" id="object_8h_html_a3aea9b3f65aeb9150c0fa7800e5573c6"><div class="ttname"><a href="object_8h.html#a3aea9b3f65aeb9150c0fa7800e5573c6">TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">#define TVM_DECLARE_FINAL_OBJECT_INFO(TypeName, ParentType)</div><div class="ttdoc">helper macro to declare type information in a final class. </div><div class="ttdef"><b>Definition:</b> object.h:671</div></div>
<div class="ttc" id="data__type_8h_html"><div class="ttname"><a href="data__type_8h.html">data_type.h</a></div></div>
<div class="ttc" id="classtvm_1_1ObjectPathPairNode_html_ab0b0e402bc6722eb21829a8520d0031c"><div class="ttname"><a href="classtvm_1_1ObjectPathPairNode.html#ab0b0e402bc6722eb21829a8520d0031c">tvm::ObjectPathPairNode::rhs_path</a></div><div class="ttdeci">ObjectPath rhs_path</div><div class="ttdef"><b>Definition:</b> structural_equal.h:66</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_a6a381ad92eae02745a5c95c098fc38ec"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a6a381ad92eae02745a5c95c098fc38ec">tvm::SEqualReducer::operator()</a></div><div class="ttdeci">bool operator()(const ObjectRef &lhs, const ObjectRef &rhs, const ObjectPathPair &paths) const</div><div class="ttdoc">Reduce condition to comparison of two objects. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:230</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_a6a381ad92eae02745a5c95c098fc38ec"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#a6a381ad92eae02745a5c95c098fc38ec">tvm::SEqualReducer::operator()</a></div><div class="ttdeci">bool operator()(const ObjectRef &lhs, const ObjectRef &rhs, const ObjectPathPair &paths) const</div><div class="ttdoc">Reduce condition to comparison of two objects. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:237</div></div>
<div class="ttc" id="classtvm_1_1ObjectPath_html"><div class="ttname"><a href="classtvm_1_1ObjectPath.html">tvm::ObjectPath</a></div><div class="ttdef"><b>Definition:</b> object_path.h:122</div></div>
<div class="ttc" id="classtvm_1_1BaseValueEqual_html"><div class="ttname"><a href="classtvm_1_1BaseValueEqual.html">tvm::BaseValueEqual</a></div><div class="ttdoc">Equality definition of base value class. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:38</div></div>
<div class="ttc" id="classtvm_1_1runtime_1_1Optional_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Optional.html">tvm::runtime::Optional</a></div><div class="ttdoc">Optional container that to represent to a Nullable variant of T. </div><div class="ttdef"><b>Definition:</b> optional.h:51</div></div>
-<div class="ttc" id="classtvm_1_1SEqualHandlerDefault_html"><div class="ttname"><a href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></div><div class="ttdoc">The default handler for equality testing. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:332</div></div>
+<div class="ttc" id="classtvm_1_1SEqualHandlerDefault_html"><div class="ttname"><a href="classtvm_1_1SEqualHandlerDefault.html">tvm::SEqualHandlerDefault</a></div><div class="ttdoc">The default handler for equality testing. </div><div class="ttdef"><b>Definition:</b> structural_equal.h:339</div></div>
<div class="ttc" id="object_8h_html_a782d0de62fbf75736e29c1e79c22c7f1"><div class="ttname"><a href="object_8h.html#a782d0de62fbf75736e29c1e79c22c7f1">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">#define TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)</div><div class="ttdef"><b>Definition:</b> object.h:728</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_af5d3b2a3d0a59a2f029f68157f917446"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#af5d3b2a3d0a59a2f029f68157f917446">tvm::SEqualReducer::operator-></a></div><div class="ttdeci">Handler * operator->() const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:286</div></div>
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_af5d3b2a3d0a59a2f029f68157f917446"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#af5d3b2a3d0a59a2f029f68157f917446">tvm::SEqualReducer::operator-></a></div><div class="ttdeci">Handler * operator->() const</div><div class="ttdef"><b>Definition:</b> structural_equal.h:293</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/var_8h_source.html b/docs/reference/api/doxygen/var_8h_source.html
index 06beebcadb..9d53f50a8a 100644
--- a/docs/reference/api/doxygen/var_8h_source.html
+++ b/docs/reference/api/doxygen/var_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
<div class="ttc" id="node_8h_html"><div class="ttname"><a href="node_8h.html">node.h</a></div><div class="ttdoc">Definitions and helper macros for IR/AST nodes. </div></div>
<div class="ttc" id="classtvm_1_1tir_1_1VarNode_html_a629882d57604a710116f12976b40a043"><div class="ttname"><a href="classtvm_1_1tir_1_1VarNode.html#a629882d57604a710116f12976b40a043">tvm::tir::VarNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(VarNode, PrimExprNode)</div></div>
<div class="ttc" id="classtvm_1_1tir_1_1VarNode_html_ad9481f1386e2b002617a7ef93af13019"><div class="ttname"><a href="classtvm_1_1tir_1_1VarNode.html#ad9481f1386e2b002617a7ef93af13019">tvm::tir::VarNode::_type_child_slots</a></div><div class="ttdeci">static constexpr const uint32_t _type_child_slots</div><div class="ttdef"><b>Definition:</b> var.h:83</div></div>
-<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
+<div class="ttc" id="classtvm_1_1SEqualReducer_html_ad9c0e2985eb9d82eecc67ea0f008154c"><div class="ttname"><a href="classtvm_1_1SEqualReducer.html#ad9c0e2985eb9d82eecc67ea0f008154c">tvm::SEqualReducer::FreeVarEqualImpl</a></div><div class="ttdeci">bool FreeVarEqualImpl(const runtime::Object *lhs, const runtime::Object *rhs) const</div><div class="ttdoc">Implementation for equality rule of var type objects(e.g. TypeVar, tir::Var). </div><div class="ttdef"><b>Definition:</b> structural_equ [...]
<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="classtvm_1_1BaseExprNode_html_a13d7d1f1e6f790951caf200cd59c3620"><div class="ttname"><a href="classtvm_1_1BaseExprNode.html#a13d7d1f1e6f790951caf200cd59c3620">tvm::BaseExprNode::_type_has_method_shash_reduce</a></div><div class="ttdeci">static constexpr const bool _type_has_method_shash_reduce</div><div class="ttdef"><b>Definition:</b> expr.h:59</div></div>
diff --git a/docs/reference/api/python/auto_scheduler.html b/docs/reference/api/python/auto_scheduler.html
index 73878973b7..394167c2ba 100644
--- a/docs/reference/api/python/auto_scheduler.html
+++ b/docs/reference/api/python/auto_scheduler.html
@@ -1616,7 +1616,7 @@ history states as starting point to perform Evolutionary Search).</p></li>
<dl class="py class">
<dt class="sig sig-object py" id="tvm.auto_scheduler.SketchPolicy">
-<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">tvm.auto_scheduler.</span></span><span class="sig-name descname"><span class="pre">SketchPolicy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">program_cost_model</span></span><span class="o"><span class="pre">=</span></span><span class="defau [...]
+<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">tvm.auto_scheduler.</span></span><span class="sig-name descname"><span class="pre">SketchPolicy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">program_cost_model</span></span><span class="o"><span class="pre">=</span></span><span class="defau [...]
<dd><p>The search policy that searches in a hierarchical search space defined by sketches.
The policy randomly samples programs from the space defined by sketches and use evolutionary
search to fine-tune them.</p>
@@ -1900,7 +1900,7 @@ Candidates:
<dl class="py function">
<dt class="sig sig-object py" id="tvm.auto_scheduler.auto_schedule">
-<span class="sig-prename descclassname"><span class="pre">tvm.auto_scheduler.</span></span><span class="sig-name descname"><span class="pre">auto_schedule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">search_policy</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em clas [...]
+<span class="sig-prename descclassname"><span class="pre">tvm.auto_scheduler.</span></span><span class="sig-name descname"><span class="pre">auto_schedule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">search_policy</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em clas [...]
<dd><p>THIS API IS DEPRECATED.</p>
<p>Run auto scheduling search for a task.</p>
<dl class="field-list simple">
diff --git a/docs/reference/api/python/runtime.html b/docs/reference/api/python/runtime.html
index 94787171a6..c3a8480c6d 100644
--- a/docs/reference/api/python/runtime.html
+++ b/docs/reference/api/python/runtime.html
@@ -567,7 +567,7 @@ TVM backend also registers and exposes its API as Functions.</p>
</table>
<dl class="py method">
<dt class="sig sig-object py" id="tvm.runtime.Scriptable.script">
-<span class="sig-name descname"><span class="pre">script</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ir_prefix</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.11)"><span class="pre">str</span></a></span> <span class= [...]
+<span class="sig-name descname"><span class="pre">script</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ir_prefix</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.11)"><span class="pre">str</span></a></span> <span class= [...]
<dd><p>Print TVM IR into TVMScript text format</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -583,6 +583,7 @@ TVM backend also registers and exposes its API as Functions.</p>
<li><p><strong>print_line_numbers</strong> (<em>bool = False</em>) – Whether to print line numbers</p></li>
<li><p><strong>num_context_lines</strong> (<em>int = -1</em>) – The number of lines of context to print before and after the line to underline.</p></li>
<li><p><strong>path_to_underline</strong> (<em>Optional</em><em>[</em><a class="reference internal" href="#tvm.runtime.ObjectPath" title="tvm.runtime.ObjectPath"><em>ObjectPath</em></a><em>] </em><em>= None</em>) – Object path to be underlined</p></li>
+<li><p><strong>syntax_sugar</strong> (<em>bool = True</em>) – Whether to output with syntax sugar, set false for complete printing.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
@@ -596,7 +597,7 @@ TVM backend also registers and exposes its API as Functions.</p>
<dl class="py method">
<dt class="sig sig-object py" id="tvm.runtime.Scriptable.show">
-<span class="sig-name descname"><span class="pre">show</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.11)"><span class="pre">str</span></a><span class="p"><span [...]
+<span class="sig-name descname"><span class="pre">show</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.11)"><span class="pre">str</span></a><span class="p"><span [...]
<dd><p>A sugar for print highlighted TVM script.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
@@ -615,6 +616,7 @@ TVM backend also registers and exposes its API as Functions.</p>
<li><p><strong>print_line_numbers</strong> (<em>bool = False</em>) – Whether to print line numbers</p></li>
<li><p><strong>num_context_lines</strong> (<em>int = -1</em>) – The number of lines of context to print before and after the line to underline.</p></li>
<li><p><strong>path_to_underline</strong> (<em>Optional</em><em>[</em><a class="reference internal" href="#tvm.runtime.ObjectPath" title="tvm.runtime.ObjectPath"><em>ObjectPath</em></a><em>] </em><em>= None</em>) – Object path to be underlined</p></li>
+<li><p><strong>syntax_sugar</strong> (<em>bool = True</em>) – Whether to output with syntax sugar, set false for complete printing.</p></li>
</ul>
</dd>
</dl>
diff --git a/docs/reference/api/typedoc/classes/bytestreamreader.html b/docs/reference/api/typedoc/classes/bytestreamreader.html
index 6b734e1fc2..35baf5caef 100644
--- a/docs/reference/api/typedoc/classes/bytestreamreader.html
+++ b/docs/reference/api/typedoc/classes/bytestreamreader.html
@@ -119,7 +119,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/rpc_server.ts#L43">rpc_server.ts:43</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/rpc_server.ts#L43">rpc_server.ts:43</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -141,7 +141,7 @@
<div class="tsd-signature tsd-kind-icon">bytes<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Uint8Array</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/rpc_server.ts#L43">rpc_server.ts:43</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/rpc_server.ts#L43">rpc_server.ts:43</a></li>
</ul>
</aside>
</section>
@@ -151,7 +151,7 @@
<div class="tsd-signature tsd-kind-icon">offset<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 0</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/rpc_server.ts#L42">rpc_server.ts:42</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/rpc_server.ts#L42">rpc_server.ts:42</a></li>
</ul>
</aside>
</section>
@@ -168,7 +168,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/rpc_server.ts#L63">rpc_server.ts:63</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/rpc_server.ts#L63">rpc_server.ts:63</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
@@ -185,7 +185,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/rpc_server.ts#L49">rpc_server.ts:49</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/rpc_server.ts#L49">rpc_server.ts:49</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
@@ -202,7 +202,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/rpc_server.ts#L57">rpc_server.ts:57</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/rpc_server.ts#L57">rpc_server.ts:57</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
diff --git a/docs/reference/api/typedoc/classes/cachedcallstack.html b/docs/reference/api/typedoc/classes/cachedcallstack.html
index 5875251618..78c3c10efc 100644
--- a/docs/reference/api/typedoc/classes/cachedcallstack.html
+++ b/docs/reference/api/typedoc/classes/cachedcallstack.html
@@ -144,7 +144,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L223">memory.ts:223</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L223">memory.ts:223</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -172,7 +172,7 @@
<div class="tsd-signature tsd-kind-icon">temp<wbr>Args<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = []</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L208">memory.ts:208</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L208">memory.ts:208</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -194,7 +194,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L312">memory.ts:312</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L312">memory.ts:312</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -226,7 +226,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L284">memory.ts:284</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L284">memory.ts:284</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -262,7 +262,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L388">memory.ts:388</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L388">memory.ts:388</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -300,7 +300,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L376">memory.ts:376</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L376">memory.ts:376</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -340,7 +340,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L267">memory.ts:267</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L267">memory.ts:267</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -373,7 +373,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L243">memory.ts:243</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L243">memory.ts:243</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
@@ -390,7 +390,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L321">memory.ts:321</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L321">memory.ts:321</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -422,7 +422,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L252">memory.ts:252</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L252">memory.ts:252</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -444,7 +444,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L359">memory.ts:359</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L359">memory.ts:359</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -470,7 +470,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L342">memory.ts:342</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L342">memory.ts:342</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -496,7 +496,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L350">memory.ts:350</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L350">memory.ts:350</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -522,7 +522,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L326">memory.ts:326</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L326">memory.ts:326</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -548,7 +548,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L363">memory.ts:363</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L363">memory.ts:363</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -574,7 +574,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L346">memory.ts:346</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L346">memory.ts:346</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -600,7 +600,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/memory.ts#L334">memory.ts:334</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/memory.ts#L334">memory.ts:334</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
diff --git a/docs/reference/api/typedoc/classes/dldatatype.html b/docs/reference/api/typedoc/classes/dldatatype.html
index 28a04efb18..4ec3636e30 100644
--- a/docs/reference/api/typedoc/classes/dldatatype.html
+++ b/docs/reference/api/typedoc/classes/dldatatype.html
@@ -119,7 +119,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L262">runtime.ts:262</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L262">runtime.ts:262</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -147,7 +147,7 @@
<div class="tsd-signature tsd-kind-icon">bits<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L260">runtime.ts:260</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L260">runtime.ts:260</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -162,7 +162,7 @@
<div class="tsd-signature tsd-kind-icon">code<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L258">runtime.ts:258</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L258">runtime.ts:258</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -177,7 +177,7 @@
<div class="tsd-signature tsd-kind-icon">lanes<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L262">runtime.ts:262</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L262">runtime.ts:262</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -199,7 +199,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L279">runtime.ts:279</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L279">runtime.ts:279</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
@@ -216,7 +216,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L270">runtime.ts:270</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L270">runtime.ts:270</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
diff --git a/docs/reference/api/typedoc/classes/dldevice.html b/docs/reference/api/typedoc/classes/dldevice.html
index 4a434cbf8f..b531568735 100644
--- a/docs/reference/api/typedoc/classes/dldevice.html
+++ b/docs/reference/api/typedoc/classes/dldevice.html
@@ -118,7 +118,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L202">runtime.ts:202</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L202">runtime.ts:202</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -146,7 +146,7 @@
<div class="tsd-signature tsd-kind-icon">device<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L200">runtime.ts:200</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L200">runtime.ts:200</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -161,7 +161,7 @@
<div class="tsd-signature tsd-kind-icon">device<wbr>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L198">runtime.ts:198</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L198">runtime.ts:198</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -183,7 +183,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L223">runtime.ts:223</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L223">runtime.ts:223</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -205,7 +205,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/runtime.ts#L230">runtime.ts:230</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/runtime.ts#L230">runtime.ts:230</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
diff --git a/docs/reference/api/typedoc/classes/environment.html b/docs/reference/api/typedoc/classes/environment.html
index c0f1271842..2e33ef17a1 100644
--- a/docs/reference/api/typedoc/classes/environment.html
+++ b/docs/reference/api/typedoc/classes/environment.html
@@ -125,7 +125,7 @@
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/environment.ts#L86">environment.ts:86</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/environment.ts#L86">environment.ts:86</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -169,7 +169,7 @@
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/libraryprovider.html">LibraryProvider</a>.<a href="../interfaces/libraryprovider.html#imports">imports</a></p>
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/environment.ts#L70">environment.ts:70</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/environment.ts#L70">environment.ts:70</a></li>
</ul>
</aside>
</section>
@@ -179,7 +179,7 @@
<div class="tsd-signature tsd-kind-icon">logger<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/environment.ts#L69">environment.ts:69</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/environment.ts#L69">environment.ts:69</a></li>
</ul>
</aside>
<div class="tsd-type-declaration">
@@ -210,7 +210,7 @@
<div class="tsd-signature tsd-kind-icon">packedCFunc<wbr>Table<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ctypes.FTVMWasmPackedCFunc</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = [undefined,]</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/environment.ts#L78">environment.ts:78</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/environment.ts#L78">environment.ts:78</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -228,7 +228,7 @@
<div class="tsd-signature tsd-kind-icon">packedCFunc<wbr>Table<wbr>Free<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = []</span></div>
<aside class="tsd-sources">
<ul>
- <li>Defined in <a href="https://github.com/apache/tvm/blob/98008c2d6/web/src/environment.ts#L84">environment.ts:84</a></li>
+ <li>Defined in <a href="https://github.com/apache/tvm/blob/f7aeaf1d3/web/src/environment.ts#L84">environment.ts:84</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@@ -250,7 +250,7 @@
<li class="tsd-description">
... 2551 lines suppressed ...