コード例 #1
0
def main(argv):
    scfg = maybe_forced_preset(presets.MostEfficient)
    scfg.scheduler = 'pack'
    scfg.logconf = 'disable'

    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir / "salus" / "1"),
            WTL.create("mnistsf", 25, 100),
            Pause.Wait,
            WTL.create("mnistsf", 25, 200),
            Pause.Wait,
            WTL.create("mnistsf", 25, 300),
            )
    run_seq(scfg.copy(output_dir=FLAGS.save_dir / "tf"),
            WTL.create("mnistsf", 25, 100, executor=Executor.TF),  # 1min
            Pause.Wait,
            WTL.create("mnistsf", 25, 200, executor=Executor.TF),  # 1min
            Pause.Wait,
            WTL.create("mnistsf", 25, 300, executor=Executor.TF),  # 1min
            )

    for conc in range(2, 10):
        actions = [WTL.create("mnistsf", 25, 100) for _ in range(conc)]
        run_seq(scfg.copy(output_dir=FLAGS.save_dir / "salus" / str(conc)), *actions)
コード例 #2
0
def main(argv):
    scfg = maybe_forced_preset(presets.Profiling)
    scfg.scheduler = 'preempt'
    scfg.disable_wc = True

    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir),
            WTL.create("inception3", 25, 1298),
            Pause(60),
            WTL.create("alexnet", 100, 508),
            )

    if not FLAGS.with_ref:
        return

    # we also need reference data
    run_seq(presets.MostEfficient(output_dir=FLAGS.save_dir / 'reference'),
            WTL.create("alexnet", 100, 508),
            Pause.Wait,
            WTL.create("alexnet", 100, 508, executor=Executor.TF),
            )
コード例 #3
0
ファイル: run5.py プロジェクト: vycezhong/Salus-1
def main(argv):
    scfg = maybe_forced_preset(presets.AllocProf)
    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir),
            WTL.create("alexnet", 25, 200),
            WTL.create("alexnet", 25, 200),
            WTL.create("alexnet", 25, 200),
            WTL.create("alexnet", 25, 200),
            WTL.create("alexnet", 25, 200),
            )

    run_tf(FLAGS.save_dir,
           WTL.create("alexnet", 25, 200, executor=Executor.TF),
           Pause.Wait,
           WTL.create("alexnet", 25, 200, executor=Executor.TF),
           Pause.Wait,
           WTL.create("alexnet", 25, 200, executor=Executor.TF),
           Pause.Wait,
           WTL.create("alexnet", 25, 200, executor=Executor.TF),
           Pause.Wait,
           WTL.create("alexnet", 25, 200, executor=Executor.TF),
           )
コード例 #4
0
ファイル: exp9.py プロジェクト: vycezhong/Salus-1
def main(argv):
    scfg = maybe_forced_preset(presets.Profiling)
    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir),
            WTL.create("resnet50", 50, 265),
            WTL.create("resnet50", 50, 265),
            )
コード例 #5
0
def main(argv):
    scfg = maybe_forced_preset(presets.AllocProf)
    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir),
            WTL.create("inception3", 100, 165),
            WTL.create("resnet50", 50, 798),
            WTL.create("resnet152", 75, 19),
            Pause.Wait,
            Pause.Manual,
            WTL.create("inception3", 100, 165),
            WTL.create("resnet50", 50, 798),
            WTL.create("resnet152", 75, 19))
コード例 #6
0
def main(argv):
    scfg = maybe_forced_preset(presets.Nvprof)
    scfg.scheduler = 'pack'
    scfg.logconf = 'disable'

    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir / "5mnistsf25"),
            WTL.create("mnistsf", 25, 500),
            WTL.create("mnistsf", 25, 500),
            WTL.create("mnistsf", 25, 500),
            WTL.create("mnistsf", 25, 500),
            WTL.create("mnistsf", 25, 500),
            )
コード例 #7
0
def main(argv):
    scfg = maybe_forced_preset(presets.AllocProf)
    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir),
            WTL.create("resnet50", 50, 265),
            Pause(10),
            WTL.create("googlenet", 100, 200),
            Pause(10),
            WTL.create("inception3", 25, 170),
            Pause(10),
            WTL.create("vgg16", 50, 50),
            Pause(10),
            WTL.create("overfeat", 100, 80),
            )
コード例 #8
0
def main(argv):
    scfg = maybe_forced_preset(presets.MostEfficient)

    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    run_seq(scfg.copy(output_dir=FLAGS.save_dir / "makespan_3of"),
            WTL.create("overfeat", 50, 424),
            WTL.create("overfeat", 50, 424),
            WTL.create("overfeat", 50, 424),
            )

    run_seq(scfg.copy(output_dir=FLAGS.save_dir / "makespan_3res"),
            WTL.create("resnet50", 50, 265),
            WTL.create("resnet50", 50, 265),
            WTL.create("resnet50", 50, 265),
            )
コード例 #9
0
ファイル: exp18.py プロジェクト: vycezhong/Salus-1
def main(argv):
    # type: (Sequence[str]) -> None
    scfg = maybe_forced_preset(presets.MostEfficient)
    scfg.scheduler = 'pack'
    scfg.disable_adc = True

    if argv:
        run_seq(scfg.copy(output_dir=FLAGS.save_dir),
                *parse_actions_from_cmd(argv))
        return

    wtl = WTL.from_name('alexnet')
    rcfg = RunConfig(25, 2726, None)

    # check if we have reference JCT
    reference_jct = wtl.geometry(rcfg, Executor.Salus).jct

    if reference_jct is None:
        start_from = 1
        logger.warning(f"No reference JCT data available for `{wtl.canonical_name(rcfg)}'")
    else:
        start_from = 2
        report(1, reference_jct, 1)

    logger.info(f'Will stop when JCT degratation larger than {FLAGS.break_when}')
    for concurrent in range(start_from, FLAGS.uplimit):
        # run them at once
        logger.info(f'Runing {concurrent} workloads together')
        workloads = [wtl.create_from_rcfg(rcfg) for _ in range(concurrent)]
        run_seq(scfg.copy(output_dir=FLAGS.save_dir / f"{concurrent}"), *workloads)

        # calculate average jct
        for w in workloads:
            update_jct(w)
        jcts = [w.geometry.jct for w in workloads]
        avgjct = np.mean(jcts)  # type: float
        ratio = avgjct / reference_jct
        report(concurrent, avgjct, ratio)
        if ratio > FLAGS.break_when:
            break