def generate_matrix(experiments, mem, baseline, replace, directory, fast): assert(mem == 'best') db = database.get_instance() for mem_model in experiments: mod = model.parse_model_file(mem_model) model_ml = get_best(db, mod) for experiment in experiments: mod = model.parse_model_file(experiment) time = db.get_result(mod, model_ml) if not time: time, cost = evaluate(mod, model_ml, directory, fast) db.add_result(mod, model_ml, time, cost) print(get_experiment_name(experiment) + ',' + get_experiment_name(mem_model) + ',' + str(time))
def simulate(experiment, mem, baseline, replace, directory, fast): mod = model.parse_model_file(experiment) db = database.get_instance() ml = get_memory_list(db, mem, mod, baseline, replace) time = db.get_result(mod, ml) if time is None: time, cost = evaluate(mod, ml, directory, fast) db.add_result(mod, ml, time, cost) print(get_experiment_name(experiment) + ',' + str(time))
def get_stats(experiments, mem, baseline, replace, directory): db = database.get_instance() for experiment in experiments: mod = model.parse_model_file(experiment) ml = get_memory_list(db, mem, mod, baseline, replace) ml.reset(mod.machine) pl = ml.get_max_path_length() name = get_experiment_name(experiment) cost = ml.get_cost() print('{},{},{}'.format(name, pl, cost))
def get_frequency(experiment, mem, baseline, keep): m = model.parse_model_file(experiment) db = database.get_instance() if mem == 'model': subsystem = m.memory elif mem == 'baseline': with open(baseline, 'r') as f: subsystem = memory.parse_memory_list(lex.Lexer(f)) elif mem == 'best': best_name, _, _ = db.get_best(m) best_file = StringIO.StringIO(best_name) subsystem = memory.parse_memory_list(lex.Lexer(best_file)) else: print('ERROR: invalid memory selected:', mem) sys.exit(-1) m.machine.frequency = 1 << 31 result = xilinx.run_xilinx(m.machine, subsystem, keep) print(get_experiment_name(experiment) + ',' + str(result.frequency) + ',' + str(result.bram_count))
def test_get_experiment_name(self): full_name, expected = 'experiments/exp-a-b', 'exp' self.assertEqual(util.get_experiment_name(full_name), expected)