Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delay implementation kernel cleanup #3412

Open
JanVogelsang opened this issue Feb 27, 2025 · 0 comments
Open

Delay implementation kernel cleanup #3412

JanVogelsang opened this issue Feb 27, 2025 · 0 comments
Labels
I: Internal API Changes were introduced in basic internal workings of the simulator that developers need to know I: User Interface Users may need to change their code due to changes in function calls S: Normal Handle this with default priority T: Maintenance Work to keep up the quality of the code and documentation.

Comments

@JanVogelsang
Copy link
Contributor

JanVogelsang commented Feb 27, 2025

PR #2989 adds axonal delays to NEST, but still leaves some open ToDos for a follow-up PR. Such a follow-up PR should clean up existing suboptimal design choices made in NEST a long time ago, which were made even more pronounced by PR #2989. This includes:

  • Get rid of special treatment for delays (and weights maybe) when setting synapse params
  • Move all sanity checks for delay combinations in a single location (instead of CopyModel/SetDefaults, synapse params, SetStatus)

Furthermore, PR #2989 only adds axonal delay support to a single synapse (stdp_pl_synapse_hom_ax_delay) and neuron model (iaf_psc_alpha) so far. Most other plastic synapse models could also benefit from axonal delays, but not all users will actually require them. To provide the best possible performance for each of both cases, there should be different implementations for each case. This can be done elegantly by still using the same base synapse model implementation for both total-delay and axonal-dendritic-delay containers (which represent the both cases, see delay_types.h) and optimize only parts the code (e.g. send function) using compile-time directives (e.g. if constexpr or overloading the send function based on delay implementation).

@JanVogelsang JanVogelsang added S: Normal Handle this with default priority T: Maintenance Work to keep up the quality of the code and documentation. I: User Interface Users may need to change their code due to changes in function calls I: Internal API Changes were introduced in basic internal workings of the simulator that developers need to know labels Feb 27, 2025
@github-project-automation github-project-automation bot moved this to To do (open issues) in Kernel Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: Internal API Changes were introduced in basic internal workings of the simulator that developers need to know I: User Interface Users may need to change their code due to changes in function calls S: Normal Handle this with default priority T: Maintenance Work to keep up the quality of the code and documentation.
Projects
Status: To do (open issues)
Development

No branches or pull requests

1 participant