def run_malloc_test(): os.environ["PROCESSORS"] = "4" os.environ["SIMICS_EXTRA_LIB"] = "./modules" run_count_test("malloc_test", 50) start_ruby(debug=0) mfacet.setup_run_for_n_transactions(10000, 1) mfacet.run_sim_command("c")
def start_opal(transactions, dump_interval, opal_outfile): env_dict = workloads.prepare_env_dictionary(simics = 1) mfacet.run_sim_command("load-module opal") # set the SMT thread count smt_threads = int(workloads.get_var(env_dict, "SMT_THREADS")) mfacet.run_sim_command("opal0.setparam CONFIG_LOGICAL_PER_PHY_PROC %d" % smt_threads) # Register file should scale with SMT thread count mfacet.run_sim_command("opal0.setparam CONFIG_IREG_PHYSICAL %d" % (160*smt_threads+128)) mfacet.run_sim_command("opal0.setparam CONFIG_FPREG_PHYSICAL %d" % (64*smt_threads+256)) mfacet.run_sim_command("opal0.setparam CONFIG_CCREG_PHYSICAL %d" % (5*smt_threads+128)) mfacet.run_sim_command("opal0.setparam CONFIG_NUM_CONTROL_SETS %d" % (64*smt_threads)) # do Transactional loads/stores at retirment, not speculatively mfacet.run_sim_command("opal0.setparam RETIREMENT_CACHE_ACCESS %d" % 1) # ROB, scheduling window sizes mfacet.run_sim_command("opal0.setparam IWINDOW_ROB_SIZE %d" % 128) mfacet.run_sim_command("opal0.setparam IWINDOW_WIN_SIZE %d" % 64) mfacet.run_sim_command("opal0.setparam RESERVED_ROB_ENTRIES %d" % 4) # Use HW or SW log mfacet.run_sim_command("opal0.setparam_str XACT_USE_SWLOG true") mfacet.run_sim_command("opal0.setparam XACT_MAX_DEPTH %d" % string.atoi(workloads.get_var(env_dict, "MAX_DEPTH"))); # Comment this out for production/faster runs #mfacet.run_sim_command("opal0.setparam_str XACT_ISOLATION_CHECK true") mfacet.run_sim_command('opal0.init') print "starting opal" mfacet.run_sim_command('opal0.sim-start %s' % opal_outfile) # now setup and run mfacet.setup_run_for_n_transactions(transactions, dump_interval) mfacet.run_sim_command("opal0.sim-step 100000000000")
def run_abort_test4(): os.environ["PROCESSORS"] = "2" run_count_test("abort_test4", 50) start_ruby(debug=0) mfacet.setup_run_for_n_transactions(10, 1) mfacet.run_sim_command("c")
def run_abort_test(): environ["PROCESSORS"] = "1" run_count_test("abort_test", 10) start_ruby() mfacet.setup_run_for_n_transactions(100000, 100) mfacet.run_sim_command("c")