Checkpoint Report

Zhihao Li (zhihaol) and Zhenrui Zhang (zhenruiz)

Process Review

By far we have implemented a naive CPU and GPU version for the forward path of the neuro network framework. In the first week, we designed the framework according to the achitecture of Caffe and learned Swift programming language and Metal framework. In the second week, we implemented the forward CPU version and tested a few layers. Currently we are implementing the GPU version.

Goals and Deliverables

We started with the goal of training a small neural network using the framework, however, as we learn more about the constraint we have running the framework on mobile devices and the reality of huge memory consumption of common neural networks, we decided to focus on running a trained model rather than actually training them. We will compare the running time, memory cost and energy consumption of the CPU and GPU version in MNIST.

For the next half of the project, we will explore the possibilities to run a compressed model in our framework. Also, we’ll try to support the caffe format models.

In the parallelism competition, we plan to compare the cost of CPU and GPU implementations and demonstrate the MNIST network running with our framework. If time allows, we also want to try running the compressed AlexNet on our framework.

Revised Schedule

Time What we plan to do Status
April 1 ~ April 7 Revise proposal, study the design and architecture of Caffe, learn Swift language and Metal API, implement a simple App for testing, design interfaces for espresso DONE
April 8 ~ April 14 Develop and test the CPU version Finished development, need more thorough testing
April 15 ~ April 19 Develop and test the GPU version Finished development, need testing
April 20 ~ April 22 More testing on CPU version and refactor to a better CPU version using Accelerate framework  
April 23 ~ April 25 Test the GPU version  
April 26 ~ April 28 Train neural networks on espresso
Run MNIST network(and test our implementations)
April 29 ~ May 3 Compare the CPU and GPU implementations  
May 4 ~ May 6 Study neural network compression and try to run compressed model
Run a compressed model trained by Caffe or other common frameworks
May 7 ~ Parallel Competition Day Write final report and prepare for presentation