code: def test_batched_dot(backend_pair_bench):
      np.set_printoptions(
          threshold=8192 * 4,
          linewidth=600,
          formatter={
              "int": lambda x: "%2d" % x,
              "float": lambda x: "%2.0f" % x,
          },
      )
  
      ng, nc = backend_pair_bench
  
      dtype = np.float32  # np.float16 or np.float32
  
      X = 100  # Batch Size
      N = 32  # Minibatch Size
      C = 1536  # Input  Features
      K = 768  # Output Features
  
      cpuI, cpuE, cpuW = setup_test_data(X, N, C, K, dtype)
  
      ncO, ncB, ncU = run_batched_dot(nc, cpuI, cpuE, cpuW, X, dtype)
      npO, npB, npU = run_batched_dot(np, cpuI, cpuE, cpuW, X, dtype)
  
      if ng.compute_capability > (5, 0):
          ngO, ngB, ngU = run_batched_dot(
              ng, cpuI, cpuE, cpuW, X, dtype
          )
  
          assert tensors_allclose(npO, ngO, rtol=0, atol=1e-3)
          assert tensors_allclose(npB, ngB, rtol=0, atol=1e-3)
          assert tensors_allclose(npU, ngU, rtol=0, atol=1e-3)
  
      assert tensors_allclose(npO, ncO, rtol=0, atol=1e-3)
      assert tensors_allclose(npB, ncB, rtol=0, atol=1e-3)
      assert tensors_allclose(npU, ncU, rtol=0, atol=1e-3)
  
file_path: neon/tests/test_backend_batched_dot.py
imports: from __future__ import print_function
  import numpy
  import pytest
  from utils import tensors_allclose
label_desc: Use image node_id 4 for calling a global function with example usage: test_batched_dot(backend_pair_bench) without return types