class_docstr: Base class for table wise row wise sharding.
class_docstr_tok: ["Base","class","for","table","wise","row","wise","sharding","."]
code: def _get_feature_hash_sizes(self) -> List[int]:
      feature_hash_sizes: List[int] = []
      for grouped_config in self._grouped_embedding_configs_per_node:
          for config in grouped_config:
              feature_hash_sizes.extend(config.feature_hash_sizes())
      return feature_hash_sizes
  
imports: import itertools
  import math
  from typing import Any, cast, Dict, List, Optional, Tuple, TypeVar, Union
  import torch
  import torch.distributed
  from torchrec.distributed.comm import get_local_size, intra_and_cross_node_pg
  from torchrec.distributed.dist_data import KJTAllToAll, PooledEmbeddingsAllToAll, PooledEmbeddingsReduceScatter, VariableBatchPooledEmbeddingsAllToAll, VariableBatchPooledEmbeddingsReduceScatter
  from torchrec.distributed.embedding_lookup import GroupedPooledEmbeddingsLookup
  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, ShardedEmbeddingTable
  from torchrec.distributed.types import Awaitable, CommOp, QuantizedCommCodecs, ShardedTensorMetadata, ShardingEnv, ShardMetadata
  from torchrec.sparse.jagged_tensor import KeyedJaggedTensor
  from torchrec.streamable import Multistreamable
label_desc: Use image node_id 8 for calling the BaseTwRwEmbeddingSharding obj's underlying member method code with example usage: obj._get_feature_hash_sizes() and returns: feature_hash_sizes