code: def _pepare_conv2d_schedule(shapes, use_external_conv2d_impl=True):
      placeholders = _conv2d_te_definition(shapes)
  
      apps_path = (
          pathlib.Path(str(__file__))
          .parent.parent.parent.parent.parent.joinpath("apps")
          .absolute()
      )
      conv2d_file = apps_path / "uma" / "_template" / "conv2dnchw.cc"
  
      with conv2d_file.open() as f:
          sch_tir = _create_schedule(
              placeholders,
              f,
              use_external_conv2d_impl=use_external_conv2d_impl,
          )
      return placeholders, sch_tir
  
file_path: tvm/tests/python/contrib/test_uma/test_uma_lowering_with_umalower.py
imports: import pytest
  import pathlib
  import tvm
  from tests.python.contrib.test_uma.test_uma_utils import _create_schedule, _generate_io_arrays
  from tvm import topi
  from apps.uma._template.passes import MyAiHwConv2dPass
  import tvm.testing
  from tvm import te
  from tvm.relay.backend.contrib.uma.api.lower import UMALower
  from tvm.relay.backend.contrib.uma.api.utils import PassPhase
  from tvm.relay.backend.contrib.uma import uma_available
label_desc: Use image node_id 2 for calling a global function with example usage: _pepare_conv2d_schedule(shapes, use_external_conv2d_impl) and returns: placeholders,  sch_tir