Max group size: 2
A basic learning technique used to train multi-layer neural networks is backpropagation.
Backpropagation consist of two phases:
1) Forward propagation of input through NN and calculate error of output vs desired value, and
2) backward propagate error and update weights.
More information relating to basic neural network and backpropagation is available at:
https://takinginitiative.wordpress.com/2008/04/03/basic-neural-network-tutorial-theory/
https://en.wikipedia.org/wiki/Backpropagation
Download the starter code.
The starter code is a sequential version of a single iteration of the backpropagation algorithm.
The simple neural network consists of three layers: input, hidden, output.
The input layer size is set as a command-line parameter (see run file).
Your task is to accelerate using GPGPUs. Your goal is to make the GPU kernel execution as fast as you can with the following restriction.
The results must be deterministic and match the result of the sequential code (see out.txt). While some optimizations can trade off accuracy for speed, we're asking you to maintain current semantics exactly.
Your report should detail all optimizations you tried, including those that ultimately were abandonded or worsened performance.
For every optimization tried, and each entry should note:
Your submission will be graded on the following parameters.
Demo/knowledge: 25%
Demo/Functionality: 40%
Report: 35%
The project will be graded based on a one-to-one demo to the instructor, as well as the proposal and report. The project will be due Monday, December 5th when the grading interviews will start. If you need to be graded earlier (for example due to travel plans), I can work with your schedule.
Max group size: 2
The goal of the warp scheduling project is to develop your own warp scheduler. This project uses GPGPU-sim, a cycle-accurate GPGPU simulator (http://gpgpu-sim.org/). A great tutorial is provided by the developers at http://www.gpgpu-sim.org/isca2012-tutorial/GPGPU-Sim-Tutorial-ISCA2012.pdf, including valuable information such as how to configure different GPGPU configurations and how to interpret output results.
VM is available http://ece.ubc.ca/~taylerh/files/gpgpu-sim/gpgpu-sim.vm.tar.gz
Your submission will be graded on the following parameters.
Demo/knowledge: 30%
Demo/Functionality: 35%
Report: 35%
The project will be graded based on a one-to-one demo to the instructor, as well as the proposal and report. The project will be due Monday, December 5th when the grading interviews will start. If you need to be graded earlier (for example due to travel plans), I can work with your schedule.