def METHOD_NAME(args: List[str]):
    args = parse_args(args)
    output_dir = get_output_dir(BM_NAME)
    models = list_models()
    cfgs = list(itertools.chain(*map(generate_model_config, models)))
    cfg_filter = generate_filter(args)
    # run a model cfg and get latencies
    full_results = []
    for _round in range(args.rounds):
        single_round_result = []
        for cfg in filter(cfg_filter, cfgs):
            print(f"[Round {_round}/{args.rounds}] Running {cfg}")
            try:
                task = load_model_isolated(cfg)
                # get the model test metrics
                metrics: TorchBenchModelMetrics = get_model_test_metrics(task, metrics=["latencies"])
                single_round_result.append({
                    'cfg': cfg.__dict__,
                    'raw_metrics': metrics.__dict__,
                })
            except NotImplementedError:
                # some models don't implement the test specified
                single_round_result.append({
                    'cfg': cfg.__dict__,
                    'raw_metrics': "NotImplemented",
                })
            except ChildTraceException as exception:
                single_round_result.append({
                        'cfg': cfg.__dict__,
                        'raw_metrics': str(exception),
                })
            except UnserializableException as exception:
                single_round_result.append({
                        'cfg': cfg.__dict__,
                        'raw_metrics': exception.args_repr,
                })
            finally:
                # Remove task reference to trigger deletion in gc
                task = None
        full_results.append(single_round_result)
    print(full_results)
    ub_metrics = reduce_results(full_results)
    # reduce full results to metrics
    # log detailed results in the .userbenchmark/model-stableness/logs/ directory
    output_json = get_output_json(BM_NAME, ub_metrics)
    log_dir = output_dir.joinpath("logs")
    log_dir.mkdir(exist_ok=True, parents=True)
    fname = "logs-{}.json".format(datetime.fromtimestamp(time.time()).strftime("%Y%m%d%H%M%S"))
    full_fname = log_dir.joinpath(fname)
    with open(full_fname, 'w') as f:
        json.dump(full_results, f, indent=4)
    # output userbenchmark metrics in the .userbenchmark/model-stableness directory
    print(output_json)
    dump_output(BM_NAME, output_json)
    # output the stableness result yaml
    yaml_dicts = reduce_results_by_device(full_results)
    for device in yaml_dicts:
        fname = f"summary-{device}.yaml"
        full_fname = log_dir.joinpath(fname)
        with open(full_fname, "w") as f:
            f.write(yaml.safe_dump(yaml_dicts[device]))