code: def compute_speedups(args, models, example_inputs):
      expected = models[0](*example_inputs)
      for model in models[1:]:
          actual = model(*example_inputs)
          assert same(actual, expected), expected[0] - actual[0]
  
      timings = np.zeros((args.repeat, len(models)), np.float64)
      for rep in range(args.repeat):
          # interleave the runs to handle frequency scaling and load changes
          for m, model in enumerate(models):
              timings[rep, m] = timed(model, example_inputs)
      median = np.median(timings, axis=0)
      return (median[0] / median[1:]).tolist()
  
imports: import argparse
  import inspect
  import sys
  import numpy
  import tabulate
  import torch
  import torch._inductor
  from torch._dynamo.backends.cudagraphs import cudagraphs_inner
  from torch._dynamo.testing import same
  from torch._inductor.compile_fx import compile_fx
  from torch._inductor.utils import timed
label_desc: Use image node_id 1 for calling a global function with example usage: compute_speedups(args, models, example_inputs) and returns: unknown