code: def forward(ctx, config, inputs, weight, clip_max):
      cuda_module = transformer_cuda_module
      forward_func = (
          cuda_module.quant_linear_layer_fw_fp16
          if config.fp16
          else cuda_module.quant_linear_layer_fw_fp32
      )
  
      if config.fp16:
          inputs = inputs.to(torch.half)
  
      outputs = forward_func(
          config.layer_id, inputs, weight, clip_max, config.quant_mode
      )
  
      if config.is_grad_enabled and config.training:
          ctx.save_for_backward(inputs, weight)
          ctx.config = config
      return outputs
  
imports: from dataclasses import dataclass
  import math
  import torch
  from torch import nn
  from torch.autograd import Function
  from torch.nn import functional
  from lightseq.training.ops.pytorch.quantization import weight_quant_config, act_quant_config
  from lightseq.training.ops.pytorch.builder import TransformerBuilder
label_desc: Use image node_id 1 for calling the LSQuantLinearFunc obj's underlying member method code with example usage: obj.forward(ctx, config, inputs, weight, clip_max) and returns: outputs