code: def forward(ctx, input, weight, bias=None):
      X = input.view(-1, input.size(-1))
  
      ctx.save_for_backward(X, weight, bias)
      output = input.matmul(weight.t())
      if bias is not None:
          output += bias.unsqueeze(0).expand_as(output)
      return output.view(*input.size()[:-1], -1)
  
imports: import torch
  import torch.nn
  import time
  from functools import partial
  from bitsandbytes.triton.triton_utils import is_triton_available
  from bitsandbytes.triton.dequantize_rowwise import dequantize_rowwise
  from bitsandbytes.triton.quantize_rowwise import quantize_rowwise
  from bitsandbytes.triton.quantize_columnwise_and_transpose import quantize_columnwise_and_transpose
  from bitsandbytes.triton.int8_matmul_rowwise_dequantize import int8_matmul_rowwise_dequantize
  from bitsandbytes.triton.quantize_global import quantize_global, quantize_global_transpose
  from bitsandbytes.triton.int8_matmul_mixed_dequantize import int8_matmul_mixed_dequantize
label_desc: Use image node_id 1 for calling the StandardLinearFunction obj's underlying member method code with example usage: obj.forward(ctx, input, weight, bias) and returns: output