code: def make_ethosu_conv2d(
      ifm,
      ifm_channels,
      ofm_channels,
      kernel_shape,
      padding,
      strides,
      dilation,
      lut=relay.const([], dtype="int8"),
      activation="NONE",
      ifm_layout="NHWC",
      ofm_layout="NHWC",
      weight_dtype="int8",
      scale_bias_dtype="uint8",
      rounding_mode="TFL",
      upscale="NONE",
  ):
      # conv params
      weight_shape = (
          ofm_channels,
          kernel_shape[0],
          kernel_shape[1],
          ifm_channels,
      )
      padding = get_pad_tuple(padding, kernel_shape)
  
      scale_bias_data = generate_weights_data(
          (weight_shape[0], 10), scale_bias_dtype
      )
      scale_bias = relay.const(scale_bias_data, dtype=scale_bias_dtype)
      weight_data = generate_weights_data(weight_shape, weight_dtype)
      weight = relay.const(weight_data, dtype=weight_dtype)
      conv = ethosu_ops.ethosu_conv2d(
          ifm,
          weight,
          scale_bias,
          lut=lut,
          ifm_scale=0.5,
          ifm_zero_point=10,
          weight_zero_point=12,
          ofm_scale=0.25,
          ofm_zero_point=14,
          kernel_shape=kernel_shape,
          ofm_channels=ofm_channels,
          strides=strides,
          padding=padding,
          dilation=dilation,
          activation=activation,
          clip_min=10 if activation == "CLIP" else 0,
          clip_max=100 if activation == "CLIP" else 0,
          rounding_mode=rounding_mode,
          upscale=upscale,
          ifm_layout=ifm_layout,
          ofm_layout=ofm_layout,
      )
      return conv
  
imports: from typing import List
  import os
  import struct
  import numpy
  import math
  from enum import IntEnum
  import tensorflow
  from ethosu.vela.register_command_stream_generator import CmdMode
  from ethosu.vela.register_command_stream_generator import cmd0
  from ethosu.vela.register_command_stream_generator import cmd1
  import tvm
  from tvm import relay
  import tvm.relay.backend.contrib.ethosu.op
  from tvm.topi.nn.utils import get_pad_tuple
  from tvm.relay.expr_functor import ExprMutator
  from tvm.relay.op.annotation import compiler_begin, compiler_end
  from tvm.relay.backend.contrib.ethosu import preprocess
  import tvm.relay.testing.tf
  from tvm import WorkspaceMemoryPools, WorkspacePoolInfo, PoolInfoProperties
  from tvm.relay.op.contrib.ethosu import partition_for_ethosu
  from tvm.testing.aot import AOTCompiledTestModel, AOTDataLinkage, AOTTestModel, AOTTestRunner, compile_models, run_and_check
label_desc: Use image node_id 18 for calling a global function with example usage: make_ethosu_conv2d(ifm, ifm_channels, ofm_channels, kernel_shape, padding, strides, dilation, lut, activation, ifm_layout, ofm_layout, weight_dtype, scale_bias_dtype, rounding_mode, upscale) and returns: conv