Published April 22, 2024
| Version 5.0.0
Software
Open
genn-team/genn: GeNN 5.0.0
Creators
- neworderofjamie
- Thomas Nowotny
- James Paul Turner1
- Esin Yavuz2
- Fawad Ali3
- Mengchi Zhang4
- braintimeException
- Ben Evans5
- Garibaldi Pineda-Garcia6
- Kanishk Kalra
- Alan Diamond5
- Christoph Ostrau
- Alex Cope
- Obaid Ur Rehman
- Ajay Subramanian
- Alex Dewar1
- Marcel Stimberg7
- Felix Benjamin Kern8
- FabianSchubert
- Lev E. Givon9
- Edward Stevinson
- Xilin Huang10
- edward-cf
- 1. @ImperialCollegeLondon
- 2. @Cyanapse
- 3. @tomtom-international
- 4. Meta
- 5. University of Sussex
- 6. Applied AGI
- 7. ISIR / Sorbonne Université
- 8. IRCN, UTokyo
- 9. Janssen R&D
- 10. Herr
Description
Release Notes for GeNN 5.0.0
This is a very large update to GeNN that has fixed a large number of longstanding bugs and we hope will make GeNN easier to use and enable various exciting new features in the near future. The licence has also been switched from GPL to LGPL making it mildly more liberal by allowing PyGeNN to be used as a component in closed-source systems.
This release breaks backward compatibility so all models are likely to require updating but the documentation has also been completely re-done and the pre-release version is at https://genn-team.github.io/genn/documentation/5/. This includes a guide to updating existing models
New features
- GeNN has a whole new code generator. This gives much better quality error messages to the user about syntax/typing errors in code strings and will enable use to do smarter optimisations in future but it does restrict user code to a well-defined subset of C99 (https://github.com/genn-team/genn/pull/595)**
- As well as simulation kernels, GeNN 4.x generated large amounts of boilerpalte for allocating memory and copying from device to host. This resulted in very long compile times with large models. In GeNN 5 we have replaced this with a new runtime which reduces compilation time by around 10x on very large models (https://github.com/genn-team/genn/pull/602)
- In GeNN 4.X, parameters were always "scalar" type. This resulted in poor code generation when these are used to store integers. Parameters now have types and can also be made dynamic to allow them to be changed at runtime (https://github.com/genn-team/genn/pull/607)
- Weight update models now have postsynaptic spike-like events, allowing a wider class of learning rules to be implemented (https://github.com/genn-team/genn/pull/609)**
Bug fixes
- PyGeNN only really works with precision set to float (#289)
- Refine global - register -global transfers (#55)
- Avoiding creating unused variables enhancement (#47)
- PyGeNN doesn't correctly handle neuron variables with delay slots (#393)
- assign_external_pointer overrides should use explicitly sized integer types (#288)
- Repeat of spike-like-event conditions in synapse code flawed (#379)
- Dangerous conflict potential of user and system code (#385)
- Accessing queued pre and postsynaptic weight update model variables (#402)
- Linker-imposed model complexity limit on Windows (#408)
- Got 'error: duplicate parameter name' when ./generate_run test in userproject/Izh_sparse_project bug (#416)
- Issues with merging synapse groups where pre or postsynaptic neuron parameters are referenced (#566)
- Presynaptic Synapse Variable undefined in Event Threshold Condition (#594)
Files
genn-team/genn-5.0.0.zip
Files
(2.1 MB)
Name | Size | Download all |
---|---|---|
md5:40d0699131999a07487fc8712bf01f2c
|
2.1 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/genn-team/genn/tree/5.0.0 (URL)