class_docstr: Stats for a sharding planner execution.
class_docstr_tok: ["Stats","for","a","sharding","planner","execution","."]
code: def _log_compute_kernel_stats(
      self, compute_kernels_to_count: Dict[str, int]
  ) -> None:
      compute_kernels_count = [
          f"{compute_kernel}: {count}"
          for compute_kernel, count in sorted(
              compute_kernels_to_count.items()
          )
      ]
      self._stats_table.append(f"#{'' : ^{self._width-2}}#")
      self._stats_table.append(
          f"# {'Compute Kernels:' : <{self._width-3}}#"
      )
      for compute_kernel_count in compute_kernels_count:
          self._stats_table.append(
              f"#    {compute_kernel_count : <{self._width-6}}#"
          )
  
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 7 for calling the EmbeddingStats obj's underlying member method code with example usage: obj._log_compute_kernel_stats(compute_kernels_to_count) without return types