from pacman.model.graphs.machine import MachineEdge from pkt_injector_vertex import Pkt_Injector_Vertex from pkt_extractor_vertex import Pkt_Extractor_Vertex NUM_INJECTORS = 9 gfe.setup(machine_time_step=1000000, n_chips_required=1, model_binary_folder=os.path.dirname(__file__)) # instantiate injector vertices injectors = [] for i in range(NUM_INJECTORS): iv = Pkt_Injector_Vertex(i) gfe.add_machine_vertex_instance(iv) injectors.append(iv) # instantiate extractor vertices ev = Pkt_Extractor_Vertex() gfe.add_machine_vertex_instance(ev) # create links from injectors to extractor for iv in injectors: gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk) gfe.run(10000) gfe.stop()
n_boards_required=3, model_binary_folder=os.path.dirname(__file__) + "/..") # create connections along the border for n in range(NUM_CONNECTIONS): # inside chip coordinates (xin, yin) = INSIDE_CHIPS[n] # outside chip coordinates (xout, yout) = OUTSIDE_CHIPS[n] for i in range(NUM_INJECTORS_PER_CONNECTION): if DO_INSIDE_OUT: # instantiate inside-out injector vertex iv = Pkt_Injector_Vertex(x_coord=xin, y_coord=yin, throttle=INSIDE_INJECTOR_THROTTLE[n], use_payload=USE_PAYLOADS) gfe.add_machine_vertex_instance(iv) # instantiate inside-out extractor vertex ev = Pkt_Extractor_Vertex(x_coord=xout, y_coord=yout) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk) if DO_OUTSIDE_IN: # instantiate outside-in injector vertex iv = Pkt_Injector_Vertex(x_coord=xout, y_coord=yout, throttle=OUTSIDE_INJECTOR_THROTTLE[n],
gfe.setup( machine_time_step = 1000000, n_chips_required = len (EXTRACTORS) + 1, model_binary_folder=os.path.dirname(__file__) ) # compute total number of extractor vertices NUM_EXTRACTORS = 0 for chip, ne in EXTRACTORS.items(): NUM_EXTRACTORS += ne # instantiate injector vertex iv = Pkt_Injector_Vertex( x_coord = INJECTOR[X], y_coord = INJECTOR[Y], nkeys = NUM_EXTRACTORS) gfe.add_machine_vertex_instance(iv) # instantiate extractor vertices lnk = 0 for chip, ne in EXTRACTORS.items(): for e in range (ne): ev = Pkt_Extractor_Vertex(iid = e, x_coord = chip[X], y_coord = chip[Y]) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance (MachineEdge (iv, ev), iv.inj_lnk[lnk]) lnk += 1
import os import spinnaker_graph_front_end as gfe from pacman.model.graphs.machine import MachineEdge from pkt_injector_vertex import Pkt_Injector_Vertex from pkt_extractor_vertex import Pkt_Extractor_Vertex gfe.setup(machine_time_step=1000000, n_boards_required=3, model_binary_folder=os.path.dirname(__file__) + "/..") # instantiate injector vertex iv = Pkt_Injector_Vertex(x_coord=7, y_coord=7) gfe.add_machine_vertex_instance(iv) # instantiate extractor vertex ev = Pkt_Extractor_Vertex(x_coord=7, y_coord=8) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk) gfe.run(10000) gfe.stop()
# chips on board border connected to FPGA2 INSIDE_CHIPS = [(4, 7), (5, 7), (6, 7), (7, 7), (7, 6), (7, 5), (7, 4), (7, 3)] # make sure to get two neighbouring boards across FPGA2 gfe.setup(machine_time_step=1000000, n_boards_required=3, model_binary_folder=os.path.dirname(__file__) + "/..") # create connections along the border for n in range(NUM_CHIPS): # instantiate inside-out injector vertex (xi, yi) = INSIDE_CHIPS[n] iv = Pkt_Injector_Vertex(x_coord=xi, y_coord=yi, throttle=INJECTOR_THROTTLE) gfe.add_machine_vertex_instance(iv) # instantiate inside-out extractor vertex (xe, ye) = OUTSIDE_CHIPS[n] ev = Pkt_Extractor_Vertex(x_coord=xe, y_coord=ye) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk) # instantiate outside-in injector vertex (xi, yi) = OUTSIDE_CHIPS[n]
# create connections along the border for n in range(NUM_CHIPS): # inside chip coordinates and parameters (xin, yin) = INSIDE_CHIPS[n] throttle_in = INSIDE_INJECTOR_THROTTLE[n] # outside chip coordinates and parameters (xout, yout) = OUTSIDE_CHIPS[n] throttle_out = OUTSIDE_INJECTOR_THROTTLE[n] for i in range(NUM_INJECTORS): # instantiate inside-out injector vertex iv = Pkt_Injector_Vertex( x_coord = xin, y_coord = yin, throttle = throttle_in ) gfe.add_machine_vertex_instance(iv) # instantiate inside-out extractor vertex ev = Pkt_Extractor_Vertex( x_coord = xout, y_coord = yout ) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge (iv, ev), iv.inj_lnk) # instantiate outside-in injector vertex
#UTSIDE_INJECTOR_THROTTLE = [47, 47, 47, 47, 47, 47, 47, 47] #NSIDE_INJECTOR_THROTTLE = [47, 47, 47, 47, 47, 47, 47, 47] # make sure to get two neighbouring boards across FPGA2 gfe.setup(machine_time_step=1000000, n_boards_required=3, model_binary_folder=os.path.dirname(__file__) + "/..") # create connections along the border for n in range(NUM_CHIPS): for i in range(NUM_INJECTORS): # instantiate inside-out injector vertex (xi, yi) = INSIDE_CHIPS[n] iv = Pkt_Injector_Vertex(x_coord=xi, y_coord=yi, throttle=INSIDE_INJECTOR_THROTTLE[n]) gfe.add_machine_vertex_instance(iv) # instantiate inside-out extractor vertex (xe, ye) = OUTSIDE_CHIPS[n] ev = Pkt_Extractor_Vertex(x_coord=xe, y_coord=ye) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk) # instantiate outside-in injector vertex (xi, yi) = OUTSIDE_CHIPS[n]
import spinnaker_graph_front_end as gfe from pacman.model.graphs.machine import MachineEdge from pkt_injector_vertex import Pkt_Injector_Vertex from pkt_extractor_vertex import Pkt_Extractor_Vertex # populate each chip with this number of packet extractors NUM_EXTRACTORS = 2 gfe.setup(machine_time_step=1000000, n_chips_required=1, model_binary_folder=os.path.dirname(__file__)) # instantiate injector vertex iv = Pkt_Injector_Vertex(nkeys=2) gfe.add_machine_vertex_instance(iv) # instantiate extractor vertices for e in range(NUM_EXTRACTORS): ev = Pkt_Extractor_Vertex() gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk[e]) gfe.run(10000) gfe.stop()
# populate a line of chips CHIPS = [(0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3)] # populate each chip with this number of packet injectors NUM_INJECTORS = len (CHIPS) gfe.setup( machine_time_step = 1000000, n_chips_required = len (CHIPS), model_binary_folder=os.path.dirname(__file__) ) for (x_coord, y_coord) in CHIPS: # instantiate extractor vertex on chip ev = Pkt_Extractor_Vertex(x_coord = x_coord, y_coord = y_coord) gfe.add_machine_vertex_instance(ev) # instantiate injector vertices on chip for i in range (NUM_INJECTORS): iv = Pkt_Injector_Vertex(i, x_coord = x_coord, y_coord = y_coord) gfe.add_machine_vertex_instance(iv) # create links from injectors to extractor on same chip gfe.add_machine_edge_instance (MachineEdge (iv, ev), iv.inj_lnk) gfe.run(10000) gfe.stop()
import spinnaker_graph_front_end as gfe from pacman.model.graphs.machine import MachineEdge from pkt_injector_vertex import Pkt_Injector_Vertex from pkt_extractor_vertex import Pkt_Extractor_Vertex # populate each chip with this number of packet extractors NUM_EXTRACTORS = 16 gfe.setup(machine_time_step=1000000, n_chips_required=1, model_binary_folder=os.path.dirname(__file__)) # instantiate injector vertex iv = Pkt_Injector_Vertex(nkeys=NUM_EXTRACTORS) gfe.add_machine_vertex_instance(iv) # instantiate extractor vertices for e in range(NUM_EXTRACTORS): ev = Pkt_Extractor_Vertex() gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk[e]) gfe.run(10000) gfe.stop()
# tuple indices for coordinates X = 0 Y = 1 # populate this chip with a packet injector INJECTORS = {(0, 0): 9} # populate each chip with this number of packet extractors EXTRACTOR = (1, 0) gfe.setup(machine_time_step=1000000, n_chips_required=len(INJECTORS) + 1, model_binary_folder=os.path.dirname(__file__)) # instantiate extractor vertex ev = Pkt_Extractor_Vertex(x_coord=EXTRACTOR[X], y_coord=EXTRACTOR[Y]) gfe.add_machine_vertex_instance(ev) for chip, ni in INJECTORS.items(): for i in range(ni): iv = Pkt_Injector_Vertex(iid=i, x_coord=chip[X], y_coord=chip[Y]) gfe.add_machine_vertex_instance(iv) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge(iv, ev), iv.inj_lnk) gfe.run(10000) gfe.stop()
model_binary_folder = os.path.dirname(__file__)+"/.." ) # create connections along the border for n in range(NUM_CONNECTIONS): # FX chip coordinates (xx, yx) = FX_CHIPS[n] # FY chip coordinates (xy, yy) = FY_CHIPS[n] for i in range(NUM_INJECTORS_PER_CONNECTION): # instantiate FX injector vertex iv = Pkt_Injector_Vertex( x_coord = xx, y_coord = yx, throttle = FX_INJECTOR_THROTTLE[n], use_payload = USE_PAYLOADS ) gfe.add_machine_vertex_instance(iv) # instantiate FY extractor vertex ev = Pkt_Extractor_Vertex( x_coord = xy, y_coord = yy ) gfe.add_machine_vertex_instance(ev) # create link from injector to extractor gfe.add_machine_edge_instance(MachineEdge (iv, ev), iv.inj_lnk) if BIDIRECTIONAL: