class_docstr: Merges pooled embedding tensor from each device for inference.
  
  Args:
      device (Optional[torch.device]): device on which buffer will be allocated.
      world_size (int): number of devices in the topology.
class_docstr_tok: ["Merges","pooled","embedding","tensor","from","each","device","for","inference",".","Args",":","device","(","Optional","[","torch.device","]",")",":","device","on","which","buffer","will","be","allocated",".","world_size","(","int",")",":","number","of","devices","in","the","topology","."]
docstr: Performs AlltoOne operation on pooled embedding tensors.
  
  Args:
      local_embs (List[torch.Tensor]): pooled embedding tensors with
          `len(local_embs) == world_size`.
  
  Returns:
      Awaitable[torch.Tensor]: awaitable of merged pooled embedding tensor.
docstr_tok: ["Performs","AlltoOne","operation","on","pooled","embedding","tensors",".","Args",":","local_embs","(","List","[","torch.Tensor","]",")",":","pooled","embedding","tensors","with","`","len","(","local_embs",")","==","world_size","`",".","Returns",":","Awaitable","[","torch.Tensor","]",":","awaitable","of","merged","pooled","embedding","tensor","."]
code: def forward(
      self,
      local_embs: List[torch.Tensor],
      sharding_ctx: Optional[NullShardingContext] = None,
  ) -> torch.Tensor:
      """
      Performs AlltoOne operation on pooled embedding tensors.
  
      Args:
          local_embs (List[torch.Tensor]): pooled embedding tensors with
              `len(local_embs) == world_size`.
  
      Returns:
          Awaitable[torch.Tensor]: awaitable of merged pooled embedding tensor.
      """
  
      return self._dist(local_embs)
  
imports: from typing import Any, Callable, cast, Dict, List, Optional, TypeVar, Union
  import torch
  import torch.distributed
  from torchrec.distributed.dist_data import EmbeddingsAllToOne, KJTAllToAll, KJTOneToAll, PooledEmbeddingsAllToAll, VariableBatchPooledEmbeddingsAllToAll
  from torchrec.distributed.embedding_lookup import GroupedPooledEmbeddingsLookup, InferGroupedPooledEmbeddingsLookup
  from torchrec.distributed.embedding_sharding import BaseEmbeddingDist, BaseEmbeddingLookup, BaseSparseFeaturesDist, EmbeddingSharding, EmbeddingShardingContext, EmbeddingShardingInfo, group_tables
  from torchrec.distributed.embedding_types import BaseGroupedFeatureProcessor, EmbeddingComputeKernel, GroupedEmbeddingConfig, KJTList, ShardedEmbeddingTable
  from torchrec.distributed.types import Awaitable, CommOp, NullShardingContext, QuantizedCommCodecs, ShardedTensorMetadata, ShardingEnv, ShardMetadata
  from torchrec.sparse.jagged_tensor import KeyedJaggedTensor
  from torchrec.streamable import Multistreamable
label_desc: Use image node_id 2 for calling the InferTwPooledEmbeddingDist obj's underlying member method code with example usage: obj.forward(local_embs, sharding_ctx) and returns: self