code: def create_gemm_operator_with_epilogue(
      op_type,
      tile_description,
      data_type,
      alignment,
      swizzling_functor,
      batched=False,
  ):
      """
      Instantiate a cutlass kernel from the given configuration,
      along with the epilouge functor
      """
      element_a, element_b, element_c, element_epilogue = data_type
  
      A = TensorDescription(element_a, LayoutType.RowMajor, alignment)
      B = TensorDescription(
          element_b, LayoutType.ColumnMajor, alignment
      )
      C = TensorDescription(element_c, LayoutType.RowMajor, alignment)
  
      if batched:
          swizzling_functor = SwizzlingFunctor.Batched
  
      epilogue, no_beta_scaling = EPILOGUE_MAP[op_type]
  
      op = GemmOperation(
          tile_description.minimum_compute_capability,
          tile_description,
          A,
          B,
          C,
          element_epilogue,
          epilogue,
          swizzling_functor,
      )
  
      return (
          op.procedural_name(),
          EmitGemmInstance().emit(
              op, no_beta_scaling=no_beta_scaling, batched=batched
          ),
      )
  
file_path: tvm/python/tvm/contrib/cutlass/gen_gemm.py
imports: import os
  import pickle
  from .gemm_operation import EmitGemmInstance, GemmOperation
  from .gemm_profiler import GemmProfilerEmitter
  from .gen_tensor_op import EPILOGUE_MAP, GENERATOR_FUNC_TABLE, ProfilerEngine
  from .library import DataType, DataTypeTag, EpilogueFunctor, LayoutType, SwizzlingFunctor, TensorDescription
label_desc: Use image node_id 1 for calling a global function with example usage: create_gemm_operator_with_epilogue(op_type, tile_description, data_type, alignment, swizzling_functor, batched) and returns: op,  EmitGemmInstance