code: def test_conv2d():
      d_shape = (16, 16, 32, 32)
      w_shape = (32, 16, 3, 3)
      padding = (1, 1)
  
      for IC in [3, 16]:
          d_shape = (16, IC, 32, 32)
          w_shape = (32, IC, 3, 3)
          mod_nchw = get_conv2d_nchw(d_shape, w_shape, padding)
  
          verify_conv2d(
              mod_nchw,
              mod_nchw,
              d_shape,
              w_shape,
              sm=80,
              atol=1e-5,
              rtol=1e-5,
              use_cudnn_ref=(
                  IC == 3
              ),  # The autotvm kernel has an accuracy issue with IC == 3 case
              run_benchmark=False,
          )
  
      dyn_batch_shape = (relay.Any(),) + d_shape[1:]
      mod_nchw = get_conv2d_nchw(d_shape, w_shape, padding)
      mod_dyn = get_conv2d_nchw(dyn_batch_shape, w_shape, padding)
  
      verify_conv2d(
          mod_dyn,
          mod_nchw,
          d_shape,
          w_shape,
          sm=80,
          atol=1e-5,
          rtol=1e-5,
          run_benchmark=False,
      )
  
      for data_dtype, weight_dtype, out_dtype in [
          ("float32", "float32", "float32"),  # 3xtf32
          ("int8", "int8", "int32"),
          ("uint8", "int8", "int32"),
      ]:
          expr = get_conv2d_nchw(
              d_shape,
              w_shape,
              padding,
              out_dtype=out_dtype,
              data_dtype=data_dtype,
              weight_dtype=weight_dtype,
          )
  
          verify_conv2d(
              expr,
              expr,
              d_shape,
              w_shape,
              sm=80,
              atol=1e-5,
              rtol=1e-5,
              run_benchmark=False,
              data_dtype=data_dtype,
              weight_dtype=weight_dtype,
              ref_target="llvm",
          )
  
      # align1 + int8 case
      d_shape = (16, 3, 32, 32)
      w_shape = (32, 3, 3, 3)
      mod_nchw = get_conv2d_nchw(
          d_shape,
          w_shape,
          padding,
          out_dtype="int32",
          data_dtype="uint8",
          weight_dtype="int8",
      )
  
      verify_conv2d(
          mod_nchw,
          mod_nchw,
          d_shape,
          w_shape,
          sm=80,
          atol=1e-5,
          rtol=1e-5,
          ref_target="llvm",
          data_dtype="uint8",
          weight_dtype="int8",
      )
  
imports: import logging
  import tempfile
  import math
  import tvm
  from tvm import relay
  from tvm.contrib.cudnn import conv_output_shape
  import numpy
  from tvm.relay import op
  from tvm.runtime.vm import VirtualMachine
  from tvm.relay.op.contrib.cutlass import partition_for_cutlass
  from tvm import auto_scheduler
  from tvm.relay.transform import FirstOrderGradient, ToMixedPrecision, InferType
  from tvm.contrib.cutlass import has_cutlass, num_cutlass_partitions, finalize_modules, finalize_modules_vm
  import tvm.testing
label_desc: Use image node_id 40 for calling a global function with example usage: test_conv2d() without return types