code: def relu_stir_schedule(Input, Output, input_layout, output_layout):
      """
      Schedule assumes the layout function to be bijective
      """
      if (input_layout != output_layout) or (
          output_layout != "nhwc-8h2w32c2w-2d"
      ):
          raise RuntimeError(
              f"Unexpected input_layout, output_layout '{input_layout, output_layout}'"
          )
      relu_func = te.create_prim_func([Input, Output])
      sch = tir.Schedule(relu_func, debug_mask="all")
      block = sch.get_block("compute")
      sch.transform_layout(
          block, Input.name, get_layout_transform_fn(input_layout)
      )
      sch.transform_layout(
          block, Output.name, get_layout_transform_fn(output_layout)
      )
  
      n, h, w, c = sch.get_loops(block)
      h_o, h_i = sch.split(h, [None, 8])
      w_o, w_i = sch.split(w, [None, 4])
      c_o, c_i = sch.split(c, [None, 32])
      wio, wii = sch.split(w_i, [None, 2])
  
      sch.reorder(n, h_o, w_o, c_o, h_i, wio, c_i, wii)
  
      fused = sch.fuse(c_i, wii)
      sch.vectorize(fused)
      return sch
  
imports: from tvm import te, tir, topi
  from ..utils import get_layout_transform_fn
label_desc: Use image node_id 3 for calling a global function with example usage: relu_stir_schedule(Input, Output, input_layout, output_layout) and returns: sch