code: def _unpack(binary, dtype, endianness):
      data_size = cp.dtype(dtype).itemsize // binary.dtype.itemsize
  
      out_size = binary.shape[0] // data_size
  
      out = cp.empty_like(binary, dtype=dtype, shape=out_size)
  
      if endianness == "B":
          little = False
      else:
          little = True
  
      threadsperblock, blockspergrid = _get_tpb_bpg()
  
      k_type = "unpack"
  
      _populate_kernel_cache(out.dtype, k_type)
  
      kernel = _get_backend_kernel(
          out.dtype,
          blockspergrid,
          threadsperblock,
          k_type,
      )
  
      kernel(out_size, little, binary, out)
  
      _print_atts(kernel)
  
      # Remove binary data
      del binary
  
      return out
  
file_path: cusignal/python/cusignal/io/_reader_cuda.py
imports: import cupy
  from ..utils._caches import _cupy_kernel_cache
  from ..utils.helper_tools import _get_function, _get_tpb_bpg, _print_atts
label_desc: Use image node_id 3 for calling a global function with example usage: _unpack(binary, dtype, endianness) and returns: out