-
Notifications
You must be signed in to change notification settings - Fork 57
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
Special variable references for zeroing internals #634
Conversation
… ``CustomUpdateVarAccess``
…elaySlots`` which returns the actual number of delay slots as an optional - tidies up quite a bit of code
…functionality to generate delayed indices in CustomUpdateGroupMerged
…tPost variables don't get initialised
* Mechanism for ensuring custom updates only refernce dendritic delay buffers from one synapse group * Code generation of dendritic delay-based indexing of variable references
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #634 +/- ##
==========================================
+ Coverage 87.94% 88.29% +0.35%
==========================================
Files 104 106 +2
Lines 13914 14853 +939
==========================================
+ Hits 12237 13115 +878
- Misses 1677 1738 +61 ☔ View full report in Codecov by Sentry. |
…delay synapse groups
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very sensible & looks good.
Having to zero things like
outPost
(inSyn
in GeNN 4 parlance) on the host between trials slows down simulations with extracudaMemcpy
and Python-side processing. This PR adds some extra functionality that lets you move more of this into custom updates and also improves the handling of delayed variables in custom updates:VarAccessMode::BROADCAST
andCustomUpdateVarAccess::BROADCAST_DELAY
to indicate variables, writes to which are 'broadcast' across all delay slotswriteOnly
flag for value types - these can only be assigned with plain=
assignement. Applied to bothVarAccessMode::BROADCAST
variables and also reductions to improve error handling (also, while I was in this code, tightened up some type-checking)outPost
anddenDelay
.Together, this means you can do all resetting required for delayed EventProp on device.