using docker for gpu-accelerated applications by felix abecassis and jonathan calmeis

18
Using Docker for GPU accelerated applications Felix Abecassis Systems Software Engineer, NVIDIA Systems Software Engineer, NVIDIA Jonathan Calmels

Upload: docker-inc

Post on 16-Apr-2017

438 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Using Docker for GPU

accelerated applications

Felix Abecassis Systems Software Engineer, NVIDIA

Systems Software Engineer, NVIDIA

Jonathan Calmels

Page 2: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

GPU Computing

CUDA

Ecosystem

Applications

Agenda

NVIDIA Docker

Challenges

Our solution

Demos

GPU isolation

Machine Learning

Remote deployment

Page 3: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

GPU Computing nvidia.com/object/gpu-accelerated-computing.html

Page 4: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Heterogeneous Computing CPU

Optimized for Serial Tasks

GPU Optimized for

Parallel Tasks

Page 5: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

CUDA C++ Programming

// Vector sum in C void vector_add(int n, const float* a, const float* b, float* c) { for (int idx = 0; idx < n; ++idx) c[idx] = a[idx] + b[idx]; } // Vector sum in CUDA __global__ void vector_add(int n, const float* a, const float* b, float* c) { int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < n) c[idx] = a[idx] + b[idx]; }

Page 6: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Ecosystem

Libraries

Programming

Languages

Compiler

Directives

AmgX cuBLAS

/

x86

Page 7: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

NVIDIA SDKs

Page 8: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Applications: Deep Learning

INTERNET & CLOUD

Image Classification Speech Recognition

Language Translation Language Processing

Sentiment Analysis Recommendation

MEDIA & ENTERTAINMENT

Video Captioning

Video Search Real Time Translation

AUTONOMOUS MACHINES

Pedestrian Detection

Lane Tracking Recognize Traffic Sign

SECURITY & DEFENSE

Face Detection

Video Surveillance Satellite Imagery

MEDICINE & BIOLOGY

Cancer Cell Detection

Diabetic Grading Drug Discovery

Page 9: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

GPU-Accelerated Deep Learning

WATSON THEANO MATCONVNET

TENSORFLOW CNTK TORCH CAFFE

CHAINER

Page 10: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

NVIDIA Docker github.com/NVIDIA/nvidia-docker

Page 11: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Challenges: a typical cluster

Page 12: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Packaging driver files?

FROM ubuntu:14.04

RUN apt-get update && \

apt-get install --no-install-recommends -y gcc make libc-dev wget

RUN wget http://us.download.nvidia.com/XFree86/Linux-x86_64/361.42/NVIDIA-Linux-x86_64-361.42.run

RUN sh NVIDIA-Linux-x86_64-361.42.run --silent --no-kernel-module

Never install the driver in the Dockerfile, not portable!

Page 13: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Bringing GPU support to Docker

Page 14: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Internals

Page 15: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

DockerHub images

Page 16: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

GPU Applications Workflow

Container Based Applications

GPU-Accelerated data center

Research/Develop Deploy Test/Package

Video Transcoding

Image Processing

Deep Learning

HPC

Visualization

Page 17: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Demos Interactive, ask questions!

Page 18: Using Docker for GPU-accelerated Applications by Felix Abecassis and Jonathan Calmeis

Thank you!