code: def _sosfilt(sos, x, zi):
      threadsperblock = sos.shape[
          0
      ]  # Up-to (1024, 1) = 1024 max per block
      blockspergrid = x.shape[0]
  
      k_type = "sosfilt"
  
      _populate_kernel_cache(x.dtype, k_type)
  
      out_size = threadsperblock
      sos_size = sos.shape[0] * sos.shape[1]
  
      shared_mem = (out_size + sos_size) * x.dtype.itemsize
  
      kernel = _get_backend_kernel(
          x.dtype,
          blockspergrid,
          threadsperblock,
          shared_mem,
          k_type,
      )
      print(zi.shape)
  
      kernel(sos, x, zi)
  
      _print_atts(kernel)
  
file_path: cusignal/python/cusignal/filtering/_sosfilt_cuda.py
imports: from ..utils._caches import _cupy_kernel_cache
  from ..utils.helper_tools import _get_function, _print_atts
label_desc: Use image node_id 3 for calling a global function with example usage: _sosfilt(sos, x, zi) without return types