class_docstr: 1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2).
  
  Basically works like a linear layer but the weights are transposed.
  
  Args:
      nf (`int`): The number of output features.
      nx (`int`): The number of input features.
class_docstr_tok: ["1D-convolutional","layer","as","defined","by","Radford","et","al",".","for","OpenAI","GPT","(","and","also","used","in","GPT-2",")",".","Basically","works","like","a","linear","layer","but","the","weights","are","transposed",".","Args",":","nf","(","`","int","`",")",":","The","number","of","output","features",".","nx","(","`","int","`",")",":","The","number","of","input","features","."]
code: def forward(self, x):
      size_out = x.size()[:-1] + (self.nf,)
      x = torch.addmm(self.bias, x.view(-1, x.size(-1)), self.weight)
      x = x.view(size_out)
      return x
  
file_path: ColossalAI/tests/test_shardformer/test_layer/test_qkv_fused_linear_1d.py
imports: from contextlib import nullcontext
  import torch
  import torch.distributed
  import torch.nn
  from torch.testing import assert_close
  import colossalai
  from colossalai.lazy import LazyInitContext
  from colossalai.shardformer.layer import GPT2FusedLinearConv1D_Col, GPT2FusedLinearConv1D_Row
  from colossalai.shardformer.layer.qkv_fused_linear import split_fused_qkv_in_gpt2_style
  from colossalai.testing import parameterize, rerun_if_address_is_in_use, spawn
label_desc: Use image node_id 2 for calling the Conv1D obj's underlying member method code with example usage: obj.forward(x) and returns: x