Published February 11, 2022
| Version 4.7.0
Software
Open
genn-team/genn: GeNN v4.7.0
Authors/Creators
- 1. University of Sussex
- 2. @Cyanapse
- 3. @Mercateo
- 4. Facebook
- 5. AlEwan Medical Company
- 6. Institut de la Vision
- 7. IRCN, UTokyo
- 8. Janssen R&D
- 9. Herr
Description
Release Notes for GeNN v4.7.0
This release adds a number of significant new features to GeNN as well as including a number of bug fixes that have been identified since the 4.6.0 release.
User Side Changes- While a wide range of convolutional type connectivity can be implemented using
SynapseMatrixConnectivity::PROCEDURAL, the performance is often worse than sparse connectivity.SynapseMatrixConnectivity::TOEPLITZprovides a more efficient solution withInitToeplitzConnectivitySnippet::Conv2DandInitToeplitzConnectivitySnippet::AvgPoolConv2Dimplementing some typical connectivity patterns (#484). - Shared weight kernels had to be previously provided as extra global parameters via the
InitVarSnippet::Kernelvariable initialisation snippet. This meant kernels had to be manually allocated to the correct size and couldn't be initialised using standard functionality.SynapseMatrixWeight::KERNELallows kernels to be treated as standard state variables (#478). - Some presynaptic updates need to update the state of presynaptic neurons as well as postsynaptic. These updates can now be made using the \$(addToPre,...) function from presynaptic update code and the destination additional input variable can be specified using
SynapseGroup::setPreTargetVar(#479). - On Windows, all models in the same directory would build their generated code into DLLs with the same name, prevented the the caching system introduced in v4.5.0 working properly.
CodeGenerator::PreferencesBase::includeModelNameInDLLincludes the name of the model in the DLL filename, resolving this problem. This is now the default behaviour in PyGeNN but, when using GeNN from C++, the flag must be manually set and MSBuild projects updated to link to the correct DLL (#476). - Neuron code can now sample the binomial distribution using \$(gennrand_binomial) and this can be used to initialise variables with
InitVarSnippet::Binomial(#498). - In the latest version of Windows Subsystem for Linux, CUDA is supported but libcuda is mounted in a non-standard location. GeNN's CUDA backend now adds this location to the linker paths (#500).
- Fixed issues with some configurations of
InitSparseConnectivitySnippet::Conv2Dwhen stride > 1 which caused incorrect connectivity to be instantiated as well as crashes when this snippet was used to generate sparse connectivity (#489, #491). - Fixed issue where, if \$(addToInSynDelay) was used in spike-like event code, it was not detected and dendritic delay structures were not correctly created (#494).
- Fixed issue where precision wasn't being correctly applied to neuron additional input variable and sparse connectivity row build state variable initialisation meaning double precision code could unintentially be generated (#489).
Files
genn-team/genn-4.7.0.zip
Files
(2.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:bf684ecd1f47b2ee6070e4daa0f0bb10
|
2.1 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/genn-team/genn/tree/4.7.0 (URL)