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: Get all chunks owning the input tensors.
  
  Args:
      tensors (Iterable[torch.Tensor]): the tensors used to look for chunks
docstr_tok: ["Get","all","chunks","owning","the","input","tensors",".","Args",":","tensors","(","Iterable","[","torch.Tensor","]",")",":","the","tensors","used","to","look","for","chunks"]
code: def get_chunks(
      self, tensors: Iterable[torch.Tensor]
  ) -> Tuple[Chunk, ...]:
      """
      Get all chunks owning the input tensors.
  
      Args:
          tensors (Iterable[torch.Tensor]): the tensors used to look for chunks
      """
      chunks = []
      for tensor in tensors:
          chunk = self.get_chunk(tensor)
          if chunk not in chunks:
              chunks.append(chunk)
      return tuple(chunks)
  
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 13 for calling the ChunkManager obj's underlying member method code with example usage: obj.get_chunks(tensors) and returns: tuple