class_docstr: Describes various attributes for instantiating Conv2d kernels.
class_docstr_tok: ["Describes","various","attributes","for","instantiating","Conv2d","kernels","."]
docstr: The full procedural name indicates architecture, extended name, tile size, and layout.
docstr_tok: ["The","full","procedural","name","indicates","architecture",",","extended","name",",","tile","size",",","and","layout","."]
code: def procedural_name(self):
      """
      The full procedural name indicates architecture, extended name, tile size, and layout.
      """
      opcode_class_name = OpcodeClassNames[
          self.tile_description.math_instruction.opcode_class
      ]
  
      threadblock = "%dx%d_%dx%d" % (
          self.tile_description.threadblock_shape[0],
          self.tile_description.threadblock_shape[1],
          self.tile_description.threadblock_shape[2],
          self.tile_description.stages,
      )
  
      if self.stride_support == StrideSupport.Unity:
          configuration_name = (
              "cutlass_${opcode_class}_${extended_name}_${threadblock}"
              "_${layout}_align${alignment}_unity_stride"
          )
      else:
          configuration_name = (
              "cutlass_${opcode_class}_${extended_name}_${threadblock}"
              "_${layout}_align${alignment}"
          )
  
      if self.split_k_slices > 1:
          configuration_name += f"_splitk{self.split_k_slices}"
  
      return substitute_template(
          configuration_name,
          {
              "opcode_class": opcode_class_name,
              "extended_name": self.extended_name(),
              "threadblock": threadblock,
              "layout": self.layout_name(),
              "alignment": f"{self.A.alignment}",
          },
      )
  
file_path: tvm/python/tvm/contrib/cutlass/conv2d_operation.py
imports: from .library import *
label_desc: Use image node_id 6 for calling the Conv2dOperation obj's underlying member method code with example usage: obj.procedural_name() and returns: substitute_template