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
OpenCL code-generation backend for GPU enhance Neural Network
Project Area of Specialization Software EngineeringProject SummaryAs 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 ObjectivesGeNN (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 MethodologyFor 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 BackendA 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,
-
- Defining the fundamentals of the SNN model
- Defining inputs to the model
- Details of the model like specific connectivity matrices or initial values
- Running the model using the OpenCL code generator
- Analyzing and saving the data
Following are the main functions of backend.cc implemented in CUDA that needs to be implemented in Open Computing Language.
Benefits of the ProjectThe 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 DeliverableThe deliverables of the Alternative code-generation backends for GPU enhanced Neural Networks are following
- The back-end code written in OpenCL integrated in official GeNN GitHub repository (https://github.com/genn-team/genn)
- Quantitative analysis of Neural Networks processing on normal CPU with implemented GPU back-end.
- Comparison of performance between already implemented CUDA code generator with to be implemented OpenCL based cross vendor GPU code generator.
- 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 | Equipment | 1 | 25000 | 25000 |
| NVIDIA Graphics Card: GTX 1070 | Equipment | 1 | 25000 | 25000 |
| Intel CPU: i7 8700k or i9 9900k | Equipment | 1 | 20000 | 20000 |