class_docstr: Redistributes pooled embedding tensor in RW fashion by performing a reduce-scatter
  operation.
  
  Args:
      pg (dist.ProcessGroup): ProcessGroup for reduce-scatter communication.
code: def __init__(
      self,
      pg: dist.ProcessGroup,
      embedding_dims: List[int],
      qcomm_codecs_registry: Optional[
          Dict[str, QuantizedCommCodecs]
      ] = None,
  ) -> None:
      super().__init__()
  
      self._dist: Optional[
          Union[
              PooledEmbeddingsReduceScatter,
              VariableBatchPooledEmbeddingsReduceScatter,
          ]
      ] = None
      self._pg = pg
      self._qcomm_codecs_registry = qcomm_codecs_registry
      self._codecs: Optional[QuantizedCommCodecs] = (
          qcomm_codecs_registry.get(
              CommOp.POOLED_EMBEDDINGS_REDUCE_SCATTER.name, None
          )
          if qcomm_codecs_registry
          else None
      )
      self._embedding_dims = embedding_dims
  
imports: import math
  from typing import Any, cast, Dict, List, Optional, Tuple, TypeVar, Union
  import torch
  import torch.distributed
  from torchrec.distributed.dist_data import EmbeddingsAllToOneReduce, KJTAllToAll, KJTOneToAll, PooledEmbeddingsReduceScatter, VariableBatchPooledEmbeddingsReduceScatter
  from torchrec.distributed.embedding_lookup import GroupedPooledEmbeddingsLookup, InferGroupedPooledEmbeddingsLookup
  from torchrec.distributed.embedding_sharding import BaseEmbeddingDist, BaseEmbeddingLookup, BaseSparseFeaturesDist, bucketize_kjt_before_all2all, 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 1 to create a new RwPooledEmbeddingDist object from inherited base classes: BaseEmbeddingDist with example: obj = RwPooledEmbeddingDist(pg, embedding_dims, qcomm_codecs_registry)