code: def test_sharded_quant_ebc_dynamo_export_aot_inductor(self) -> None:
      sharded_model, input_kjts = _sharded_quant_ebc_model()
      kjt = input_kjts[0]
      sharded_model(kjt.values(), kjt.lengths())
  
      model: torch.nn.Module = sharded_model
      model.training = False
      replace_registered_tbes_with_mock_tbes(model)
      replace_sharded_quant_modules_tbes_with_mock_tbes(model)
  
      example_inputs = (kjt.values(), kjt.lengths())
  
      # pyre-ignore
      def kjt_to_inputs(kjt):
          return (kjt.values(), kjt.lengths())
  
      expected_outputs = [
          model(*kjt_to_inputs(kjt)) for kjt in input_kjts[1:]
      ]
  
      device: str = "cuda"
  
      with dynamo_skipfiles_allow("torchrec"):
          tracing_values = kjt.values()
          tracing_lengths = kjt.lengths()
          torch._dynamo.mark_dynamic(tracing_values, 0)
          dynamo_gm, guard = torch._dynamo.export(
              model, same_signature=False
          )(tracing_values, tracing_lengths)
          dynamo_gm.print_readable()
          dynamo_actual_outputs = [  # noqa
              dynamo_gm(*kjt_to_inputs(kjt)) for kjt in input_kjts[1:]
          ]
          # TODO(ivankobzarev): Why dynamo outputs are different than expected, but aot outputs are correct.
          # assert_close(expected_outputs, dynamo_actual_outputs)
  
          # pyre-ignore
          so_path: str = AOTIRunnerUtil.compile(
              model,
              example_inputs,
          )
          # pyre-ignore
          aot_inductor_module = AOTIRunnerUtil.load(device, so_path)
          aot_inductor_module(example_inputs)
  
          aot_actual_outputs = [
              aot_inductor_module(*kjt_to_inputs(kjt))
              for kjt in input_kjts[1:]
          ]
          assert_close(expected_outputs, aot_actual_outputs)
  
imports: import sys
  import unittest
  from typing import List, Tuple
  import torch
  import torch._dynamo.skipfiles
  from fbgemm_gpu import sparse_ops
  from torch._export import dynamic_dim
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel
  from torchrec.distributed.shard import _shard_modules
  from torchrec.distributed.test_utils.infer_utils import assert_close, create_test_model_ebc_only, dynamo_skipfiles_allow, KJTInputExportWrapper, prep_inputs, replace_registered_tbes_with_mock_tbes, replace_sharded_quant_modules_tbes_with_mock_tbes, TestQuantEBCSharder
  from torchrec.distributed.types import ShardingEnv, ShardingType
  from torchrec.sparse.jagged_tensor import ComputeKJTToJTDict, KeyedJaggedTensor
label_desc: Use image node_id 4 for calling the TestPt2 obj's underlying member method code with example usage: obj.test_sharded_quant_ebc_dynamo_export_aot_inductor() and returns: kjt,  kjt