sPyNNaker neural_modelling 7.3.1
|
Implements the "local-only" handling of synapses, that is the processing of spikes without the use of transfers from SDRAM. More...
#include "local_only.h"
#include "local_only/local_only_impl.h"
#include <debug.h>
#include <circular_buffer.h>
#include <recording.h>
#include <spin1_api.h>
Go to the source code of this file.
Data Structures | |
struct | local_only_config |
Functions | |
static void | run_next_process_loop (void) |
Start the process loop. | |
static void | update_max_input_buffer (void) |
Update the maximum size of the input buffer. | |
void | mc_rcv_callback (uint key, uint unused) |
Multicast packet without payload received callback. | |
void | mc_rcv_payload_callback (uint key, uint n_spikes) |
Multicast packet with payload received callback. | |
void | process_callback (uint time, uint unused1) |
User callback; performs spike processing loop. | |
bool | local_only_initialise (void *local_only_addr, void *local_only_params_addr, uint32_t n_rec_regions_used, uint16_t **ring_buffers_ptr) |
Set up local-only processing of spikes. | |
void | local_only_clear_input (uint32_t time) |
Clear the spikes for the last time step. | |
void | local_only_store_provenance (struct local_only_provenance *prov) |
Store provenance gathered during run. | |
Variables | ||
static struct local_only_config | config | |
A local copy of the configuration. | ||
static circular_buffer | input_buffer | |
The input buffer for spikes received. | ||
static uint16_t * | ring_buffers | |
Ring buffers to add weights to on spike processing. | ||
static volatile bool | process_loop_running = false | |
static uint32_t | n_spikes_received = 0 | |
The number of spikes received in total in the last time step. | ||
static uint32_t | max_spikes_received = 0 | |
The maximum number of spikes received in any time step. | ||
static uint32_t | n_spikes_dropped = 0 | |
The number of spikes discarded in total during the run. | ||
static uint32_t | max_input_buffer_size = 0 | |
The maximum size of the input buffer during the run. | ||
static uint32_t | local_time | |
The local time step counter. | ||
uint32_t | synapse_delay_mask | |
The mask to get the synaptic delay from a "synapse". | ||
uint32_t | synapse_type_index_bits | |
The number of bits used by the synapse type and post-neuron index. | ||
uint32_t | synapse_index_bits | |
The number of bits used by just the post-neuron index. | ||
uint32_t | p_per_ts_region | |
The region where packets-per-timestep are stored. | ||
struct { | ||
uint32_t | time | |
uint32_t | packets_this_time_step | |
} | p_per_ts_struct | |
The number of packets received this time step for recording. | ||
Implements the "local-only" handling of synapses, that is the processing of spikes without the use of transfers from SDRAM.
Definition in file local_only.c.
struct local_only_config |
Definition at line 29 of file local_only.c.
|
inlinestatic |
Start the process loop.
Definition at line 90 of file local_only.c.
|
inlinestatic |
Update the maximum size of the input buffer.
Definition at line 97 of file local_only.c.
Multicast packet without payload received callback.
[in] | key | The key received |
[in] | unused | Should be 0 |
Definition at line 107 of file local_only.c.
Multicast packet with payload received callback.
[in] | key | The key received |
[in] | n_spikes | The payload; the number of times to repeat the key |
Definition at line 124 of file local_only.c.
User callback; performs spike processing loop.
Definition at line 145 of file local_only.c.
bool local_only_initialise | ( | void * | local_only_addr, |
void * | local_only_params_addr, | ||
uint32_t | n_rec_regions_used, | ||
uint16_t ** | ring_buffers | ||
) |
Set up local-only processing of spikes.
[in] | local_only_addr | The address from which to read common data |
[in] | local_only_params_addr | The address from which to read implementation-specific data |
[in] | n_rec_regions_used | The number of recording regions used before here |
[out] | ring_buffers | Pointer to the ring buffers that hold future inputs |
Definition at line 164 of file local_only.c.
void local_only_clear_input | ( | uint32_t | time | ) |
Clear the spikes for the last time step.
[in] | time | The time step at which the request is asked |
Definition at line 218 of file local_only.c.
void local_only_store_provenance | ( | struct local_only_provenance * | prov | ) |
Store provenance gathered during run.
[out] | prov | Pointer to the struct to store the provenance in |
Definition at line 234 of file local_only.c.
|
static |
A local copy of the configuration.
Definition at line 43 of file local_only.c.
|
static |
The input buffer for spikes received.
Definition at line 46 of file local_only.c.
|
static |
Ring buffers to add weights to on spike processing.
Definition at line 49 of file local_only.c.
|
static |
Whether the loop of processing is currently running (if not, it needs to be restarted on the next spike received)
Definition at line 53 of file local_only.c.
|
static |
The number of spikes received in total in the last time step.
Definition at line 56 of file local_only.c.
|
static |
The maximum number of spikes received in any time step.
Definition at line 59 of file local_only.c.
|
static |
The number of spikes discarded in total during the run.
Definition at line 62 of file local_only.c.
|
static |
The maximum size of the input buffer during the run.
Definition at line 65 of file local_only.c.
|
static |
The local time step counter.
Definition at line 68 of file local_only.c.
uint32_t synapse_delay_mask |
The mask to get the synaptic delay from a "synapse".
Mask to pick out the delay.
Definition at line 71 of file local_only.c.
uint32_t synapse_type_index_bits |
The number of bits used by the synapse type and post-neuron index.
Number of bits needed for the synapse type and index.
Definition at line 74 of file local_only.c.
uint32_t synapse_index_bits |
The number of bits used by just the post-neuron index.
Number of bits in the synapse index.
Definition at line 77 of file local_only.c.
uint32_t p_per_ts_region |
The region where packets-per-timestep are stored.
Definition at line 80 of file local_only.c.