From ea94cbf14bd4eed59c4e18db6a692ac538652816 Mon Sep 17 00:00:00 2001 From: Vinitra Swamy Date: Wed, 30 Jan 2019 10:58:30 -0800 Subject: [PATCH] Docker containers for CPU and GPU quickstart (#332) * Docker Container for CPU Version (Ubuntu 16.04, Python3 Bindings, compatible with Windows-Docker) * Nvidia-Docker Container for GPU Version (Ubuntu 16.04, CUDA, CUDNN, Python3 Bindings) * README with Docker quickstart instructions (i.e. docker pull .../onnxruntime:cpu, docker run -it ...) * Include plans to publish public images (with ONNX Runtime 0.2) on README --- dockerfiles/Dockerfile.cpu | 23 +++++++++++++ dockerfiles/Dockerfile.gpu | 23 +++++++++++++ dockerfiles/README.md | 69 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 dockerfiles/Dockerfile.cpu create mode 100644 dockerfiles/Dockerfile.gpu create mode 100644 dockerfiles/README.md diff --git a/dockerfiles/Dockerfile.cpu b/dockerfiles/Dockerfile.cpu new file mode 100644 index 0000000000..3691a77fcb --- /dev/null +++ b/dockerfiles/Dockerfile.cpu @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. +#-------------------------------------------------------------------------- +# Official user quickstart docker container for ONNX Runtime +# Ubuntu 16.04, CPU version, Python 3. +#-------------------------------------------------------------------------- + +FROM ubuntu:16.04 +MAINTAINER Vinitra Swamy "viswamy@microsoft.com" + +RUN apt-get update && \ + apt-get install -y sudo \ + build-essential curl \ + libcurl4-openssl-dev \ + libssl-dev wget \ + python 3.6 python3-pip \ + python3-dev git +RUN pip3 install --upgrade pip +RUN pip3 install numpy onnx + +RUN pip3 install onnxruntime +WORKDIR /code diff --git a/dockerfiles/Dockerfile.gpu b/dockerfiles/Dockerfile.gpu new file mode 100644 index 0000000000..1f1fc63bf9 --- /dev/null +++ b/dockerfiles/Dockerfile.gpu @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. +#-------------------------------------------------------------------------- +# Official user quickstart nvidia-docker container for ONNX Runtime GPU +# Ubuntu 16.04, GPU version, CuDNN 7, CUDA 10, Python 3. +#-------------------------------------------------------------------------- + +FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 +MAINTAINER Vinitra Swamy "viswamy@microsoft.com" + +RUN apt-get update && \ + apt-get install -y sudo \ + build-essential curl \ + libcurl4-openssl-dev \ + libssl-dev wget \ + python 3.6 python3-pip \ + python3-dev git +RUN pip3 install --upgrade pip +RUN pip3 install numpy onnx + +RUN pip3 install onnxruntime-gpu +WORKDIR /code diff --git a/dockerfiles/README.md b/dockerfiles/README.md new file mode 100644 index 0000000000..6d599a8e6c --- /dev/null +++ b/dockerfiles/README.md @@ -0,0 +1,69 @@ +# Quick-start Docker containers for ONNX Runtime + +## CPU Version (Preview) +#### Linux 16.04, Python Bindings, Compatible with Docker for Windows + +1. Retrieve your docker image in one of the following ways. + +- Build the docker image from the DockerFile in this repository. + ``` + # If you have a Linux machine, preface this command with "sudo" + docker build -t onnxruntime-cpu -f Dockerfile.cpu . + ``` + - Pull the official image from DockerHub. + + ``` + # Will be available with ONNX Runtime 0.2.0 + ``` +2. Run the docker image + + ``` + # If you have a Linux machine, preface this command with "sudo" + # If you have a Windows machine, preface this command with "winpty" + + docker run -it onnxruntime-cpu + ``` + +## GPU Version (Preview) +#### Linux 16.04, Python Bindings, CUDA 10, CuDNN7, Requires Nvidia-Docker version 2.0 + +0. Prerequisites: [Install Nvidia-Docker 2.0](https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)) + +1. Retrieve your docker image in one of the following ways. + - Build the docker image from the DockerFile in this repository. + ``` + # If you have a Linux machine, preface this command with "sudo" + + docker build -t onnxruntime-gpu -f Dockerfile.gpu . + ``` + Note that you can change the base CUDA distribution to 9.1 and use nvidia-docker v1 + by replacing the first line of the dockerfile with the base image below. + ``` + FROM nvidia/cuda:9.1-cudnn7-devel-ubuntu16.04 + ``` + - Pull the official image from DockerHub. + + ``` + # Will be available with ONNX Runtime 0.2.0 + ``` + +2. Run the docker image + ``` + # If you have a Linux machine, preface this command with "sudo" + # If you have a Windows machine, preface this command with "winpty" + + docker run -it --runtime=nvidia --rm nvidia/cuda onnxruntime-gpu + ``` +### Other options to get started with ONNX Runtime + +- Deploy [inference for pretrained ONNX models](https://github.com/Azure/MachineLearningNotebooks/tree/master/how-to-use-azureml/deployment/onnx) for handwritten digit recognition (MNIST) +or facial expression recognition (FER+) using Azure Machine Learning + +- Work with ONNX runtime in your local environment using the PyPi release ([CPU](https://pypi.org/project/onnxruntime/), [GPU](https://pypi.org/project/onnxruntime-gpu/)) + - ``pip install onnxruntime`` + - ``pip install onnxruntime-gpu`` + +- Build ONNX Runtime from the source code by following [these instructions for developers](../BUILD.md). + +### License +[MIT License](../LICENSE)