BCPNNSim

  • Name: BCPNNSim
  • EuroHPC machine used: LUMI
  • Topic: Computer and information sciences; Electrical engineering, electronic engineering, information engineering; Machine learning; Neuroscience; Psychology

Overview of the project

The BCPNNSim project aims to optimize the performance of a C++ & CUDA brain simulation and machine learning code. It implements a neural network with graded or spiking neural units and data dependent rewiring, optimized for sparse connectivity. An existing HPC code for simulation of Brain-like Neural Networks used for Machine learning was optimized. The original code was in CUDA but was by the applying group semi-automatically translated to HIP.  The aim of the project was to produce a HIP code that ran fast on AMD Supercomputer GPU clusters. This work was done by HCP Center CINES in Montpellier, France.

How did EPICURE support the project and what were the benefits of the support?

The BCPNNSim project requested support to optimize code performance on GPU clusters such as LUMI and to implement multi-GPU functionality for scaling network size and complexity across large GPU systems. The main modification of the code amounted to removing the use of managed memory to keep computations on the GPU. Also, parallel streams were introduced in the code. Scaling on Lumi was substantially improved within this project. The multi-GPU implementation was moved to future work, which has now started under the umbrella of MINERVA. A results image: