code: def _swap_in_gradients(self, aio_handle, parameter, dest_buffer):
      swap_info = self.swap_params_info.get(
          OptimizerSwapper.parameter_id(parameter), None
      )
      if not (swap_info and swap_info.has_gradients()):
          return
  
      assert get_accelerator().is_pinned(dest_buffer)
      assert parameter.numel() <= dest_buffer.numel()
  
      parameter.grad = dest_buffer.narrow(0, 0, parameter.numel())
  
      if swap_info.swapped_gradients:
          self._swap_in_pinned_gradients(
              aio_handle, parameter, parameter.grad
          )
  
      if swap_info.unswapped_gradients:
          self._retrieve_unswapped_grad_partitions(
              swap_info=swap_info, dest_buffer=parameter.grad
          )
  
imports: import torch
  from deepspeed.utils.logging import logger
  from deepspeed.ops.op_builder import AsyncIOBuilder
  from deepspeed import comm
  from deepspeed.runtime.swap_tensor.constants import *
  from deepspeed.runtime.swap_tensor.utils import swap_in_tensors, swap_out_tensors, print_object, get_sized_buffers
  from deepspeed.runtime.swap_tensor.async_swapper import AsyncTensorSwapper
  from deepspeed.runtime.swap_tensor.optimizer_utils import OptimizerSwapper
  from deepspeed.accelerator import get_accelerator
label_desc: Use image node_id 11 for calling the PartitionedOptimizerSwapper obj's underlying member method code with example usage: obj._swap_in_gradients(aio_handle, parameter, dest_buffer) without return types