spinn_front_end_common.utilities package¶
Subpackages¶
- spinn_front_end_common.utilities.connections package
- spinn_front_end_common.utilities.database package
- spinn_front_end_common.utilities.notification_protocol package
- spinn_front_end_common.utilities.report_functions package
- spinn_front_end_common.utilities.scp package
- spinn_front_end_common.utilities.utility_objs package
Submodules¶
spinn_front_end_common.utilities.constants module¶
-
spinn_front_end_common.utilities.constants.
BIT_FIELD_COMMS_SDRAM_TAG
= 2¶ SDRAM Tags used for bitfield compressor
-
class
spinn_front_end_common.utilities.constants.
BUFFERING_OPERATIONS
[source]¶ Bases:
enum.Enum
A listing of what SpiNNaker specific EIEIO commands there are.
-
BUFFER_READ
= 0¶ Database handshake with external program
-
BUFFER_WRITE
= 1¶ Host confirming data being read form SpiNNaker memory
-
-
spinn_front_end_common.utilities.constants.
CLOCKS_PER_US
= 200¶ The number of clock cycles per micro-second (at 200Mhz)
-
spinn_front_end_common.utilities.constants.
COMPRESSOR_SDRAM_TAG
= 1¶ SDRAM Tag used by the compressor to find the routing tables
-
spinn_front_end_common.utilities.constants.
CORE_DATA_SDRAM_BASE_TAG
= 200¶ Base SDRAM tag used by cores when loading data (tags 201-217 will be used by cores 1-17)
-
spinn_front_end_common.utilities.constants.
DATA_SPECABLE_BASIC_SETUP_INFO_N_BYTES
= 400¶ The number of words in the AbstractDataSpecable basic setup information. This is the amount required by the pointer table plus a SARK allocation.
-
spinn_front_end_common.utilities.constants.
DEFAULT_BUFFER_SIZE_BEFORE_RECEIVE
= 16384¶ The default size of a recording buffer before receive request is sent
-
spinn_front_end_common.utilities.constants.
DSE_DATA_STRUCT_SIZE
= 16¶ size of the on-chip DSE data structure required, in bytes
-
spinn_front_end_common.utilities.constants.
MAX_DATABASE_PATH_LENGTH
= 50000¶ Database file path maximum length for database notification messages. Note that this is not sent to SpiNNaker and so is not subject to the usual SDP limit.
-
spinn_front_end_common.utilities.constants.
MAX_POSSIBLE_BINARY_SIZE
= 33792¶ the ITCM max limit for a binary
-
spinn_front_end_common.utilities.constants.
MAX_SAFE_BINARY_SIZE
= 32768¶ the ITCM max safe limit for a binary
-
spinn_front_end_common.utilities.constants.
MAX_SIZE_OF_BUFFERED_REGION_ON_CHIP
= 1048576¶ max size expected to be used by the reverse ip_tag multicast source during buffered operations.
-
spinn_front_end_common.utilities.constants.
NOTIFY_PORT
= 19999¶ The default local port that the toolchain listens on for the notification protocol.
-
spinn_front_end_common.utilities.constants.
PARTITION_ID_FOR_MULTICAST_DATA_SPEED_UP
= 'DATA_SPEED_UP_ROAD'¶ partition IDs preallocated to functionality
-
spinn_front_end_common.utilities.constants.
SARK_PER_MALLOC_SDRAM_USAGE
= 8¶ The number of bytes used by SARK per memory allocation
-
class
spinn_front_end_common.utilities.constants.
SDP_PORTS
[source]¶ Bases:
enum.Enum
SDP port handling output buffering data streaming.
-
EXTRA_MONITOR_CORE_DATA_IN_SPEED_UP
= 6¶ Extra monitor core inbound data transfer protocol See
SpeedupInSCPCommands
-
EXTRA_MONITOR_CORE_DATA_SPEED_UP
= 5¶ Extra monitor core outbound data transfer protocol
-
EXTRA_MONITOR_CORE_REINJECTION
= 4¶ Extra monitor core reinjection control protocol. See
ReinjectorSCPCommands
-
INPUT_BUFFERING_SDP_PORT
= 1¶ Command port for the buffered in functionality.
-
OUTPUT_BUFFERING_SDP_PORT
= 2¶ Command port for the buffered out functionality.
-
RUNNING_COMMAND_SDP_PORT
= 3¶ Command port for resetting runtime, etc. See
SDP_RUNNING_MESSAGE_CODES
-
-
class
spinn_front_end_common.utilities.constants.
SDP_RUNNING_MESSAGE_CODES
[source]¶ Bases:
enum.Enum
Codes for sending control messages to spin1_api.
-
SDP_CLEAR_IOBUF_CODE
= 9¶
-
SDP_NEW_RUNTIME_ID_CODE
= 7¶
-
SDP_STOP_ID_CODE
= 6¶
-
SDP_UPDATE_PROVENCE_REGION_AND_EXIT
= 8¶
-
-
spinn_front_end_common.utilities.constants.
SDRAM_BASE_ADDR
= 1879048192¶ start of where SDRAM starts (either unbuffered or buffered)
-
spinn_front_end_common.utilities.constants.
SDRAM_EDGE_BASE_TAG
= 100¶ Base SDRAM tag used by SDRAM edges when allocating (allows up to 100 edges per chip)
-
spinn_front_end_common.utilities.constants.
SIMULATION_N_BYTES
= 12¶ The number of bytes used by the simulation interface. This is one word for the machine_time_step, one for the SDP port, and one for the application hash.
-
spinn_front_end_common.utilities.constants.
SYSTEM_BYTES_REQUIREMENT
= 412¶ The number of bytes used by the DSG and simulation interfaces
spinn_front_end_common.utilities.exceptions module¶
-
exception
spinn_front_end_common.utilities.exceptions.
BufferableRegionTooSmall
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when the SDRAM space of the region for buffered packets is too small to contain any packet at all.
-
exception
spinn_front_end_common.utilities.exceptions.
BufferedRegionNotPresent
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when trying to issue buffered packets for a region not managed.
-
exception
spinn_front_end_common.utilities.exceptions.
CantFindSDRAMToUseException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when malloc and sdram stealing cannot occur.
-
exception
spinn_front_end_common.utilities.exceptions.
ConfigurationException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when the front end determines a input parameter is invalid.
-
exception
spinn_front_end_common.utilities.exceptions.
DsDatabaseException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raise when a query in the DataSpec database failed.
-
exception
spinn_front_end_common.utilities.exceptions.
ExecutableFailedToStartException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when an executable has not entered the expected state during start up.
-
exception
spinn_front_end_common.utilities.exceptions.
ExecutableFailedToStopException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when an executable has not entered the expected state during execution.
-
exception
spinn_front_end_common.utilities.exceptions.
ExecutableNotFoundException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when a specified executable could not be found.
-
exception
spinn_front_end_common.utilities.exceptions.
RallocException
[source]¶ Bases:
spinn_front_end_common.utilities.exceptions.SpinnFrontEndException
Raised when there are not enough routing table entries.
spinn_front_end_common.utilities.helpful_functions module¶
-
spinn_front_end_common.utilities.helpful_functions.
convert_string_into_chip_and_core_subset
(cores)[source]¶ Translate a string list of cores into a core subset.
Parameters: cores (str or None) – string representing down cores formatted as x,y,p[:x,y,p]* Return type: CoreSubsets
-
spinn_front_end_common.utilities.helpful_functions.
convert_vertices_to_core_subset
(vertices)[source]¶ Converts vertices into core subsets.
Parameters: vertices (iterable(MachineVertex)) – the vertices to convert to core subsets Returns: the CoreSubSets of the vertices Return type: CoreSubsets
-
spinn_front_end_common.utilities.helpful_functions.
determine_flow_states
(executable_types, no_sync_changes)[source]¶ Get the start and end states for these executable types.
Parameters: - executable_types (dict(ExecutableType,any)) – the execute types to locate start and end states from
- no_sync_changes (int) – the number of times sync signals been sent
Returns: dict of executable type to states.
Return type: tuple(dict(ExecutableType,CPUState), dict(ExecutableType,CPUState))
-
spinn_front_end_common.utilities.helpful_functions.
flood_fill_binary_to_spinnaker
(binary)[source]¶ Flood fills a binary to SpiNNaker.
Parameters: binary (str) – The name of the file containing the APLX binary to load Returns: the number of cores it was loaded onto Return type: int
-
spinn_front_end_common.utilities.helpful_functions.
generate_unique_folder_name
(folder, filename, extension)[source]¶ Generate a unique file name with a given extension in a given folder.
Parameters: Returns: file path with a unique addition
Return type:
-
spinn_front_end_common.utilities.helpful_functions.
get_defaultable_source_id
(entry)[source]¶ Hack to support the source requirement for the router compressor on chip.
Parameters: entry (MulticastRoutingEntry) – the multicast router table entry. Returns: return the source value Return type: int
-
spinn_front_end_common.utilities.helpful_functions.
get_ethernet_chip
(machine, board_address)[source]¶ Locate the chip with the given board IP address.
Parameters: Returns: The chip that supports that board address
Return type: Raises: ConfigurationException – when that board address has no chip associated with it
-
spinn_front_end_common.utilities.helpful_functions.
get_region_base_address_offset
(app_data_base_address, region)[source]¶ Find the address of the of a given region for the DSG.
Parameters:
-
spinn_front_end_common.utilities.helpful_functions.
locate_extra_monitor_mc_receiver
(placement_x, placement_y)[source]¶ Get the data speed up gatherer that can be used to talk to a particular chip. This will be on the same board.
Parameters: Return type:
-
spinn_front_end_common.utilities.helpful_functions.
locate_memory_region_for_placement
(placement, region)[source]¶ Get the address of a region for a placement.
Parameters: - region (int) – the region to locate the base address of
- placement (Placement) – the placement object to get the region address of
- transceiver (Transceiver) – the python interface to the SpiNNaker machine
Returns: the address
Return type:
-
spinn_front_end_common.utilities.helpful_functions.
n_word_struct
(n_words)[source]¶ Manages a precompiled cache of structs for parsing blocks of words. Thus, this:
data = n_word_struct(n_words).unpack(data_blob)
Is much like doing this:
data = struct.unpack(f"<{n_words}I", data_blob)
except quite a bit more efficient because things are shared including the cost of parsing the format.
Parameters: n_words (int) – The number of SpiNNaker words to be handled. Returns: A struct for working with that many words. Return type: Struct
-
spinn_front_end_common.utilities.helpful_functions.
read_data
(x, y, address, length, data_format)[source]¶ Reads and converts a single data item from memory.
Parameters: Returns: whatever is produced by unpacking the data
Return type:
-
spinn_front_end_common.utilities.helpful_functions.
write_address_to_user0
(x, y, p, address)[source]¶ Writes the given address into the user_0 register of the given core.
Parameters:
spinn_front_end_common.utilities.system_control_logic module¶
-
spinn_front_end_common.utilities.system_control_logic.
run_system_application
(executable_cores, app_id, read_algorithm_iobuf, check_for_success_function, cpu_end_states, needs_sync_barrier, filename_template, binaries_to_track=None, progress_bar=None, logger=None, timeout=None)[source]¶ Executes the given _system_ application. Used for on-chip expanders, compressors, etc.
Parameters: - executable_cores (ExecutableTargets) – the cores to run the executable on.
- app_id (int) – the app-id for the executable
- read_algorithm_iobuf (bool) – whether to report IOBUFs
- check_for_success_function (callable) – function used to check success; expects executable_cores, transceiver as inputs
- cpu_end_states (set(CPUState)) – the states that a successful run is expected to terminate in
- needs_sync_barrier (bool) – whether a sync barrier is needed
- filename_template (str) – the IOBUF filename template.
- binaries_to_track (list(str)) – A list of binary names to check for exit state. Or None for all binaries
- progress_bar (ProgressBar or None) – Possible progress bar to update. end() will be called after state checked
- logger (Logger) – If provided and IOBUF is extracted, will be used to log errors and warnings
- timeout (float or None) – Number of seconds to wait before force stopping, or None to wait forever
Raises: SpinnmanException – If one should arise from the underlying SpiNNMan calls