code: def get_host_result(self):
      if not self.gpu_finished:
          if self.gpu_finished_evt.query():
              self.gpu_finished = True
              self.copy_stream = get_stream()
              self.host_dest = self.pagelocked_allocator(
                  self.gpu_result.shape,
                  self.gpu_result.dtype,
                  self.copy_stream,
              )
              drv.memcpy_dtoh_async(
                  self.host_dest,
                  self.gpu_result.gpudata,
                  self.copy_stream,
              )
              self.copy_finished_evt = drv.Event()
              self.copy_finished_evt.record()
      else:
          if self.copy_finished_evt.query():
              STREAM_POOL.append(self.copy_stream)
              return self.host_dest
  
file_path: pycuda/pycuda/sparse/inner.py
imports: from __future__ import division
  from __future__ import absolute_import
  import pycuda.driver
  import pycuda.gpuarray
  import atexit
label_desc: Use image node_id 2 for calling the AsyncInnerProduct obj's underlying member method code with example usage: obj.get_host_result() and returns: self