def _execute_synapse_expander(self): with FecTimer(LOADING, "Synapse expander") as timer: if timer.skip_if_virtual_board(): return synapse_expander( self.placements, self._txrx, self._executable_finder, get_config_bool("Reports", "write_expander_iobuf"))
def _execute_write_network_graph(self): with FecTimer( MAPPING, "SpYNNakerNeuronGraphNetworkSpecificationReport") as timer: if timer.skip_if_cfg_false("Reports", "write_network_graph"): return spynnaker_neuron_graph_network_specification_report( self._application_graph)
def _execute_on_chip_bit_field_generator(self): with FecTimer(LOADING, "Execute on chip bitfield generator") as timer: if timer.skip_if_virtual_board(): return on_chip_bitfield_generator( self.placements, self.application_graph, self._executable_finder, self._txrx, self._machine_graph, self._routing_infos)
def _execute_splitter_partitioner(self, pre_allocated_resources): if not self._application_graph.n_vertices: return with FecTimer(MAPPING, "SpynnakerSplitterPartitioner"): if self._machine: machine = self._machine else: machine = self._max_machine self._machine_graph, self._n_chips_needed = \ spynnaker_splitter_partitioner( self._application_graph, machine, self._plan_n_timesteps, pre_allocated_resources)
def _execute_delay_support_adder(self): """ Runs, times and logs the DelaySupportAdder if required """ name = get_config_str("Mapping", "delay_support_adder") if name is None: return with FecTimer(MAPPING, "DelaySupportAdder"): if name == "DelaySupportAdder": delay_support_adder(self._application_graph) return raise ConfigurationException( f"Unexpected cfg setting delay_support_adder: {name}")
def _execute_spynnaker_pair_compressor(self): with FecTimer( LOADING, "Spynnaker machine bitfield pair router compressor") \ as timer: if timer.skip_if_virtual_board(): return spynnaker_machine_bitField_pair_router_compressor( self._router_tables, self._txrx, self._machine, self._app_id, self._machine_graph, self._placements, self._executable_finder, self._routing_infos, self._executable_targets, get_config_bool("Reports", "write_expander_iobuf")) self._multicast_routes_loaded = True return None
def _execute_splitter_selector(self): with FecTimer(MAPPING, "Spynnaker splitter selector"): spynnaker_splitter_selector(self._application_graph)
def _report_redundant_packet_count(self): with FecTimer(RUN_LOOP, "Redundant packet count report") as timer: if timer.skip_if_cfg_false( "Reports", "write_redundant_packet_count_report"): return redundant_packet_count_report()
def _execute_finish_connection_holders(self): with FecTimer(LOADING, "Finish connection holders"): finish_connection_holders(self.application_graph)
def _execute_graph_data_specification_writer(self): with FecTimer(DATA_GENERATION, "Spynnaker data specification writer"): self._dsg_targets = spynnaker_data_specification_writer( self._placements, self._ipaddress, self._machine, self._app_id, self._max_run_time_steps)
def fancy_do_load(graph_changed): with FecTimer("WEIRD", "KeyConstraintAdder"): simulator = get_simulator() adder = KeyConstraintAdder() adder(simulator.machine_graph) simulator.do_load_normal(graph_changed)