class_docstr: Linear layer execution with asynchronous communication in backprop.
code: def forward(
      ctx, input_, weight, bias, parallel_mode, async_grad_allreduce
  ):
      ctx.save_for_backward(input_, weight)
      ctx.use_bias = bias is not None
      ctx.parallel_mode = parallel_mode
      ctx.async_grad_allreduce = async_grad_allreduce
  
      output = torch.matmul(input_, weight.t())
      if bias is not None:
          output = output + bias
      return output
  
file_path: colossalai/colossalai/legacy/nn/layer/parallel_1d/_operation.py
imports: import torch
  import torch.distributed
  from colossalai.legacy.core import global_context
label_desc: Use image node_id 1 for calling the LinearWithAsyncCommunication obj's underlying member method code with example usage: obj.forward(ctx, input_, weight, bias, parallel_mode, async_grad_allreduce) and returns: output