class_docstr: Noop Stats for a sharding planner execution.
class_docstr_tok: ["Noop","Stats","for","a","sharding","planner","execution","."]
code: def log(
      self,
      sharding_plan: ShardingPlan,
      topology: Topology,
      batch_size: int,
      storage_reservation: StorageReservation,
      num_proposals: int,
      num_plans: int,
      run_time: float,
      best_plan: List[ShardingOption],
      constraints: Optional[Dict[str, ParameterConstraints]] = None,
      sharders: Optional[List[ModuleSharder[nn.Module]]] = None,
      debug: bool = True,
  ) -> None:
      pass
  
imports: import logging
  from collections import defaultdict
  from typing import Any, cast, Dict, List, Optional, Tuple, Union
  from torch import nn
  from torchrec.distributed.planner.constants import BIGINT_DTYPE, NUM_POOLINGS
  from torchrec.distributed.planner.shard_estimators import _calculate_shard_io_sizes
  from torchrec.distributed.planner.storage_reservations import FixedPercentageStorageReservation, HeuristicalStorageReservation, InferenceStorageReservation
  from torchrec.distributed.planner.types import ParameterConstraints, Perf, ShardingOption, Stats, Storage, StorageReservation, Topology
  from torchrec.distributed.planner.utils import _find_imbalance_tables, bytes_to_gb, bytes_to_mb, sharder_name
  from torchrec.distributed.types import ModuleSharder, ParameterSharding, ShardingPlan, ShardingType
label_desc: Use image node_id 1 for calling the NoopEmbeddingStats obj's underlying member method code with example usage: obj.log(sharding_plan, topology, batch_size, storage_reservation, num_proposals, num_plans, run_time, best_plan, constraints, sharders, debug) without return types