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.
class_docstr_tok: ["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