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