Ultra-Efficient Visual Classification on Movidius Myriad2
Recent results in the state-of-the-art in classification and detection have shown nearly-human results in terms of accuracy using very deep neural networks (such as GoogLeNet (1)) as a backend. Most efforts to embed these models in low-power devices have focused on embedded GPUs and special-purpose ASICs or functional units; the former can be significantly efficient, but they still spend a significant amount of power to operate on full-blown floating point data that is often unnecessary to achieve good results in trained models. On the other hand, ASICs are often orders of magnitude more efficient but are severely hindered by their lack of programmability.
Movidius Myriad2 (2) is a fully programmable platform meant for highly energy efficient processing and particularly target at the embedded vision domain. The Myriad architecture can provide more than 10 GOPS of processing performance in a power envelope of less than 0.5W. It consists of two general-purpose SPARCv8 cores coupled with a cluster of 12 SHAVE processors, that leverage VLIW and SIMD operations to achieve a high level of energy efficiency. The SHAVE processors share a 2MB tightly coupled scratchpad called CMX, and can also access DDR via a data cache hierarchy.
In this project, you will port an existing convolutional network library to the Movidius Myriad2 development platform, and use it to run the GoogLeNet deep network model, which is state-of-the-art for the ILSVRC challenge and is a network with almost 7 million parameters and 9 billions of operations on a VGA image. The goal of the project is not only to have this state-of-the-art deep network running on a low-power embedded target, but also to find the best trade-off between accuracy and energy efficiency for this platform. In particular the goals of the project can be summarized as follows:
- Acquiring familiarity with development on the Myriad2 Development Board
- Porting/development and optimization of a library for Convolutional Neural Networks on Myriad2
- Tailoring of the GoogLeNet network for Myriad2
- Measurement of performance and energy efficiency of the proposed solution
Status: In Progress
- Familiarity with embedded C programming.
- Knowledge of parallel computing would be an asset.
- Knowledge of Python or Matlab would be an asset.
- 20% Theory
- 50-60% Implementation
- 20-30% Debug/Testing
Links and References
- (1) C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich, “Going Deeper with Convolutions”.
- (2) Movidius Myriad2 website.