Deep Learning Inference with Intel® FPGAs
Summary
An FPGA provides an extremely low-latency, flexible architecture that enables deep learning acceleration in a power-efficient solution. Learn how to deploy a computer vision application on a CPU, and then accelerate the deep learning inference on the FPGA. Next, learn how to take that application and use Docker* containers to scale the application across multiple nodes in a cluster using Kubernetes*.
By the end of this course, students will have practical knowledge of:
- What convolutional neural networks are and how they are built
- How to build a deep learning computer vision application
- What an FPGA is from a software developer's perspective, and why FPGAs are so well suited for accelerating real-time machine learning applications
- The components of the Intel® FPGA Deep Learning Acceleration Suite
- What constitutes a computer vision application that uses deep learning to extract patterns from data
- How to use the Intel® Distribution of OpenVINO™ toolkit to target convolutional neural network (CNN) based inferencing on Intel® CPUs and FPGAs
- How the Acceleration Stack for Intel® Xeon® CPUs with FPGAs enables higher level cloud and data center software applications to leverage the FPGA seamlessly
The course is structured around five weeks of lectures and exercises. Each week requires three hours to complete. The exercises are implemented in Python*.
Prerequisites
Python programming
Working knowledge of pandas and scikit-learn*
Basic statistics
Week 1
This class reviews the basics of deep learning and FPGAs. Topics include:
- Machine learning terminology and use cases
- Basic topologies such as feed-forward networks and AlexNet
- An overview of FPGA architecture, advantages, and uses
Week 2
This class teaches how to make computer vision applications. Topics include:
- The essential components of computer vision software
- How Intel® software and hardware are used to improve applications
- The common practices, languages, tools, and libraries used for computer vision
Week 3
This class teaches about the Intel Distribution of OpenVINO toolkit. Topics include:
- An overview of the Intel Distribution of OpenVINO toolkit and how to use each component for computer vision
- How to convert and optimize a Caffe* or TensorFlow* model into the format for the inference engine
- Why using the inference engine for FPGA accelerator speeds up vision applications
Week 4
This class explains the Intel FPGA Deep Learning Acceleration Suite. Topics include:
- How the Intel Distribution of OpenVINO toolkit can map network topologies onto FPGA architecture
- The different deep learning architectures available for FPGAs
- How lower precision is handled in FPGA machine learning models
Week 5
This class explains how the acceleration stack can be used for FPGAs. Topics include:
- How to use the acceleration stack to enable FPGA clusters
- Learning about the Open Programmable Acceleration Engine (OPAE) for application developers
- How to set up a host application to discover an FPGA accelerator