def init(statFile): sst.setStatisticLoadLevel(16) sst.enableAllStatisticsForAllComponents( {"type": "sst.AccumulatorStatistic"}) sst.setStatisticOutput("sst.statOutputCSV") sst.setStatisticOutputOptions({"filepath": statFile, "separator": ", "})
}) comp_memory = sst.Component("memory" + str(x), "memHierarchy.MemController") comp_memory.addParams({ "clock" : "500MHz", "max_requests_per_cycle" : 2, "do_not_back" : 1, # Backend parameters "backend" : "memHierarchy.simpleDRAM", "backend.mem_size" : "512MiB", "backend.tCAS" : 2, "backend.tRCD" : 2, "backend.tRP" : 3, "backend.cycle_time" : "3ns", "backend.row_size" : "4KiB", "backend.row_policy" : "closed", }) portid = x + caches + cores link_directory_network = sst.Link("link_directory_network_" + str(x)) link_directory_network.connect( (comp_directory, "network", "100ps"), (comp_network, "port" + str(portid), "100ps") ) link_directory_memory_network = sst.Link("link_directory_memory_" + str(x)) link_directory_memory_network.connect( (comp_directory, "memory", "400ps"), (comp_memory, "direct_link", "400ps") ) # Enable statistics sst.setStatisticLoadLevel(7) sst.setStatisticOutput("sst.statOutputConsole") sst.enableAllStatisticsForAllComponents()
next_memory_ctrl_id * mem_interleave_size, "memNIC.addr_range_end": (memory_capacity * 1024 * 1024) - (groups * memory_controllers_per_group * mem_interleave_size) + (next_memory_ctrl_id * mem_interleave_size) }) dc.addParams(dc_params) memLink = sst.Link("mem_link_" + str(next_memory_ctrl_id)) memLink.connect((memctrl, "direct_link", ring_latency), (dc, "memory", ring_latency)) netLink = sst.Link("dc_link_" + str(next_memory_ctrl_id)) netLink.connect( (dc, "network", ring_latency), (router_map["rtr." + str(next_network_id)], "port2", ring_latency)) next_network_id = next_network_id + 1 next_memory_ctrl_id = next_memory_ctrl_id + 1 # Enable SST Statistics Outputs for this simulation sst.setStatisticLoadLevel(4) sst.enableAllStatisticsForAllComponents({"type": "sst.AccumulatorStatistic"}) sst.setStatisticOutput("sst.statOutputCSV") sst.setStatisticOutputOptions({ "filepath": "./stats-snb-ariel.csv", "separator": ", " }) print("Completed configuring the SST Sandy Bridge model")
"clock": clock, "maxcorequeue": 256, "maxissuepercycle": 2, "pipetimeout": 0, "corecount": corecount, "arielmode": 1, "memorylevels": 1, "pagecount0": num_pages, "pagesize0": pageSize * 1024, "arielstack": 1, "defaultlevel": 0, } ) sieveId = sst.Component("sieve", "memHierarchy.Sieve") sieveId.addParams({"cache_size": "8MB", "associativity": 16, "cache_line_size": 64, "output_file": "mallocRank.txt"}) for x in range(corecount): arielL1Link = sst.Link("cpu_cache_link_%d" % x) arielL1Link.connect((ariel, "cache_link_%d" % x, busLat), (sieveId, "cpu_link_%d" % x, busLat)) arielALink = sst.Link("cpu_alloc_link_%d" % x) arielALink.connect((ariel, "alloc_link_%d" % x, busLat), (sieveId, "alloc_link_%d" % x, busLat)) statoutputs = dict([(1, "sst.statOutputConsole"), (2, "sst.statOutputCSV"), (3, "sst.statOutputTXT")]) sst.setStatisticLoadLevel(7) sst.setStatisticOutput(statoutputs[2]) sst.enableAllStatisticsForAllComponents() print "done configuring SST"
merlintorusparams = {} merlintorusparams["num_dims"]=1 merlintorusparams["torus:shape"]="5" merlintorusparams["torus:width"]="1" merlintorusparams["torus:local_ports"]=1 sst.merlin._params.update(merlintorusparams) topo = topoTorus() topo.prepParams() sst.merlin._params["PacketDest:pattern"] = "Uniform" sst.merlin._params["PacketDest:RangeMin"] = "1.0" sst.merlin._params["PacketDest:RangeMax"] = "2.0" sst.merlin._params["PacketSize:pattern"] = "Uniform" sst.merlin._params["PacketSize:RangeMin"] = "1.0B" sst.merlin._params["PacketSize:RangeMax"] = "10.0B" # Required by pymerlin sst.merlin._params["packet_size"] = "0KB" sst.merlin._params["PacketDelay:pattern"] = "Uniform" sst.merlin._params["PacketDelay:RangeMin"] = "5.0ns" sst.merlin._params["PacketDelay:RangeMax"] = "10.0ns" # Required by pymerlin sst.merlin._params["message_rate"] = "1GHz" sst.merlin._params["packets_to_send"] = 10 endPoint = TrafficGenEndPoint() endPoint.prepParams() topo.setEndPoint(endPoint) topo.build() sst.enableAllStatisticsForAllComponents({"type":"sst.AccumulatorStatistic","rate":"0ns"})