GSoC 2021 project idea 6.1: Improving the PyNN interface to GeNN

PyNN is a Python based framework for describing neuronal network models. It is an open standard, widely used in the computational neuroscience and neuromorphic computing communities.

A PyNN interface for GeNN has already been developed (GitHub - genn-team/pynn_genn: PyNN interface to GeNN) so that users of PyNN are able to benefit from accelerated GPU simulations with GeNN. However, there are several areas in which it could be improved:

  • Using GeNN’s new on-GPU spike recording system to reduce the overheads of spike recording
  • Offloading initialisation of connectivity and initial state to the GPU.
  • Replacing spike sources connected with one-to-one connectivity with current sources to reduce spike processing overheads

A final stretch goal would be doing some benchmarking of the performance of simulations implemented directly in GeNN and using PyNN GeNN.

Skills required: Python, PyNN, C/C++; experience with neuronal network simulations and SWIG would be helpful.

Mentors: Jamie Knight @jamie ( and Thomas Nowotny @tnowotny ( Tags: GeNN, Python, PyNN, C/C++, SWIG

Additional ideas include

  • Converting Connection Set Algebra ( connectivity descriptions to GeNN sparse connectivity initialization snippets

  • Generating GeNN neuron models from NineML descriptions