Example #1
0
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()
Example #2
0
          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],
Example #3
0

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
Example #4
0
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()
Example #5
0
# 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
Example #7
0
#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]
Example #8
0
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()
Example #9
0
# 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()
Example #10
0
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()
Example #11
0
# 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()
Example #12
0
    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: