code: def test_nonuniform_types_gpu():
      blocks = [16, 16, 1]
      threads_per_block = [32, 16, 1]
      pipe = nonuniform_types_pipe(
          batch_size=8,
          num_threads=1,
          device_id=0,
          run_fn=nonuniform_types_run_gpu,
          out_types=[dali_types.UINT8, dali_types.INT64],
          in_types=[dali_types.UINT8],
          outs_ndim=[3, 1],
          ins_ndim=[3],
          device="gpu",
          blocks=blocks,
          threads_per_block=threads_per_block,
      )
      pipe.build()
      for _ in range(3):
          images_in, images_out, img_shape = pipe.run()
          images_in, images_out, img_shape = (
              images_in.as_cpu(),
              images_out.as_cpu(),
              img_shape.as_cpu(),
          )
          for i in range(len(images_in)):
              assert np.array_equal(
                  255 - images_in.at(i), images_out.at(i)
              )
              assert np.array_equal(
                  images_out.at(i).shape, img_shape.at(i)
              )
  
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 48 for calling a global function with example usage: test_nonuniform_types_gpu() without return types