class_docstr: CUTLASS GEMM template, which is used to generate CUTLASS GEMM kernels
  including those which allow flexible fusions with epilogues.
class_docstr_tok: ["CUTLASS","GEMM","template",",","which","is","used","to","generate","CUTLASS","GEMM","kernels","including","those","which","allow","flexible","fusions","with","epilogues","."]
docstr: Args:
      input_nodes: input nodes of the kernel
      layout: layout of the output node
      alpha: alpha value of the GEMM operation
      beta: beta value of the GEMM operation
      input_reorder: reorder of the input nodes
      can_fuse_epilogue: If set to True, will only list and use operators capable of flexible epilogue fusions.
                         If False, it will not use those. If None, both may be listed, but it will not allow fusions.
                         Defaults to None
docstr_tok: ["Args",":","input_nodes",":","input","nodes","of","the","kernel","layout",":","layout","of","the","output","node","alpha",":","alpha","value","of","the","GEMM","operation","beta",":","beta","value","of","the","GEMM","operation","input_reorder",":","reorder","of","the","input","nodes","can_fuse_epilogue",":","If","set","to","True",",","will","only","list","and","use","operators","capable","of","flexible","epilogue","fusions",".","If","False",",","it","will","not","use","those",".","If","None",",","both","may","be","listed",",","but","it","will","not","allow","fusions",".","Defaults","to","None"]
code: def __init__(
      self,
      input_nodes: List[Buffer],
      layout: Layout,
      alpha: float,
      beta: float,
      input_reorder: Optional[List[int]] = None,
      can_fuse_epilogue: Optional[bool] = None,
  ):
      """
      Args:
          input_nodes: input nodes of the kernel
          layout: layout of the output node
          alpha: alpha value of the GEMM operation
          beta: beta value of the GEMM operation
          input_reorder: reorder of the input nodes
          can_fuse_epilogue: If set to True, will only list and use operators capable of flexible epilogue fusions.
                             If False, it will not use those. If None, both may be listed, but it will not allow fusions.
                             Defaults to None
      """
      super().__init__(
          "cutlass_gemm", input_nodes, layout, input_reorder
      )
      self.alpha = alpha
      self.beta = beta
      self.can_fuse_epilogue = can_fuse_epilogue
  
imports: import copy
  import logging
  import re
  from typing import cast, Dict, List, Optional, Tuple
  from ...config import cuda
  from ...ir import Buffer, CUDATemplateBuffer, FixedLayout, IRNode, Layout
  from ..common import IndentedBuffer
  from .None import cutlass_utils
  from .cuda_kernel import CUDATemplateKernel
  from .cuda_template import CUTLASSTemplate
  from .cutlass_epilogue_gen import CutlassEVTEpilogueArgumentFormatter, CutlassEVTEpilogueTypeFormatter
label_desc: Use image node_id 1 to create a new CUTLASSGemmTemplate object from inherited base classes: CUTLASSTemplate with example: obj = CUTLASSGemmTemplate(input_nodes, layout, alpha, beta, input_reorder, can_fuse_epilogue)