code: def __call__(self, x, y=None):
      if y is None:
          y = gpuarray.zeros(
              self.shape[0], dtype=self.dtype, allocator=x.allocator
          )
  
      self.get_kernel().prepared_call(
          (self.block_count, 1),
          (self.threads_per_packet, 1, 1),
          self.packet_base_rows.gpudata,
          self.thread_starts.gpudata,
          self.thread_ends.gpudata,
          self.index_array.gpudata,
          self.data_array.gpudata,
          x.gpudata,
          y.gpudata,
      )
  
      self.remaining_coo_gpu(x, y)
  
      return y
  
file_path: pycuda/pycuda/sparse/packeted.py
imports: from __future__ import division
  from __future__ import absolute_import
  from __future__ import print_function
  from pytools import memoize_method
  import pycuda.gpuarray
  from pycuda.compiler import SourceModule
  import numpy
label_desc: Use image node_id 9 for calling the PacketedSpMV obj's underlying member method code with example usage: obj.__call__(x, y) and returns: y