def run_test(nengo_network, nodes_as_function_of_time,
                 nodes_as_function_of_time_time_period):

        # build via gfe nengo_spinnaker_gfe spinnaker
        seed = 11111
        timer_period = 10
        app_graph_builder = NengoApplicationGraphBuilder()
        (app_graph, host_network, nengo_to_app_graph_map,
         random_number_generator) = app_graph_builder(
            nengo_network=nengo_network,
            machine_time_step=1.0,
            nengo_random_number_generator_seed=seed,
            decoder_cache=NoDecoderCache(),
            utilise_extra_core_for_probes=True,
            nengo_nodes_as_function_of_time=nodes_as_function_of_time,
            function_of_time_nodes_time_period=(
                nodes_as_function_of_time_time_period))
        interposer_installer = NengoUtiliseInterposers()
        app_graph = interposer_installer(
            app_graph, nengo_to_app_graph_map, random_number_generator,
            seed)
        machine_graph, graph_mapper = NengoPartitioner(app_graph)

        # build via nengo_spinnaker_gfe - spinnaker
        nengo_spinnaker.add_spinnaker_params(nengo_network.config)
        for nengo_node in nodes_as_function_of_time:
            nengo_network.config[nengo_node].function_of_time = True
        for nengo_node in nodes_as_function_of_time_time_period:
            nengo_network.config[nengo_node].function_of_time_period = \
                nodes_as_function_of_time_time_period[nengo_node]
        io_controller = Ethernet()
        builder_kwargs = io_controller.builder_kwargs
        nengo_spinnaker_network_builder = Model()
        nengo_spinnaker_network_builder.build(nengo_network, **builder_kwargs)
        nengo_spinnaker_network_builder.add_interposers()
        nengo_spinnaker_network_builder.make_netlist(timer_period)
        nengo_operators = dict()
        nengo_operators.update(
            nengo_spinnaker_network_builder.object_operators)
        nengo_operators.update(io_controller._sdp_receivers)
        nengo_operators.update(io_controller._sdp_transmitters)

        match = compare_against_the_nengo_spinnaker_and_gfe_impls(
            nengo_operators, nengo_to_app_graph_map,
            nengo_spinnaker_network_builder.connection_map, app_graph,
            nengo_spinnaker_network_builder)

        if not match:
            raise Exception("didnt match")
Ejemplo n.º 2
0
def create_network_netlist(network, n_steps, fp, dt=0.001):
    """Create a netlist of a network running for a number of steps, dump that
    netlist to file.
    """
    # Build the network, assuming EthernetIO
    model = Model(dt)
    node_io = Ethernet()
    model.build(network, **node_io.builder_kwargs)

    # Build the netlist
    netlist = model.make_netlist(n_steps).as_rig_arguments()
    pickle_netlist(netlist, fp)
    def run_test(nengo_network, nodes_as_function_of_time,
                 nodes_as_function_of_time_time_period):
        seed = 11111
        app_graph_builder = NengoApplicationGraphBuilder()
        (app_graph, host_network, nengo_to_app_graph_map,
         random_number_generator) = app_graph_builder(
             nengo_network=nengo_network,
             machine_time_step=1.0,
             nengo_random_number_generator_seed=1234,
             decoder_cache=NoDecoderCache(),
             utilise_extra_core_for_probes=True,
             nengo_nodes_as_function_of_time=nodes_as_function_of_time,
             function_of_time_nodes_time_period=(
                 nodes_as_function_of_time_time_period))
        interposer_installer = NengoUtiliseInterposers()
        app_graph = interposer_installer(app_graph, random_number_generator,
                                         seed)

        virtual_machine_generator = VirtualMachineGenerator()
        machine = virtual_machine_generator(width=16,
                                            height=16,
                                            virtual_has_wrap_arounds=False,
                                            version=5,
                                            n_cpus_per_chip=18,
                                            with_monitors=True,
                                            down_chips=None,
                                            down_cores=None,
                                            down_links=None,
                                            max_sdram_size=None)

        partitioner = NengoPartitioner()
        machine_graph, graph_mapper = partitioner(app_graph,
                                                  machine,
                                                  random_number_generator,
                                                  pre_allocated_resources=None)

        # build via nengo_spinnaker_gfe - spinnaker
        nengo_spinnaker.add_spinnaker_params(nengo_network.config)
        for nengo_node in nodes_as_function_of_time:
            nengo_network.config[nengo_node].function_of_time = True
        for nengo_node in nodes_as_function_of_time_time_period:
            nengo_network.config[nengo_node].function_of_time_period = \
                nodes_as_function_of_time_time_period[nengo_node]
        io_controller = Ethernet()
        builder_kwargs = io_controller.builder_kwargs
        nengo_spinnaker_network_builder = Model()
        nengo_spinnaker_network_builder.build(nengo_network, **builder_kwargs)
        net_list = nengo_spinnaker_network_builder.make_netlist(200)
        nengo_app_operators = dict()
        nengo_app_operators.update(
            nengo_spinnaker_network_builder.object_operators)
        nengo_app_operators.update(io_controller._sdp_receivers)
        nengo_app_operators.update(io_controller._sdp_transmitters)

        match = \
            compare_against_the_nengo_spinnaker_and_gfe_impls_machine_graphs(
                # nengo bits
                nengo_app_operators, nengo_to_app_graph_map,
                nengo_spinnaker_network_builder.connection_map, net_list,
                # gfe bits
                machine_graph,
                graph_mapper, app_graph, nengo_spinnaker_network_builder)

        if not match:
            raise Exception("didnt match")