code: def test_numba_func_gpu():
      # shape, dtype, run_fn, out_types,
      # in_types, out_ndim, in_ndim, setup_fn, batch_processing,
      # expected_out
      args = [
          (
              [(10, 10, 10)],
              np.uint8,
              set_all_values_to_255_sample_gpu,
              [dali_types.UINT8],
              [dali_types.UINT8],
              [3],
              [3],
              None,
              None,
              [np.full((10, 10, 10), 255, dtype=np.uint8)],
          ),
          (
              [(10, 10, 10)],
              np.float32,
              set_all_values_to_float_sample_gpu,
              [dali_types.FLOAT],
              [dali_types.FLOAT],
              [3],
              [3],
              None,
              None,
              [np.full((10, 10, 10), 0.5, dtype=np.float32)],
          ),
          (
              [(100, 20, 30), (20, 100, 30)],
              np.int64,
              change_out_shape_sample_gpu,
              [dali_types.INT64],
              [dali_types.INT64],
              [3],
              [3],
              setup_change_out_shape,
              None,
              [
                  np.full((20, 30, 100), 42, dtype=np.int32),
                  np.full((100, 30, 20), 42, dtype=np.int32),
              ],
          ),
          (
              [(20), (30)],
              np.int32,
              change_ndim_gpu,
              [dali_types.INT32],
              [dali_types.INT32],
              [4],
              [1],
              change_ndim_setup,
              None,
              [
                  change_dim_expected_out(20),
                  change_dim_expected_out(30),
              ],
          ),
      ]
  
      device = "gpu"
      blocks = [32, 32, 1]
      threads_per_block = [32, 16, 1]
      for (
          shape,
          dtype,
          run_fn,
          out_types,
          in_types,
          outs_ndim,
          ins_ndim,
          setup_fn,
          batch_processing,
          expected_out,
      ) in args:
          yield (
              _testimpl_numba_func,
              device,
              shape,
              dtype,
              run_fn,
              out_types,
              in_types,
              outs_ndim,
              ins_ndim,
              setup_fn,
              batch_processing,
              expected_out,
              blocks,
              threads_per_block,
          )
  
imports: import numpy
  import os
  from nvidia.dali import pipeline_def
  import nvidia.dali
  import nvidia.dali.fn
  import nvidia.dali.types
  from nose import with_setup
  from test_utils import get_dali_extra_path, to_array, check_numba_compatibility_cpu, check_numba_compatibility_gpu
  from nvidia.dali.plugin.numba.fn.experimental import numba_function
  from numba import cuda
label_desc: Use image node_id 19 for calling a global function with example usage: test_numba_func_gpu() without return types