OpenCL code-generation backend for GPU enhance Neural Network

As we know GeNN (GPU enhanced Neural Networks) is a C++ library that generates code for efficiently simulating Spiking Neural Networks using GPUs. Currently, GeNN generates CUDA code meaning that it is only compatible with NVIDIA GPUs. For this project we will develop a new code-generation ba

2025-06-28 16:34:21 - Adil Khan

Project Title

OpenCL code-generation backend for GPU enhance Neural Network

Project Area of Specialization Software EngineeringProject Summary

As we know GeNN (GPU enhanced Neural Networks) is a C++ library that generates code for efficiently simulating Spiking Neural Networks using GPUs. Currently, GeNN generates CUDA code meaning that it is only compatible with NVIDIA GPUs.

For this project we will develop a new code-generation backend for GeNN to target an alternative parallel computing platform. Choices include OpenCL (https://www.khronos.org/opencl/), which supports Intel and AMD as well as NVIDIA GPUs or ISPCC (http://ispc.github.io/), which targets the

SIMD units in a wide range of modern CPUs.

Project Objectives

GeNN (GPU enhanced Neural Networks) is a C++ library that generates code for efficiently simulating Spiking Neural Networks using GPUs. Currently, GeNN generates CUDA code meaning that it is only compatible with NVIDIA GPUs.   However, we are in the process of refactoring the GeNN code generator to facilitate adding additional code generation targets.

For this project we will develop a new code-generation backend for GeNN to target an alternative

parallel computing platform. Choices include OpenCL (https://www.khronos.org/opencl/), which supports Intel and AMD as well as NVIDIA GPUs or ISPCC (http://ispc.github.io/), which targets the

SIMD units in a wide range of modern CPUs.

Project Implementation Method Methodology

For extending support of GeNN to include AMD and Intel computing devices, a new code generator will be developed that will generate OpenCL code compatible with AMD and Intel computing devices. For that we will,

1- Develop OpenCL Code Generation Backend

A new implementation of the backend interface of GeNN will be developed that will generate OpenCL kernels which will work across all computing devices including but not limited to AMD, Intel and NVIDIA.

2- Develop a Console Application

The console application will be used to test the newly implemented OpenCL based code generation backend.

3- How it works?

Projects in GeNN will run in the same way as they do with the existing CUDA generator backend. The only difference will be that GeNN will be able to run on AMD and Intel GPUs and Intel CPUs. The current implementation works by,

4- Functions to be implemented

Following are the main functions of backend.cc implemented in CUDA that needs to be implemented in Open Computing Language.

Benefits of the Project

The Benefit of this project will be that GeNN will be able to run on AMD and Intel GPUs and Intel CPUs.
Note:
Its google summer of code project.
For more detail
https://github.com/genn-team/?fbclid=IwAR37P2rV3ppr0dr6XiShxei1K7nT_KPgm88_g9fg7-wLZgVokOO9ERIL7g8

https://summerofcode.withgoogle.com/

Technical Details of Final Deliverable

The deliverables of the Alternative code-generation backends for GPU enhanced           Neural Networks are following

  1. The back-end code written in OpenCL integrated in official GeNN GitHub repository (https://github.com/genn-team/genn)
  2. Quantitative analysis of Neural Networks processing on normal CPU with            implemented GPU back-end.
  3. Comparison of performance between already implemented CUDA code generator with to be implemented OpenCL based cross vendor GPU code generator.
  4. A brief end user document along with an acknowledgement letter from GeNN team.

Complete Software Requirements Specification document.

Final Deliverable of the Project Software SystemCore Industry ITOther IndustriesCore Technology NeuroTechOther TechnologiesSustainable Development GoalsRequired Resources
Item Name Type No. of Units Per Unit Cost (in Rs) Total (in Rs)
Total in (Rs) 70000
AMD Graphics Card: 5700XT Equipment12500025000
NVIDIA Graphics Card: GTX 1070 Equipment12500025000
Intel CPU: i7 8700k or i9 9900k Equipment12000020000

More Posts