+1 (412) 519 - 0804
15618 Project - Parallel Programming for Image Classification based on Neural Network

Everything is in progress
Milestone checking
SCHEDULE FOR COMING WEEKS
11.21 - 11.24 Implement convolutional layer on CUDA Yihao Qian
Implement max pooling layer on CUDA Yiqing Cai
11.25 – 11.28 Implement ReLU on CUDA Yihao Qian
Implement fully connected layer on CUDA Yiqing Cai
11.29 - 12.02 Implement softmax layer on CUDA Yihao Qian
Implement weight decay Yiqing Cai
12.03 – 12.06 Integrate all the layers into a network structure on CUDA Yihao Qian
Implement training and testing script Yiqing Cai
12.07 – 12.10 Test and verify speedup Yiqing Cai & Yihao Qian
​
Progress so far
We have successfully set up the environment and all the required dependencies for the project, and make sure that our cuda program can be built successfully. For the network part, we have implemented the sequential version to classify a smaller dataset MNIST, which consists of handwritten digit numbers.
​
Updated Goal
Our goal is to achieve at least 4x speedup, we think we should be able to deliver that.
And if everything goes well, we are considering a life demo for image classification, for now we will just consider it as the bonus part. If there is time remaining, we will try to get that done.
​
Delivery Plan
Speedup curve compared to sequential program as a graph.
Life demo or not depending on the progress.
​
Preliminary results
We have implemented sequential program. And here is the initial result of our sequential code. We implemented a CPU sequential convolutional neural network that predict the class for handwritten digits. As you can see from the image, the test accuracy reaches around 98.15%.
​
Issues
It is a little bit difficult to install software and dependencies on cluster. So we would first tried to implement the code on our own computer. But it would be great if the cluster can be installed with opencv, boost, etc.


