code: def setUp(self) -> None:
      compute_device = "cuda"
      self.topology = Topology(
          world_size=2,
          hbm_cap=1024 * 1024 * 2,
          compute_device=compute_device,
      )
      tables = [
          EmbeddingBagConfig(
              num_embeddings=100,
              embedding_dim=64,
              name="table_" + str(i),
              feature_names=["feature_" + str(i)],
          )
          for i in range(4)
      ]
      self.model = TestSparseNN(
          tables=tables, sparse_device=torch.device("meta")
      )
  
imports: import unittest
  from typing import List
  import torch
  from torch import nn
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel
  from torchrec.distributed.embeddingbag import EmbeddingBagCollectionSharder
  from torchrec.distributed.planner.planners import EmbeddingShardingPlanner
  from torchrec.distributed.planner.stats import NoopEmbeddingStats
  from torchrec.distributed.planner.types import Topology
  from torchrec.distributed.test_utils.test_model import TestSparseNN
  from torchrec.distributed.types import ModuleSharder, ShardingType
  from torchrec.modules.embedding_configs import EmbeddingBagConfig
label_desc: Use image node_id 1 for calling the TestEmbeddingStats obj's underlying member method code with example usage: obj.setUp() without return types