IBM Support

Deep Learning on OpenPOWER: Building DIGITS on OpenPOWER Linux Systems

Technical Blog Post


Abstract

Deep Learning on OpenPOWER: Building DIGITS on OpenPOWER Linux Systems

Body

The Machine Learning and Deep Learning project in IBM Systems is a broad effort to build a co-optimized stack of hardware and software to make IBM Power Systems the best platform to develop and deploy cognitive applications.

 

In addition to bringing to market our first server designed from ground up for cognitive computing with the S822LC, and building a binary distribution of Deep Learning frameworks for Ubuntu 14.04 on Power, we have also been working with the Open Source community to enable the open source frameworks to be built directly from the repositories to enable Deep Learning users to harness the power of the OpenPOWER ecosystem.    With the introduction of little-endian OpenPOWER Linux, installation of open source applications on Power has never been easier.

 

This blog provides instructions on building the latest version of Nvidia’s DIGITS deep learning graphical user interface (DIGITS5) on (little-endian) OpenPOWER Linux, such as Red Hat Enterprise Linux 7.1, SUSE Linux Enterprise Server 12, Ubuntu 14.04, and subsequent releases.  Torch may be built with support for CUDA7.5 or CUDA8 to exploit Nvidia numerical accelerators, such as the Pascal P100 numerical accelerators in the S822LC for HPC systems with four P100 accelerators, or with PCIe-attached accelerators in conjunction with POWER8™ systems. These instructions are based on the instructions found in the DIGITS distribution at https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildDigits.md.

 

Prerequisites for building DIGITS5

To build DIGITS 5, you will need at a minimum the following Linux packages:

  • git
  • graphviz
  • libfreetype6-dev
  • libpng12-dev 
  • python-dev
  • python-flask
  • python-flaskext.wtf
  • python-gevent
  • python-h5py
  • python-numpy
  • python-pil
  • python-pip
  • python-pkgconfig
  • python-protobuf
  • python-scipy

On Ubuntu Linux, these packages may be installed with the following command:

$ sudo apt-get install --no-install-recommends git graphviz libfreetype6-dev libpng12-dev python-dev python-flask python-flaskext.wtf python-gevent python-h5py python-numpy python-pil python-pip python-pkgconfig python-protobuf python-scipy

 

Since DIGITS is only a graphical user interface, you need to install one or more deep learning frameworks.  DIGITS5 required Caffe to be installed and can also work with Torch.  To install Caffe and Torch from binary distribution of Deep Learning frameworks on Power, or install Caffe and Torch from source as I described in previous blogs.

To install Caffe and Torch from the binary distribution, follow the instructions supplied with the binary distribution. 

To install Caffe and Torch from source, follow these instructions to build Caffe on OpenPOWER (required) and optionally these instructions to build Torch7 on OpenPOWER (recommended). 

 

Upgrading from older DIGITS installations

If you are upgrading from an older version of DIGITS, such as DIGITS3, you must first upgrade some prerequisites as follows: 

$ pip install --upgrade pip

$ apt-get remove python-pip
$ pip uninstall gevent-socketio

Building and installing DIGITS

Download the DIGITS 5 distribution from github.

# example location - can be customized

$ DIGITS_ROOT=~/digits # or /opt/DL/digits

$ git clone https://github.com/NVIDIA/DIGITS.git $DIGITS_ROOT

 

Several Python packages need to be installed.  Fortunately, the DIGITS distro contains a file "requirements.txt" that specifies all required python packages:

sudo pip install -r $DIGITS_ROOT/requirements.txt

 

To enable loading data and visualization plug-ins, DIGITS may optionally be installed as follows:

$ sudo pip install -e $DIGITS_ROOT

 

Starting and Using the DIGITS server

To start a server and the following commands:   

$ cd $DIGITS_ROOT
$ ./digits-devserver

This will start a DIGITS GUI web service on the your Linux server host.  Now use a web browser to start using the DIGITS GUI at http://yourhost:5000/ (insert the host name of your DIGITS server for “yourhost”) and check out the Getting Started Guide for DIGITS.

 

 


image

Dr. Michael Gschwind is Chief Engineer for Machine Learning and Deep Learning for IBM Systems where he leads the development of hardware/software integrated products for cognitive computing. During his career, Dr. Gschwind has been a technical leader for IBM’s key transformational initiatives, leading the development of the OpenPOWER Hardware Architecture as well as the software interfaces of the OpenPOWER Software Ecosystem. In previous assignments, he was a chief architect for Blue Gene, POWER8, POWER7, and Cell BE. Dr. Gschwind is a Fellow of the IEEE, an IBM Master Inventor and a Member of the IBM Academy of Technology. 

 

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"HW1W1","label":"Power ->PowerLinux"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"","label":""}}]

UID

ibm16169971