code: def _get_backend_kernel(dtype, grid, block, k_type):
      kernel = _cupy_kernel_cache[(str(dtype), k_type)]
      if kernel:
          if k_type == "predict":
              return _cupy_predict_wrapper(grid, block, kernel)
          elif k_type == "update":
              return _cupy_update_wrapper(grid, block, kernel)
          else:
              raise NotImplementedError(
                  "No CuPY kernel found for k_type {}, datatype {}".format(
                      k_type, dtype
                  )
              )
      else:
          raise ValueError(
              "Kernel {} not found in _cupy_kernel_cache".format(k_type)
          )
  
file_path: cusignal/python/cusignal/estimation/_filters_cuda.py
imports: import cupy
  from ..utils._caches import _cupy_kernel_cache
label_desc: Use image node_id 2 for calling a global function with example usage: _get_backend_kernel(dtype, grid, block, k_type) and returns: _cupy_predict_wrapper, _cupy_update_wrapper