code: def test_launch_fused_add2():
      batch_size, seq_len = kt.bs_sl()
      hidden_dim = kt.hidden_dim
      print(
          f"(batch_size, seq_len, hidden_dim): ({batch_size}, {seq_len}, {hidden_dim})"
      )
  
      val1 = kt.rand((batch_size, seq_len, hidden_dim))
      val2 = kt.rand((batch_size, seq_len, hidden_dim))
      custom_res = kt.rand((batch_size, seq_len, hidden_dim))
  
      if kt.dtype == torch.float:
          func = cuda_module.torch_launch_fused_add2_fp32
      else:
          func = cuda_module.torch_launch_fused_add2_fp16
  
      # [batch_size, seq_len, hidden_dim] ->
      # [batch_size, seq_len, hidden_dim]
  
      def custom():
          func(custom_res, val1, val2, batch_size, seq_len, hidden_dim)
          return [
              custom_res,
          ]
  
      def baseline():
          base = val1 + val2
          return [
              base.contiguous(),
          ]
  
      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 9 for calling a global function with example usage: test_launch_fused_add2() and returns: custom,  baseline, list, list