spinn_front_end_common.interface.buffer_management package¶
Subpackages¶
- spinn_front_end_common.interface.buffer_management.buffer_models package
- Submodules
- spinn_front_end_common.interface.buffer_management.buffer_models.abstract_receive_buffers_to_host module
- spinn_front_end_common.interface.buffer_management.buffer_models.abstract_sends_buffers_from_host module
- spinn_front_end_common.interface.buffer_management.buffer_models.sends_buffers_from_host_pre_buffered_impl module
- Module contents
- spinn_front_end_common.interface.buffer_management.storage_objects package
- Submodules
- spinn_front_end_common.interface.buffer_management.storage_objects.buffered_receiving_data module
- spinn_front_end_common.interface.buffer_management.storage_objects.buffered_sending_region module
- spinn_front_end_common.interface.buffer_management.storage_objects.buffers_sent_deque module
- spinn_front_end_common.interface.buffer_management.storage_objects.channel_buffer_state module
- spinn_front_end_common.interface.buffer_management.storage_objects.end_buffering_state module
- Module contents
Submodules¶
spinn_front_end_common.interface.buffer_management.buffer_manager module¶
-
class
spinn_front_end_common.interface.buffer_management.buffer_manager.
BufferManager
(placements, tags, transceiver, store_to_file=False)[source]¶ Bases:
object
Manager of send buffers
Parameters: - placements (
pacman.model.placements.Placements
) – The placements of the vertices - tags (
pacman.model.tags.Tags
) – The tags assigned to the vertices - transceiver (
spinnman.transceiver.Transceiver
) – The transceiver to use for sending and receiving information - store_to_file (bool) – True if the data should be temporarily stored in a file instead of in RAM (default uses RAM)
-
add_receiving_vertex
(vertex)[source]¶ Add a vertex into the managed list for vertices which require buffers to be received from them during runtime
-
add_sender_vertex
(vertex)[source]¶ - Add a vertex into the managed list for vertices
- which require buffers to be sent to them during runtime
Parameters: vertex ( spinnaker.pyNN.models.abstract_models.buffer_models.AbstractSendsBuffersFromHost
) – the vertex to be managed
-
clear_recorded_data
(x, y, p, recording_region_id)[source]¶ Removes the recorded data stored in memory.
Parameters: - x – placement x coord
- y – placement y coord
- p – placement p coord
- recording_region_id – the recording region id
-
get_data_for_vertex
(placement, recording_region_id)[source]¶ Get a pointer to the data container for all the data retrieved during the simulation from a specific region area of a core
Parameters: - placement (pacman.model.placements.Placement) – the placement to get the data from
- recording_region_id (int) – desired recording data region
Returns: pointer to a class which inherits from AbstractBufferedDataStorage
Return type: spinn_front_end_common.interface.buffer_management.buffer_models.AbstractBufferedDataStorage
-
receive_buffer_command_message
(packet)[source]¶ Handle an EIEIO command message for the buffers
Parameters: packet ( spinnman.messages.eieio.command_messages.eieio_command_message.EIEIOCommandMessage
) – The eieio message received
-
reload_buffer_files
¶ The file paths for each buffered region for each sender vertex
-
reset
()[source]¶ Resets the buffered regions to start transmitting from the beginning of its expected regions and clears the buffered out data files
-
sender_vertices
¶ The vertices which are buffered
- placements (
spinn_front_end_common.interface.buffer_management.recording_utilities module¶
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_last_sequence_number
(placement, transceiver, recording_data_address)[source]¶ Read the last sequence number from the data
Parameters: - placement – The placement from which to read the sequence number
- transceiver – The transceiver to use to read the sequence number
- recording_data_address – The address of the recording data from which to read the number
Return type: int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_minimum_buffer_sdram
(buffered_sdram_per_timestep, n_machine_time_steps=None, minimum_sdram_for_buffering=1048576)[source]¶ Get the minimum buffer SDRAM
Parameters: - buffered_sdram_per_timestep (list of int) – The maximum number of bytes to use per timestep of recording, per recorded region. Disabled regions can specify 0.
- n_machine_time_steps (int) – The number of machine time steps for the simulation. Can be None if use_auto_pause_and_resume is True
- minimum_sdram_for_buffering (int) – The minimum SDRAM to reserve per recorded region for buffering
Return type: list of int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_n_timesteps_in_buffer_space
(buffer_space, buffered_sdram_per_timestep)[source]¶ Get the number of time steps of data that can be stored in a given buffers space
Parameters: - buffer_space (int) – The space that will hold the data
- buffered_sdram_per_timestep (list of int) – The maximum SDRAM used by each region per timestep
Return type: int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recorded_region_ids
(buffered_sdram_per_timestep)[source]¶ Get the ids of regions where recording is enabled
Parameters: buffered_sdram_per_timestep (list of int) – The maximum SDRAM used by each region per timestep, where 0 indicates a disabled region Return type: list of int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recorded_region_sizes
(n_machine_time_steps, buffered_sdram_per_timestep, maximum_sdram_for_buffering=None)[source]¶ Get the size of each recording region to be passed in to get_recording_header_array
Parameters: - n_machine_time_steps (int) – The duration of the simulation segment in time steps
- buffered_sdram_per_timestep (list of int) – The maximum SDRAM used per timestep in bytes per region
- maximum_sdram_for_buffering (None or list of int) – The maximum size of each buffer, or None if no maximum
Return type: list of int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recording_data_size
(recorded_region_sizes)[source]¶ Get the size of the recorded data to be reserved
Parameters: recorded_region_sizes – A list of sizes of each region to be recorded. A size of 0 is acceptable. Return type: int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recording_header_array
(recorded_region_sizes, time_between_triggers=0, buffer_size_before_request=None, ip_tags=None, buffering_tag=None)[source]¶ Get data to be written for the recording header
Parameters: - recorded_region_sizes – A list of sizes of each region to be recorded. A size of 0 is acceptable.
- time_between_triggers – The minimum time between requesting reads of any region
- buffer_size_before_request – The amount of buffer to fill before a read request is sent
- ip_tags – A list of ip tags to extract the buffer tag from
- buffering_tag – The tag to use for buffering requests
Returns: An array of values to be written as the header
Return type: list of int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recording_header_size
(n_recorded_regions)[source]¶ Get the size of the data to be written for the recording header
Parameters: n_recorded_regions – The number of regions to be recorded
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recording_region_sizes
(buffered_sdram_per_timestep, n_machine_time_steps=None, minimum_sdram_for_buffering=1048576, maximum_sdram_for_buffering=None, use_auto_pause_and_resume=True)[source]¶ Get the size of each recording region to be passed in to get_recording_resources, based on the details of the simulation
Parameters: - buffered_sdram_per_timestep (list of int) – The maximum number of bytes to use per timestep of recording, per recorded region. Disabled regions can specify 0.
- n_machine_time_steps (int) – The number of machine time steps for the simulation. Can be None if use_auto_pause_and_resume is True
- minimum_sdram_for_buffering (int) – The minimum SDRAM to reserve per recorded region for buffering
- maximum_sdram_for_buffering (None or list of int) – The maximum size of each buffer, or None if no maximum
- use_auto_pause_and_resume (bool) – True if automatic pause and resume is to be used for buffering
Return type: list of int
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_recording_resources
(region_sizes, buffering_ip_address=None, buffering_port=None, notification_tag=None)[source]¶ Get the resources for recording
Parameters: - region_sizes (list of int) – A list of the sizes of each region. A size of 0 is acceptable to indicate an empty region
- buffering_ip_address (str) – The ip address to receive buffering messages on, or None if buffering is not in use
- buffering_port (int) – The port to receive buffering messages on, or None if a port is to be assigned
- notification_tag (int) – The tag to send buffering messages with, or None to use a default tag
Return type:
-
spinn_front_end_common.interface.buffer_management.recording_utilities.
get_region_pointer
(placement, transceiver, recording_data_address, region)[source]¶ Get a pointer to a recording region
Parameters: - placement – The placement from which to read the pointer
- transceiver – The transceiver to use to read the pointer
- recording_data_address – The address of the recording data from which to read the pointer
- region – The index of the region to get the pointer of
Return type: int
Module contents¶
-
class
spinn_front_end_common.interface.buffer_management.
BufferManager
(placements, tags, transceiver, store_to_file=False)[source]¶ Bases:
object
Manager of send buffers
Parameters: - placements (
pacman.model.placements.Placements
) – The placements of the vertices - tags (
pacman.model.tags.Tags
) – The tags assigned to the vertices - transceiver (
spinnman.transceiver.Transceiver
) – The transceiver to use for sending and receiving information - store_to_file (bool) – True if the data should be temporarily stored in a file instead of in RAM (default uses RAM)
-
add_receiving_vertex
(vertex)[source]¶ Add a vertex into the managed list for vertices which require buffers to be received from them during runtime
-
add_sender_vertex
(vertex)[source]¶ - Add a vertex into the managed list for vertices
- which require buffers to be sent to them during runtime
Parameters: vertex ( spinnaker.pyNN.models.abstract_models.buffer_models.AbstractSendsBuffersFromHost
) – the vertex to be managed
-
clear_recorded_data
(x, y, p, recording_region_id)[source]¶ Removes the recorded data stored in memory.
Parameters: - x – placement x coord
- y – placement y coord
- p – placement p coord
- recording_region_id – the recording region id
-
get_data_for_vertex
(placement, recording_region_id)[source]¶ Get a pointer to the data container for all the data retrieved during the simulation from a specific region area of a core
Parameters: - placement (pacman.model.placements.Placement) – the placement to get the data from
- recording_region_id (int) – desired recording data region
Returns: pointer to a class which inherits from AbstractBufferedDataStorage
Return type: spinn_front_end_common.interface.buffer_management.buffer_models.AbstractBufferedDataStorage
-
receive_buffer_command_message
(packet)[source]¶ Handle an EIEIO command message for the buffers
Parameters: packet ( spinnman.messages.eieio.command_messages.eieio_command_message.EIEIOCommandMessage
) – The eieio message received
-
reload_buffer_files
¶ The file paths for each buffered region for each sender vertex
-
reset
()[source]¶ Resets the buffered regions to start transmitting from the beginning of its expected regions and clears the buffered out data files
-
sender_vertices
¶ The vertices which are buffered
- placements (