Auryn v0.8.0 stable released

The stable Auryn version 0.8 is available now. The new version comes with extensive refactoring under the hood an now supports complex synapse models and improved vectorization for neuron models. The new version is available on github

Tagged with: , ,

What’s new in Auryn v0.8.0-alpha?

Last week I put up a release branch for Auryn v0.8 which is currently in alpha stage. The code can be found hereĀ https://github.com/fzenke/auryn/releases

The main perks: Further increase of performance. Class-based state vectors for neuronal and synaptic states for ease of code writing and readability.

Increased performance

The main changes from Auryn v0.7 to Auryn v0.8.0-alpha happened under the hood. Auryn’s core vector class for state updates and its core class for MPI communication between nodes were both completely rewritten. This increase Auryn’s performance even further by about 10%. Here are the results of a series of benchmarks onĀ  how execution speed increased with development:

Ease of writing code

By re-factoring Auryn’s state vector class which is the heart of neuronal and synaptic updates, not only performance was increased, but also the code has now become more readable and easier to write. Before, vector operations were based on a functional framework inherited from older versions which still used the GSL. To implement an exponential decay of an AMPA conductance stored in a state vector g_ampa for instance you had to write

auryn_vector_float_scale( mul, g_ampa);

where mul is a float and g_ampa is a the vector containing all AMPA conductances of the NeuronGroup. Now, state vectors are classes with their own functions. The above expression now reduces to:

g_ampa->scale( mul );

Or similarly, to compute the current caused by an inhibitory conductance up to know you had to write:

auryn_vector_float_copy(mem,t_inh);
auryn_vector_float_add_constant(t_inh,-e_rev);
auryn_vector_float_mul(t_inh,g_gaba);

which first computes the distance from the inhibitory reversal potential (e_rev), stores it in the state vector t_inh and then multiplies it with the conductances in g_gaba. In Auryn v0.8 the same is achieved by

t_inh->diff(mem,e_rev);
t_inh->mul(g_gaba);

Don’t worry, though. All the legacy functions will also still work.

New devices, models and perks

In addition to that Auryn 0.8 comes with a bunch of nice new tools. For instance there is a BinaryStateMonitor now. Both, BinaryStateMonitor and StateMonitor can now compress their output if desired. Moreover, I laid out the basis for supporting AVX instructions in the future. There are new neuron models available such as the Izhikevich model and plenty of more …

Go take a look! I hope you like it.

Friedemann

Tagged with: ,

Poster in London

I will have a poster at the Discussion Meeting “Integrating Hebbian and homeostatic plasticity” in London next week April 19–20, 2016

I am happy about the opportunity to present a poster which summarizes the key insights I gained during my PhD at an exciting looking discussion meeting “Integrating Hebbian and homeostatic plasticity” organized by Kevin Fox and Michael Stryker at the Royal Society in London.

https://royalsociety.org/events/2016/04/integrating-plasticity/

Tagged with: , ,

Writing neuron models in Auryn …

… just got a lot easier with the new AurynVector class.

Because Auryn originally used GSL vectors (which predates C++) it was still using non object oriented syntax for vector data types internally. That made writing code for new neuron models particularly ugly and also hard to read. People who were struggling with this will be happy to hear that this now just got a little easier.

In the current development version of Auryn’s code I re-factored the central vector data type (auryn_vector_float) to a class template type AurynVectorFloat which now brings its own constructor and methods to manipulate it. I was also happy to see that performance was not notably affected by the change. In time I might even be able to drop the explicit use of SIMD instructions. For the new code the current GNU C++ compiler detects automatically where its use is advantageous. The old legacy code will still remain in Auryn’s code base for a while for backward compatibility. For details see
https://github.com/fzenke/auryn/tree/develop

Enjoy!

F

Tagged with:

Auryn v0.7 released

The new stable Auryn version is now online

After a couple of months of testing, Auryn 0.7.0 is now available for download. The new version now finally uses cmake throughout and can thus be built on Windows PCs and Macs as well without a hassle. Enjoy!

https://github.com/fzenke/auryn/releases/tag/v0.7.0

Tagged with:

Editorial published

This concludes our Special Issue in Frontiers Computational Neuroscience

Cristina, Matt and me are happy to successfully conclude the Frontiers Research Topic that we have organized over the past year. I would like to express my thanks to all the authors and reviewers who made this endeavor happen. We have summarized the main outcomes of this work in our editorial article which is now online.

Top