In this blog post I will summarize the work I have done during this amazing Google Summer of Code. I was working on the project "Convolutional Deep Neural Networks on GPUs for Particle Physics Applications". More about this project can be found here.
Current state of the work
The current state of the work includes an entire Deep Learning Framework that can be easily extended with new types of layers and modules. My work here includes: redesigning and writing the generic data loaders and minimizers, redesign of the dense layers, writing deep neural network class as well as an entire method class for instantiating, training and testing the net.
Apart from this, on top of this Deep Learning platform, I was developing the Convolutional, Max Pooling and Reshape layers. Since there are three types of low-level interfaces (Reference, CPU and GPU), the work is completely done for the Reference and the CPU interfaces, while the GPU interface is still under development, and I am planning to finish it after this year's Google Summer of Code. Moreover, for every submodule, there is an extensive list of tests.
Since we were a team of three students, for the purpose of this summer of code, we have created a common GitHub repo. All of my commits can be found on the following link