About: GeNN is a C++ library that generates code for efficiently simulating Spiking Neural Networks (SNNs) using GPUs. Currently, GeNN generates CUDA and HIP code meaning that it can target a wide range of GPUs. However, SIMD CPUs provide an
interesting, lower-power alternative.
Aims: For this project, you will develop a new GeNN code-generation backend for ISPC (http://ispc.github.io/), which targets the SIMD units in a wide range of modern CPUs using ISPC’s CUDA-like programming model.
I hope you’re doing well. My name is Vrushali Nandurkar, and I am currently pursuing my undergraduate degree in Data Science at IIT Madras. I have a strong interest in AI, computational neuroscience, and GPU-based neural simulations.
I came across the GeNN project and its objective of developing an ISPC backend for SIMD CPUs. I am highly interested in learning more about this project and contributing to it. I have experience with C++ and parallel programming, and I am eager to expand my skills in SIMT and ISPC.
Could you please provide more details on how I can get involved and what the next steps would be?
Thanks for your interest in this project - I think it could be a really cool one and it sounds like you have the relevant experience! Good first steps would be getting familiar with ISPC via the materials linked to from http://ispc.github.io/ and with using GeNN via the documentation and tutorials here. If you feel like digging a little deeper, the following areas might be good preparation for writing your application:
Have a look at the CUDA code generated by GeNN (it will be generated in a directory ending in _CODE alongside your model) and think about the similarities/differences between this and ISPCC
Alternatively, if you fancy having a go at a pre-project task, try manually porting this GeNN-like CUDA code to ISPCC (the CUDA version can be compiled with nvcc test.cc -o test) - the results can be plotted with this script .
Hi @jamie , thanks for the detailed instructions and suggestions! I’ll get started on familiarizing myself with ISPC and GeNN, and I’ll work on manually porting the CUDA code to ISPC as you recommended. I’ll keep you updated on my progress and reach out if I have any questions. Thanks again for your response and guidance!