AI Practitioners Guide for Beginners—Part 3: Use AI Containers


Learn to use Docker* images with Intel® Optimization for TensorFlow* to deploy the TensorFlow framework on an Intel® Xeon® Scalable processor.


Welcome back to the AI Practitioners Guide for Beginners. I am Beenish Zia, and in this episode, you will get a quick overview of deploying the TensorFlow* framework on an Intel® Xeon® scalable platform [sic] using the Intel® Optimization for TensorFlow* [with] Docker* images.

In the last video, you learned about deploying on bare metal—doing all installations from scratch. That's a great way to learn the steps involved and gives you independence to tweak base environment settings for your particular use case. However, a lot of developers would rather have the base optimizations provided to them as part of a package, so they can accelerate their workload training and testing. For folks in this category, using an optimized TensorFlow container would be perfect.

There are many containers existing on various open source communities. The one I've used in the guide is the Intel Optimization for TensorFlow [with] Docker images for single-node deployment.

The first step for deploying the container on an Intel Xeon Scalable platform [sic] is very similar to those followed in bare metal deployment. Once you have configured the hardware, you would install an OS. In our example, we are using CentOS*. Detailed steps on OS installation is also included in the guide for your reference.

Once you've installed the OS, you will need to configure YUM, install EPEL [Extra Packages for Enterprise Linux*], that provides 100% high-quality add-on software packages for Linux distribution, and lastly, install the GCC* if it's not already part of your OS installation.

Once the OS installation with basic add-on software packages is done, you will start with downloading and installing Anaconda*. Anaconda is an open source distribution of Python* that makes it easy to use Python and machine learning packages on Linux and other operating systems.

Once Anaconda installation is complete, you would need to open a new terminal, and at Anaconda prompt, install the latest Intel Optimization for TensorFlow from Anaconda.

Now, the next step is to install Docker, unless you already have it installed. You will need Docker because we will be using the Intel Optimization for TensorFlow [with] Docker images.

Once Docker has been installed correctly, all you need now is to pull the Docker images discussed using the Docker pull command. After pulling the Docker container image, you can run it as a Jupyter* Notebook or run it as an interactive terminal.

In the running Docker image, you can download the latest benchmarks for deep learning training and testing. One thing you will need to note is the container image is lightweight, which means you will have to install basic Linux packages inside the running Docker image–like YUM, WGET, vi, et cetera–before you can run the TensorFlow benchmarks.

At the time the guide was developed, no Docker containers optimized for Intel® technology were available for multiple nodes, so no tested instructions for that were included. However, published documents, such as Horovod Distributed Training on Kubernetes Using MLT, are recommended reading. Additionally, to deploy TensorFlow via containers on multiple nodes, review the whitepaper in the links as well as Nauta. The first document provides steps to create singularity containers using a multinode environment and then deploy those singularity containers.

Don't forget to check out the complete written guide on the Intel® Developer Zone for more details on deploying TensorFlow on an Intel Xeon Scalable platform [sic] using containers. Thanks for watching, and keep developing.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804