Esempio n. 1
0
def init(statFile):
    sst.setStatisticLoadLevel(16)
    sst.enableAllStatisticsForAllComponents(
        {"type": "sst.AccumulatorStatistic"})

    sst.setStatisticOutput("sst.statOutputCSV")
    sst.setStatisticOutputOptions({"filepath": statFile, "separator": ", "})
Esempio n. 2
0
    })

    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()

Esempio n. 3
0
            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")
Esempio n. 4
0
        "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"})