class_docstr: Wrapper around the BLAS matmul kernel for FP16/BF16/FP32 for CUDA/RoCM.
  
  Performs z = x @ y
docstr: Parameters:
      fp_dtype (torch.dtype): Data type for the input/output. Supported values
          are torch.float16, torch.bfloat16, and torch.float32.
docstr_tok: ["Parameters",":","fp_dtype","(","torch.dtype",")",":","Data","type","for","the","input\/output",".","Supported","values","are","torch.float16",",","torch.bfloat16",",","and","torch.float32","."]
code: def __init__(self, fp_dtype: DtypeEnum):
      """
      Parameters:
          fp_dtype (torch.dtype): Data type for the input/output. Supported values
              are torch.float16, torch.bfloat16, and torch.float32.
      """
      fp_dtype = DtypeEnum(fp_dtype)
      if fp_dtype not in BlasLibLinear.supported_dtypes:
          raise ValueError(
              "Unsupported data type: {}, supported_dtypes are {}".format(
                  fp_dtype, BlasLibLinear.supported_dtypes
              )
          )
  
      self.inf_module = InferenceCoreBuilder().load()
      self.inf_module.create_handle()
      self.kernel = self.inf_module.blas_linear
  
file_path: DeepSpeed/deepspeed/inference/v2/kernels/core_ops/blas_kernels/blas_linear.py
imports: import torch
  from ....inference_utils import DtypeEnum
  from deepspeed.ops.op_builder import InferenceCoreBuilder
  from ...None import DSKernelBase
label_desc: Use image node_id 1 to create a new BlasLibLinear object from inherited base classes: DSKernelBase with example: obj = BlasLibLinear(fp_dtype)