sPyNNaker neural_modelling 7.1.1
Loading...
Searching...
No Matches
Data Structures | Functions
spike_processing_fast.h File Reference

Spike processing fast API. More...

#include <common/neuron-typedefs.h>
#include <common/in_spikes.h>
#include <spin1_api.h>
#include "synapse_row.h"

Go to the source code of this file.

Data Structures

struct  sdram_config
 A region of SDRAM used to transfer synapses. More...
 
struct  key_config
 
struct  spike_processing_fast_provenance
 Provenance for spike processing. More...
 

Functions

bool spike_processing_fast_initialise (uint32_t row_max_n_words, uint32_t spike_buffer_size, bool discard_late_packets, uint32_t pkts_per_ts_rec_region, uint32_t multicast_priority, struct sdram_config sdram_inputs_param, struct key_config key_config_param, weight_t *ring_buffers_param)
 Set up spike processing.
 
void spike_processing_fast_time_step_loop (uint32_t time, uint32_t n_rewires)
 The main loop of spike processing to be run once per time step. Note that this function will not return until the end of the time step; it will only be interrupted by SDP or MC packets.
 
void spike_processing_fast_store_provenance (struct spike_processing_fast_provenance *prov)
 Store any provenance data gathered from spike processing.
 

Detailed Description

Spike processing fast API.

Definition in file spike_processing_fast.h.


Data Structure Documentation

◆ sdram_config

struct sdram_config

A region of SDRAM used to transfer synapses.

Definition at line 87 of file c_main_neurons.c.

Data Fields
uint8_t * address The start address of the input data to be transferred.

The address of the input data to be transferred.

uint32_t size_in_bytes The size of the input data to be transferred per core.

The size of the input data to be transferred.

uint32_t n_synapse_cores The number of synapse cores feeding into here.
uint32_t * address The address of the input data to be transferred.
uint32_t time_for_transfer_overhead The time of the transfer in us.
uint32_t offset

The offset into the data to write the weights (to account for different synapse types)

uint16_t weights[] The weight to send for each active Poisson source.

◆ key_config

struct key_config

The key and mask being used to send spikes from neurons processed on this core.

Definition at line 39 of file spike_processing_fast.h.

Data Fields
uint32_t key The key.
uint32_t mask The mask.
uint32_t spike_id_mask The mask to get the spike ID.
uint32_t colour_shift The colour shift to apply after masking.
uint32_t self_connected Is the node self connected.

◆ spike_processing_fast_provenance

struct spike_processing_fast_provenance

Provenance for spike processing.

Definition at line 53 of file spike_processing_fast.h.

Data Fields
uint32_t n_input_buffer_overflows A count of the times that the synaptic input circular buffers overflowed.
uint32_t n_dmas_complete The number of DMAs performed.
uint32_t n_spikes_processed The number of spikes received and processed.
uint32_t n_rewires The number of rewires performed.
uint32_t n_packets_dropped_from_lateness The number of packets that were cleared at the end of timesteps.
uint32_t max_filled_input_buffer_size The maximum size of the input buffer.
uint32_t max_spikes_received The maximum number of spikes received in a time step.
uint32_t max_spikes_processed The maximum number of spikes processed in a time step.
uint32_t n_transfer_timer_overruns The number of times the transfer took longer than expected.
uint32_t n_skipped_time_steps The number of times a time step was skipped entirely.
uint32_t max_transfer_timer_overrun The maximum additional time taken to transfer.
uint32_t earliest_receive The earliest received time of a spike.
uint32_t latest_receive The latest received time of a spike.
uint32_t max_spikes_overflow The most spikes left at the end of any time step.

Function Documentation

◆ spike_processing_fast_initialise()

bool spike_processing_fast_initialise ( uint32_t  row_max_n_words,
uint32_t  spike_buffer_size,
bool  discard_late_packets,
uint32_t  pkts_per_ts_rec_region,
uint32_t  multicast_priority,
struct sdram_config  sdram_inputs_param,
struct key_config  key_config_param,
weight_t *  ring_buffers_param 
)

Set up spike processing.

Parameters
[in]row_max_n_wordsThe maximum row length in words
[in]spike_buffer_sizeThe size to make the spike buffer
[in]discard_late_packetsWhether to throw away packets not processed at the end of a time step or keep them for the next time step
[in]pkts_per_ts_rec_regionThe ID of the recording region to record packets-per-time-step to
[in]multicast_priorityThe priority of multicast processing
[in]sdram_inputs_paramDetails of the SDRAM transfer for the ring buffers
[in]key_config_paramDetails of the key used by the neuron core
[in]ring_buffers_paramThe ring buffers to update with synapse weights
Returns
Whether the setup was successful or not

Definition at line 599 of file spike_processing_fast.c.

◆ spike_processing_fast_time_step_loop()

void spike_processing_fast_time_step_loop ( uint32_t  time,
uint32_t  n_rewires 
)

The main loop of spike processing to be run once per time step. Note that this function will not return until the end of the time step; it will only be interrupted by SDP or MC packets.

Parameters
[in]timeThe time step of the simulation
[in]n_rewiresThe number of rewiring attempts to be done

Definition at line 501 of file spike_processing_fast.c.

◆ spike_processing_fast_store_provenance()

void spike_processing_fast_store_provenance ( struct spike_processing_fast_provenance prov)

Store any provenance data gathered from spike processing.

Parameters
[in]provThe structure to store the provenance data in

Definition at line 643 of file spike_processing_fast.c.