class_docstr: Linear layer with column parallelism.
  The linear layer is defined as Y = XA + b. A is parallelized along
  its second dimension as A = [A_1, ..., A_p].
  Arguments:
      input_size: first dimension of matrix A.
      output_size: second dimension of matrix A.
      bias: If true, add bias
      init_method: method to initialize weights. Note that bias is always set
                   to zero.
      stride: For the strided linear layers.
      keep_master_weight_for_test: This was added for testing and should be
                                   set to False. It returns the master weights
                                   used for initialization.
      skip_bias_add: This was added to enable performance optimizations where bias
                     can be fused with other elementwise operations. we skip
                     adding bias but instead return it.
code: def forward(self, input_):
      # Matrix multiply.
      bias = self.bias if not self.skip_bias_add else None
      output = F.linear(input_, self.weight, bias)
  
      if self.skip_bias_add:
          return output, self.bias
      else:
          return output
  
imports: import math
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn import Parameter
  from colossalai.kernel import FusedScaleMaskSoftmax
  from colossalai.kernel.cuda_native.scaled_softmax import AttnMaskType
  from colossalai.legacy.context import seed
  from colossalai.legacy.context.parallel_mode import ParallelMode
  from colossalai.legacy.core import global_context
  from colossalai.legacy.nn.layer.parallel_sequence._operation import RingAV, RingQK
  from colossalai.legacy.registry import LAYERS
label_desc: Use image node_id 2 for calling the _Linear obj's underlying member method code with example usage: obj.forward(input_) and returns: output,  self, output