![Page 1: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/1.jpg)
Felix Abecassis, Systems Software EngineerJonathan Calmels, Systems Software Engineer
USING DOCKER FOR GPU ACCELERATED APPLICATIONS
![Page 2: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/2.jpg)
2
AGENDA
GPU COMPUTINGCUDAEcosystemApplications
NVIDIA DOCKERChallengesOur Solution
DEMOSGPU IsolationMachine LearningRemote Deployment
![Page 3: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/3.jpg)
3
GPU COMPUTINGnvidia.com/object/gpu-accelerated-computing.html
![Page 4: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/4.jpg)
4
HETEROGENEOUS COMPUTING
GPU CPU
+
Optimized forparallel tasks
Optimized for serial tasks
![Page 5: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/5.jpg)
5
// Vector sum in Cvoid 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];}
CUDA C++ PROGRAMMING
![Page 6: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/6.jpg)
6
ECOSYSTEM
AmgX cuBLAS
LIBRARIES
COMPILER DIRECTIVES
PROGRAMMING LANGUAGES
x86
![Page 7: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/7.jpg)
7
NVIDIA SDKs
![Page 8: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/8.jpg)
8
APPLICATIONS: DEEP LEARNING
INTERNET & CLOUDImage ClassificationSpeech RecognitionLanguage TranslationLanguage ProcessingSentiment AnalysisRecommendation
MEDICINE & BIOLOGYCancer Cell DetectionDiabetic GradingDrug Discovery
MEDIA & ENTERTAINMENTVideo CaptioningVideo SearchReal Time Translation
SECURITY & DEFENSEFace DetectionVideo SurveillanceSatellite Imagery
AUTONOMOUS MACHINESPedestrian DetectionLane TrackingRecognize Traffic Sign
![Page 9: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/9.jpg)
9
GPU-ACCELERATED DEEP LEARNING
TENSORFLOW CNTK TORCH CAFFE
WATSON CHAINER THEANO MATCONVNET
![Page 10: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/10.jpg)
10
NVIDIA DOCKERgithub.com/NVIDIA/nvidia-docker
![Page 11: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/11.jpg)
11
CHALLENGESA Typical Cluster
Ubuntu 14.04Drivers 3524x Maxwell
CentOS 7Drivers 3464x Kepler
Ubuntu 16.04Drivers 3628x Pascal
CUDA 7.5CUDA 7.0cuDNN 3
CUDA 7.5cuDNN 4 CUDA 8.0
Patches
![Page 12: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/12.jpg)
12
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.runRUN 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](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/13.jpg)
13
BRINGING GPU SUPPORT TO DOCKER
![Page 14: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/14.jpg)
14
INTERNALS
Docker Daemon
NVIDIA Docker Plugin
NVIDIA Drivers
NVIDIA Docker
Docker Registry
1
2
3
4
5
6
HTTP + SSH
HTTP + UNIXLDCACHE + NVML
HTTPS
CUDA 8.0CAFFE
CUDA 7.5TENSORFLOW
HTTPS
HTTPSDocker CLI
![Page 15: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/15.jpg)
15
DOCKERHUB IMAGES
CUDA 7.0 runtime
CUDA 7.5 runtime
CUDA 8.0 runtime
cuDNN v4 runtime
CUDA 7.0 devel
cuDNN v4 runtime
CUDA 7.5 devel
cuDNN v5 runtime
CUDA 8.0 devel
NVIDIA/Caffe0.14.2
cuDNN v4 devel
cuDNN v4 devel
NVIDIA/Caffe0.14.5
cuDNN v5 devel
DIGITS3.0 CNTK BVLC/Caffe TensorFlow DIGITS
3.3
Ubuntu14.04
Ubuntu16.04
![Page 16: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/16.jpg)
16
GPU APPLICATIONS WORKFLOW
Research/Develop Test/Package Deploy
Video Transcodin
g
Image Processing
Deep Learning HPC
Visualization
Container Based Applications
GPU-Accelerated Data Center
![Page 17: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/17.jpg)
17
LEARN MOREwww.nvidia.com/dgx1
![Page 18: Using Docker for GPU Accelerated Applications](https://reader035.vdocument.in/reader035/viewer/2022062412/586f70fd1a28ab10258b4dd1/html5/thumbnails/18.jpg)
THANK YOU