class_docstr: Shards embedding bags table-wise column-wise, i.e.. a given embedding table is
  partitioned along its columns and the table slices are placed on all ranks
  within a host group.
code: def __init__(
      self,
      sharding_infos: List[EmbeddingShardingInfo],
      env: ShardingEnv,
      device: Optional[torch.device] = None,
      permute_embeddings: bool = False,
      qcomm_codecs_registry: Optional[
          Dict[str, QuantizedCommCodecs]
      ] = None,
  ) -> None:
      super().__init__(
          sharding_infos,
          env,
          device,
          permute_embeddings=permute_embeddings,
          qcomm_codecs_registry=qcomm_codecs_registry,
      )
  
imports: from typing import Dict, List, Optional
  import torch
  from torchrec.distributed.embedding_sharding import EmbeddingShardingInfo
  from torchrec.distributed.sharding.cw_sharding import CwPooledEmbeddingSharding
  from torchrec.distributed.types import QuantizedCommCodecs, ShardingEnv
label_desc: Use image node_id 1 to create a new TwCwPooledEmbeddingSharding object from inherited base classes: CwPooledEmbeddingSharding with example: obj = TwCwPooledEmbeddingSharding(sharding_infos, env, device, permute_embeddings, qcomm_codecs_registry)