class_docstr: Profile all candidate kernels and select the best one.
class_docstr_tok: ["Profile","all","candidate","kernels","and","select","the","best","one","."]
docstr: Return the default kernel for the requested architecture.
  For now, the default kernel was picked arbitrary.
docstr_tok: ["Return","the","default","kernel","for","the","requested","architecture",".","For","now",",","the","default","kernel","was","picked","arbitrary","."]
code: def get_default(
      self,
      op_type,
      out_dtype,
      arg0_dtype,
      arg1_dtype,
      use_3xtf32=True,
      batched=False,
  ):
      """Return the default kernel for the requested architecture.
      For now, the default kernel was picked arbitrary.
      """
      ops = GENERATOR_FUNC_TABLE[self.sm](
          out_dtype,
          arg0_dtype,
          arg1_dtype,
          enumerate_gemm_operators,
          lambda align: align == 1,  # Only request align1 kernels
          use_3xtf32,
          profile_all_alignments=True,  # To include all align1 kernels
          # TODO(masahi): Invesitigate when fp32 accumulation is needed for gemm
          accumlator_dtype=out_dtype,
      )
  
      default_kernel_name = DEFAULT_KERNELS[self.sm][
          (arg0_dtype, out_dtype)
      ]
  
      if arg0_dtype == "float32":
          default_kernel_name = (
              default_kernel_name[0]
              if not use_3xtf32
              else default_kernel_name[1]
          )
  
      filtered = list(
          filter(lambda op: op["name"] == default_kernel_name, ops)
      )
      assert len(filtered) == 1
      op = filtered[0]
      name, opdef = create_gemm_operator_with_epilogue(
          op_type,
          op["tile_description"],
          op["data_type"],
          op["alignment"],
          op["swizzle_functor"],
          batched=batched,
      )
      op.update({"name": name, "opdef": opdef})
      return op
  
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 2 for calling the CutlassGemmProfiler obj's underlying member method code with example usage: obj.get_default(op_type, out_dtype, arg0_dtype, arg1_dtype, use_3xtf32, batched) and returns: op