code: def dask_deserialize_numba_array(header, frames):
      if dask_deserialize_rmm_device_buffer:
          frames = [dask_deserialize_rmm_device_buffer(header, frames)]
      else:
          frames = [
              numba.cuda.to_device(np.asarray(memoryview(f)))
              for f in frames
          ]
          for f in frames:
              weakref.finalize(f, numba.cuda.current_context)
  
      arr = cuda_deserialize_numba_ndarray(header, frames)
      return arr
  
file_path: distributed/distributed/protocol/numba.py
imports: from __future__ import annotations
  import weakref
  import numba.cuda
  import numpy
  from distributed.protocol.cuda import cuda_deserialize, cuda_serialize
  from distributed.protocol.serialize import dask_deserialize, dask_serialize
label_desc: Use image node_id 4 for calling a global function with example usage: dask_deserialize_numba_array(header, frames) and returns: arr