code: def test_meta_info_prop():
      for m in [
          tm.alexnet,
          tm.resnet18,
          tm.resnet34,
          tm.resnet50,
          tm.resnet101,
          tm.resnet152,
          tm.densenet121,
          tm.densenet161,
          tm.densenet169,
          tm.densenet201,
          tm.convnext_tiny,
          tm.convnext_small,
          tm.convnext_base,
          tm.convnext_large,
          tm.wide_resnet50_2,
          tm.wide_resnet101_2,
          tm.regnet_x_16gf,
          tm.mnasnet0_5,
          tm.efficientnet_b0,
          tm.shufflenet_v2_x0_5,
          tm.shufflenet_v2_x1_0,
          tm.shufflenet_v2_x1_5,
          tm.shufflenet_v2_x2_0,
          tm.mobilenet_v2,
          tm.mobilenet_v3_small,
          tm.mobilenet_v3_large,
          tm.resnext50_32x4d,
          tm.resnext101_32x8d,
          tm.resnext101_64x4d,
          tm.vit_b_16,
          tm.vit_b_32,
          tm.vit_h_14,
          tm.vit_l_16,
          tm.vit_l_32,
          tm.vgg11,
          tm.vgg11_bn,
          tm.vgg13,
          tm.vgg13_bn,
          tm.vgg16,
          tm.vgg16_bn,
          tm.vgg19,
          tm.vgg19_bn,
      ]:
          model = m().cuda()
          model.train()
          data = MetaTensor(
              torch.rand(
                  int(TM_BATCH_SIZE), 3, 224, 224, device="meta"
              ),
              fake_device="cuda:0",
          )
          gm = symbolic_trace(model)
          interp = MetaInfoProp(gm)
          interp.propagate(data)
          gm.cpu()
  
          meta_forward_mem, meta_param_mem = extract_forward_mem(gm)
          fwd_flop, bwd_flop = extract_forward_flops(gm)
          concrete_forward_mem, concrete_param_mem = run_tm_forward(gm)
  
          print(
              f"|{m.__name__}|{meta_forward_mem:.3f} MB|{meta_param_mem:.3f} MB|{concrete_forward_mem:.3f} MB|{concrete_param_mem:.3f} MB|fwd_flop={fwd_flop / 1e9:.3f}GFLOPs|bwd_flop={bwd_flop / 1e9:.3f}GFLOPs|"
          )
          del model, gm
  
file_path: colossalai/tests/test_fx/test_profiler/test_profiler_meta_info_prop.py
imports: from typing import Tuple
  import torch
  import torch.fx
  import torchvision.models
  from gpt_utils import gpt2_medium
  from torch.fx import symbolic_trace
  from colossalai.fx.passes.meta_info_prop import MetaInfoProp
  from colossalai.fx.profiler import calculate_fwd_out, calculate_fwd_tmp, is_compatible_with_meta, parameter_size
  from colossalai.fx.tracer.tracer import ColoTracer
  from colossalai.testing import clear_cache_before_run, run_on_environment_flag
label_desc: Use image node_id 7 for calling a global function with example usage: test_meta_info_prop() without return types