Add `post events` functionality to support models with STDP synapses (#1255)
* Added a `POST_EVENTS` procedure to nmodl, that takes an argument that represents the time since the last spike on the cell. In the event of multiple detectors on the cell, and multiple spikes on the detectors within the same integration period, all spikes will be processed by the synapse. Spikes are processed only once and then cleared. * Added 3 vectors to the shared state required to dispatch post-events: `cv_to_cell` map, `time_since_spike` holding max(num_detectors) slots per cell, and `src_to_spike` mapping spike sources (detectors) to slots in `time_since_spike`. * Renamed `vec_ci_` to `vec_di_` (to better reflect that it stands for **domain index**). Named the new `cv_to_cell` index as `vec_ci_` in the mechanisms. * Fixed existing unit tests and added new tests for the new post-events functionality. Fixes #1206
Showing
- arbor/backends/gpu/fvm.hpp 2 additions, 1 deletionarbor/backends/gpu/fvm.hpp
- arbor/backends/gpu/mechanism.cpp 4 additions, 1 deletionarbor/backends/gpu/mechanism.cpp
- arbor/backends/gpu/mechanism_ppack_base.hpp 3 additions, 0 deletionsarbor/backends/gpu/mechanism_ppack_base.hpp
- arbor/backends/gpu/shared_state.cpp 11 additions, 1 deletionarbor/backends/gpu/shared_state.cpp
- arbor/backends/gpu/shared_state.hpp 12 additions, 3 deletionsarbor/backends/gpu/shared_state.hpp
- arbor/backends/gpu/stimulus.cu 1 addition, 1 deletionarbor/backends/gpu/stimulus.cu
- arbor/backends/gpu/threshold_watcher.cu 21 additions, 6 deletionsarbor/backends/gpu/threshold_watcher.cu
- arbor/backends/gpu/threshold_watcher.hpp 11 additions, 8 deletionsarbor/backends/gpu/threshold_watcher.hpp
- arbor/backends/multicore/fvm.hpp 2 additions, 1 deletionarbor/backends/multicore/fvm.hpp
- arbor/backends/multicore/mechanism.cpp 5 additions, 1 deletionarbor/backends/multicore/mechanism.cpp
- arbor/backends/multicore/mechanism.hpp 4 additions, 1 deletionarbor/backends/multicore/mechanism.hpp
- arbor/backends/multicore/shared_state.cpp 14 additions, 0 deletionsarbor/backends/multicore/shared_state.cpp
- arbor/backends/multicore/shared_state.hpp 9 additions, 0 deletionsarbor/backends/multicore/shared_state.hpp
- arbor/backends/multicore/stimulus.cpp 1 addition, 1 deletionarbor/backends/multicore/stimulus.cpp
- arbor/backends/multicore/threshold_watcher.hpp 17 additions, 3 deletionsarbor/backends/multicore/threshold_watcher.hpp
- arbor/fvm_layout.cpp 6 additions, 0 deletionsarbor/fvm_layout.cpp
- arbor/fvm_layout.hpp 3 additions, 0 deletionsarbor/fvm_layout.hpp
- arbor/fvm_lowered_cell_impl.hpp 57 additions, 20 deletionsarbor/fvm_lowered_cell_impl.hpp
- arbor/include/arbor/mechanism.hpp 1 addition, 0 deletionsarbor/include/arbor/mechanism.hpp
- arbor/include/arbor/mechinfo.hpp 2 additions, 0 deletionsarbor/include/arbor/mechinfo.hpp
Please register or sign in to comment