code: def test_launch_quant_bias_dropout_residual():
      batch_size, seq_len = kt.bs_sl()
      hidden_dim = kt.hidden_dim
      print("test shape:", (batch_size, seq_len, hidden_dim))
  
      # shared weights
      inp = kt.randint8((batch_size, seq_len, hidden_dim))
      residual = kt.rand((batch_size, seq_len, hidden_dim)) * 0.1
      bias = kt.rand((hidden_dim,)) * 0.1
      mask = kt.ones((batch_size, seq_len, hidden_dim)).to(torch.uint8)
      # cmax_out = (kt.topk(inp) / 127).to(kt.dtype)
      cmax = torch.tensor([16]).to(kt.dtype).to(kt.device)
  
      # custom weights
      custom_res = kt.rand((batch_size, seq_len, hidden_dim))
  
      if kt.dtype == torch.float:
          cus_func = (
              cuda_module.torch_launch_ls_quant_bias_dropout_residual_fp32
          )
      else:
          cus_func = (
              cuda_module.torch_launch_ls_quant_bias_dropout_residual_fp16
          )
  
      def custom():
          cus_func(
              custom_res,
              mask,
              inp,
              cmax,
              bias,
              residual,
              batch_size * seq_len,
              hidden_dim,
              0,
          )
  
          return [custom_res]
  
      def baseline():
          inp_dq = kt.dequantize(inp, cmax)
          out_base = inp_dq + bias
          out_base = torch.nn.functional.dropout(out_base, p=0)
          out_base = out_base + residual
  
          return [out_base]
  
      return [custom, baseline]
  
imports: import random
  import torch
  from torch._C import ScriptModule, dtype
  from torch.nn import functional
  from lightseq.training.ops.pytorch.builder import KernelBuilder, AdamBuilder
  from tests.util import TestDecorator
  from torch_crf import CRF
label_desc: Use image node_id 26 for calling a global function with example usage: test_launch_quant_bias_dropout_residual() and returns: list, list, list