class_docstr: A Tensor wrapper subclass that is used to trigger a call to wait
  prior to first use of the underlying tensor.
  Use it inside functional collective pytorch wrappers like the following:
  def functional_collective(self, group, tag):
      tag, rankset, group_size = _expand_group(group, tag)
      tensor = torch.ops.c10d_functional.{collective}(self, tag, rankset, group_size)
      return _maybe_wrap_tensor(tensor)
class_docstr_tok: ["A","Tensor","wrapper","subclass","that","is","used","to","trigger","a","call","to","wait","prior","to","first","use","of","the","underlying","tensor",".","Use","it","inside","functional","collective","pytorch","wrappers","like","the","following",":","def","functional_collective","(","self",",","group",",","tag",")",":","tag",",","rankset",",","group_size","=","_expand_group","(","group",",","tag",")","tensor","=","torch.ops.c10d_functional",".","{","collective","}","(","self",",","tag",",","rankset",",","group_size",")","return","_maybe_wrap_tensor","(","tensor",")"]
code: def __repr__(self):
      wait_tensor(self.elem)
      return f"AsyncCollectiveTensor({self.elem})"
  
imports: import sys
  import warnings
  from typing import cast, List, Optional, Tuple, TYPE_CHECKING, Union
  import torch
  import torch.distributed
  import torch.distributed.distributed_c10d
  from torch._custom_ops import impl_abstract
  from torch.distributed.device_mesh import DeviceMesh
  from torch.fx.experimental.proxy_tensor import get_innermost_proxy_mode
  from .None import _functional_collectives_impl
  from ._functional_collectives_impl import _register_tensor_wrapper
  from torch.distributed.distributed_c10d import all_gather_into_tensor, all_reduce, reduce_scatter_tensor
label_desc: Use image node_id 5 for calling the AsyncCollectiveTensor obj's underlying member method code with example usage: obj.__repr__() and returns: str, self, str