class_docstr: A manager class to manipulate the tensors in chunks.
  
  Args:
      chunk_configuration (Dict[int, Dict]): the configuration dictionary of this chunk manager.
      init_device (torch.device): optional, the device on which the chunk is initialized. The default is None.
class_docstr_tok: ["A","manager","class","to","manipulate","the","tensors","in","chunks",".","Args",":","chunk_configuration","(","Dict","[","int",",","Dict","]",")",":","the","configuration","dictionary","of","this","chunk","manager",".","init_device","(","torch.device",")",":","optional",",","the","device","on","which","the","chunk","is","initialized",".","The","default","is","None","."]
docstr: Move the shard of the chunk to the target device.
docstr_tok: ["Move","the","shard","of","the","chunk","to","the","target","device","."]
code: def move_chunk(
      self, chunk: Chunk, device: torch.device, force_copy: bool = False
  ) -> None:
      """Move the shard of the chunk to the target device."""
      if not chunk.can_move or chunk.device_type == device.type:
          return
      self.__sub_memory_usage(chunk.memory_usage)
      chunk.shard_move(device, force_copy)
      self.__add_memory_usage(chunk.memory_usage)
  
imports: from collections import deque
  from typing import Deque, Dict, Iterable, List, Optional, Set, Tuple
  import torch
  import torch.distributed
  from torch.distributed import ProcessGroup
  from colossalai.utils import free_storage, get_current_device
  from .chunk import Chunk, ChunkFullError, TensorState
label_desc: Use image node_id 6 for calling the ChunkManager obj's underlying member method code with example usage: obj.move_chunk(chunk, device, force_copy) without return types